@@ -53,77 +53,21 @@ Ethtool命令显示的信息来源于网卡驱动层,即TCP/ip协议的链路
5353
5454网卡驱动负责实现(部分)这些函数,并将其封装入` ethtool_ops ` 结构体,为网络核心层提供统一的调用接口。因此,不同的网卡驱动会给应用层返回不同的信息。` Ethtool命令选项 ` 、` struct ethtool_ops成员函数 ` 、` Ethtool命令显示参数的来源 ` ,三者间的对应关系如下表所示:
5555
56- <table >
57- <tbody >
58- <tr >
59- <th style =" width : 100px ;" >命令选项</th >
60- <th >struct ethtool_ops成员函数</th >
61- <th >Ethtool命令显示参数的来源(以网卡驱动BNX2为例)</th ></tr >
62- <tr >
63- <td >无 -s</td >
64- <td >get_settingsget_wol get_msglevel get_link set_settings set_wol set_msglevel</td >
65- <td >从网卡寄存器中获得网卡速度等信息,可配置。</td >
66- </tr >
67- <tr >
68- <td >-a -A</td >
69- <td >get_pauseparam set_pauseparam</td >
70- <td >从网卡寄存器中获得Autonegotiate/RX/TX模块的状态:on oroff,可配置。</td >
71- </tr >
72- <tr >
73- <td >-c -C</td >
74- <td >get_coalesceset_coalesce</td >
75- <td >从网卡寄存器中获得coalescing参数:TX/RX一个数据包后,推迟发生TX/RX中断的时间(us)/数据包个数。—减小该值可以提高网卡的响应时间。 当rx-usecs&rx-frames同时被设为0时,RX中断停止。 当tx-usecs&tx-frames同时被设为0时,TX中断停止。</td >
76- </tr >
77- <tr >
78- <td >-g -G</td >
79- <td >get_ringparam set_ringparam</td >
80- <td >除当前TX/RX ring的值(从网卡寄存器中读取得到,可配置)外,其它为网卡bnx2自己固定的信息。</td >
81- </tr >
82- <tr >
83- <td >-k -K</td >
84- <td >get_rx_csumget_tx_csum get_sg get_tso set_rx_csum set_tx_csum set_sg set_tso</td >
85- <td >显示信息从保存该状态的变量中读取得到,没有对应的寄存器。因此,TX/RX校验等模块一直处于on状态,实际上是无法修改的。</td >
86- </tr >
87- <tr >
88- <td >-i</td >
89- <td >get_drvinfo[self_test_count, get_stats_coun,t get_regs_len, get_eeprom_len]</td >
90- <td >网卡bnx2自己固定的信息,如:
91- ——————————————————–
92- driver: bnx2 version: 1.4.30 firmware-version: 1.8.0.5 bus-info: 0000:09:00.0
93- ——————————————————–</td >
94- </tr >
95- <tr >
96- <td >-d</td >
97- <td >get_drvinfoget_regs</td >
98- <td >不支持,即bnx2中没有实现函数get_regs。</td >
99- </tr >
100- <tr >
101- <td >-e -E</td >
102- <td >get_eepromset_eeprom</td >
103- <td >不支持,即bnx2中没有实现函数get_eeprom。</td >
104- </tr >
105- <tr >
106- <td >-r</td >
107- <td >nway_reset</td >
108- <td >配置网卡MII_BMCR寄存器,重启Auto negotiation模块。</td >
109- </tr >
110- <tr >
111- <td >-p</td >
112- <td >phys_id</td >
113- <td >配置网卡BNX2_EMAC_LED寄存器,实现LED闪功能。</td >
114- </tr >
115- <tr >
116- <td >-t</td >
117- <td >self_test</td >
118- <td >通过配置网卡寄存器,逐一测试网卡的硬件模块:registers,memory,loopback,Link stat,interrupt。</td >
119- </tr >
120- <tr >
121- <td >-S</td >
122- <td >get_ethtool_stats</td >
123- <td >显示信息来源于网卡驱动中的结构体变量stats_blk。(网卡通过DMA方式,将寄存器BNX2_HC_STATISTICS _ADDR_L和BNX2_HC_STATISTICS_ADDR_H中的数据实时地读取到结构体变量struct statistics_block *stats_blk中。) —显示的数据都是从网卡寄存器中统计得到的,各项的含义需查询网卡(芯片)手册。</td >
124- </tr >
125- </tbody >
126- </table >
56+ | 命令选项 | struct ethtool\_ ops成员函数 | Ethtool命令显示参数的来源(以网卡驱动BNX2为例) |
57+ | ----- | ----- | ----- |
58+ | 无 -s | get\_ settingsget\_ wol get\_ msglevel get\_ link set\_ settings set\_ wol set\_ msglevel | 从网卡寄存器中获得网卡速度等信息,可配置。 |
59+ | -a -A | get\_ pauseparam set\_ pauseparam | 从网卡寄存器中获得Autonegotiate/RX/TX模块的状态:on oroff,可配置。 |
60+ | -c -C | get\_ coalesceset\_ coalesce | 从网卡寄存器中获得coalescing参数:TX/RX一个数据包后,推迟发生TX/RX中断的时间(us)/数据包个数。—减小该值可以提高网卡的响应时间。 当rx-usecs\& rx-frames同时被设为0时,RX中断停止。 当tx-usecs\& tx-frames同时被设为0时,TX中断停止。 |
61+ | -g -G | get\_ ringparam set\_ ringparam | 除当前TX/RX ring的值(从网卡寄存器中读取得到,可配置)外,其它为网卡bnx2自己固定的信息。 |
62+ | -k -K | get\_ rx\_ csumget\_ tx\_ csum get\_ sg get\_ tso set\_ rx\_ csum set\_ tx\_ csum set\_ sg set\_ tso | 显示信息从保存该状态的变量中读取得到,没有对应的寄存器。因此,TX/RX校验等模块一直处于on状态,实际上是无法修改的。 |
63+ | -i | get\_ drvinfo\[ self\_ test\_ count, get\_ stats\_ coun,t get\_ regs\_ len, get\_ eeprom\_ len] | 网卡bnx2自己固定的信息,如: ——————driver: bnx2 version: 1.4.30 firmware-version: 1.8.0.5 bus-info: 0000:09:00.0 ———————————– |
64+ | -d | get\_ drvinfoget\_ regs | 不支持,即bnx2中没有实现函数get\_ regs。 |
65+ | -e -E | get\_ eepromset\_ eeprom | 不支持,即bnx2中没有实现函数get\_ eeprom。 |
66+ | -r | nway\_ reset | 配置网卡MII\_ BMCR寄存器,重启Auto negotiation模块。 |
67+ | -p | phys\_ id | 配置网卡BNX2\_ EMAC\_ LED寄存器,实现LED闪功能。 |
68+ | -t | self\_ test | 通过配置网卡寄存器,逐一测试网卡的硬件模块:registers,memory,loopback,Link stat,interrupt。 |
69+ | -S | get\_ ethtool\_ stats | 显示信息来源于网卡驱动中的结构体变量stats\_ blk。(网卡通过DMA方式,将寄存器BNX2\_ HC\_ STATISTICS \_ ADDR\_ L和BNX2\_ HC\_ STATISTICS\_ ADDR\_ H中的数据实时地读取到结构体变量struct statistics\_ block \* stats\_ blk中。) —显示的数据都是从网卡寄存器中统计得到的,各项的含义需查询网卡(芯片)手册。 |
70+
12771
12872由上可见,ethtool命令用于显示/配置网卡硬件(寄存器)。
12973
0 commit comments