摘要:offload 现在,越来越多的网卡设备支持 offload 特性,来提升网络收/发性能。offload 是将本来该操作系统进行的一些数据包处理(如分片、重组等)放到网卡硬件中去做,降低系统 CPU 消耗的同时,提高处理的性能。 包括 LSO/LRO、GSO/GRO、TSO/UFO 等。 LSO/L
阅读全文
摘要:进入函数netif_receive_skb()后,skb正式开始协议栈之旅。先上图,协议栈大致过程如下所示:跟OSI七层模型不同,linux根据包结构对网络进行分层。比如,arp头和ip头都是紧跟在以太网头后面的,所以在linux协议栈中arp和ip地位相同(如上图)但是在OSI七层模型中,arp属
阅读全文
摘要:一、硬件布局每个网卡(MAC)都有自己的专用DMA Engine,如上图的 TSEC 和 e1000 网卡intel82546。上图中的红色线就是以太网数据流,DMA与DDR打交道需要其他模块的协助,如TSEC,PCI controller以太网数据在 TSEC<-->DDR PCI_Control
阅读全文
摘要:一、no NAPI 数据结构不配置NAPI的时候,网络设备不使用自己的napi_struct结构,所有网络设备驱动都使用同一个napi_struct,即cpu私有变量__get_cpu_var(softnet_data).backlog每当收到数据包时,网络设备驱动会把__get_cpu_var(s
阅读全文
摘要:一、硬件环境 intel82546:PHY与MAC集成在一起的PCI网卡芯片,很强大 bcm5461: PHY芯片,与之对应的MAC是TSEC TSEC: Three Speed Ethernet Controller,三速以太网控制器,PowerPc 架构CPU里面的MAC模块 注意,TSEC内部
阅读全文
摘要:/* * The DEVICE structure. * Actually, this whole structure is a big mistake. It mixes I/O * data with strictly "high-level" data, and it has to know
阅读全文
摘要:Bonding is the same as port trunking. In the following I will use the word bonding because practically we will bond interfaces as one. Bonding allows ...
阅读全文