sun microsystems Systems Architecture Committee _________________________________________________________________ Subject: Brussels - enhanced network driver configura- tion via dladm Submitted by: Sowmini Varadhan File: PSARC/2007/429/opinion.ms Date: October 17, 2007 Committee: James D. Carlson (opinion written by Garrett D'Amore), Kais Belgaied, Glenn Skinner, Gary Winiger. Product Approval Committee: Solaris PAC solaris-pac-opinion@sun.com 1. Summary Brussels is a project to enhance and standardize network interface configuration through properties. It extends the GLDv3 driver interface to allow drivers to expose device properties to Solaris, provides normalized access to these properties via the dladm(1m) command line application, and provides for persistence of said configuration across reboots. A compatibility layer for ndd(1m) is included. 2. Decision & Precedence Information The project is is approved as specified in reference [1]. The members have made one technical recommendation as listed in Appendix B below. The project may be delivered in a minor release of Solaris. 3. Interfaces PSARC/2007/429 Copyright 2007 Sun Microsystems - 2 - The project exports the following interfaces. _______________________________________________________________________ | Interfaces Exported | |_________________________|__________________|________________________| |Interface | Classification | Comments | |_________________________|__________________|________________________| |mac_register | Consol. Private | (modified)| |mac_callbacks_t | Consol. Private | (modified)| |MC_SETPROP | Consol. Private | Sect. 2.1 of [3] | |MC_GETPROP | Consol. Private | Sect. 2.1 of [3] | |mc_setprop | Consol. Private | Sect. 2.2 of [3] | |mc_getprop | Consol. Private | Sect. 2.3 of [3] | |dld_ioc_prop_val_t | Consol. Private | Sect. 3.2 of [3] | |DLDIOCSETPROP | Consol. Private | | |DLDIOCGETPROP | Consol. Private | | |DLD_PROP_PRIVATE | Consol. Private | | |DLD_PROP_* | Consol. Private | Property prefix. | |dladm_is_wlan_prop | Consol. Private | | |dladm_get_single_mac_stat| Consol. Private | | |default_mtu | Committed | Property name | |flowctrl | Volatile | Property name | |ifspeed | Committed | Property name | |link_duplex | Committed | Property name | |link_up | Committed | | |adv_autoneg_cap | Committed | PSARC/2003/581 | |adv_asmpause_cap | Committed | PSARC/2003/581 | |adv_pause_cap | Committed | PSARC/2003/581 | |adv_1000fdx_cap | Committed | PSARC/2003/581 | |adv_1000hdx_cap | Committed | PSARC/2003/581 | |adv_100fdx_cap | Committed | PSARC/2003/581 | |adv_100hdx_cap | Committed | PSARC/2003/581 | |adv_10fdx_cap | Committed | PSARC/2003/581 | |adv_10hdx_cap | Committed | PSARC/2003/581 | |ndd on data-link drivers | Obsolete | Replace with dladm | |_________________________|__________________|________________________| The project imports the following interfaces. _______________________________________________________________________ | Interfaces Imported | |____________________|_______________________|________________________| |Interface | Classification | Comments | |____________________|_______________________|________________________| |GLDv3 MAC interfaces| Consolidation Private| PSARC 2006/249 | |libdladm API | Consol. Private | PSARC 2004/471 | |mac_maxsdu_update | Consol. Private | Clearview IP Tunneling| |____________________|_______________________|________________________| 4. Opinion PSARC/2007/429 Copyright 2007 Sun Microsystems - 3 - 4.1. Link Capabililties Several members discussed a desire to to have the ability to enable or disable offload capabilties (hardware checksum being one example). However, as this feature is mostly used to work around bugs that the customer should not see, it was agreed that this is not in-scope for this project. 4.2. Obsolete NDD The members discussed two issues surrounding NDD. First, the documentation should be changed to indicate use of NDD to configure network devices is Obsolete. The project team agreed with this correction. Second is the idea that in the future it might be possible to make a separate case to either backport Brussels to Solaris 10, or to provide at least CLI compatibility (via some kind of wrapper around NDD) in Solaris 10, so as to facilitate removal of the NDD compatibility layer sooner. The members ultimately decided that this is not in scope for this project. 4.3. Crossbow The project materials refer to properties that are not being approved at this time, but that will will be reviewed as part of the Crossbow project. Only the properties that are called out in [1] are approved as public properties at this time. 4.4. Power Management of Link Interfaces One participant discussed the problem of link power manage- ment, where power management policy may result in a link advertising a different set of bits via the MII register (normally a subset) than was administratively configured via the adv_* bits. The problems surrounding this have resulted in a technical change advised, which is documented more fully in Appendix B. 5. Minority Opinion(s) None. 6. Advisory Information The members would like to see a project enhancement to con- figure link NIC offload capabilities proposed. One example PSARC/2007/429 Copyright 2007 Sun Microsystems - 4 - is hardware checksum, but there are other possibilities as well. 7. Appendices 7.1. Appendix A: Technical Changes Required None. 7.2. Appendix B: Technical Changes Advised 1 Separate out the configuration tunable for administration of MII ethernet link bits into a separate writable knob (such as enable_100fdx_cap), and a read-only value indicat- ing the actual state of the bit as it is being exposed over the wire (i.e. adv_100fdx_cap). 7.3. Appendix C: Reference Material Unless stated otherwise, path names are relative to the case directory PSARC/2007/429. 1. 20 Questions File: commitment.materials/20q.txt 2. Brussels - NIC configuration Design Specification File: commitment.materials/brussels.pdf 3. Brussels Framework Interfaces Specification File: commitment.materials/framework.pdf 4. Brussels Umbrella Overview File: commitment.materials/umbrella.txt 5. Release Notes Update File: commitment.materials/relnotes-update.txt 6. bge(7d) File: commitment.materials/manpages/bge.7d 7. dladm(1m) File: commitment.materials/manpages/dladm.1m 7. ieee802.3(5) File: commitment.materials/manpages/ieee802.3.5 8. ndd(1m) File: commitment.materials/manpages/ndd.1m PSARC/2007/429 Copyright 2007 Sun Microsystems