I'm sponsoring this fast-track for Vasumathi Sundaram, the timer expires on 06/15/2009.
LSO and HW TX Checksum properties in dladm ------------------------------------------ 1. Summary ---------- This case proposes to add two properties "lso" and "hw_tx_cksum" to dladm, to allow the LSO and Transmit HW checksum properties of the driver to be updated on the fly at runtime. Release binding: Patch 2. Description -------------- To ensure the correct operation of any driver that supports LSO and hardware checksum, it is often required to turn the properties on or off for debugging. An example will be the nxge driver, that has different values for the hardware checksum capability to workaround hardware bugs. Currently, to enable/disable the Transmit HW checksums and LSO properties in a driver, the driver's .conf file needs to be updated to set the capabilities, and the interface has to be unplumbed and plumbed for the settings to take effect. When the interface is replumbed, the driver announces its LSO/HW Checksum capabilities to GLD which is then passed up to its clients. Since dladm provides more consistent interfaces to set link properties, LSO and TX HW checksum should be added as link properties that can be enabled or disabled at runtime without requiring to modify the driver's .conf file and the unplumb/plumb sequence. To support this, the command 'dladm show-linkprop' will now display two additional properties "lso" and "hw_tx_cksum" for each driver. This is achieved by adding two new MAC properties MAC_PROP_LSO and MAC_PROP_HCKSUM to the enum mac_prop_id_t in /usr/src/uts/common/sys/mac.h. These properties will apply to all datalinks of type DL_ETHER. Each driver that supports LSO and TX Hardware checksum should include cases for MAC_PROP_LSO and MAC_PROP_TX_HCKSUM in <driver>_m_setprop() and <driver>_m_getprop() callback functions to set and get the current and possible values. dladm will not list these properties for those drivers that do not support them. Whenever one of these properties is enabled or disabled through <driver>_m_setprop(), the driver should call mac_capab_update (MAC_NOTE_CAPAB_CHG) to initiate capability renegotiation with upper layers, which prevents the needs for the unplumb-plumb of the interface. 3. Interface changes -------------------- | Interfaces Exported | |______________________|__________________________|_______________________| | Interface | Classification | Comments | |______________________|__________________________|_______________________| | | | | | MAC_PROP_LSO | Consolidation Private | <sys/mac.h> | | MAC_PROP_HCKSUM | Consolidation Private | <sys/mac.h> | | lso | Committed | dladm property name | | hw_tx_cksum | Committed | dladm property name | |______________________|__________________________|_______________________| A sample output is as follows: LINK PROPERTY PERMS VALUE DEFAULT POSSIBLE e1000g0 lso rw 1 1 1,0 e1000g0 hw_tx_cksum rw 1 1 1,0