内核网络
yldfree
有技术就是一切
展开
-
net_rx_action()
/*net_rx_action()会从两个地方取帧数据:(1)非NAPI设备的中断处理流程把帧放入本地cpu私有数softnet_data 的接收队列中(2)调用NAPI设备驱动的poll方法会直接从设备内存(或设备驱动程序接收环)中取出帧*/static void net_rx_action(struct softirq_action *h){ /*取得本地cpu ...原创 2018-12-12 14:38:05 · 2637 阅读 · 0 评论 -
process_backlog()
static int process_backlog(struct napi_struct *napi, int quota){ int work = 0; //获得当前cpu私有数据softnet_data struct softnet_data *queue = &__get_cpu_var(softnet_data); unsigned long start_tim...原创 2018-12-12 15:11:08 · 862 阅读 · 0 评论 -
netif_rx()处理过程
int netif_rx(struct sk_buff *skb){ struct softnet_data *queue; unsigned long flags; //netpoll是否会使用此skb if (netpoll_rx(skb)) return NET_RX_DROP; //设置包接收的时间戳 if (!skb->tstamp.tv64)...原创 2018-12-12 11:36:51 · 9500 阅读 · 0 评论