adding if_dev member to struct ifnet

John Baldwin jhb at FreeBSD.org
Tue Sep 30 11:23:06 PDT 2003


On 30-Sep-2003 Brooks Davis wrote:
> On Tue, Sep 30, 2003 at 01:14:39PM -0400, John Baldwin wrote:
>> 
>> Fair enough.  I think that Brooks planned to use a NULL device_t for
>> interfaces w/o a backing new-bus device.  However, that means you
>> still need if_name for all the non-newbus devices, so this seems
>> somewhat pointless if if_name is the only reason.  Another counterpoint
>> is that the new-bus namespace and the netif namespace aren't the same
>> anyway and that seemed to be the point of this linkage.  The
>> dev_t <> softc <> device_t linkages aren't about unifying namespaces.
> 
> The idea here is that virtually all uses of if_name/if_unit that aren't
> just there for the users benefit are actually references to the
> underlying driver not name of the interface.  Currently they are the
> same (i.e. ifname is nearly always device_get_name(dev) or a bug prone
> manual version there of), but I would like to separate them so we can
> rename interfaces.
> 
> Since device_t is as close to a repository of driver/instance
> information as we've got, I though using it would be a reasonable way
> to go.  As a side benefit, most drivers have a copy of it in their softc
> already so you'd have a standard place to put it.
> 
> I suppose a usable alternative would be to revive if_name and if_unit
> as something like if_drvname and if_drvunit.

Are these uses all within the driver itself?  If so, then just giving
ifnet a void * that is private to the driver would allow ifnet devices
hung off of new-bus devices to cache their device_t w/o requiring the
rest of the kernel to know what that private variable is.

-- 

John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/


More information about the freebsd-net mailing list