Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Feb 2008 10:45:11 -0800
From:      Julian Elischer <julian@elischer.org>
To:        =?UTF-8?B?RGFnLUVybGluZyBTbcO4cmdyYXY=?= <des@des.no>
Cc:        arch@freebsd.org
Subject:   Re: dev.* analogue for interfaces
Message-ID:  <47BB23B7.9050007@elischer.org>
In-Reply-To: <86odacc04t.fsf@ds4.des.no>
References:  <86odacc04t.fsf@ds4.des.no>

next in thread | previous in thread | raw e-mail | index | archive | help
Dag-Erling Smørgrav wrote:
> Four years ago, I created the dev.* sysctl tree for device drivers.
> Every time a device is registered, a sysctl context is automatically
> created, and a node is created under dev (e.g. dev.cpu.0), with some
> standardized nodes under it (%driver, %parent, %desc etc.) plus any node
> the driver - or even another driver - wants to add.
> 
> However, not everything in Unix is a device.  Specifically, network
> interfaces aren't.
> 
> Some network interfaces are also devices, so they have a sysctl node in
> dev.*:
> 
> % sysctl dev.msk
> dev.msk.0.%desc: Marvell Technology Group Ltd. Yukon EC Ultra Id 0xb4 Rev 0x02
> dev.msk.0.%driver: msk
> dev.msk.0.%parent: mskc0
> 
> Others don't: bridge, faith, lo, pflog, vlan etc.
> 
> What I propose is to add a similar sysctl tree for interfaces.  It would
> look a little different.  For instance, some interfaces (bridge, vlan)
> have parents or children, but most don't.
> 
> Just as it is for devices, creation and destruction of the interface's
> sysctl node and context would be hidden inside if_{attach,detach}() and
> completely transparent to the driver, and there will be an API that
> drivers can use if they want to add their own nodes.
> 
> Since interfaces don't all have parents, the API will include a function
> to specify one for those that do.
> 
> This is *not* intended to replace ifconfig; it is intended for infor-
> mation which isn't available through ifconfig and which it wouldn't be
> natural to place there.  For instance, every wlan interface already has
> a sysctl tree under net.wlan.
> 
> Drivers that already have sysctl nodes will require less code to create
> them, and no code at all to destroy them, since if_detach() will take
> care of that (all nodes in the interface's context are automatically
> destroyed when the context is destroyed).
> 
> I'm unsure whether this should go under net.if, or just if.  I think I
> prefer the latter.
> 
> I'm open to objections and suggestions...

the usual things apply:

a) If you do the work most people would go along. :-)

b) being able to compile it without the bloat might be a good idea for
    embeded systems.


> 
> DES




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?47BB23B7.9050007>