网络设备之监测连接状态

通常网络设备会定时地检测设备是否处于可传递状态。当状态发生变化时,会调用netif_carrier_on或者netif_carrier_off来通知内核;

从网上设备插拔网线或者另一端的设备关闭或禁止,都会导致连接状态改变;

netif_carrier_on—-设备驱动监测到设备传递信号时调用

netif_carrier_off—-设备驱动监测到设备丢失信号时调用

上述两个状态改变函数均会调用linkwatch_fire_event将事件加入到事件队列进行调度;

相关函数的调用关系如下:

 

当监测到设备传递信号时函数netif_carrier_on会被调用,并调用linkwatch_fire_event函数将设备加入到事件处理队列进行处理;

 

当监测到设备信号丢失时函数netif_carrier_off会被调用,并调用linkwatch_fire_event函数将设备加入到事件处理队列进行处理;

 

linkwatch_fire_event函数将设备加入到事件队列,并且进行事件调度,调度中会根据是否为紧急事件做不同处理;

 

linkwatch_urgent_event判断是否是否需要紧急处理;

 

linkwatch_add_event将设备加入到事件处理链表;

 

linkwatch_schedule_work对事件处理进行调度,紧急事件立即执行,非紧急事件延后执行;

 

__linkwatch_run_queue完成对事件调度队列中设备的处理;

 

linkwatch_do_dev完成对某个设备的状态改变处理;

 

本文链接:网络设备之监测连接状态

转载声明:转载请注明来源:Linux TCP/IP Stack,谢谢!


发表评论

电子邮件地址不会被公开。 必填项已用*标注