I have one NIC of Intel 82574L, when i pull the cable(1000BASE-T), the message in "/var/log/message(tail -f)" is delay about 350ms to display that "eth0 NIC Link is DOWN", but when the NIC mode is 100m/s, the message("eth0 NIC Link is DOWN") will display immediately. When i check the NIC driver(e1000e), I find that the func "e1000e_has_link" was delay about 345ms to change link status(link up to link down) when i pull the cable, and then i check this func, i find this func need a condition that "hw->mac.get_link_status == true" tell driver to check link status. then i go on to check this condition, i find this condition need 82574L'register(ICR) to set E1000_ICR_LSC bit(0x00000004), this bit mean "Link Status Change". i test this bit, find it need about 345ms to set when i pull the cable.
I look up the Intel 82574l datasheet, the Attribute of the register(ICR) is write-and-clear, read-and-clear, auto-clear, can not to write one bit on this register(ICR), so i want to know why the speed in 1000m/s have about 350ms delay !!! thakns!!
82574l datasheet:
http://www.intel.com/content/www/us/...datasheet.html