linux 网络驱动初始化,Linux驱动开发网络.pdf

Linux驱动开发网络.pdf

The success's road

Linux设备驱动高级开发

远见品质 今天的内容

1. OSI 网络参考模型

2. 套结字(socket )简介

3. 套结字缓冲区(sk_buff)

4. net_device结构分析

5. 数据包传送与接收

6. 网络驱动的中断处理

7. 以太网MAC地址解析

远见品质 Linux 网络设备

网络设备,又叫网络接口是Linux第

三类标准设备

网络设备和块设备类似,在内核的

特定数据结构中注册自己

当发生网络数据交换时,网络设备

驱动程序注册的方法将被内核调用

网络设备不会在/dev下存在一个设备

入口,它使用保留的内部设备名

远见品质 网络设备的特点

网络设备异步的接收外来的数据包,有别

于其他设备

网络设备主动的“请求”将硬件获得的数

据包压入内核,而其他设备例如块设备被

“请求”向内核发送缓冲区

网络设备同时要执行大量的管理任务

设置地址

修改传输参数

维护流量和流量控制

错误统计和报告

网络子系统是完全与协议无关的,网络驱

动程序与内核其余部分之间的每次交互处

理的都是一个网络数据包

远见品质 网络设备驱动的装载

 网络驱动程序在装载时要申请需要的资源

与字符设备或块设备不同的是网络设备没有主设

备号和次设备号的概念

 网络设备驱动程序对于每个检测到的接口向全局

的网络设备链表中插入一个net_device结构

struct net_device * alloc_netdev(…)

struct net_device * alloc_etherdev(…)

该结构中需要实现一个init方法,这个方法用来

对net_device结构自身进行初始化。即侦测硬件

设备,用正确的值来填充net_device结构中的各

ether_setup(struct net_device * dev)

如果初始化失败,那么该结构不会被连接到网络

设备链表中

远见品质 初始化每个设备

设备探测工作在init方法中进行,一

般调用一个称之为probe方法的函数

初始化的主要工作是填充该设备的

dev结构,我们可以调用内核提供的

ether_setup方法来设置一些以太网默

认的设置

当我们需要卸载网络驱动程序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值