博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux 网卡驱动设备程序设计(1)
阅读量:6393 次
发布时间:2019-06-23

本文共 1012 字,大约阅读时间需要 3 分钟。

一。网卡驱动架构分析

  1. Linux 网络子系统

    #系统调用接口层

     为应用程序提供访问网络子系统的统一方法。

    #协议无关层

     提供通用的方法来使用传输层协议。

    #协议栈的实现

     实现具体的网络协议

    #设备无关层

     协议与设备驱动之前通信的通用接口

    #设备驱动程序

  2. 重要数据结构

    2.1 网卡描述结构

      在Linux内核中,每个网卡都由一个《net_device》结构来描述,其中的一些重要成员有:

      #char name[IFNAMSIZ]

      设备名,如:eth%d

      #unsigned long base_addr

      I/O 基地址

      #const struct net_device_ops *netdev_ops;

    2.2 网卡操作集合

    说明 : 类似于字符设备驱动中的file_operations结构,net_device_ops结构记录了网卡所支持的操作。

        static const struct net_device_ops dm9000_netdev_ops =

        {

          .ndo_open= dm9000_open,

          .ndo_stop= dm9000_stop,

          .ndo_start_xmit= dm9000_start_xmit,

          .ndo_do_ioctl= dm9000_ioctl,

          .ndo_validate_addr= eth_validate_addr,

          .ndo_set_mac_address= eth_mac_addr,

        };

     2.3  网络数据包

       Linux内核中的每个网络数据包都由一个套接字缓冲区结构struct sk_buff 描述,

       即一个sk_buff结构就是一个网络包,指向sk_buff的指针通常被称做skb。

  3. 网卡驱动架构分析

    1. CS8900.c

     

转载于:https://www.cnblogs.com/lvxiaoning/p/5075659.html

你可能感兴趣的文章
【合集】parasoft Jtest 从安装到使用教程合集,收藏推荐!
查看>>
Python Pygame库的学习之路(1)
查看>>
信息安全与Linux系统
查看>>
Ubuntu安装mysql
查看>>
SpringCloud 微服务 (十四) 服务网关 Zuul 过滤器(Pre&Post)
查看>>
代理设计模式
查看>>
初识Shiro
查看>>
在Developerkit开发板上运行blink例程
查看>>
企业级性能、安全可靠 阿里云发布企业级大数据平台开发者版
查看>>
Spring Boot使用过程小记(一)--加载自定义的Spring XML
查看>>
Git分支关联远程GitHub分支出错
查看>>
设计模式--桥接模式
查看>>
linux笔记之进程信息查看工具
查看>>
django 自定义分页器
查看>>
Oracle命令
查看>>
转载-没有IE就没有伤害!浏览器兼容性问题解决方案汇总
查看>>
常用 tcpdump 抓包方式
查看>>
Geek's Collection(幂运算)
查看>>
easy bootstrap模板
查看>>
Hdu 4734-F(x) 数位dp
查看>>