网络
文章平均质量分 60
FreeBelieve
这个作者很懒,什么都没留下…
展开
-
Linux 网卡驱动_02
接上一篇,我们来看与skb相关的一些重要函数: 网络模块中,有两个用来分配SKB描述符的高速缓存,在SKB模块初始函数skb_init()中被创建: void __init skb_init(void) { skbuff_head_cache = kmem_cache_create("skbuff_head_cache", sizeof(struc转载 2015-07-11 20:13:23 · 555 阅读 · 0 评论 -
Linux 网卡驱动_03
紧接上一篇,这里简要介绍net_device 结构和网卡驱动框架。 struct net_device 是一个比sk_buff 更复杂的结构,里面包含了与TCP/IP协议栈通信的接口函数,但是自从2.6.31 之后的内核中这些接口函数就被封装在了 stuct net_device_ops 结构中,在net_device 结构中以 netdev_ops 成员的形式出现。 我转载 2015-07-11 20:14:16 · 667 阅读 · 0 评论 -
linux网络流程分析(一)---网卡驱动
分析linux网络的书已经很多了,包括《追踪Linux TCP/IP代码运行》《Linux内核源码剖析——TCP/IP实现》,这里我只是从数据包在linux内核中的基本流程来分析,尽可能的展现一个主流程框架。 内核如何从网卡接收数据,传统的过程: 1.数据到达网卡; 2.网卡产生一个中断给内核; 3.内核使用I/O指令,从网卡I/O区域中去读取数据; 我们在许多网卡驱动转载 2015-07-11 20:02:00 · 1269 阅读 · 0 评论 -
Linux 网卡驱动_04
rtl8139 网卡驱动分析:(注:这里只分析了主要函数,代码版本是: 8139too.c 71420 bytes 2010-04-01 22:56:18 ) /* * 提供了一系列驱动程序可调用的接口,主要用于发现和初始化设备 */ static struct pci_driver rtl8139_pci_driver = {转载 2015-07-11 20:15:01 · 869 阅读 · 1 评论 -
net_device 结构的详情
17.3. net_device 结构的详情 net_device 结构处于网络驱动层的非常核心的位置并且值得完全的描述. 这个列表描述了所有成员, 更多的是提供了一个参考而不是用来备忘. 本章剩下的部分简要地描述了每个成员, 一旦它用在例子代码上, 因此你不需要不停地回看这一节. 17.3.1. 全局信息 结构 net_device 的第一部分是由下面成员组成: ch转载 2015-07-11 19:10:57 · 808 阅读 · 0 评论