网卡在物理上具有载波侦听的功能,当网络连接完整或者网络链接断开时,网卡芯片硬件会自动设置寄存器标志位来标识。
如网线链接断开的时候,会将LinkSts清位;重新链接网线,则硬件自动将此位置位。
这样,在网卡驱动中读写该位信息就可一判断网络是否链接通路。
网卡驱动程序通过netif_carrier_on/netif_carrier_off/netif_carrier_ok来和内核网络子系统传递信息。
1】netif_carrier_on
【作用】告诉内核子系统网络链接完整。
2】netif_carrier_off
【作用】告诉内核子系统网络断开。
3】netif_carrier_ok
【作用】查询网络断开还是链接。
以上函数主要是改变net_device dev的state状态来告知内核链路状态的变化。