![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
kernel
文章平均质量分 80
Matt_Mao
Openstacker in Cisco
展开
-
Kernel Source片段 -- 收包(1)硬中断处理函数
kernel version:2.6.32.61驱动收包完成后,触发硬中断,会调用到以下中断处理函数:net/core/dev.c 2016 int netif_rx(struct sk_buff *skb)2017 {2018 struct softnet_data *queue;2019 unsigned long flags;202原创 2014-01-13 23:24:01 · 3266 阅读 · 0 评论 -
Kernel Source片段 -- bridge的处理
kernel version:2.6.32.61在netif_receive_skb中会调用桥处理函数handle_bridge进行桥相关处理。net/core/dev.c2151 static inline struct sk_buff *handle_bridge(struct sk_buff *skb,2152原创 2014-01-23 12:27:48 · 9346 阅读 · 0 评论 -
Kernel Source片段 -- 协议处理函数的组织
Kernel Source片段 -- 协议处理函数的组织kernel version:2.6.32.61在netif_receive_skb函数中会根据在驱动driver中设置的skb->protocol值,调用相应的协议处理函数。在内核中协议处理函数主要存储在ptype_base和ptype_all两个结构中。这两个结构定义如下;net/cor原创 2014-01-21 22:10:33 · 3190 阅读 · 0 评论 -
Kernel Source片段 -- 收包(3)2层处理以及进入协议栈前
kernel version:2.6.32.61对于没有自己实现poll的驱动,统一使用的是process_backlog, 这个函数会取出处于CPU队列中的包,然后执行netif_receive_skb。这里需要注意的是,对于CPU队列操作时,需要关闭中断,因为这个队列是共享的。net/core/dev.c2725 static int process_backlog(s原创 2014-01-14 22:13:24 · 3236 阅读 · 0 评论 -
linux kernel接收包处理流程 -- 从网卡到进入3层协议栈
简单总结了一下kernel接收包的处理流程,见下图:原创 2013-10-09 15:54:52 · 3894 阅读 · 0 评论 -
尽量不要使用IP分片
众所周知,当IP包的长度大于接口的MTU时,从这个接口上发出去的包需要被分片。这样的分片会产生一些问题。首先,在这些分片包经过的路由器中是不适合将它们重组的。因为存在多条路径时,不能保证所有的分片包都会经过这个路由器。因此在路由器上做重组是不合适的。 当不能在路由器上重组时可能产生以下问题无法解决:PC1 和 PC2会经过网关RT1和PC3进行通信。如果PC1和PC2发送的IP分片原创 2013-10-14 16:34:02 · 6355 阅读 · 0 评论 -
Kernel Source片段 -- 收包(2)软中断处理函数
kernel version:2.6.32.61系统有资源处理软中断时,会查看软中断向量表,调用对应的handler。网络收包时软中断处理函数是net_rx_action。是在net_dev_init中初始化的:net/core/dev.c5654 static int __init net_dev_init(void)5655 {...5708原创 2014-01-14 11:15:32 · 3257 阅读 · 0 评论 -
linux kernel发送包处理流程 -- 出协议栈到网卡
简单总结了一下发送包的流程,如下图:原创 2013-10-10 10:39:27 · 4009 阅读 · 0 评论 -
linux kernel协议处理函数的组织
总结了一下kernel里面协议处理函数的组织:原创 2013-10-10 14:05:17 · 3272 阅读 · 0 评论 -
Kernel Source片段 -- bridge-nf-call-iptables的处理
kernel version:2.6.32.61openstack neutron的security group会用到kernel的bridge-nf-call-iptables feature。使流过桥的流量也进入iptables/netfilter框架中。可以通过以下proc查看kernel是否开启了bridge-nf-call-iptables:# cat /proc/s原创 2014-01-23 12:44:17 · 4450 阅读 · 0 评论