Linux网卡驱动
huahang
低调做人
展开
-
intel 82571网卡测试结果
数据包大小128字节单队列 57万个数据包每秒 双队列 82万个数据包每秒 数据包大小64字节 双队列 142万个数据包每秒 每秒处理数据包个数 每个数据包字节数119087 1024822270原创 2009-08-26 18:19:00 · 3576 阅读 · 0 评论 -
关于几个疑惑记录在这里
一、linux下的网卡驱动有固定的数据结构,比如struct net_device 。如果只是填充struct net_device是不是就可以驱动一个网卡呢?看了e1000网卡驱动的probe函数,发现主要的数据结构包括struct e1000_adapter和struct e1000_hw,这两个数据结构为什么定义呢?为了节省堆栈空间么?理论上将,struct pci_dev和stru原创 2009-10-02 10:19:00 · 601 阅读 · 0 评论 -
e1000e驱动阅读-开始的准备工作
系统为:ubuntu 9.04 内核版本2.6.28 首先去除了程序中es2lan.c和ich8lan.c两个文件,调试让编译通过,当然需要自己修改一点东西。因为我的网卡是intel 82571网卡,所以不需要这两个文件中的内容。 在修改好,而且做了其他的一些小改动后。开始继续阅读。在继续之前,因为自己随机阅读过一点相关的东西,知道看模块从probe函数开始,然后开始了原创 2009-12-28 15:32:00 · 1608 阅读 · 0 评论 -
e1000e_probe 其实是e1000_probe
struct e1000_info *ei = e1000_info_tbl[ent->driver_data];这句话后面包含了好多内容,以至于我不想跟踪下去看e1000_info_tbl后面那么多定义的结构体和函数,就让我知道,这个里面包含了所有关于网卡的信息和配置接口吧。这个e1000_info结构体果然名不虚传。information一个单词就完成目的,当然用的不只是在这个一个函数里原创 2010-01-01 20:09:00 · 3018 阅读 · 0 评论 -
e1000网卡驱动第二天_2
终于到了传说中的e1000_probe. e1000_probe用于初始化网卡。首先测试是否需要io映射,如果需要则进行,否则不进行,然后使能pci设备。pci_set_dma_mask 的作用是什么,我不清楚。pci_request_selected_regions对选中的区域进行映射。pci_set_master设置总线。 alloc_etherdev申请参数指定的结构体原创 2010-01-02 18:06:00 · 2860 阅读 · 0 评论 -
e1000网卡驱动初感受
在网络上搜索到一片Linux-千兆网卡驱动实现机制浅析,自己大概浏览了一下,觉得写得很好,可是自己没有看明白的时候还是白扯。想起来一句话,文档时写给已经懂了的人的。这句话在我做一个小东西的时候领悟的特别深刻。 所以还是老老实实的从代码开始吧,似乎有人说过代码面前没有秘密,可是linux开源了,未必所有搞计算机的都敢去读一读,至少我还没有。好吧,言归正传。开始e1000原创 2010-01-01 20:28:00 · 5949 阅读 · 0 评论 -
e1000网卡驱动第二天
上次写到e1000_configure,不去详细关注内部的实现。只是先按照函数的顺序来理解,e1000_set_rx_mode应该是设置接收相关的控制寄存器,设置接收的模式。e1000_restore_vlan似乎有些困难,保存某个状态还是什么,等到湘西看的时候再说吧。e1000_init_manageability对MANC寄存器进行初始化。e1000_configure_tx设置传输相原创 2010-01-02 09:05:00 · 3308 阅读 · 0 评论 -
关于网卡驱动分析中断几天的原因
因为私事,中断六天,明天不继续。原创 2010-01-09 22:10:00 · 1156 阅读 · 0 评论