Subject: Re: can't switch DE500 to 100Mbit
To: Matt Thomas <matt@lkg.dec.com>
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
List: tech-net
Date: 02/15/1997 13:27:27
David Greenman writes:


>   Just to chime in from the FreeBSD end of town... We would like to integrate
>the architectural changes that BSDI has done in this area, but it's a lot of
>work to change all of the existing drivers to the new scheme and noone has had
>the time to take the project on.


One of the appealing aspects of the BSDI changes is the backward
compatibility.  Given the if_media kernel support code and suitable
changes to /sbin/ifconfig, drivers can be upgraded *independently*.


If someone wants to add this support for *one* interface (leaving the
others alone), all that's really necessary is:

	* Create <net/if_media.h>.
	* Add a "struct ifmedia" to <net/if.h>
	* Add a "struct if_media" to the softc of the upgraded device.
	  (or all devices, if kernel interfaces require it).

	* Implement the driver-independent kernel if_media routines described
	  in the documentation Matt posted

	* Add the driver-specific "media changed" callback for the
	  given driver.

In my little corner of the world, 10mbit Ethernet went extinct early
last year, yet I'm stuck with drivers that support 10Mbit media
selection and don't support 100Mbit media selection.  I frequently end
up finding a spare x86 machine, DOS boot floppy, and vendor-supplied
config utility, to force non-volatile selection of specific medium and
full/half duplex flags.

That's sufficiently painful that I think incremental, driver-by-driver
migration to an if_media interface is preferable to what we have now.
(I would be *much* happier learning a new, different, incompatible
user-interface syntax for ifconfig, if it supported explicit 100Mbit
media and full/half duplex selection. Even if that UI wasn't available
for all drivers.)

I'll commit to adding the relevant driver-specific support to NetBSD's
if_ep driver, and to *testing* a de500 driver on NetBSD.

How realistic is it to get BSDI's user-level and/or kernel support code?

Failing that, can we at least get up-to-date docmumentation of the
BSDI architecture (so that Matt's drivers work cleanly on BSD/OS,
FreeBSD, and NetBSD) , and co-operate in writing a free version of the
driver-independent kernel code?