On (03/06/08 18:38), Sebastien Roy wrote: > # dladm show-ether > LINK PTYPE STATE AUTO SPEED-DUPLEX > PAUSE > eth0 current unknown yes 1G-u none > eth1 current unknown yes 1G-u none > eth2 current unknown yes 1G-u none > eth3 current unknown yes 1G-u none > # dladm show-phys > LINK MEDIA STATE SPEED DUPLEX DEVICE > eth0 Ethernet up 1000 full nge0 > eth1 Ethernet up 1000 full nge1 > eth2 Ethernet up 1000 full e1000g0 > eth3 Ethernet up 1000 full e1000g1 > > Why is STATE different in these two commands, and what does 1G-u mean > for SPEED-DUPLEX in show-ether?
That is because print_phys() in dladm.c extracts the phys info for eth0 and queries the kstat for the underlying phys device, whereas show_etherprop() calls get_linkduplex with "eth0" itself. Notice that "dladm show-ether -x" does the right thing because the extended output uses dladm_get_single_mac_stat (via get_speed_duplex) If you try /net/trigati.east/export/build/sowmini/etherfix/usr/src/cmd/dladm/dladm you'll see the fix in action. --Sowmini
