网站大量收购独家精品文档,联系QQ:2885784924

Linux驱动开发网络.pdf

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux驱动开发网络.pdf

The successs 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)

jackzjh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档