DOCA 文档 v2.10.0

Ethtool

Ethtool 是一个标准的 Linux 实用程序,用于控制网络驱动程序和硬件,特别是用于有线以太网设备。它可以用于

  • 获取识别和诊断信息

  • 获取扩展设备统计信息

  • 控制以太网设备的速度、双工、自动协商和流控制

  • 控制校验和卸载和其他硬件卸载功能

  • 控制 DMA 环大小和中断节制

  • 使用 .mfa2 镜像刷新设备固件

Ethtool 支持的选项

选项

描述

ethtool --set-priv-flags eth<x> <私有标志> <on/off>

启用/禁用与给定私有标志匹配的驱动程序功能。

ethtool --show-priv-flags eth<x>

显示驱动程序私有标志及其状态(ON/OFF)。

ethtool -a eth<x>

查询暂停帧设置。

ethtool -A eth<x> [rx on|off] [tx on|off]

设置暂停帧设置。

ethtool -c eth<x>

查询中断合并设置。

ethtool -C eth<x> [pkt-rate-low N] [pkt-rate-high N] [rx-usecs-low N] [rx-usecs-high N]

设置数据包速率限制以及节制时间高值和低值。

ethtool -C eth<x> [rx-usecs N] [rx-frames N]

设置中断合并设置。

rx-frames 将立即强制执行,rx-usecs 仅在禁用自适应节制时强制执行。

注意:usec 设置对应于触发中断前在*最后*数据包发送/接收后等待的时间。

ethtool -C eth<x> adaptive-rx on|off

启用/禁用自适应中断节制。

默认情况下,驱动程序对接收路径使用自适应中断节制,这会根据流量模式调整节制时间。

ethtool -C eth<x> adaptive-tx on|off

注意:ConnectX-4 及更高版本适配器卡支持 mlx5e。

启用/禁用自适应中断节制。

默认情况下,驱动程序对发送路径使用自适应中断节制,这会根据流量模式调整节制参数(时间/帧)。

ethtool -g eth<x>

查询环大小值。

ethtool -G eth<x> [rx <N>] [tx <N>]

修改环大小。

ethtool -i eth<x>

检查驱动程序和设备信息。

例如

 driver: mlx5_core
 version: 5.1-0.4.0
 firmware-version: 4.6.4046 (MT_QEMU000000)
 expansion-rom-version: 
 bus-info: 0000:07:00.0
 supports-statistics: yes
 supports-test: yes 
 supports-eeprom-access: no
 supports-register-dump: no
 supports-priv-flags: yes

ethtool -k eth<x>

查询无状态卸载状态。

ethtool -K eth<x> [rx on|off] [tx on|off] [sg on|off] [tso on|off] [lro on|off] [gro on|off] [gso on|off] [rxvlan on|off] [txvlan on|off] [ntuple on/off] [rxhash on/off] [rx-all on/off] [rx-fcs on/off]

设置无状态卸载状态。

TCP 分段卸载 (TSO)、通用分段卸载 (GSO):通过减少 CPU 开销来提高出站吞吐量。它的工作原理是排队大型缓冲区,并让网卡将其拆分为单独的数据包。

大型接收卸载 (LRO):通过减少 CPU 开销来提高高带宽网络连接的入站吞吐量。它的工作原理是在将来自单个流的多个传入数据包聚合到更大的缓冲区中,然后再将它们传递到更高的网络堆栈,从而减少必须处理的数据包数量。LRO 在内核版本 < 3.1 中可用于未标记的流量。

硬件 VLAN 插入卸载 (txvlan):启用后,发送的 VLAN 标签将由硬件插入到数据包中。

注意:LRO 将在尽可能的情况下完成。否则将完成 GRO。通用接收卸载 (GRO) 在所有内核中均可用。

硬件 VLAN 剥离卸载 (rxvlan):启用后,接收到的 VLAN 流量将由硬件从 VLAN 标签中剥离。

RX FCS (rx-fcs):在接收到的数据包中保留 FCS 字段。设置无状态卸载状态。

RX FCS 验证 (rx-all):忽略接收数据包上的 FCS 验证。

ethtool -l eth<x>

显示通道数。

ethtool -L eth<x> [rx <N>] [tx <N>]

设置通道数。

注释:

  • 这也将 RSS 表重置为其默认分布,该分布在更靠近网卡的 NUMA(非均匀内存访问)节点上的内核之间是均匀的。

  • 对于 ConnectX®-4 卡,请使用 ethtool -L eth<x> combined <N> 来同时设置 RX 和 TX 通道。

ethtool -m|--dump-module-eeprom eth<x> [ raw on|off ] [ hex on|off ] [ offset N ] [ length N ]

查询/解码电缆模块 eeprom 信息。

ethtool -p|--identify DEVNAME

通过 LED 闪烁 [TIME-IN-SECONDS] 启用端口的可视化识别。

ethtool -p|--identify eth<x> <LED 持续时间>

允许用户通过将端口 LED 打开若干秒来识别接口的物理端口。

注意:LED 持续时间的限制为 65535 秒。

ethtool -S eth<x>

获取其他设备统计信息。

ethtool -s eth<x> advertise <N> autoneg on

将广播链路模式更改为请求的链路模式 <N>

要检查链路模式的十六进制值,请运行 <man ethtool>,要检查支持的链路模式,请运行 ethtool eth<x>

为了广播新的链路模式,请确保配置整个位图,如下所示

200GAUI-4 / 200GBASE-CR4/KR4

0x7c000000000000000

100GAUI-2 / 100GBASE-CR2 / KR2

0x3E00000000000000

CAUI-4 / 100GBASE-CR4 / KR4

0xF000000000

50GAUI-1 / LAUI-1/ 50GBASE-CR / KR

0x1F0000000000000

50GAUI-2 / LAUI-2/ 50GBASE-CR2/KR2

0x10C00000000

XLAUI-4/XLPPI-4 // 40G

0x7800000

25GAUI-1/ 25GBASE-CR / KR

0x380000000

XFI / XAUI-1 // 10G

0x7C0000181000

5GBASE-R

0x1000000000000

2.5GBASE-X / 2.5GMII

0x820000000000

1000BASE-X / SGMII

0x20000020020

注释:

  • 之前的和新的链路模式配置均受支持,但是,它们必须单独运行。

  • 内核版本低于 v5.1 且 ConnectX-6 HCA 上的任何链路模式配置都将导致广播完整功能。

  • <autoneg on> 仅向驱动程序发送提示,表明用户想要修改广播链路模式,而不是速度。

ethtool -s eth<x> msglvl [N]

更改当前驱动程序消息级别。

ethtool -s eth<x> speed <SPEED> autoneg off

将链路速度更改为请求的 <SPEED>。要检查支持的速度,请运行 ethtool eth<x>

注意: 不关闭自动协商,它仅提示驱动程序设置特定速度。

ethtool -t eth<x>

执行自我诊断测试。

ethtool -T eth<x>

显示时间戳功能

ethtool -x eth<x>

检索接收流哈希间接表。

ethtool -X eth<x> equal a b c...

设置接收流哈希间接表。

注意:每当通道数被修改时(使用 ethtool -L 命令),RSS 表配置都会被重置。

ethtool --show-fec eth<x>

如果支持 FEC,则查询当前前向纠错 (FEC) 编码。

注意:“baser”的输出意味着 Firecode 编码。

ethtool --set-fec eth<x> encoding auto|off|rs|baser

配置前向纠错 (FEC)。

注意:“baser”编码适用于 Firecode 编码,“auto”表示 HCA 的默认值。

ethtool -f|--flash <devname> FILE [N]

使用指定的 .mfa2 文件 (FILE) 刷新设备上的固件镜像。默认情况下,该命令会刷新设备上的所有区域,除非指定了区域编号 (N)。

© 版权所有 2025 NVIDIA。 上次更新时间:2025 年 2 月 12 日。