ip_rcv 中使用skb_share_check】的更多相关文章

/* * Main IP Receive routine. */ int ip_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt, struct net_device *orig_dev) { const struct iphdr *iph; struct net *net; u32 len; /* When the interface is in promisc. mode, drop all the…
skb详细解析[转]    摘自:http://blog.chinaunix.net/uid-30035229-id-4883992.html     在自己的模块发送函数中,需要对skb进行重新构造和别的一些操作.在网上看到一个写的还可以的,粘过来,就不自己写了,估计这个哥们也是看<Understanding Linux Network Internals>翻译或者总结的.   ------------------------------------------------ 1.   定义…
ip层数据包处理场景如下: 网络层处理数据包文时需要和路由表以及邻居系统打交道.输入数据时,提供输入接口给链路层调用,并调用传输层的输入接口将数据输入到传输层. 在输出数据时,提供输出接口给传输层,并调用链路层的输出接口将数据输出到链路层.在输入输出数据时,需要查找路由表 通过netfiler处理等操作. 一.ip数据报文输入 ip_rcv &ip_rcv_finish &ip_rcv_finish2 1.在inet_init中注册了类型为ETH_P_IP协议的数据包的回调ip_rcv 2…
netfiler框架是在内核协议栈实现的基础上完成的,在报文从网口接收,路由等方法实现基础上使用NF_HOOK调用相应的钩子来进入netfiler框架的处理,如 ip_rcv之后会调用NF_HOOK(NF_IP_PRE_ROUTING) NF_HOOK宏定义如下: #define NF_HOOK(pf, hook, skb, indev, outdev, okfn) \ NF_HOOK_THRESH(pf, hook, skb, indev, outdev, okfn, INT_MIN) #de…
看到一篇讲Netfilter框架的,如果有一点基础了的话对于捋清整个框架很好帮助,转下来细细阅读. 转自http://aichundi.blog.163.com/blog/static/7013846220084910397396/ ##### 一.概述 1. Netfilter/IPTables框架简介 Netfilter/IPTables是继2.0.x的IPfwadm.2.2.x的IPchains之后,新一代的Linux防火墙机制.Netfilter采用模块化设计,具有良好的可扩充性.其重要…
http://blog.csdn.net/wswifth/article/details/5115475 注册一个hook函数是围绕nf_hook_ops数据结构的一个非常简单的操作,nf_hook_ops数据结构在linux/netfilter.h中定义,该数据结构的定义如下: struct nf_hook_ops {                  struct list_head list; /* 此下的值由用户填充 */                  nf_hookfn *hook…
1.sss 当构建组件之间的关系已经错综复杂到接近于一张全然图的时候,就要换一个思路了,或者你须要重构整个系统,或者你将又一次实现一个. 2.TAP网卡和TUN网卡 2.1.TAP的优势 1.方便组网 你能够把全部的OpenVPN节点,包含服务端和client看作是一台巨大的三层交换机,全部的TAP虚拟网卡组成一个虚拟的内部以太网,假设在某个节点,你将物理网卡和TAP网卡Bridge在了一起,那么针对该物理网卡连接的网段,执行二层转发,假设没有进行这样的Bridge,则执行三层转发.在下图模式下…
Linux内核分析 - 网络[十四]:IP选项 标签: linux内核网络structsocketdst 2012-04-25 17:14 5639人阅读 评论(1) 收藏 举报  分类: 内核协议栈(22)  版权声明:本文为博主原创文章,未经博主允许不得转载. 内核版本:2.6.34      在发送报文时,可以调用函数setsockopt()来设置相应的选项,本文主要分析IP选项的生成,发送以及接收所执行的流程,选取了LSRR为例子进行说明,主要分为选项的生成.选项的转发.选项的接收三部分…
netfilter 子系入口在L3,完成后把数据包发往L4 netfilter 主要功能: 数据包选择(iptables) 数据包过滤 网络地址转换(NAT) 数据包操纵(在路由选择之前或之后修改数据包头的内容) 连接跟踪 网络统计信息收集 常见框架 IPVS:一种传输层负载均衡解决方案. IP sets: 一个由用户空间工具ipset和内核部分 组成的框架. iptables:linux防火墙,为netfilter提供管理层. A: NF_INET_PRE_ROUTING:位于方法ip_rcv…
netfliter 简介 netfilter是在Linux 2.4.X内核引入的一个子系统,它提供了一个抽象的.通用框架,这个框架提供了一整套的钩子函数的管理机制.包括钩子函数的原型定义,注册,注销等.下面将基于Linux 3.14.77 的内核代码简要介绍一下netfilter框架的实现. netfilter 支持的协议 既然是通用的框架,那么netfilter就需要在数据包流经的关键位置放置钩子.因此,在内核中netfilter支持了多种协议,当数据包经过这些协议的处理流程时就可以执行相应的…