Re: adding if_dev member to struct ifnet

From: Brooks Davis (brooks_at_one-eyed-alien.net)
Date: 09/30/03

  • Next message: Garrett Wollman: "Re: finishing the if.h/if_var.h split"
    Date: Tue, 30 Sep 2003 11:29:02 -0700
    To: John Baldwin <jhb@FreeBSD.org>
    
    
    

    On Tue, Sep 30, 2003 at 02:23:02PM -0400, John Baldwin wrote:
    >
    > 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.

    All are within other code. One example is in dev/mii/brgphy.c which a
    phy feature is not enabled when it is attached to some MACs. A messier
    example is in the new ATM code where interfaces are looked up by name.
    In all cases, usage is limited to a narrow set of code, but it's not
    generally in the driver itself (in those cases, the softc is often
    already used, say to hold the unit).

    -- Brooks

    -- 
    Any statement of the form "X is the one, true Y" is FALSE.
    PGP fingerprint 655D 519C 26A7 82E7 2529  9BF0 5D8E 8BE9 F238 1AD4
    
    



  • Next message: Garrett Wollman: "Re: finishing the if.h/if_var.h split"

    Relevant Pages

    • Re: VxWorks 6.6 - Ethernet interface driver support
      ... Ethernet interface cards, deploying the "Intel PRO/1000 VxBus Enhanced ... Network Driver" in conjunction with the "Generic PHY driver", ... these interfaces. ...   MII_Bus @ 0x005073cc ...
      (comp.os.vxworks)
    • Re: HP-PB 10/100 10.20 driver?
      ... If there is no downloadable driver, ... an HP-PB FDDI card crippled with a 1500 byte MTU. ... the 100BT interfaces were ... Size Size Size Time Throughput local remote local remote ...
      (comp.sys.hp.hpux)
    • Re: VxWorks 6.6 - Ethernet interface driver support
      ... electrical Ethernet interfaces with optical Ethernet ... interfaces (DSS PMC card), so I wanted to disable the Generic PHY ... driver would result in removing also the Intel PRO/ ... CTRL register bits RFCE (Receive Flow Control Enable) and TCFE ...
      (comp.os.vxworks)
    • Re: VxWorks 6.6 - Ethernet interface driver support
      ... electrical Ethernet interfaces with optical Ethernet ... interfaces (DSS PMC card), so I wanted to disable the Generic PHY ... driver would result in removing also the Intel PRO/ ... CTRL register bit LRST is set ...
      (comp.os.vxworks)
    • Re: VxWorks 6.6 - Ethernet interface driver support
      ... electrical Ethernet interfaces with optical Ethernet ... interfaces (DSS PMC card), so I wanted to disable the Generic PHY ... driver would result in removing also the Intel PRO/ ... CTRL register bit LRST is set ...
      (comp.os.vxworks)