cvs commit: src/sys/net if.c route.c rtsock.c

Luigi Rizzo luigi at FreeBSD.org
Fri Apr 16 02:35:00 PDT 2004


On Fri, Apr 16, 2004 at 09:05:20AM +0000, Eivind Eklund wrote:
...
> >               strlcpy(ifp->if_xname, new_name, sizeof(ifp->if_xname));
> > -             ifa = TAILQ_FIRST(&ifp->if_addrhead);
> > +             ifa = ifaddr_byindex(ifp->if_index);
> 
> Given that all of the changes in this commit end of the form
> ifaddr_byindex(ifp->if_index), I'd suggest an abstraction might be in
> order.  Something like
> 
> #define ifp2ifaddr(p) ifaddr_byindex((p)->if_index)
> 

ifaddr_byindex() is already a macro, so i'd rather not have the
double indirection.

Besides, in an ideal world, we could store ifindexes instead of
ifp's in many places (routing entries, ifaddrs) which would
considerably reduce the complexity of locking, refcounting and
garbage collection.

> in order to isolate this case (which, as you say, can be implemented
> several ways).  I'm not sure ifp2ifaddr is a good name - that was just
> the first that came to mind.

Speaking of names, i am still unclear if ifaddr_byindex()
is meant to give you only the link-level address of the interface,
or the entire list of addresses associated to the interface
(which does occur, but only as an accident)

	cheers
	luigi


More information about the cvs-src mailing list