02 2014 档案

摘要:Table of Contents1 概述1.1 帧接收的中断处理2 设备的开启与关闭3 队列4 通知内核帧已接收:NAPI和netif_rx4.1 NAPI简介4.1.1 NAPI优点4.2 NAPI所用之net_device字段4.3 net_rx_action软中断处理函数和NAPI4.4 新旧驱动程序接口概述帧接收的中断处理把帧拷贝到sk_buff数据结构。对一些sk_buff参数做初始化... 阅读全文
posted @ 2014-02-22 20:39 mospan 阅读(3583) 评论(0) 推荐(0)
摘要:Table of Contents1 接收到帧时通知驱动程序1.1 轮询1.2 中断2 中断处理程序3 抢占功能4 下半部函数4.1 内核2.4版本以后的下半部函数: 引入软IRQ5 网络代码如何使用软IRQ6 softnet_data结构接收到帧时通知驱动程序轮询 例如,内核可以持续读取设备上的一个内存寄存器,或者当一个定时器到期时就回头检查哪个寄存器。中断 此时,当特定事件发生时,设备... 阅读全文
posted @ 2014-02-20 23:32 mospan 阅读(3087) 评论(0) 推荐(0)
摘要:Table of Contents1 设备注册之时2 设备除名之时3 分配net_device结构4 NIC注册和除名架构4.1 注册4.2 除名5 设备初始化6 设备类型初始化: xxx_setup函数7 net_device结构的组织8 查询9 设备状态10 注册状态11 设备的注册和除名12 设备注册状态通知13 netdev_chain通知链14 RTnetlink链接通知15 设备注册1... 阅读全文
posted @ 2014-02-20 23:31 mospan 阅读(9463) 评论(1) 推荐(0)
摘要:Table of Contents1 引导期间的内核选项2 注册关键字3 模块初始化代码引导期间的内核选项 linux运行用户把内核配置选项传给引导记录,然后引导记录再把选项传给内核。 在引导阶段,对parse_args调用两次,负责引导期间配置输入数据。注册关键字 内核组件可以利用定义在include/linux/init.h中的__setup宏, 注册关键字和相关联的处理函数。以下是其语... 阅读全文
posted @ 2014-02-20 23:29 mospan 阅读(833) 评论(0) 推荐(0)
摘要:Table of Contents1 概论1.1 procfs (/proc 文件系统)1.1.1 编程接口1.2 sysctl (/proc/sys目录)1.2.1 编程接口1.3 sysfs (/sys 文件系统)1.4 ioctl 系统调用1.5 netlink 套接字概论procfs (/proc 文件系统)允许内核以文件的形式向用户空间输出内部信息。可以通过cat, more和> she... 阅读全文
posted @ 2014-02-20 22:17 mospan 阅读(5829) 评论(0) 推荐(2)
摘要:Table of Contents1 简介2 系统初始化概论2.1 引导期间选项2.2 中断和定时器2.3 初始化函数3 设备注册和初始化3.1 硬件初始化3.2 软件初始化3.3 功能初始化4 NIC初始化的基本目标5 IRQ线6 I/O端口和内存注册7 硬件中断7.1 注册中断7.2 解除中断8 模块选项9 设备处理层初始化10 动态加载设备/设备驱动简介 如果要使一个网络设备可用,它就... 阅读全文
posted @ 2014-02-17 23:07 mospan 阅读(2489) 评论(0) 推荐(0)
摘要:Table of Contents1 本章涉及的数据结构1.1 pci_device_id结构1.2 pci_dev结构1.3 pci_driver结构2 PCI NIC设备驱动程序的注册2.1 注册2.2 解除3 电源管理与网络唤醒本章涉及的数据结构pci_device_id结构1: struct pci_device_id {2: __u32 vendor, device; ... 阅读全文
posted @ 2014-02-17 22:58 mospan 阅读(2588) 评论(0) 推荐(0)
摘要:Table of Contents1 概述2 定义链3 链注册4 链上的通知事件5 网络子系统的通知链5.1 包裹函数5.2 范例6 测试实例概述 [注意] 通知链只在内核子系统之间使用。 大多数内核子系统都是相互独立的,因此某个子系统可能对其它子系统产生的事件感兴趣。为了满足这个需求,也即是让某个子系统在发生某个事件时通知其它的子系统, Linux内核提供了通知链的机制。通知链表只能... 阅读全文
posted @ 2014-02-15 23:45 mospan 阅读(3847) 评论(0) 推荐(1)
摘要:Table of Contents1 套接字缓冲区: sk_buff结构1.1 网络选项及内核结构1.2 结构说明及操作函数2 net_device结构2.1 MTU2.2 结构说明及操作函数套接字缓冲区: sk_buff结构网络选项及内核结构 一般而言,任何引起内核数据结构改变的选项(如把tc_index字段添加到sk_buff结构),都不适合编译成一个模块。结构说明及操作函数 sk_bu... 阅读全文
posted @ 2014-02-15 23:23 mospan 阅读(1562) 评论(0) 推荐(0)
摘要:Table of Contents1 基本术语1.1 本书常用的缩写2 引用计数2.1 引用计数函数3 垃圾回收3.1 异步3.2 同步4 函数指针4.1 缺点5 goto语句5.1 使用环境6 捕捉bug基本术语八个位的量通常称为八位组(octet), 本书使用最常见的术语字节(byte).术语向量(vector)和数组(array)是交互替换使用的。在上下文中, 术语“入口数据(ingress... 阅读全文
posted @ 2014-02-15 23:14 mospan 阅读(3127) 评论(0) 推荐(1)