网卡驱动接收报文netif_rx

netif_rx函数负责将设备驱动程序传递的数据包提交给网络代码进行处理,其中NET_RX_SUCCESS:表示数据包成功提交给上层处理,并未发生拥塞或被丢弃。
NET_RX_DROP:表示数据包在处理过程中被丢弃。
该函数的核心函数为netif_rx_internal->enqueue_to_backlog



在enqueue_to_backlog函数中如果网卡设备没有运行则直接goto drop;丢弃该报文skb。如果sd->input_pkt_queue链表中元素的数量小于netdev_max_backlog,且skb_flow_limit函数中网络数据包的流量控制返回false(正常情况下不会进行流量限制)。则将该报文skb通过__skb_queue_tail(&sd->input_pkt_queue, skb);函数加入到input_pkt_queue链表中。

最低0.47元/天 解锁文章
6224

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



