网卡驱动-载波检测-netif_carrier_ok/netif_carrier_on/netif_carrier_off

网卡在物理上具有载波侦听的功能,当网络连接完整或者网络链接断开时,网卡芯片硬件会自动设置寄存器标志位来标识。

如网线链接断开的时候,会将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状态来告知内核链路状态的变化。

 

netif_start_queue ()用来告诉上层网络协定这个驱动程序还有空的缓冲区可用,请把下一个封包送进来。
netif_wake_queue() 会使得上层协定传送新的数据下来,这个函数除了通知网络系统可再次开始传输数据包之外
和netif_start_queue()函数一样。

 

posted @ 2015-05-19 14:37  polo2013  阅读(2023)  评论(0)    收藏  举报