This case offers a mostly drop-in compatible replacement (and upgrade) for elxl. However, there is some impact to driver.conf properties and automatic media selection, as well as two new driver-specific dladm link properties, so this case records these changes. I believe these impacts are unlikely to negatively affect anyone at all (are folks still using 10BASE2 or 10BASE5?), so I'm filing as self-review. If anyone wants this to be promoted to a fast track please let me know. Only minor binding is being sought at this time.
Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI This information is Copyright 2010 Sun Microsystems 1. Introduction 1.1. Project/Component Working Name: Open Source elxl replacement 1.2. Name of Document Author/Supplier: Author: Garrett D'Amore 1.3 Date of This Document: 13 January, 2010 4. Technical Description Summary ------- During the review of PSARC 2010/005, which is a withdrawn case that aimed to EOF the elxl driver, it became apparent that a number of people are still using these devices, and need a supported driver. elxl is currently a closed source driver supporting certain legacy ethernet cards from 3Com. (The 3c905 line, and a few compatible family members.) The existing driver is a vanilla GLDv2 driver, and offers none of the enhancements such as full-MTU VLAN support, suspend/resume, link notification, or various other features. It *does* however support some legacy devices with multiple media options by automatically probing each media in turn until it finds one that works before settling on the media. We have undertaken a complete rewrite of the elxl driver, based on a port of the Open Source NetBSD ex driver, which we believe resolves most of the complaints about the current driver. In particular, the new driver fully supports GLDv3, full-MTU VLANs, link notification for twisted pair and 100BASE-X media, suspend & resume, and fast reboot. (We've also written hardware checksum offload support, but its inclusion is still subject to test results, and so we are not making it an official part of this case. Its just an implementation detail.) It also supports link management for 100BASE-TX using the standard dladm link properties. It can also much more easily be extended to support additional cardbus and miniPCI variants in the future, should someone have such devices and want to add the support. This case is only seeking Minor binding for this new driver. Impact ------ Apart from the positive impacts listed above, the new elxl driver has impact on driver.conf settings. In particular, the following driver.conf settings (documented in elxl(7D)) are no longer supported: tx_start_thresh recv-descriptors xmit-descriptors min-recv-data-buffers max-recv-data-buffers inter-frame-space full-duplex Most of the above properties are simply no longer tunable in the new driver. (The exception is "full-duplex", which is handled via the mechanism described below.) Furthermore, automatic selection of non-twisted-pair media on the NICs with multiple media options (e.g. 3C900-COMBO, and simlar options) is no longer supported. These devices will all default to 100BASE-TX using autonegotiation (for 100 Mbps models) or 10BASE-T half-duplex (10 Mbps only models.) Link mode for 100BASE-TX, 100BASE-T4, and "true" MII devices is handled via the 802.3 link properties like all other devices. Selection of alternate media can be performed using the dladm "_media" device-driver private property. The setting can be one of "mii" - selects 100BASE-TX, 100BASE-T4, or an external MII port (all these PHYS use MII style register access) "tp-hdx" - selects 10BASE-T in half-duplex mode (10Mbps models only) "tp-fdx" - selects 10BASE-T in full-duplex mode (10Mbps models only) "aui" - selects the AUI interface (10BASE5) if present "bnc" - selects the BNC interface (10BASE2) if present "fx-hdx" - selects 100BASE-FX in half-duplex if available "fx-fdx" - selects 100BASE-FX in full-duplex if available "fl-hdx" - selects 10BASE-FL in half-duplex mode if available "fl-fdx" - selects 10BASE-FL in full-duplex mode if available For most models, the default (and usually the only option) will be "mii". The "tp-hdx" and "tp-fdx" are used only on models that support 10Mbps twisted pair without any autonegotiation. The default setting on 100BASE-FX models will be "fx-fdx" (full-duplex). All other 10Mbps only devices will default to half-duplex. We also provide a new property, "_available_media", which lists the possible options for the media separated by commas. For example, on a 3C900-COMBO card, the value of _available_media is "tp-hdx,tp-fdx,aui,bnc". (Note that this property will likely be removed in the future, when the MAC_PROP_POSSIBLE interface is properly supported in the MAC layer for private properties. The current implementation only supports integer properties such as MTU. In any event, we do not intend to document the _available_media property.) INTERFACES ---------- Imported Interfaces GLDv3 and descendents Consolidation Private* * Note: the GLDv3 interfaces are in the process of being upgraded to Committed. When this happens, we will switch to using the Commmitted interfaces. Exported Interfaces elxl Committed Device driver name. _media Uncommitted Both property name and values. _available_media Uncommitted Undocumented, expected to be removed. legacy properties REMOVED No more driver.conf tunables automatic media select REMOVED Undocumented semantic, to be removed. 6. Resources and Schedule 6.4. Steering Committee requested information 6.4.1. Consolidation C-team Name: ON 6.5. ARC review type: Automatic 6.6. ARC Exposure: open