Brooks Davis <email@example.com>
FCP 101: Deprecation and removal of 10/100 Ethernet drivers
Deprecate most 10 and 10/100Mbps Ethernet drivers and remove them before FreeBSD 13.
Each network driver creates drag for the project as we attempt to
improve the network stack or provide new features such as expanded
32-bit compatibility. For example, the author has edited every single
NIC driver more than once in the past year to update management (
interfaces. We could improve this situation by converting drivers to
iflib, but each additional driver takes work.
10 and 100 megabit Ethernet drivers are largely irrelevant today and we have a significant number of them in the tree. The ones that are no longer used and/or are not known to be working need to be removed due to the significant ongoing 'tax' on new development.
For at least a decade, most systems (including small embedded systems) have shipped with gigabit Ethernet devices and virtual machines commonly emulate popular gigabit devices. We wish to retain support for popular physical and virtual devices while removing support for uncommon ones. With a few exceptions these drivers are unlikely to be used by our user base by the time FreeBSD 12 is obsolete.
We propose to deprecate devices which are not sufficiently popular. This will entail:
- (October 2018) Send this list to freebsd-net and freebsd-stable.
- (Before FreeBSD 12.0-RELEASE - October 2018) Update the manpages and attach routines for each device to be removed and merge those changes to FreeBSD 12.
- (One month after FreeBSD 12.0-RELEASE - January 2019) Remind freebsd-net and freebsd-stable users of pending deletion.
- (Three months after FreeBSD 12.0-RELEASE - March/April 2019) Delete deprecated devices.
Through out this process, solicit feedback on additions to the exception list and this document will be updated as required. Drivers can have their deprecation notices removed at any time if it is justified. For a device to be placed on the exception list the device must meet one of the following criteria:
- Popular in applications where it is likely to be deployed beyond the
support lifetime of FreeBSD 12 (late 2023).
- 5 reports of uses in the wild on machines running or expected to promptly upgrade to FreeBSD 12 will be deemed to satisfy the "popular" requirement.
- Required to make a well supported embedded or emulation platform usable.
- Ported to use iflib (reducing future maintenance cost.)
Exceptions to removal
|bfe||Cleared the popularity bar during feedback.|
|dc||Popular device for CardBus card.|
|fxp||Popular device long recommended by the project.|
|hme||Built in interface on many supported sparc64 platforms.|
|le||Emulated by QEMU, alternatives don't yet work for mips64.|
|rl||Popular in the P-III era and reported to ship in embedded systems.|
|sis||Soekris Engineering net45xx, net48xx, lan1621, and lan1641.|
|smc||ARM Foundation Model simulator.|
|ste||Deployed 2-/4-port cards are hard to replace.|
|vr||Soekris Engineering net5501, some Asus motherboards.|
|vte||Still shipping in embedded systems, GbE capable (not in tree).|
|xl||Popular device for CardBus card.|
Note: USB devices have been excluded from consideration in this round.
Device to be removed
ae, bm, cs, de, dme, ed, ep, ex, fe, pcn, sf, sn, tl, tx, txp, vx, wb, xe
Summary of discussions and supporting data
The discussing this FCP (primarily on FreeBSD-arch) resulted in 106 emails. There was one request to restrict deprecation to 10Mbps devices and a few calls for a much shorter list. Based on the discussions we moved a number of devices to the STAY list. Some interest was expressing in doing iflib converstions, but documentation on the process is currently lacking. Most interest centered around rl which will remain the tree.
I've tallied the results below breaking them down between mentions of systems people intend to run 12-RELEASE on and other mentions of actual systems (I've ignored entirely hypothetical mentions along the lines of "XXX used to be really popular".)
|Driver||Will run 12||Other||Notes|
|bfe||5||0||Popular, moved to STAY list|
|de||0||0||One mention without context|
|rl||6+||1||Popular, moved to STAY list|
NYCBUG dmesg survey (as of 2018-10-18)
Warner Losh solicited posts to https://dmesgd.nycbug.org/ and produced the following data on drivers considered in this FCP. The data is thin and certainly contains bias due to the manual and voluntary submission process, but it is the data we have.
Note to users of deprecated devices
If you are here because you see a deprecation notice for hardware you are using, please report your use to the author of this FCP for tabulation. Also, please consider submitting your dmesg to https://dmesgd.nycbug.org/.