Linux网络子系统
阿曼
这个作者很懒,什么都没留下…
展开
-
网络子系统大杂烩
阅读《深入理解linux网络技术内幕》和Linux2.6.37.1源码记录三个数据结构1.net_device2.softnet_data3.sk_buffsoftnet_data是一个cpu对应一个。网卡接收数据的流程如下网卡收到数据收首先会出发中断,导致执行中断处理函数dm9000_rx。以太网驱动接收函数中的skb_reserve(skb, 2)这原创 2012-11-10 20:25:09 · 1318 阅读 · 0 评论 -
网络子系统大杂烩三
之前分析的是网桥对输入帧的处理。若系统未配置成网桥,则在__netif_receive_skb帧处理函数中会继续执行后续代码,将帧提交给上层协议处理。上层协议的处理函数在系统初始化的时候已经注册到packet_base函数指针数组中了例如802.2帧 对应的是llc_packet_type,其处理函数为llc_rcv系统在初始化的时候通过/net/llc/llc_core.原创 2012-11-12 13:27:38 · 1167 阅读 · 0 评论 -
网络子系统大杂烩二
网桥网桥属于一种虚拟设备,所以在使用之前需要先初始化和注册网桥部分的初始化在/net/bridge/br.c中,通过初始化函数br_init函数实现在br_init函数中通过brioctl_set(br_ioctl_deviceless_stub);来创建一个网桥设备。brioctl_set(br_ioctl_deviceless_stub)->br_add_bridge-原创 2012-11-11 23:14:56 · 1243 阅读 · 0 评论