嗖嗖嗖
来源:互联网 发布:梦里花落知多少的小说 编辑:程序博客网 时间:2024/04/30 21:40
int netif_receive_skb(struct sk_buff *skb){//首先对VLAN报文进行处理if (vlan_rx_hook && vlan_rx_hook(&skb, skb->dev)) return NET_RX_SUCCESS;//遍历ptype_all链表,paket_type.type 为 ETH_P_ALL list_for_each_entry_rcu(ptype, &ptype_all, list) { if (!ptype->dev || ptype->dev == skb->dev) {if (pt_prev) ret = deliver_skb(skb, pt_prev, orig_dev);pt_prev = ptype;}}//网桥处理,有3种可能// 1. skb为单播,进入网桥设备,最终发送时将skb->dev由网桥设备brdev,跟换为实际的dev。// 2.再次进入netif_receive_skb,进行协议栈的处理// 3.丢弃报文if (handle_bridge(&skb, &pt_prev, &ret, orig_dev)) {goto out;}type = skb->protocol;//根据协议栈类型,遍历注册的协议栈处理函数。packet_type->func()//转而进入L3 处理,如:ip_rcv() arp_rcv()等list_for_each_entry_rcu(ptype, &ptype_base[ntohs(type)&15], list) {if (ptype->type == type && (!ptype->dev || ptype->dev == skb->dev)) {if (pt_prev) ret = deliver_skb(skb, pt_prev, orig_dev);pt_prev = ptype;}}if (pt_prev) {ret = pt_prev->func(skb, skb->dev, pt_prev, orig_dev);} else {kfree_skb(skb);/* Jamal, now you will not able to escape explaining * me how you were going to use this. :-) */ret = NET_RX_DROP;}out:rcu_read_unlock();return ret;
- 嗖嗖嗖
- 嗖嗖嗖
- H5发展嗖嗖的
- 天气怎么冷嗖嗖的
- 果然,C语言就不贱嗖嗖的:以realloc为例
- 【步兵 cocos2dx】教你搭建一个嗖嗖的lua项目
- 家中升级到12M光纤到户了,很给力,速度嗖嗖的
- 索引量“嗖嗖”地降,你认真考虑过原因吗?
- 嗖,2013-我早已出发
- 2014嗖的一声就过去了
- 伤不起 嗖的一下就老了
- 感冒了,咳嗖不止,是因为雾霾天吗... ...?
- 做校园娱乐号的一些体会(嗖HPU)
- 重构 — 勿以善小而不为
- MyBatis学习 之 二、SQL语句映射文件(1)resultMap
- JSP中获得当前路径
- 转换 bytes to file-like object
- (.text+0xb3a): undefined reference to `clock_gettime'
- 嗖嗖嗖
- JAVA面试题-基础部分(一)
- iOS: HTTPS 与自签名证书
- 山寨和创新
- linux 共享文件夹配置
- Facebook的十点经验分享
- 二、SQL语句映射文件(2)增删改查、参数、缓存
- Linux--线程编程
- 快速安装配置sendmail服务器的脚本