netif_start_queue 用来告诉上层网络协定这个驱动程序还有空的缓冲区可用,请把下
一个封包送进来。
netif_wake_queue() 会使得上层协定开始传送新的资料下来,这个函数除了通知网络系统可再次开始传输数据包之外
和netif_start_queue()函数一样。
两个函数原型
static inline void netif_start_queue(struct net_device *dev)
525 {
526 clear_bit(__LINK_STATE_XOFF, &dev->state);
527 }
528
529 static inline void netif_wake_queue(struct net_device *dev)
530 {
531 if (test_and_clear_bit(__LINK_STATE_XOFF, &dev->state))
532 __netif_schedule(dev);
533 }
本文介绍了netif_start_queue和netif_wake_queue两个函数的作用及区别。netif_start_queue用于告知上层网络协议驱动程序有可用缓冲区,可以接收新的数据包;netif_wake_queue不仅具备相同功能,在清除特定标志后还会调用__netif_schedule进一步调度。
493

被折叠的 条评论
为什么被折叠?



