ethtool 的 Netlink 接口¶
基本信息¶
ethtool 的 Netlink 接口使用通用 Netlink 族 ethtool
(用户空间应用程序应使用 <linux/ethtool_netlink.h>
uapi 头文件中定义的宏 ETHTOOL_GENL_NAME
和 ETHTOOL_GENL_VERSION
)。此族不使用特定的标头,请求和回复中的所有信息都使用 Netlink 属性传递。
ethtool Netlink 接口使用扩展 ACK 进行错误和警告报告,鼓励用户空间应用程序开发人员以合适的方式向用户提供这些消息。
请求可以分为三类:“get”(检索信息),“set”(设置参数)和“action”(调用操作)。
所有“set”和“action”类型的请求都需要管理员权限(命名空间中的 CAP_NET_ADMIN
)。大多数“get”类型的请求都允许任何人使用,但也有例外(其中响应包含敏感信息)。在某些情况下,请求本身允许任何人使用,但非特权用户会省略包含敏感信息的属性(例如,唤醒局域网密码)。
约定¶
表示布尔值的属性通常使用 NLA_U8 类型,以便我们可以区分三种状态:“on”,“off”和“not present”(表示“get”请求中没有该信息,或者“set”请求中不会更改该值)。对于这些属性,“true”值应作为数字 1 传递,但任何非零值都应被接收者理解为“true”。在下表中,“bool”表示以这种方式解释的 NLA_U8 属性。
在下面的消息结构描述中,如果属性名称以“+”结尾,则父嵌套可以包含同一类型的多个属性。这实现了条目数组。
设备驱动程序需要填充的属性,并且基于它们是否有效而转储到用户空间,不应使用零作为有效值。这避免了在设备驱动程序 API 中显式指示属性有效性的需要。
请求头¶
每个请求或回复消息都包含带有公共标头的嵌套属性。此标头的结构为
ETHTOOL_A_HEADER_DEV_INDEX
u32
设备 ifindex
ETHTOOL_A_HEADER_DEV_NAME
字符串
设备名称
ETHTOOL_A_HEADER_FLAGS
u32
所有请求通用的标志
ETHTOOL_A_HEADER_PHY_INDEX
u32
PHY 设备索引
ETHTOOL_A_HEADER_DEV_INDEX
和 ETHTOOL_A_HEADER_DEV_NAME
标识消息相关的设备。其中一个在请求中就足够了,如果都使用,则它们必须标识同一设备。某些请求,例如全局字符串集,不需要设备标识。大多数 GET
请求也允许没有设备标识的转储请求,以查询为所有设备提供相同信息(每个设备在单独的消息中)。
ETHTOOL_A_HEADER_FLAGS
是所有请求类型通用的请求标志的位图。这些标志的解释对于所有请求类型都是相同的,但这些标志可能不适用于请求。可识别的标志有
ETHTOOL_FLAG_COMPACT_BITSETS
在回复中使用紧凑格式位集
ETHTOOL_FLAG_OMIT_REPLY
省略可选回复(_SET 和 _ACT)
ETHTOOL_FLAG_STATS
包括可选的设备统计信息
新的请求标志应遵循一般的想法,即如果未设置该标志,则该行为向后兼容,即来自不了解该标志的旧客户端的请求应以客户端期望的方式解释。客户端不得设置它不理解的标志。
ETHTOOL_A_HEADER_PHY_INDEX
标识消息相关的以太网 PHY。由于有许多命令与 PHY 配置相关,并且由于链路上可能有多个 PHY,因此可以在需要它的命令的请求中传递 PHY 索引。但是,它不是强制性的,如果未传递用于针对 PHY 的命令,则使用 net_device.phydev 指针。
位集¶
对于短的(合理)固定长度的位图,使用标准 NLA_BITFIELD32
类型。对于任意长度的位图,ethtool Netlink 使用嵌套属性,其内容为以下两种形式之一:紧凑型(两个二进制位图表示位值和受影响位的掩码)和逐位型(通过索引或名称标识的位列表)。
详细的(逐位)位集允许发送位的符号名称及其值,这节省了一次往返(当位集在请求中传递时)或至少第二个请求(当位集在回复中时)。这对于像传统 ethtool 命令这样的单次应用程序很有用。另一方面,像 ethtool 监视器(显示通知)或网络管理守护程序这样的长期运行的应用程序可能更喜欢只获取一次名称,并使用紧凑型来节省消息大小。来自 ethtool Netlink 接口的通知始终使用紧凑型位集。
位集可以表示值/掩码对(未设置 ETHTOOL_A_BITSET_NOMASK
)或单个位图(设置 ETHTOOL_A_BITSET_NOMASK
)。在修改位图的请求中,前者将掩码中设置的位更改为值中设置的值,并保留其余部分;后者设置位图中设置的位,并清除其余部分。
紧凑型:嵌套(位集)属性内容
ETHTOOL_A_BITSET_NOMASK
标志
没有掩码,只有列表
ETHTOOL_A_BITSET_SIZE
u32
有效位的数量
ETHTOOL_A_BITSET_VALUE
二进制
位值的位图
ETHTOOL_A_BITSET_MASK
二进制
有效位的位图
值和掩码的长度必须至少为 ETHTOOL_A_BITSET_SIZE
位,向上取整为 32 位的倍数。它们由主机字节顺序的 32 位字组成,字的顺序从最低有效位到最高有效位(即与使用 ioctl 接口传递位图的方式相同)。
对于紧凑型,ETHTOOL_A_BITSET_SIZE
和 ETHTOOL_A_BITSET_VALUE
是必需的。如果未设置 ETHTOOL_A_BITSET_NOMASK
(位集表示值/掩码对),则 ETHTOOL_A_BITSET_MASK
属性是必需的;如果未设置 ETHTOOL_A_BITSET_NOMASK
,则不允许使用 ETHTOOL_A_BITSET_MASK
(位集表示单个位图)。
如果在新内核上使用旧应用程序,或者反之,则内核位集长度可能与用户空间长度不同。如果用户空间位图更长,则只有当请求实际尝试设置内核未识别的某些位的值时,才会发出错误。
逐位型:嵌套(位集)属性内容
ETHTOOL_A_BITSET_NOMASK
标志
没有掩码,只有列表
ETHTOOL_A_BITSET_SIZE
u32
有效位的数量
ETHTOOL_A_BITSET_BITS
嵌套
位数组
ETHTOOL_A_BITSET_BITS_BIT+
嵌套
一位
ETHTOOL_A_BITSET_BIT_INDEX
u32
位索引(0 表示 LSB)
ETHTOOL_A_BITSET_BIT_NAME
字符串
位名称
ETHTOOL_A_BITSET_BIT_VALUE
标志
如果设置了位,则存在
对于逐位型,位大小是可选的。ETHTOOL_A_BITSET_BITS
嵌套只能包含 ETHTOOL_A_BITSET_BITS_BIT
属性,但可以有任意数量的属性。可以通过其索引或名称来标识位。在请求中使用时,根据 ETHTOOL_A_BITSET_BIT_VALUE
将列出的位设置为 0 或 1,其余部分保留。如果索引超过内核位长度或名称无法识别,则请求失败。
当存在 ETHTOOL_A_BITSET_NOMASK
标志时,位集被解释为简单的位图。在这种情况下不使用 ETHTOOL_A_BITSET_BIT_VALUE
属性。这样的位集表示一个位图,其中列出的位已设置,其余部分为零。
在请求中,应用程序可以使用任一形式。内核在回复中使用的形式由请求标头的标志字段中的 ETHTOOL_FLAG_COMPACT_BITSETS
标志确定。值和掩码的语义取决于属性。
消息类型列表¶
所有标识消息类型的常量都使用 ETHTOOL_CMD_
前缀和后缀,具体取决于消息的目的
_GET
用户空间请求以检索数据
_SET
用户空间请求以设置数据
_ACT
用户空间请求以执行操作
_GET_REPLY
内核回复
GET
请求
_SET_REPLY
内核回复
SET
请求
_ACT_REPLY
内核回复
ACT
请求
_NTF
内核通知
用户空间到内核
ETHTOOL_MSG_STRSET_GET
获取字符串集
ETHTOOL_MSG_LINKINFO_GET
获取链接设置
ETHTOOL_MSG_LINKINFO_SET
设置链接设置
ETHTOOL_MSG_LINKMODES_GET
获取链接模式信息
ETHTOOL_MSG_LINKMODES_SET
设置链接模式信息
ETHTOOL_MSG_LINKSTATE_GET
获取链接状态
ETHTOOL_MSG_DEBUG_GET
获取调试设置
ETHTOOL_MSG_DEBUG_SET
设置调试设置
ETHTOOL_MSG_WOL_GET
获取唤醒局域网设置
ETHTOOL_MSG_WOL_SET
设置唤醒局域网设置
ETHTOOL_MSG_FEATURES_GET
获取设备特性
ETHTOOL_MSG_FEATURES_SET
设置设备特性
ETHTOOL_MSG_PRIVFLAGS_GET
获取私有标志
ETHTOOL_MSG_PRIVFLAGS_SET
设置私有标志
ETHTOOL_MSG_RINGS_GET
获取环大小
ETHTOOL_MSG_RINGS_SET
设置环大小
ETHTOOL_MSG_CHANNELS_GET
获取通道计数
ETHTOOL_MSG_CHANNELS_SET
设置通道计数
ETHTOOL_MSG_COALESCE_GET
获取合并参数
ETHTOOL_MSG_COALESCE_SET
设置合并参数
ETHTOOL_MSG_PAUSE_GET
获取暂停参数
ETHTOOL_MSG_PAUSE_SET
设置暂停参数
ETHTOOL_MSG_EEE_GET
获取 EEE 设置
ETHTOOL_MSG_EEE_SET
设置 EEE 设置
ETHTOOL_MSG_TSINFO_GET
获取时间戳信息
ETHTOOL_MSG_CABLE_TEST_ACT
操作:开始电缆测试
ETHTOOL_MSG_CABLE_TEST_TDR_ACT
操作:开始原始 TDR 电缆测试
ETHTOOL_MSG_TUNNEL_INFO_GET
获取隧道卸载信息
ETHTOOL_MSG_FEC_GET
获取 FEC 设置
ETHTOOL_MSG_FEC_SET
设置 FEC 设置
ETHTOOL_MSG_MODULE_EEPROM_GET
读取 SFP 模块 EEPROM
ETHTOOL_MSG_STATS_GET
获取标准统计信息
ETHTOOL_MSG_PHC_VCLOCKS_GET
获取 PHC 虚拟时钟信息
ETHTOOL_MSG_MODULE_SET
设置收发器模块参数
ETHTOOL_MSG_MODULE_GET
获取收发器模块参数
ETHTOOL_MSG_PSE_SET
设置 PSE 参数
ETHTOOL_MSG_PSE_GET
获取 PSE 参数
ETHTOOL_MSG_RSS_GET
获取 RSS 设置
ETHTOOL_MSG_PLCA_GET_CFG
获取 PLCA RS 参数
ETHTOOL_MSG_PLCA_SET_CFG
设置 PLCA RS 参数
ETHTOOL_MSG_PLCA_GET_STATUS
获取 PLCA RS 状态
ETHTOOL_MSG_MM_GET
获取 MAC 合并层状态
ETHTOOL_MSG_MM_SET
设置 MAC 合并层参数
ETHTOOL_MSG_MODULE_FW_FLASH_ACT
刷新收发器模块固件
ETHTOOL_MSG_PHY_GET
获取以太网 PHY 信息
ETHTOOL_MSG_TSCONFIG_GET
获取硬件时间戳配置
ETHTOOL_MSG_TSCONFIG_SET
设置硬件时间戳配置
内核到用户空间
ETHTOOL_MSG_STRSET_GET_REPLY
字符串集内容
ETHTOOL_MSG_LINKINFO_GET_REPLY
链接设置
ETHTOOL_MSG_LINKINFO_NTF
链接设置通知
ETHTOOL_MSG_LINKMODES_GET_REPLY
链接模式信息
ETHTOOL_MSG_LINKMODES_NTF
链接模式通知
ETHTOOL_MSG_LINKSTATE_GET_REPLY
链接状态信息
ETHTOOL_MSG_DEBUG_GET_REPLY
调试设置
ETHTOOL_MSG_DEBUG_NTF
调试设置通知
ETHTOOL_MSG_WOL_GET_REPLY
唤醒局域网设置
ETHTOOL_MSG_WOL_NTF
唤醒局域网设置通知
ETHTOOL_MSG_FEATURES_GET_REPLY
设备特性
ETHTOOL_MSG_FEATURES_SET_REPLY
FEATURES_SET 的可选回复
ETHTOOL_MSG_FEATURES_NTF
netdev 特性通知
ETHTOOL_MSG_PRIVFLAGS_GET_REPLY
私有标志
ETHTOOL_MSG_PRIVFLAGS_NTF
私有标志
ETHTOOL_MSG_RINGS_GET_REPLY
环大小
ETHTOOL_MSG_RINGS_NTF
环大小
ETHTOOL_MSG_CHANNELS_GET_REPLY
通道计数
ETHTOOL_MSG_CHANNELS_NTF
通道计数
ETHTOOL_MSG_COALESCE_GET_REPLY
合并参数
ETHTOOL_MSG_COALESCE_NTF
合并参数
ETHTOOL_MSG_PAUSE_GET_REPLY
暂停参数
ETHTOOL_MSG_PAUSE_NTF
暂停参数
ETHTOOL_MSG_EEE_GET_REPLY
EEE 设置
ETHTOOL_MSG_EEE_NTF
EEE 设置
ETHTOOL_MSG_TSINFO_GET_REPLY
时间戳信息
ETHTOOL_MSG_CABLE_TEST_NTF
电缆测试结果
ETHTOOL_MSG_CABLE_TEST_TDR_NTF
电缆测试 TDR 结果
ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY
隧道卸载信息
ETHTOOL_MSG_FEC_GET_REPLY
FEC 设置
ETHTOOL_MSG_FEC_NTF
FEC 设置
ETHTOOL_MSG_MODULE_EEPROM_GET_REPLY
读取 SFP 模块 EEPROM
ETHTOOL_MSG_STATS_GET_REPLY
标准统计信息
ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY
PHC 虚拟时钟信息
ETHTOOL_MSG_MODULE_GET_REPLY
收发器模块参数
ETHTOOL_MSG_PSE_GET_REPLY
PSE 参数
ETHTOOL_MSG_RSS_GET_REPLY
RSS 设置
ETHTOOL_MSG_PLCA_GET_CFG_REPLY
PLCA RS 参数
ETHTOOL_MSG_PLCA_GET_STATUS_REPLY
PLCA RS 状态
ETHTOOL_MSG_PLCA_NTF
PLCA RS 参数
ETHTOOL_MSG_MM_GET_REPLY
MAC 合并层状态
ETHTOOL_MSG_MODULE_FW_FLASH_NTF
收发器模块闪存更新
ETHTOOL_MSG_PHY_GET_REPLY
以太网 PHY 信息
ETHTOOL_MSG_PHY_NTF
以太网 PHY 信息更改
ETHTOOL_MSG_TSCONFIG_GET_REPLY
硬件时间戳配置
ETHTOOL_MSG_TSCONFIG_SET_REPLY
新的硬件时间戳配置
GET
请求由用户空间应用程序发送以检索设备信息。它们通常不包含任何消息特定的属性。内核回复相应的“GET_REPLY”消息。对于大多数类型,可以使用带有 NLM_F_DUMP
且没有设备标识的 GET
请求来查询所有支持该请求的设备的信息。
如果数据也可以修改,则使用与相应 GET_REPLY
具有相同布局的相应 SET
消息来请求更改。只有请求更改的属性才包含在此请求中(此外,并非所有属性都可以更改)。对大多数 SET
请求的回复仅包含错误代码和 extack;如果内核提供其他数据,则以相应 SET_REPLY
消息的形式发送,可以通过在请求标头中设置 ETHTOOL_FLAG_OMIT_REPLY
标志来禁止显示该消息。
数据修改还会触发发送带有通知的 NTF
消息。这些消息通常只包含受更改影响的属性子集。如果使用其他方式(主要是 ioctl ethtool 接口)修改数据,则会发出相同的通知。与 ethtool Netlink 代码发出的通知(仅在实际发生更改时发送)不同,由 ioctl 接口触发的通知即使请求实际上没有更改任何数据也可能会发送。
ACT
消息请求内核(驱动程序)执行特定操作。如果内核报告了一些信息(可以通过在请求标头中设置 ETHTOOL_FLAG_OMIT_REPLY
标志来禁止显示),则回复采用 ACT_REPLY
消息的形式。执行操作还会触发通知(NTF
消息)。
后面的章节描述了这些消息的格式和语义。
STRSET_GET¶
请求字符串集的内容,由 ioctl 命令 ETHTOOL_GSSET_INFO
和 ETHTOOL_GSTRINGS.
提供。字符串集不是用户可写的,因此相应的 STRSET_SET
消息仅在内核回复中使用。字符串集有两种类型:全局字符串集(独立于设备,例如设备特性名称)和设备特定的字符串集(例如设备私有标志)。
请求内容
ETHTOOL_A_STRSET_HEADER
嵌套
请求标头
ETHTOOL_A_STRSET_STRINGSETS
嵌套
要请求的字符串集
ETHTOOL_A_STRINGSETS_STRINGSET+
嵌套
一个字符串集
ETHTOOL_A_STRINGSET_ID
u32
设置 id
内核响应内容
ETHTOOL_A_STRSET_HEADER
嵌套
回复标头
ETHTOOL_A_STRSET_STRINGSETS
嵌套
字符串集数组
ETHTOOL_A_STRINGSETS_STRINGSET+
嵌套
一个字符串集
ETHTOOL_A_STRINGSET_ID
u32
设置 id
ETHTOOL_A_STRINGSET_COUNT
u32
字符串的数量
ETHTOOL_A_STRINGSET_STRINGS
嵌套
字符串数组
ETHTOOL_A_STRINGS_STRING+
嵌套
一个字符串
ETHTOOL_A_STRING_INDEX
u32
字符串索引
ETHTOOL_A_STRING_VALUE
字符串
字符串值
ETHTOOL_A_STRSET_COUNTS_ONLY
标志
仅返回计数
请求标头中的设备标识是可选的。根据它的存在和 NLM_F_DUMP
标志,有三种类型的 STRSET_GET
请求
没有
NLM_F_DUMP,
没有设备:获取“全局”字符串集没有
NLM_F_DUMP
,带有设备:获取与设备相关的字符串集
NLM_F_DUMP
,没有设备:获取所有设备的设备相关字符串集
如果没有 ETHTOOL_A_STRSET_STRINGSETS
数组,则返回请求类型的所有字符串集,否则仅返回请求中指定的字符串集。标志 ETHTOOL_A_STRSET_COUNTS_ONLY
告诉内核仅返回集合的字符串计数,而不返回实际字符串。
LINKINFO_GET¶
请求链接设置,由 ETHTOOL_GLINKSETTINGS
提供,但链接模式和自动协商相关信息除外。该请求不使用任何属性。
请求内容
ETHTOOL_A_LINKINFO_HEADER
嵌套
请求标头
内核响应内容
ETHTOOL_A_LINKINFO_HEADER
嵌套
回复标头
ETHTOOL_A_LINKINFO_PORT
u8
物理端口
ETHTOOL_A_LINKINFO_PHYADDR
u8
PHY MDIO 地址
ETHTOOL_A_LINKINFO_TP_MDIX
u8
MDI(-X) 状态
ETHTOOL_A_LINKINFO_TP_MDIX_CTRL
u8
MDI(-X) 控制
ETHTOOL_A_LINKINFO_TRANSCEIVER
u8
收发器
属性及其值的含义与相应 ioctl 结构的匹配成员的含义相同。
LINKINFO_GET
允许转储请求(内核返回所有支持该请求的设备的回复消息)。
LINKINFO_SET¶
LINKINFO_SET
请求允许设置 LINKINFO_GET
报告的某些属性。
请求内容
ETHTOOL_A_LINKINFO_HEADER
嵌套
请求标头
ETHTOOL_A_LINKINFO_PORT
u8
物理端口
ETHTOOL_A_LINKINFO_PHYADDR
u8
PHY MDIO 地址
ETHTOOL_A_LINKINFO_TP_MDIX_CTRL
u8
MDI(-X) 控制
MDI(-X) 状态和收发器无法设置,具有相应属性的请求将被拒绝。
LINKMODES_GET¶
请求链接模式(支持、通告和对等方通告)和相关信息(自动协商状态、链接速度和双工),由 ETHTOOL_GLINKSETTINGS
提供。该请求不使用任何属性。
请求内容
ETHTOOL_A_LINKMODES_HEADER
嵌套
请求标头
内核响应内容
ETHTOOL_A_LINKMODES_HEADER
嵌套
回复标头
ETHTOOL_A_LINKMODES_AUTONEG
u8
自动协商状态
ETHTOOL_A_LINKMODES_OURS
位集
通告的链接模式
ETHTOOL_A_LINKMODES_PEER
位集
合作伙伴链接模式
ETHTOOL_A_LINKMODES_SPEED
u32
链接速度 (Mb/s)
ETHTOOL_A_LINKMODES_DUPLEX
u8
双工模式
ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG
u8
主/从端口模式
ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE
u8
主/从端口状态
ETHTOOL_A_LINKMODES_RATE_MATCHING
u8
PHY 速率匹配
对于 ETHTOOL_A_LINKMODES_OURS
,值表示通告的模式,掩码表示支持的模式。回复中的 ETHTOOL_A_LINKMODES_PEER
是位列表。
LINKMODES_GET
允许转储请求(内核返回所有支持该请求的设备的回复消息)。
LINKMODES_SET¶
请求内容
ETHTOOL_A_LINKMODES_HEADER
嵌套
请求标头
ETHTOOL_A_LINKMODES_AUTONEG
u8
自动协商状态
ETHTOOL_A_LINKMODES_OURS
位集
通告的链接模式
ETHTOOL_A_LINKMODES_PEER
位集
合作伙伴链接模式
ETHTOOL_A_LINKMODES_SPEED
u32
链接速度 (Mb/s)
ETHTOOL_A_LINKMODES_DUPLEX
u8
双工模式
ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG
u8
主/从端口模式
ETHTOOL_A_LINKMODES_RATE_MATCHING
u8
PHY 速率匹配
ETHTOOL_A_LINKMODES_LANES
u32
通道
ETHTOOL_A_LINKMODES_OURS
位集允许设置通告的链接模式。如果自动协商已打开(现在设置或从以前保留),则不更改通告的模式(没有 ETHTOOL_A_LINKMODES_OURS
属性),并且至少指定了速度、双工和通道中的一个,内核会将通告的模式调整为与速度、双工、通道或全部(指定的任何内容)匹配的所有支持的模式。这种自动选择是在 ethtool 侧使用 ioctl 接口完成的,Netlink 接口应该允许请求更改,而无需知道内核具体支持什么。
LINKSTATE_GET¶
请求链接状态信息。提供链接打开/关闭标志(由 ETHTOOL_GLINK
ioctl 命令提供)。可选地,也可以提供扩展状态。通常,扩展状态描述端口关闭的原因,或端口以某些非显而易见模式运行的原因。此请求没有任何属性。
请求内容
ETHTOOL_A_LINKSTATE_HEADER
嵌套
请求标头
内核响应内容
ETHTOOL_A_LINKSTATE_HEADER
嵌套
回复标头
ETHTOOL_A_LINKSTATE_LINK
bool
链接状态(打开/关闭)
ETHTOOL_A_LINKSTATE_SQI
u32
当前信号质量索引
ETHTOOL_A_LINKSTATE_SQI_MAX
u32
支持的最大 SQI 值
ETHTOOL_A_LINKSTATE_EXT_STATE
u8
链接扩展状态
ETHTOOL_A_LINKSTATE_EXT_SUBSTATE
u8
链接扩展子状态
ETHTOOL_A_LINKSTATE_EXT_DOWN_CNT
u32
链接关闭事件的计数
对于大多数 NIC 驱动程序,ETHTOOL_A_LINKSTATE_LINK
的值返回由 netif_carrier_ok()
提供的载波标志,但有些驱动程序定义了自己的处理程序。
ETHTOOL_A_LINKSTATE_EXT_STATE
和 ETHTOOL_A_LINKSTATE_EXT_SUBSTATE
是可选值。ethtool 核心可以提供 ETHTOOL_A_LINKSTATE_EXT_STATE
和 ETHTOOL_A_LINKSTATE_EXT_SUBSTATE
,或仅提供 ETHTOOL_A_LINKSTATE_EXT_STATE
,或都不提供。
LINKSTATE_GET
允许转储请求(内核返回所有支持该请求的设备的回复消息)。
链接扩展状态
ETHTOOL_LINK_EXT_STATE_AUTONEG
与自动协商或其中的问题相关的状态
ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE
链接训练期间的失败
ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH
物理编码子层或前向纠错子层中的逻辑不匹配
ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY
信号完整性问题
ETHTOOL_LINK_EXT_STATE_NO_CABLE
未连接电缆
ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE
失败与电缆相关,例如,不支持的电缆
ETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE
失败与 EEPROM 相关,例如,读取或解析数据期间的失败
ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE
校准算法期间的失败
ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED
硬件无法提供电缆或模块所需的功率
ETHTOOL_LINK_EXT_STATE_OVERHEAT
模块过热
ETHTOOL_LINK_EXT_STATE_MODULE
收发器模块问题
链接扩展子状态
自动协商子状态
ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED
对等端已关闭
ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED
未从对等端收到确认
ETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED
下一页交换失败
ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE
强制模式期间对等端已关闭,或者速度没有协议
ETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE
双方的前向纠错模式不匹配
ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD
没有最高公分母
链接训练子状态
ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED
帧未被识别,锁定失败
ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT
锁定未在超时之前发生
ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY
对等端在训练过程后未发送就绪信号
ETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT
远程端尚未准备好
链接逻辑不匹配子状态
ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK
物理编码子层未在第一阶段锁定 - 块锁定
ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK
物理编码子层未在第二阶段锁定 - 对齐标记锁定
ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS
物理编码子层未获取对齐状态
ETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED
FC 前向纠错未锁定
ETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED
RS 前向纠错未锁定
坏信号完整性子状态
ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS
大量的物理错误
ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE
系统尝试以非正式支持的速率运行电缆,这导致了信号完整性问题
ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_REFERENCE_CLOCK_LOST
SerDes 的外部时钟信号太弱或不可用。
ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_ALOS
SerDes 的接收信号太弱,因为模拟信号丢失。
电缆问题子状态
ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE
不支持的电缆
ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE
电缆测试失败
收发器模块问题子状态
ETHTOOL_LINK_EXT_SUBSTATE_MODULE_CMIS_NOT_READY
CMIS 模块状态机未达到 ModuleReady 状态。例如,如果模块卡在 ModuleFault 状态
DEBUG_GET¶
请求设备的调试设置。目前,仅提供消息掩码。
请求内容
ETHTOOL_A_DEBUG_HEADER
嵌套
请求标头
内核响应内容
ETHTOOL_A_DEBUG_HEADER
嵌套
回复标头
ETHTOOL_A_DEBUG_MSGMASK
位集
消息掩码
消息掩码 (ETHTOOL_A_DEBUG_MSGMASK
) 等于 ioctl 接口中 ETHTOOL_GMSGLVL
提供的消息级别,以及 ETHTOOL_SMSGLVL
设置的消息级别。虽然由于历史原因它被称为消息级别,但大多数驱动程序和几乎所有较新的驱动程序都将其用作已启用消息类(由 NETIF_MSG_*
常量表示)的掩码;因此,Netlink 接口遵循它在实践中的实际使用。
DEBUG_GET
允许转储请求(内核返回所有支持该请求的设备的回复消息)。
DEBUG_SET¶
设置或更新设备的调试设置。目前,仅支持消息掩码。
请求内容
ETHTOOL_A_DEBUG_HEADER
嵌套
请求标头
ETHTOOL_A_DEBUG_MSGMASK
位集
消息掩码
ETHTOOL_A_DEBUG_MSGMASK
位集允许设置或修改设备已启用调试消息类型的掩码。
WOL_GET¶
查询设备的唤醒局域网设置。与大多数“GET”类型请求不同,ETHTOOL_MSG_WOL_GET
需要 (netns) CAP_NET_ADMIN
权限,因为它(可能)提供 SecureOn(tm) 密码,这是机密的。
请求内容
ETHTOOL_A_WOL_HEADER
嵌套
请求标头
内核响应内容
ETHTOOL_A_WOL_HEADER
嵌套
回复标头
ETHTOOL_A_WOL_MODES
位集
已启用 WoL 模式的掩码
ETHTOOL_A_WOL_SOPASS
二进制
SecureOn(tm) 密码
在回复中,ETHTOOL_A_WOL_MODES
掩码由设备支持的模式组成,已启用模式的值。ETHTOOL_A_WOL_SOPASS
仅在支持 WAKE_MAGICSECURE
模式时才包含在回复中。
WOL_SET¶
设置或更新唤醒局域网设置。
请求内容
ETHTOOL_A_WOL_HEADER
嵌套
请求标头
ETHTOOL_A_WOL_MODES
位集
已启用 WoL 模式
ETHTOOL_A_WOL_SOPASS
二进制
SecureOn(tm) 密码
仅支持 WAKE_MAGICSECURE
模式的设备才允许使用 ETHTOOL_A_WOL_SOPASS
。
FEATURES_GET¶
获取 netdev 特性,例如 ETHTOOL_GFEATURES
ioctl 请求。
请求内容
ETHTOOL_A_FEATURES_HEADER
嵌套
请求标头
内核响应内容
ETHTOOL_A_FEATURES_HEADER
嵌套
回复标头
ETHTOOL_A_FEATURES_HW
位集
dev->hw_features
ETHTOOL_A_FEATURES_WANTED
位集
dev->wanted_features
ETHTOOL_A_FEATURES_ACTIVE
位集
dev->features
ETHTOOL_A_FEATURES_NOCHANGE
位集
NETIF_F_NEVER_CHANGE
内核响应中的位图与 ioctl 干扰中使用的位图具有相同的含义,但属性名称不同(它们基于 struct net_device
的相应成员)。不提供旧的“标志”,如果用户空间需要它们(最有可能只是为了向后兼容性的 ethtool),它可以自己从相关特性位计算它们的值。ETHA_FEATURES_HW 使用由内核识别的所有特性组成的掩码(以便在使用详细位图格式时提供所有名称),其他三个不使用掩码(简单位列表)。
FEATURES_SET¶
请求设置 netdev 特性,例如 ETHTOOL_SFEATURES
ioctl 请求。
请求内容
ETHTOOL_A_FEATURES_HEADER
嵌套
请求标头
ETHTOOL_A_FEATURES_WANTED
位集
请求的特性
内核响应内容
ETHTOOL_A_FEATURES_HEADER
嵌套
回复标头
ETHTOOL_A_FEATURES_WANTED
位集
wanted 与结果的差异
ETHTOOL_A_FEATURES_ACTIVE
位集
旧的和新的 active 的差异
请求仅包含一个位集,它可以是值/掩码对(请求更改特定特性位并保留其余部分)或仅一个值(请求将所有特性设置为指定的集合)。
由于请求需要经过 netdev_change_features()
的健全性检查,可选的内核回复(可以通过请求头中的 ETHTOOL_FLAG_OMIT_REPLY
标志来抑制)会告知客户端实际结果。ETHTOOL_A_FEATURES_WANTED
报告客户端请求和实际结果之间的差异:掩码由请求特性和结果(操作后的 dev->features)之间不同的位组成,值由请求中这些位的值组成(即,结果特性的取反值)。ETHTOOL_A_FEATURES_ACTIVE
报告旧的和新的 dev->features 之间的差异:掩码由已更改的位组成,值是操作后新的 dev->features 中这些位的值。
不仅当使用 ETHTOOL_MSG_FEATURES_SET
请求或 ethtool ioctl 请求修改设备特性时,而且每次使用 netdev_update_features()
或 netdev_change_features()
修改特性时,都会发送 ETHTOOL_MSG_FEATURES_NTF
通知。
PRIVFLAGS_GET¶
获取私有标志,如 ETHTOOL_GPFLAGS
ioctl 请求。
请求内容
ETHTOOL_A_PRIVFLAGS_HEADER
嵌套
请求标头
内核响应内容
ETHTOOL_A_PRIVFLAGS_HEADER
嵌套
回复标头
ETHTOOL_A_PRIVFLAGS_FLAGS
位集
私有标志
ETHTOOL_A_PRIVFLAGS_FLAGS
是一个位集,包含设备私有标志的值。这些标志由驱动程序定义,其数量和名称(以及含义)取决于设备。对于紧凑的位集格式,名称可以作为 ETH_SS_PRIV_FLAGS
字符串集检索。如果请求详细的位集格式,则响应使用设备支持的所有私有标志作为掩码,以便客户端获取完整信息,而无需获取带有名称的字符串集。
PRIVFLAGS_SET¶
设置或修改设备私有标志的值,如 ETHTOOL_SPFLAGS
ioctl 请求。
请求内容
ETHTOOL_A_PRIVFLAGS_HEADER
嵌套
请求标头
ETHTOOL_A_PRIVFLAGS_FLAGS
位集
私有标志
ETHTOOL_A_PRIVFLAGS_FLAGS
可以设置整个私有标志集,也可以仅修改其中一些标志的值。
RINGS_GET¶
获取环大小,如 ETHTOOL_GRINGPARAM
ioctl 请求。
请求内容
ETHTOOL_A_RINGS_HEADER
嵌套
请求标头
内核响应内容
ETHTOOL_A_RINGS_HEADER
嵌套
回复标头
ETHTOOL_A_RINGS_RX_MAX
u32
RX 环的最大大小
ETHTOOL_A_RINGS_RX_MINI_MAX
u32
RX mini 环的最大大小
ETHTOOL_A_RINGS_RX_JUMBO_MAX
u32
RX jumbo 环的最大大小
ETHTOOL_A_RINGS_TX_MAX
u32
TX 环的最大大小
ETHTOOL_A_RINGS_RX
u32
RX 环的大小
ETHTOOL_A_RINGS_RX_MINI
u32
RX mini 环的大小
ETHTOOL_A_RINGS_RX_JUMBO
u32
RX jumbo 环的大小
ETHTOOL_A_RINGS_TX
u32
TX 环的大小
ETHTOOL_A_RINGS_RX_BUF_LEN
u32
环上缓冲区的大小
ETHTOOL_A_RINGS_TCP_DATA_SPLIT
u8
TCP 头部/数据分离
ETHTOOL_A_RINGS_CQE_SIZE
u32
TX/RX CQE 的大小
ETHTOOL_A_RINGS_TX_PUSH
u8
TX Push 模式的标志
ETHTOOL_A_RINGS_RX_PUSH
u8
RX Push 模式的标志
ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN
u32
TX 推送缓冲区的大小
ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX
u32
TX 推送缓冲区的最大大小
ETHTOOL_A_RINGS_HDS_THRESH
u32
头部/数据分离的阈值
ETHTOOL_A_RINGS_HDS_THRESH_MAX
u32
头部/数据分离的最大阈值
ETHTOOL_A_RINGS_TCP_DATA_SPLIT
指示该设备是否可用于页面翻转 TCP 零拷贝接收 (getsockopt(TCP_ZEROCOPY_RECEIVE)
)。如果启用,设备将配置为将帧头和数据放入单独的缓冲区中。设备配置必须能够接收完整的数据内存页,例如,由于 MTU 足够高或通过 HW-GRO。
ETHTOOL_A_RINGS_[RX|TX]_PUSH
标志用于启用描述符快速路径以发送或接收数据包。在普通路径中,驱动程序在 DRAM 中填充描述符并通知 NIC 硬件。在快速路径中,驱动程序通过 MMIO 写入将描述符推送到设备,从而减少延迟。但是,启用此功能可能会增加 CPU 成本。驱动程序可能会强制执行额外的每个数据包资格检查(例如,数据包大小)。
ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN
指定驱动程序可以直接推送到底层设备的已传输数据包的最大字节数(“推送”模式)。将某些有效负载字节推送到设备具有以下优点:通过避免 DMA 映射来减少小数据包的延迟(与 ETHTOOL_A_RINGS_TX_PUSH
参数相同),以及允许底层设备在获取其有效负载之前处理数据包头。这可以帮助设备根据数据包头快速采取操作。这类似于“tx-copybreak”参数,该参数将数据包复制到预先分配的 DMA 内存区域,而不是映射新内存。但是,tx-push-buff 参数将数据包直接复制到设备,以允许设备对数据包采取更快的操作。
RINGS_SET¶
设置环大小,如 ETHTOOL_SRINGPARAM
ioctl 请求。
请求内容
ETHTOOL_A_RINGS_HEADER
嵌套
回复标头
ETHTOOL_A_RINGS_RX
u32
RX 环的大小
ETHTOOL_A_RINGS_RX_MINI
u32
RX mini 环的大小
ETHTOOL_A_RINGS_RX_JUMBO
u32
RX jumbo 环的大小
ETHTOOL_A_RINGS_TX
u32
TX 环的大小
ETHTOOL_A_RINGS_RX_BUF_LEN
u32
环上缓冲区的大小
ETHTOOL_A_RINGS_TCP_DATA_SPLIT
u8
TCP 头部/数据分离
ETHTOOL_A_RINGS_CQE_SIZE
u32
TX/RX CQE 的大小
ETHTOOL_A_RINGS_TX_PUSH
u8
TX Push 模式的标志
ETHTOOL_A_RINGS_RX_PUSH
u8
RX Push 模式的标志
ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN
u32
TX 推送缓冲区的大小
ETHTOOL_A_RINGS_HDS_THRESH
u32
头部/数据分离的阈值
内核检查请求的环大小是否超过驱动程序报告的限制。驱动程序可能会施加额外的约束,并且可能不支持所有属性。
ETHTOOL_A_RINGS_CQE_SIZE
指定完成队列事件大小。完成队列事件 (CQE) 是 NIC 发布的事件,用于指示数据包的完成状态,例如数据包发送(如发送成功或错误)或接收(如指向数据包片段的指针)。CQE 大小参数允许修改除默认大小之外的 CQE 大小(如果 NIC 支持)。更大的 CQE 可以拥有更多的接收缓冲区指针,反过来 NIC 可以从线路传输更大的帧。根据 NIC 硬件,如果修改 CQE 大小,则可以在驱动程序中调整整个完成队列大小。
ETHTOOL_A_RINGS_HDS_THRESH
指定头部/数据分离功能的阈值。如果接收到的数据包大小大于此阈值,则将分离头部和数据。
CHANNELS_GET¶
获取通道计数,如 ETHTOOL_GCHANNELS
ioctl 请求。
请求内容
ETHTOOL_A_CHANNELS_HEADER
嵌套
请求标头
内核响应内容
ETHTOOL_A_CHANNELS_HEADER
嵌套
回复标头
ETHTOOL_A_CHANNELS_RX_MAX
u32
最大接收通道数
ETHTOOL_A_CHANNELS_TX_MAX
u32
最大传输通道数
ETHTOOL_A_CHANNELS_OTHER_MAX
u32
最大其他通道数
ETHTOOL_A_CHANNELS_COMBINED_MAX
u32
最大组合通道数
ETHTOOL_A_CHANNELS_RX_COUNT
u32
接收通道计数
ETHTOOL_A_CHANNELS_TX_COUNT
u32
传输通道计数
ETHTOOL_A_CHANNELS_OTHER_COUNT
u32
其他通道计数
ETHTOOL_A_CHANNELS_COMBINED_COUNT
u32
组合通道计数
CHANNELS_SET¶
设置通道计数,如 ETHTOOL_SCHANNELS
ioctl 请求。
请求内容
ETHTOOL_A_CHANNELS_HEADER
嵌套
请求标头
ETHTOOL_A_CHANNELS_RX_COUNT
u32
接收通道计数
ETHTOOL_A_CHANNELS_TX_COUNT
u32
传输通道计数
ETHTOOL_A_CHANNELS_OTHER_COUNT
u32
其他通道计数
ETHTOOL_A_CHANNELS_COMBINED_COUNT
u32
组合通道计数
内核检查请求的通道计数是否超过驱动程序报告的限制。驱动程序可能会施加额外的约束,并且可能不支持所有属性。
COALESCE_GET¶
获取合并参数,如 ETHTOOL_GCOALESCE
ioctl 请求。
请求内容
ETHTOOL_A_COALESCE_HEADER
嵌套
请求标头
内核响应内容
ETHTOOL_A_COALESCE_HEADER
嵌套
回复标头
ETHTOOL_A_COALESCE_RX_USECS
u32
延迟 (us),正常 Rx
ETHTOOL_A_COALESCE_RX_MAX_FRAMES
u32
最大数据包数,正常 Rx
ETHTOOL_A_COALESCE_RX_USECS_IRQ
u32
延迟 (us),IRQ 中的 Rx
ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ
u32
最大数据包数,IRQ 中的 Rx
ETHTOOL_A_COALESCE_TX_USECS
u32
延迟 (us),正常 Tx
ETHTOOL_A_COALESCE_TX_MAX_FRAMES
u32
最大数据包数,正常 Tx
ETHTOOL_A_COALESCE_TX_USECS_IRQ
u32
延迟 (us),IRQ 中的 Tx
ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ
u32
IRQ 数据包数,IRQ 中的 Tx
ETHTOOL_A_COALESCE_STATS_BLOCK_USECS
u32
统计信息更新的延迟
ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX
bool
自适应 Rx 合并
ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX
bool
自适应 Tx 合并
ETHTOOL_A_COALESCE_PKT_RATE_LOW
u32
低速率的阈值
ETHTOOL_A_COALESCE_RX_USECS_LOW
u32
延迟 (us),低 Rx
ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW
u32
最大数据包数,低 Rx
ETHTOOL_A_COALESCE_TX_USECS_LOW
u32
延迟 (us),低 Tx
ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW
u32
最大数据包数,低 Tx
ETHTOOL_A_COALESCE_PKT_RATE_HIGH
u32
高速率的阈值
ETHTOOL_A_COALESCE_RX_USECS_HIGH
u32
延迟 (us),高 Rx
ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH
u32
最大数据包数,高 Rx
ETHTOOL_A_COALESCE_TX_USECS_HIGH
u32
延迟 (us),高 Tx
ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH
u32
最大数据包数,高 Tx
ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL
u32
速率采样间隔
ETHTOOL_A_COALESCE_USE_CQE_TX
bool
计时器重置模式,Tx
ETHTOOL_A_COALESCE_USE_CQE_RX
bool
计时器重置模式,Rx
ETHTOOL_A_COALESCE_TX_AGGR_MAX_BYTES
u32
最大聚合大小,Tx
ETHTOOL_A_COALESCE_TX_AGGR_MAX_FRAMES
u32
最大聚合数据包数,Tx
ETHTOOL_A_COALESCE_TX_AGGR_TIME_USECS
u32
时间 (us),聚合,Tx
ETHTOOL_A_COALESCE_RX_PROFILE
嵌套
DIM 配置文件,Rx
ETHTOOL_A_COALESCE_TX_PROFILE
嵌套
DIM 配置文件,Tx
仅当属性值不为零或者设置了 ethtool_ops::supported_coalesce_params
中的相应位时(即,驱动程序声明它们是受支持的),这些属性才包含在回复中。
计时器重置模式(ETHTOOL_A_COALESCE_USE_CQE_TX
和 ETHTOOL_A_COALESCE_USE_CQE_RX
)控制数据包到达和各种基于时间的延迟参数之间的交互。默认情况下,计时器应限制任何数据包到达/离开和相应中断之间的最大延迟。在这种模式下,计时器应由数据包到达(有时是先前中断的传递)启动,并在传递中断时重置。将适当的属性设置为 1 将启用 CQE
模式,其中每个数据包事件都会重置计时器。在这种模式下,计时器用于强制中断(如果队列空闲),而繁忙队列依赖于数据包限制来触发中断。
Tx 聚合包括将帧复制到连续的缓冲区中,以便可以将它们作为单个 IO 操作提交。ETHTOOL_A_COALESCE_TX_AGGR_MAX_BYTES
描述了提交的缓冲区的最大大小(以字节为单位)。ETHTOOL_A_COALESCE_TX_AGGR_MAX_FRAMES
描述了可以聚合到单个缓冲区中的最大帧数。ETHTOOL_A_COALESCE_TX_AGGR_TIME_USECS
描述了自聚合块中第一个数据包到达以来经过的时间量(以微秒为单位),之后应发送该块。此功能主要适用于特定 USB 设备,这些设备无法很好地处理频繁的小型 URB 传输。
ETHTOOL_A_COALESCE_RX_PROFILE
和 ETHTOOL_A_COALESCE_TX_PROFILE
指的是 DIM 参数,请参阅 通用网络动态中断调节 (Net DIM)。
COALESCE_SET¶
设置合并参数,如 ETHTOOL_SCOALESCE
ioctl 请求。
请求内容
ETHTOOL_A_COALESCE_HEADER
嵌套
请求标头
ETHTOOL_A_COALESCE_RX_USECS
u32
延迟 (us),正常 Rx
ETHTOOL_A_COALESCE_RX_MAX_FRAMES
u32
最大数据包数,正常 Rx
ETHTOOL_A_COALESCE_RX_USECS_IRQ
u32
延迟 (us),IRQ 中的 Rx
ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ
u32
最大数据包数,IRQ 中的 Rx
ETHTOOL_A_COALESCE_TX_USECS
u32
延迟 (us),正常 Tx
ETHTOOL_A_COALESCE_TX_MAX_FRAMES
u32
最大数据包数,正常 Tx
ETHTOOL_A_COALESCE_TX_USECS_IRQ
u32
延迟 (us),IRQ 中的 Tx
ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ
u32
IRQ 数据包数,IRQ 中的 Tx
ETHTOOL_A_COALESCE_STATS_BLOCK_USECS
u32
统计信息更新的延迟
ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX
bool
自适应 Rx 合并
ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX
bool
自适应 Tx 合并
ETHTOOL_A_COALESCE_PKT_RATE_LOW
u32
低速率的阈值
ETHTOOL_A_COALESCE_RX_USECS_LOW
u32
延迟 (us),低 Rx
ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW
u32
最大数据包数,低 Rx
ETHTOOL_A_COALESCE_TX_USECS_LOW
u32
延迟 (us),低 Tx
ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW
u32
最大数据包数,低 Tx
ETHTOOL_A_COALESCE_PKT_RATE_HIGH
u32
高速率的阈值
ETHTOOL_A_COALESCE_RX_USECS_HIGH
u32
延迟 (us),高 Rx
ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH
u32
最大数据包数,高 Rx
ETHTOOL_A_COALESCE_TX_USECS_HIGH
u32
延迟 (us),高 Tx
ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH
u32
最大数据包数,高 Tx
ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL
u32
速率采样间隔
ETHTOOL_A_COALESCE_USE_CQE_TX
bool
计时器重置模式,Tx
ETHTOOL_A_COALESCE_USE_CQE_RX
bool
计时器重置模式,Rx
ETHTOOL_A_COALESCE_TX_AGGR_MAX_BYTES
u32
最大聚合大小,Tx
ETHTOOL_A_COALESCE_TX_AGGR_MAX_FRAMES
u32
最大聚合数据包数,Tx
ETHTOOL_A_COALESCE_TX_AGGR_TIME_USECS
u32
时间 (us),聚合,Tx
ETHTOOL_A_COALESCE_RX_PROFILE
嵌套
DIM 配置文件,Rx
ETHTOOL_A_COALESCE_TX_PROFILE
嵌套
DIM 配置文件,Tx
如果请求具有驱动程序声明为不受支持的属性(即,ethtool_ops::supported_coalesce_params
中未设置相应位),则无论其值如何,都会拒绝该请求。驱动程序可能会对合并参数及其值施加额外的约束。
与通过 ioctl()
发出的请求相比,此请求的 netlink 版本将更努力地确保用户指定的值已被应用,并且可能会调用驱动程序两次。
PAUSE_GET¶
获取暂停帧设置,如 ETHTOOL_GPAUSEPARAM
ioctl 请求。
请求内容
ETHTOOL_A_PAUSE_HEADER
嵌套
请求标头
ETHTOOL_A_PAUSE_STATS_SRC
u32
统计信息的来源
ETHTOOL_A_PAUSE_STATS_SRC
是可选的。它从以下位置获取值
-
enum ethtool_mac_stats_src¶
ethtool MAC 统计信息的来源
常量
ETHTOOL_MAC_STATS_SRC_AGGREGATE
如果设备支持 MAC 合并层,则此选项检索 eMAC 和 pMAC 的聚合统计信息。否则,它仅检索单个(快速)MAC 的统计信息。
ETHTOOL_MAC_STATS_SRC_EMAC
如果设备支持 MM 层,则此选项检索 eMAC 统计信息。否则,它检索单个(快速)MAC 的统计信息。
ETHTOOL_MAC_STATS_SRC_PMAC
如果设备支持 MM 层,则此选项检索 pMAC 统计信息。
如果请求中缺少此属性,则将在响应中提供统计信息,其中 ETHTOOL_A_PAUSE_STATS_SRC
属性等于 ETHTOOL_MAC_STATS_SRC_AGGREGATE
。
内核响应内容
ETHTOOL_A_PAUSE_HEADER
嵌套
请求标头
ETHTOOL_A_PAUSE_AUTONEG
bool
暂停自动协商
ETHTOOL_A_PAUSE_RX
bool
接收暂停帧
ETHTOOL_A_PAUSE_TX
bool
传输暂停帧
ETHTOOL_A_PAUSE_STATS
嵌套
暂停统计信息
如果在 ETHTOOL_A_HEADER_FLAGS
中设置了 ETHTOOL_FLAG_STATS
,则会报告 ETHTOOL_A_PAUSE_STATS
。如果驱动程序未报告任何统计信息,则它将为空。驱动程序在以下结构中填写统计信息
-
struct ethtool_pause_stats¶
IEEE 802.3x 暂停帧的统计信息
定义:
struct ethtool_pause_stats {
enum ethtool_mac_stats_src src;
u64 tx_pause_frames;
u64 rx_pause_frames;
};
成员
src
输入字段,表示是否应从 eMAC 或 pMAC 查询统计信息(如果支持 MM 层)。否则将被忽略。
tx_pause_frames
已传输的暂停帧计数。作为
ETHTOOL_A_PAUSE_STAT_TX_FRAMES
报告给用户空间。相当于标准中的 30.3.4.2 aPAUSEMACCtrlFramesTransmitted。
rx_pause_frames
接收到的暂停帧计数。作为
ETHTOOL_A_PAUSE_STAT_RX_FRAMES
报告给用户空间。相当于相当于标准中的 30.3.4.3 aPAUSEMACCtrlFramesReceived。
每个成员都有一个相应的属性定义。
PAUSE_SET¶
设置暂停参数,如 ETHTOOL_GPAUSEPARAM
ioctl 请求。
请求内容
ETHTOOL_A_PAUSE_HEADER
嵌套
请求标头
ETHTOOL_A_PAUSE_AUTONEG
bool
暂停自动协商
ETHTOOL_A_PAUSE_RX
bool
接收暂停帧
ETHTOOL_A_PAUSE_TX
bool
传输暂停帧
EEE_GET¶
获取节能以太网设置,如 ETHTOOL_GEEE
ioctl 请求。
请求内容
ETHTOOL_A_EEE_HEADER
嵌套
请求标头
内核响应内容
ETHTOOL_A_EEE_HEADER
嵌套
请求标头
ETHTOOL_A_EEE_MODES_OURS
bool
支持/公布的模式
ETHTOOL_A_EEE_MODES_PEER
bool
对等方公布的链路模式
ETHTOOL_A_EEE_ACTIVE
bool
EEE 正在积极使用
ETHTOOL_A_EEE_ENABLED
bool
EEE 已启用
ETHTOOL_A_EEE_TX_LPI_ENABLED
bool
Tx lpi 已启用
ETHTOOL_A_EEE_TX_LPI_TIMER
u32
Tx lpi 超时(以 us 为单位)
在 ETHTOOL_A_EEE_MODES_OURS
中,掩码由启用 EEE 的链路模式组成,值由公布 EEE 的链路模式组成。对等方公布 EEE 的链路模式在 ETHTOOL_A_EEE_MODES_PEER
中列出(没有掩码)。netlink 接口允许报告所有链路模式的 EEE 状态,但 ethtool_ops
回调仅提供前 32 个链路模式。
EEE_SET¶
设置节能以太网参数,如 ETHTOOL_SEEE
ioctl 请求。
请求内容
ETHTOOL_A_EEE_HEADER
嵌套
请求标头
ETHTOOL_A_EEE_MODES_OURS
bool
公布的模式
ETHTOOL_A_EEE_ENABLED
bool
EEE 已启用
ETHTOOL_A_EEE_TX_LPI_ENABLED
bool
Tx lpi 已启用
ETHTOOL_A_EEE_TX_LPI_TIMER
u32
Tx lpi 超时(以 us 为单位)
ETHTOOL_A_EEE_MODES_OURS
用于列出要为其公布 EEE 的链路模式(如果没有掩码),或者指定对列表的更改(如果有掩码)。netlink 接口允许报告所有链路模式的 EEE 状态,但目前只能设置前 32 个链路模式,因为这是 ethtool_ops
回调支持的模式。
TSINFO_GET¶
获取时间戳信息,如 ETHTOOL_GET_TS_INFO
ioctl 请求。
请求内容
ETHTOOL_A_TSINFO_HEADER
嵌套
请求标头
ETHTOOL_A_TSINFO_HWTSTAMP_PROVIDER
嵌套
PTP hw 时钟提供程序
内核响应内容
ETHTOOL_A_TSINFO_HEADER
嵌套
请求标头
ETHTOOL_A_TSINFO_TIMESTAMPING
位集
SO_TIMESTAMPING 标志
ETHTOOL_A_TSINFO_TX_TYPES
位集
支持的 Tx 类型
ETHTOOL_A_TSINFO_RX_FILTERS
位集
支持的 Rx 过滤器
ETHTOOL_A_TSINFO_PHC_INDEX
u32
PTP hw 时钟索引
ETHTOOL_A_TSINFO_STATS
嵌套
HW 时间戳统计信息
如果没有关联的 PHC,则缺少 ETHTOOL_A_TSINFO_PHC_INDEX
(对于这种情况没有特殊值)。如果位集属性为空(未设置任何位),则会省略这些属性。
其他硬件时间戳统计信息响应内容
ETHTOOL_A_TS_STAT_TX_PKTS
uint
带有 Tx HW 时间戳的数据包
ETHTOOL_A_TS_STAT_TX_LOST
uint
Tx HW 时间戳未到达计数
ETHTOOL_A_TS_STAT_TX_ERR
uint
HW 错误请求 Tx 时间戳计数
ETHTOOL_A_TS_STAT_TX_ONESTEP_PKTS_UNCONFIRMED
uint
具有未确认传递的单步 HW TX 时间戳的数据包
CABLE_TEST¶
启动电缆测试。
请求内容
ETHTOOL_A_CABLE_TEST_HEADER
嵌套
请求标头
通知内容
以太网电缆通常包含 1、2 或 4 对。只有当线对出现故障并因此产生反射时,才能测量线对的长度。有关故障的信息可能不可用,具体取决于特定的硬件。因此,通知消息的内容大多是可选的。可以任意次数、任意顺序地重复这些属性,用于任意数量的线对。
该示例显示了为 T2 电缆(即两对线)完成测试时发送的通知。一对线是正常的,因此没有长度信息。第二对线有故障,因此有长度信息。
ETHTOOL_A_CABLE_TEST_HEADER
嵌套
回复标头
ETHTOOL_A_CABLE_TEST_STATUS
u8
已完成
ETHTOOL_A_CABLE_TEST_NTF_NEST
嵌套
所有结果
ETHTOOL_A_CABLE_NEST_RESULT
嵌套
电缆测试结果
ETHTOOL_A_CABLE_RESULTS_PAIR
u8
线对编号
ETHTOOL_A_CABLE_RESULTS_CODE
u8
结果代码
ETHTOOL_A_CABLE_NEST_RESULT
嵌套
电缆测试结果
ETHTOOL_A_CABLE_RESULTS_PAIR
u8
线对编号
ETHTOOL_A_CABLE_RESULTS_CODE
u8
结果代码
ETHTOOL_A_CABLE_RESULT_SRC
u32
信息来源
ETHTOOL_A_CABLE_NEST_FAULT_LENGTH
嵌套
电缆长度
ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR
u8
线对编号
ETHTOOL_A_CABLE_FAULT_LENGTH_CM
u32
长度(以厘米为单位)
ETHTOOL_A_CABLE_FAULT_LENGTH_SRC
u32
信息来源
CABLE_TEST TDR¶
启动电缆测试并报告原始 TDR 数据
请求内容
ETHTOOL_A_CABLE_TEST_TDR_HEADER
嵌套
回复标头
ETHTOOL_A_CABLE_TEST_TDR_CFG
嵌套
测试配置
ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE
u32
第一个数据距离
ETHTOOL_A_CABLE_STEP_LAST_DISTANCE
u32
最后一个数据距离
ETHTOOL_A_CABLE_STEP_STEP_DISTANCE
u32
每个步长的距离
ETHTOOL_A_CABLE_TEST_TDR_CFG_PAIR
u8
要测试的线对
ETHTOOL_A_CABLE_TEST_TDR_CFG 是可选的,嵌套的所有成员也是可选的。所有距离均以厘米表示。PHY 将距离作为指导,并四舍五入到它实际支持的最接近的距离。如果传递了一个线对,则仅测试该线对。否则,将测试所有线对。
通知内容
原始 TDR 数据是通过将脉冲发送到电缆中并记录给定距离的反射脉冲的幅度来收集的。
收集 TDR 数据可能需要几秒钟,尤其是在以 1 米的间隔探测整个 100 米时。当测试开始时,将发送一个通知,其中仅包含值为 ETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED 的 ETHTOOL_A_CABLE_TEST_TDR_STATUS。
当测试完成后,将发送第二个通知,其中包含值为 ETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED 的 ETHTOOL_A_CABLE_TEST_TDR_STATUS 和 TDR 数据。
该消息可以选择包含沿电缆发送的脉冲的幅度。以 mV 为单位测量。反射不应大于传输的脉冲。
在原始 TDR 数据之前,应有一个 ETHTOOL_A_CABLE_TDR_NEST_STEP 嵌套,其中包含有关第一个读数、最后一个读数以及每个读数之间的步长的电缆距离的信息。距离以厘米为单位测量。这些应该是 PHY 使用的确切值。如果本地测量分辨率大于 1 厘米,则这些值可能与用户请求的值不同。
对于沿电缆的每个步长,使用 ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE 报告给定线对的反射幅度。
ETHTOOL_A_CABLE_TEST_TDR_HEADER
嵌套
回复标头
ETHTOOL_A_CABLE_TEST_TDR_STATUS
u8
已完成
ETHTOOL_A_CABLE_TEST_TDR_NTF_NEST
嵌套
所有结果
ETHTOOL_A_CABLE_TDR_NEST_PULSE
嵌套
TX 脉冲幅度
ETHTOOL_A_CABLE_PULSE_mV
s16
脉冲幅度
ETHTOOL_A_CABLE_NEST_STEP
嵌套
TDR 步长信息
ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE
u32
第一个数据距离
ETHTOOL_A_CABLE_STEP_LAST_DISTANCE
u32
最后一个数据距离
ETHTOOL_A_CABLE_STEP_STEP_DISTANCE
u32
每个步长的距离
ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE
嵌套
反射幅度
ETHTOOL_A_CABLE_RESULTS_PAIR
u8
线对编号
ETHTOOL_A_CABLE_AMPLITUDE_mV
s16
反射幅度
ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE
嵌套
反射幅度
ETHTOOL_A_CABLE_RESULTS_PAIR
u8
线对编号
ETHTOOL_A_CABLE_AMPLITUDE_mV
s16
反射幅度
ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE
嵌套
反射幅度
ETHTOOL_A_CABLE_RESULTS_PAIR
u8
线对编号
ETHTOOL_A_CABLE_AMPLITUDE_mV
s16
反射幅度
TUNNEL_INFO¶
获取 NIC 感知的隧道状态信息。
请求内容
ETHTOOL_A_TUNNEL_INFO_HEADER
嵌套
请求标头
内核响应内容
ETHTOOL_A_TUNNEL_INFO_HEADER
嵌套
回复标头
ETHTOOL_A_TUNNEL_INFO_UDP_PORTS
嵌套
所有 UDP 端口表
ETHTOOL_A_TUNNEL_UDP_TABLE
嵌套
一个 UDP 端口表
ETHTOOL_A_TUNNEL_UDP_TABLE_SIZE
u32
表的最大大小
ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES
位集
表可以容纳的隧道类型
ETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY
嵌套
卸载的 UDP 端口
ETHTOOL_A_TUNNEL_UDP_ENTRY_PORT
be16
UDP 端口
ETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE
u32
隧道类型
对于 UDP 隧道表,空的 ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES
表示该表包含静态条目,由 NIC 硬编码。
FEC_GET¶
获取 FEC 配置和状态,如 ETHTOOL_GFECPARAM
ioctl 请求。
请求内容
ETHTOOL_A_FEC_HEADER
嵌套
请求标头
内核响应内容
ETHTOOL_A_FEC_HEADER
嵌套
请求标头
ETHTOOL_A_FEC_MODES
位集
配置的模式
ETHTOOL_A_FEC_AUTO
bool
FEC 模式自动选择
ETHTOOL_A_FEC_ACTIVE
u32
活动 FEC 模式的索引
ETHTOOL_A_FEC_STATS
嵌套
FEC 统计信息
ETHTOOL_A_FEC_ACTIVE
是当前在接口上活动的 FEC 链路模式的位索引。如果设备不支持 FEC,则可能不存在此属性。
ETHTOOL_A_FEC_MODES
和 ETHTOOL_A_FEC_AUTO
仅在禁用自动协商时才有意义。如果 ETHTOOL_A_FEC_AUTO
为非零,则驱动程序将根据 SFP 模块的参数自动选择 FEC 模式。这相当于 ioctl 接口的 ETHTOOL_FEC_AUTO
位。ETHTOOL_A_FEC_MODES
使用链路模式位(而不是旧的 ETHTOOL_FEC_*
位)来携带当前 FEC 配置。
如果在 ETHTOOL_A_HEADER_FLAGS
中设置了 ETHTOOL_FLAG_STATS
,则会报告 ETHTOOL_A_FEC_STATS
。每个属性都携带一个 64 位统计信息数组。数组中的第一个条目包含端口上的事件总数,而以下条目是与通道/PCS 实例对应的计数器。数组中的条目数将是
0 |
设备不支持 FEC 统计信息 |
1 |
设备不支持按通道细分 |
1 + #lanes |
设备完全支持 FEC 统计信息 |
驱动程序在以下结构中填写统计信息
-
struct ethtool_fec_stats¶
IEEE 802.3 FEC 的统计信息
定义:
struct ethtool_fec_stats {
struct ethtool_fec_stat {
u64 total;
u64 lanes[ETHTOOL_MAX_LANES];
} corrected_blocks, uncorrectable_blocks, corrected_bits;
};
成员
corrected_blocks
FEC 校正的接收块数 作为
ETHTOOL_A_FEC_STAT_CORRECTED
报告给用户空间。相当于标准中的 30.5.1.1.17 aFECCorrectedBlocks。
uncorrectable_blocks
FEC 无法校正的接收块数 作为
ETHTOOL_A_FEC_STAT_UNCORR
报告给用户空间。相当于标准中的 30.5.1.1.18 aFECUncorrectableBlocks。
corrected_bits
FEC 校正的位数 类似于 corrected_blocks,但计数的是单个位更改,而不是整个 FEC 数据块。这是一个非标准统计信息。作为
ETHTOOL_A_FEC_STAT_CORR_BITS
报告给用户空间。
描述
对于上述每个字段,两个子结构成员是
lanes:标准定义的每个通道/PCS 实例的计数
- total:整个端口的错误计数,适用于无法报告每个通道统计信息的驱动程序
每个通道的统计信息
驱动程序应仅填写总统计信息或每个通道的统计信息,核心将负责将通道值加起来以生成总数。
FEC_SET¶
设置 FEC 参数,如 ETHTOOL_SFECPARAM
ioctl 请求。
请求内容
ETHTOOL_A_FEC_HEADER
嵌套
请求标头
ETHTOOL_A_FEC_MODES
位集
配置的模式
ETHTOOL_A_FEC_AUTO
bool
FEC 模式自动选择
FEC_SET
仅在禁用自动协商时才有意义。否则,FEC 模式将作为自动协商的一部分选择。
ETHTOOL_A_FEC_MODES
选择应使用的 FEC 模式。建议仅设置一位,如果设置了多个位,则驱动程序可以以特定于实现的方式在它们之间进行选择。
ETHTOOL_A_FEC_AUTO
请求驱动程序根据 SFP 模块参数选择 FEC 模式。这并不意味着自动协商。
MODULE_EEPROM_GET¶
获取模块 EEPROM 数据转储。此接口旨在一次允许最多 1/2 页的转储。这意味着仅允许 128 字节(或更少)的转储,而不会跨越位于偏移量 128 的半页边界。对于除 0 以外的页面,仅可访问高 128 字节。
请求内容
ETHTOOL_A_MODULE_EEPROM_HEADER
嵌套
请求标头
ETHTOOL_A_MODULE_EEPROM_OFFSET
u32
页面内的偏移量
ETHTOOL_A_MODULE_EEPROM_LENGTH
u32
要读取的字节数
ETHTOOL_A_MODULE_EEPROM_PAGE
u8
页码
ETHTOOL_A_MODULE_EEPROM_BANK
u8
库号
ETHTOOL_A_MODULE_EEPROM_I2C_ADDRESS
u8
页面 I2C 地址
如果未指定 ETHTOOL_A_MODULE_EEPROM_BANK
,则假定为库 0。
内核响应内容
ETHTOOL_A_MODULE_EEPROM_HEADER
嵌套
回复标头
ETHTOOL_A_MODULE_EEPROM_DATA
二进制
来自模块 EEPROM 的字节数组
ETHTOOL_A_MODULE_EEPROM_DATA
的属性长度等于驱动程序实际读取的字节数。
STATS_GET¶
获取接口的标准统计信息。请注意,这不是 ETHTOOL_GSTATS
的重新实现,ETHTOOL_GSTATS
会公开驱动程序定义的统计信息。
请求内容
ETHTOOL_A_STATS_HEADER
嵌套
请求标头
ETHTOOL_A_STATS_SRC
u32
统计信息的来源
ETHTOOL_A_STATS_GROUPS
位集
请求的统计信息组
内核响应内容
ETHTOOL_A_STATS_HEADER
嵌套
回复标头
ETHTOOL_A_STATS_SRC
u32
统计信息的来源
ETHTOOL_A_STATS_GRP
嵌套
一个或多个统计信息组
ETHTOOL_A_STATS_GRP_ID
u32
组 ID -
ETHTOOL_STATS_*
ETHTOOL_A_STATS_GRP_SS_ID
u32
名称的字符串集 ID
ETHTOOL_A_STATS_GRP_STAT
嵌套
包含统计信息的嵌套
ETHTOOL_A_STATS_GRP_HIST_RX
嵌套
直方图统计信息 (Rx)
ETHTOOL_A_STATS_GRP_HIST_TX
嵌套
直方图统计信息 (Tx)
用户通过 ETHTOOL_A_STATS_GROUPS
位集指定他们请求哪些统计信息组。当前定义的值是
ETHTOOL_STATS_ETH_MAC
eth-mac
基本 IEEE 802.3 MAC 统计信息 (30.3.1.1.*)
ETHTOOL_STATS_ETH_PHY
eth-phy
基本 IEEE 802.3 PHY 统计信息 (30.3.2.1.*)
ETHTOOL_STATS_ETH_CTRL
eth-ctrl
基本 IEEE 802.3 MAC Ctrl 统计信息 (30.3.3.*)
ETHTOOL_STATS_RMON
rmon
RMON (RFC 2819) 统计信息
ETHTOOL_STATS_PHY
phy
其他 PHY 统计信息,未由 IEEE 定义
每个组都应该在回复中有一个相应的 ETHTOOL_A_STATS_GRP
。ETHTOOL_A_STATS_GRP_ID
标识统计信息嵌套包含哪个组的统计信息。ETHTOOL_A_STATS_GRP_SS_ID
标识组中统计信息名称的字符串集 ID(如果可用)。
统计信息将添加到 ETHTOOL_A_STATS_GRP
嵌套中的 ETHTOOL_A_STATS_GRP_STAT
下。ETHTOOL_A_STATS_GRP_STAT
应包含一个 8 字节 (u64) 属性 - 该属性的类型是统计信息 ID,值是统计信息的值。每个组都有自己对统计信息 ID 的解释。属性 ID 对应于来自 ETHTOOL_A_STATS_GRP_SS_ID
标识的字符串集的字符串。复杂的统计信息(例如 RMON 直方图条目)也列在 ETHTOOL_A_STATS_GRP
中,并且在字符串集中没有定义的字符串。
RMON “直方图” 计数器计算给定大小范围内的数据包数。由于 RFC 未指定超出标准 1518 MTU 的范围,因此设备在存储桶定义方面有所不同。因此,数据包范围的定义留给每个驱动程序。
ETHTOOL_A_STATS_GRP_HIST_RX
和 ETHTOOL_A_STATS_GRP_HIST_TX
嵌套包含以下属性
ETHTOOL_A_STATS_RMON_HIST_BKT_LOW
u32
数据包大小存储桶的下限
ETHTOOL_A_STATS_RMON_HIST_BKT_HI
u32
存储桶的上限
ETHTOOL_A_STATS_RMON_HIST_VAL
u64
数据包计数器
低限和高限是包含性的,例如
RFC 统计信息
低限
高限
etherStatsPkts64Octets
0
64
etherStatsPkts512to1023Octets
512
1023
ETHTOOL_A_STATS_SRC
是可选的。与 PAUSE_GET
类似,它从 enum ethtool_mac_stats_src
中获取值。如果请求中缺少此属性,则将在响应中提供统计信息,其中 ETHTOOL_A_STATS_SRC
属性等于 ETHTOOL_MAC_STATS_SRC_AGGREGATE
。
PHC_VCLOCKS_GET¶
查询设备 PHC 虚拟时钟信息。
请求内容
ETHTOOL_A_PHC_VCLOCKS_HEADER
嵌套
请求标头
内核响应内容
ETHTOOL_A_PHC_VCLOCKS_HEADER
嵌套
回复标头
ETHTOOL_A_PHC_VCLOCKS_NUM
u32
PHC 虚拟时钟数
ETHTOOL_A_PHC_VCLOCKS_INDEX
s32
PHC 索引数组
MODULE_GET¶
获取收发器模块参数。
请求内容
ETHTOOL_A_MODULE_HEADER
嵌套
请求标头
内核响应内容
ETHTOOL_A_MODULE_HEADER
嵌套
回复标头
ETHTOOL_A_MODULE_POWER_MODE_POLICY
u8
电源模式策略
ETHTOOL_A_MODULE_POWER_MODE
u8
运行电源模式
可选的 ETHTOOL_A_MODULE_POWER_MODE_POLICY
属性对主机强制执行的收发器模块电源模式策略进行编码。默认策略取决于驱动程序,但“auto”是推荐的默认策略,应由新驱动程序和不严格遵守传统行为的驱动程序实现。
可选的 ETHTHOOL_A_MODULE_POWER_MODE
属性编码了收发器模块的运行电源模式策略。只有在模块插入时才会报告。可能的值如下:
-
enum ethtool_module_power_mode¶
插入模块电源模式
常量
ETHTOOL_MODULE_POWER_MODE_LOW
模块处于低功耗模式。
ETHTOOL_MODULE_POWER_MODE_HIGH
模块处于高功耗模式。
MODULE_SET¶
设置收发器模块参数。
请求内容
ETHTOOL_A_MODULE_HEADER
嵌套
请求标头
ETHTOOL_A_MODULE_POWER_MODE_POLICY
u8
电源模式策略
设置后,可选的 ETHTOOL_A_MODULE_POWER_MODE_POLICY
属性用于设置主机强制执行的收发器模块电源策略。可能的值如下:
-
enum ethtool_module_power_mode_policy¶
插入模块电源模式策略
常量
ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH
模块始终处于高功耗模式。
ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO
当使用该模块的第一个端口以管理方式启动时,主机将模块切换到高功耗模式;当使用该模块的最后一个端口以管理方式关闭时,主机将模块切换到低功耗模式。
对于 SFF-8636 模块,主机根据规范 2.10a 修订版中的表 6-10 强制进入低功耗模式。
对于 CMIS 模块,主机根据规范 5.0 修订版中的表 6-12 强制进入低功耗模式。
PSE_GET¶
获取 PSE 属性。
请求内容
ETHTOOL_A_PSE_HEADER
嵌套
请求标头
内核响应内容
ETHTOOL_A_PSE_HEADER
嵌套
回复标头
ETHTOOL_A_PODL_PSE_ADMIN_STATE
u32
PoDL PSE 功能的运行状态
ETHTOOL_A_PODL_PSE_PW_D_STATUS
u32
PoDL PSE 的功率检测状态。
ETHTOOL_A_C33_PSE_ADMIN_STATE
u32
PoE PSE 功能的运行状态。
ETHTOOL_A_C33_PSE_PW_D_STATUS
u32
PoE PSE 的功率检测状态。
ETHTOOL_A_C33_PSE_PW_CLASS
u32
PoE PSE 的功率等级。
ETHTOOL_A_C33_PSE_ACTUAL_PW
u32
PoE PSE 上的实际功率消耗。
ETHTOOL_A_C33_PSE_EXT_STATE
u32
PoE PSE 的功率扩展状态。
ETHTOOL_A_C33_PSE_EXT_SUBSTATE
u32
PoE PSE 的功率扩展子状态。
ETHTOOL_A_C33_PSE_AVAIL_PW_LIMIT
u32
PoE PSE 的当前配置功率限制。
ETHTOOL_A_C33_PSE_PW_LIMIT_RANGES
嵌套
支持的功率限制配置范围。
设置后,可选的 ETHTOOL_A_PODL_PSE_ADMIN_STATE
属性标识 PoDL PSE 功能的运行状态。可以使用 ETHTOOL_A_PODL_PSE_ADMIN_CONTROL
操作更改 PSE 功能的运行状态。此属性对应于 IEEE 802.3-2018
30.15.1.1.2 aPoDLPSEAdminState。可能的值如下:
-
enum ethtool_podl_pse_admin_state¶
PoDL PSE 功能的运行状态。IEEE 802.3-2018 30.15.1.1.2 aPoDLPSEAdminState
常量
ETHTOOL_PODL_PSE_ADMIN_STATE_UNKNOWN
PoDL PSE 功能的状态未知
ETHTOOL_PODL_PSE_ADMIN_STATE_DISABLED
PoDL PSE 功能已禁用
ETHTOOL_PODL_PSE_ADMIN_STATE_ENABLED
PoDL PSE 功能已启用
对于实现 IEEE 802.3-2022
30.9.1.1.2 aPSEAdminState 的 ETHTOOL_A_C33_PSE_ADMIN_STATE
也是如此。
-
enum ethtool_c33_pse_admin_state¶
PoDL PSE 功能的运行状态。IEEE 802.3-2022 30.9.1.1.2 aPSEAdminState
常量
ETHTOOL_C33_PSE_ADMIN_STATE_UNKNOWN
PSE 功能的状态未知
ETHTOOL_C33_PSE_ADMIN_STATE_DISABLED
PSE 功能已禁用
ETHTOOL_C33_PSE_ADMIN_STATE_ENABLED
PSE 功能已启用
设置后,可选的 ETHTOOL_A_PODL_PSE_PW_D_STATUS
属性标识 PoDL PSE 的功率检测状态。该状态取决于内部 PSE 状态机和自动 PD 分类支持。此属性对应于 IEEE 802.3-2018
30.15.1.1.3 aPoDLPSEPowerDetectionStatus。可能的值如下:
-
enum ethtool_podl_pse_pw_d_status¶
PoDL PSE 的功率检测状态。IEEE 802.3-2018 30.15.1.1.3 aPoDLPSEPowerDetectionStatus
常量
ETHTOOL_PODL_PSE_PW_D_STATUS_UNKNOWN
PoDL PSE
ETHTOOL_PODL_PSE_PW_D_STATUS_DISABLED
“当 PoDL PSE 状态图变量 mr_pse_enable 为 false 时,枚举“disabled”被断言为 true”
ETHTOOL_PODL_PSE_PW_D_STATUS_SEARCHING
“当 PSE 状态图变量 pi_detecting 或 pi_classifying 中的任一个为 true 时,枚举“searching”被断言为 true。”
ETHTOOL_PODL_PSE_PW_D_STATUS_DELIVERING
“当 PoDL PSE 状态图变量 pi_powered 为 true 时,枚举“deliveringPower”被断言为 true。”
ETHTOOL_PODL_PSE_PW_D_STATUS_SLEEP
“当 PoDL PSE 状态图变量 pi_sleeping 为 true 时,枚举“sleep”被断言为 true。”
ETHTOOL_PODL_PSE_PW_D_STATUS_IDLE
“当 PoDL PSE 状态图变量 pi_prebiased*!pi_sleeping 的逻辑组合为 true 时,枚举“idle”被断言为 true。”
ETHTOOL_PODL_PSE_PW_D_STATUS_ERROR
“当 PoDL PSE 状态图变量 overload_held 为 true 时,枚举“error”被断言为 true。”
对于实现 IEEE 802.3-2022
30.9.1.1.5 aPSEPowerDetectionStatus 的 ETHTOOL_A_C33_PSE_ADMIN_PW_D_STATUS
也是如此。
-
enum ethtool_c33_pse_pw_d_status¶
PSE 的功率检测状态。IEEE 802.3-2022 30.9.1.1.3 aPoDLPSEPowerDetectionStatus
常量
ETHTOOL_C33_PSE_PW_D_STATUS_UNKNOWN
PSE 状态未知
ETHTOOL_C33_PSE_PW_D_STATUS_DISABLED
枚举“disabled”指示 PSE 状态图处于 DISABLED 状态。
ETHTOOL_C33_PSE_PW_D_STATUS_SEARCHING
枚举“searching”指示 PSE 状态图处于除列出的状态之外的状态。
ETHTOOL_C33_PSE_PW_D_STATUS_DELIVERING
枚举“deliveringPower”指示 PSE 状态图处于 POWER_ON 状态。
ETHTOOL_C33_PSE_PW_D_STATUS_TEST
枚举“test”指示 PSE 状态图处于 TEST_MODE 状态。
ETHTOOL_C33_PSE_PW_D_STATUS_FAULT
枚举“fault”指示 PSE 状态图处于 TEST_ERROR 状态。
ETHTOOL_C33_PSE_PW_D_STATUS_OTHERFAULT
枚举“otherFault”指示 PSE 状态图由于变量 error_condition = true 而处于 IDLE 状态。
设置后,可选的 ETHTOOL_A_C33_PSE_PW_CLASS
属性标识 C33 PSE 的功率等级。它取决于 PSE 和 PD 之间协商的等级。此属性对应于 IEEE 802.3-2022
30.9.1.1.8 aPSEPowerClassification。
设置后,可选的 ETHTOOL_A_C33_PSE_ACTUAL_PW
属性标识 C33 PSE 消耗的实际功率。此属性对应于 IEEE 802.3-2022
30.9.1.1.23 aPSEActualPower。实际功率以 mW 为单位报告。
设置后,可选的 ETHTOOL_A_C33_PSE_EXT_STATE
属性标识 C33 PSE 的扩展错误状态。可能的值如下:
-
enum ethtool_c33_pse_ext_state¶
PSE 扩展状态功能的组。IEEE 802.3-2022 33.2.4.4 变量
常量
ETHTOOL_C33_PSE_EXT_STATE_ERROR_CONDITION
error_condition 状态组
ETHTOOL_C33_PSE_EXT_STATE_MR_MPS_VALID
mr_mps_valid 状态组
ETHTOOL_C33_PSE_EXT_STATE_MR_PSE_ENABLE
mr_pse_enable 状态组
ETHTOOL_C33_PSE_EXT_STATE_OPTION_DETECT_TED
option_detect_ted 状态组
ETHTOOL_C33_PSE_EXT_STATE_OPTION_VPORT_LIM
option_vport_lim 状态组
ETHTOOL_C33_PSE_EXT_STATE_OVLD_DETECTED
ovld_detected 状态组
ETHTOOL_C33_PSE_EXT_STATE_PD_DLL_POWER_TYPE
pd_dll_power_type 状态组
ETHTOOL_C33_PSE_EXT_STATE_POWER_NOT_AVAILABLE
power_not_available 状态组
ETHTOOL_C33_PSE_EXT_STATE_SHORT_DETECTED
short_detected 状态组
设置后,可选的 ETHTOOL_A_C33_PSE_EXT_SUBSTATE
属性标识 C33 PSE 的扩展错误状态。可能的值如下:可能的值如下:
-
enum ethtool_c33_pse_ext_substate_error_condition¶
error_condition 状态函数。IEEE 802.3-2022 33.2.4.4 变量
常量
ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_NON_EXISTING_PORT
不存在的端口号
ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_UNDEFINED_PORT
未定义的端口
ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_INTERNAL_HW_FAULT
内部硬件故障
ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_COMM_ERROR_AFTER_FORCE_ON
强制开启后的通信错误
ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_UNKNOWN_PORT_STATUS
未知的端口状态
ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_HOST_CRASH_TURN_OFF
主机崩溃关闭
ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_HOST_CRASH_FORCE_SHUTDOWN
主机崩溃强制关机
ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_CONFIG_CHANGE
配置更改
ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_DETECTED_OVER_TEMP
检测到过温
描述
error_condition 是一个变量,指示特定于实现的故障情况或可选的其他系统故障的状态,这些故障阻止 PSE 满足表 33–11 中的规范,并要求 PSE 不要提供电源。这些错误情况与图 33–10 中的状态图监控的错误情况不同。
-
enum ethtool_c33_pse_ext_substate_mr_pse_enable¶
mr_pse_enable 状态函数。IEEE 802.3-2022 33.2.4.4 变量
常量
ETHTOOL_C33_PSE_EXT_SUBSTATE_MR_PSE_ENABLE_DISABLE_PIN_ACTIVE
禁用引脚激活
描述
mr_pse_enable 是一个控制变量,用于选择 PSE 操作和测试功能。
-
enum ethtool_c33_pse_ext_substate_option_detect_ted¶
option_detect_ted 状态函数。IEEE 802.3-2022 33.2.4.4 变量
常量
ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_DETECT_TED_DET_IN_PROCESS
检测过程中
ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_DETECT_TED_CONNECTION_CHECK_ERROR
连接检查错误
描述
option_detect_ted 是一个变量,指示在 ted_timer 间隔期间 PSE 是否可以执行检测。
-
enum ethtool_c33_pse_ext_substate_option_vport_lim¶
option_vport_lim 状态函数。IEEE 802.3-2022 33.2.4.4 变量
常量
ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_VPORT_LIM_HIGH_VOLTAGE
主电源电压高
ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_VPORT_LIM_LOW_VOLTAGE
主电源电压低
ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_VPORT_LIM_VOLTAGE_INJECTION
电压注入到端口
描述
option_vport_lim 是一个可选变量,指示 VPSE 在正常运行状态下是否超出运行范围。
-
enum ethtool_c33_pse_ext_substate_ovld_detected¶
ovld_detected 状态函数。IEEE 802.3-2022 33.2.4.4 变量
常量
ETHTOOL_C33_PSE_EXT_SUBSTATE_OVLD_DETECTED_OVERLOAD
过载状态
描述
ovld_detected 是一个变量,指示 PSE 输出电流是否在至少一秒滑动时间的 TCUT 内处于过载状态(参见 33.2.7.6)。
-
enum ethtool_c33_pse_ext_substate_power_not_available¶
power_not_available 状态函数。IEEE 802.3-2022 33.2.4.4 变量
常量
ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_BUDGET_EXCEEDED
控制器的功率预算超出
ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_PORT_PW_LIMIT_EXCEEDS_CONTROLLER_BUDGET
配置的端口功率限制超出控制器功率预算
ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_PD_REQUEST_EXCEEDS_PORT_LIMIT
来自 PD 的功率请求超出端口限制
ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_HW_PW_LIMIT
由于硬件功率限制而拒绝供电
描述
power_not_available 是一个变量,当 PSE 不再能够提供足够的功率来支持连接的 PD 时,以依赖于实现的方式断言。足够的功率由分类定义;参见 33.2.6。
-
enum ethtool_c33_pse_ext_substate_short_detected¶
short_detected 状态函数。IEEE 802.3-2022 33.2.4.4 变量
常量
ETHTOOL_C33_PSE_EXT_SUBSTATE_SHORT_DETECTED_SHORT_CONDITION
检测到短路情况
描述
short_detected 是一个变量,指示 PSE 输出电流是否在滑动窗口内(参见 33.2.7.7)在 TLIM 内处于短路状态。
设置后,可选的 ETHTOOL_A_C33_PSE_AVAIL_PW_LIMIT
属性标识 C33 PSE 的功率限制,单位为 mW。
设置后,可选的 ETHTOOL_A_C33_PSE_PW_LIMIT_RANGES
嵌套属性通过 ETHTOOL_A_C33_PSE_PWR_VAL_LIMIT_RANGE_MIN
和 ETHTOOL_A_C33_PSE_PWR_VAL_LIMIT_RANGE_MAX
标识 C33 PSE 功率限制范围。如果控制器使用固定类,则最小值和最大值将相等。
PSE_SET¶
设置 PSE 参数。
请求内容
ETHTOOL_A_PSE_HEADER
嵌套
请求标头
ETHTOOL_A_PODL_PSE_ADMIN_CONTROL
u32
控制 PoDL PSE 管理状态
ETHTOOL_A_C33_PSE_ADMIN_CONTROL
u32
控制 PSE 管理状态
ETHTOOL_A_C33_PSE_AVAIL_PWR_LIMIT
u32
控制 PoE PSE 可用功率限制
设置后,可选的 ETHTOOL_A_PODL_PSE_ADMIN_CONTROL
属性用于控制 PoDL PSE 管理功能。此选项实现 IEEE 802.3-2018
30.15.1.2.1 acPoDLPSEAdminControl。有关支持的值,请参见 ETHTOOL_A_PODL_PSE_ADMIN_STATE
。
对于实现 IEEE 802.3-2022
30.9.1.2.1 acPSEAdminControl 的 ETHTOOL_A_C33_PSE_ADMIN_CONTROL
也是如此。
设置后,可选的 ETHTOOL_A_C33_PSE_AVAIL_PWR_LIMIT
属性用于控制 C33 PSE 的可用功率限制值,单位为毫瓦。此属性对应于 IEEE 802.3-2022
33.2.4.4 变量和 145.2.5.4 变量中描述的 pse_available_power 变量,这些变量在功率等级中进行了描述。
决定对此接口使用毫瓦,以便与其他也使用毫瓦的功率监控接口统一,并与各种记录功率消耗(以瓦而不是等级)的现有产品保持一致。如果需要基于等级的功率限制配置,则可以在用户空间中完成转换,例如通过 ethtool。
RSS_GET¶
获取与接口的 RSS 上下文关联的间接表、哈希键和哈希函数信息,类似于 ETHTOOL_GRSSH
ioctl 请求。
请求内容
|
嵌套 |
请求标头 |
|
u32 |
上下文编号 |
|
u32 |
起始上下文编号(转储) |
ETHTOOL_A_RSS_CONTEXT
指定要查询的 RSS 上下文编号,如果未设置,则查询上下文 0(主上下文)。转储可以按设备过滤(仅列出给定 netdev 的上下文)。不支持过滤单个上下文编号,但 ETHTOOL_A_RSS_START_CONTEXT
可用于从给定的编号开始转储上下文(主要用于忽略上下文 0 并仅转储其他上下文)。
内核响应内容
|
嵌套 |
回复标头 |
|
u32 |
上下文编号 |
|
u32 |
RSS 哈希函数 |
|
二进制 |
间接表字节 |
|
二进制 |
哈希键字节 |
|
u32 |
RSS 输入数据转换 |
ETHTOOL_A_RSS_HFUNC 属性是一个位图,指示正在使用的哈希函数。当前支持的选项有 toeplitz、xor 或 crc32。ETHTOOL_A_RSS_INDIR 属性返回 RSS 间接表,其中每个字节指示队列编号。ETHTOOL_A_RSS_INPUT_XFRM 属性是一个位图,指示应用于输入协议字段的转换类型,然后再提供给 RSS hfunc。当前支持的选项有 symmetric-xor 和 symmetric-or-xor。
PLCA_GET_CFG¶
获取 IEEE 802.3cg-2019 Clause 148 物理层冲突避免 (PLCA) 协调子层 (RS) 属性。
请求内容
ETHTOOL_A_PLCA_HEADER
嵌套
请求标头
内核响应内容
ETHTOOL_A_PLCA_HEADER
嵌套
回复标头
ETHTOOL_A_PLCA_VERSION
u16
支持的 PLCA 管理接口标准/版本
ETHTOOL_A_PLCA_ENABLED
u8
PLCA 管理状态
ETHTOOL_A_PLCA_NODE_ID
u32
PLCA 唯一本地节点 ID
ETHTOOL_A_PLCA_NODE_CNT
u32
网络上的 PLCA 节点数,包括协调器
ETHTOOL_A_PLCA_TO_TMR
u32
传输机会计时器值,单位为比特时间 (BT)
ETHTOOL_A_PLCA_BURST_CNT
u32
节点在单个 TO 中允许发送的额外数据包数
ETHTOOL_A_PLCA_BURST_TMR
u32
在终止突发之前等待 MAC 传输新帧的时间
设置后,可选的 ETHTOOL_A_PLCA_VERSION
属性指示 PLCA 管理接口符合的标准和版本。如果未设置,则接口是供应商特定的,并且(可能)由驱动程序提供。OPEN Alliance SIG 为嵌入 PLCA 协调子层的 10BASE-T1S PHY 指定了一个标准寄存器映射。请参见 https://www.opensig.org/about/specifications/ 上的“10BASE-T1S PLCA 管理寄存器”。
设置后,可选的 ETHTOOL_A_PLCA_ENABLED
属性指示 PLCA RS 的管理状态。如果未设置,则节点以“普通” CSMA/CD 模式运行。此选项对应于 IEEE 802.3cg-2019
30.16.1.1.1 aPLCAAdminState / 30.16.1.2.1 acPLCAAdminControl。
设置后,可选的 ETHTOOL_A_PLCA_NODE_ID
属性指示 PHY 的配置本地节点 ID。此 ID 确定为节点保留哪个传输机会 (TO)。此选项对应于 IEEE 802.3cg-2019
30.16.1.1.4 aPLCALocalNodeID。此属性的有效范围是 [0 .. 255],其中 255 表示“未配置”。
设置后,可选的 ETHTOOL_A_PLCA_NODE_CNT
属性指示混合段上配置的最大 PLCA 节点数。此数字确定在 PLCA 循环期间生成的传输机会总数。此属性仅与 PLCA 协调器相关,该协调器的 aPLCALocalNodeID 设置为 0。跟随节点忽略此设置。此选项对应于 IEEE 802.3cg-2019
30.16.1.1.3 aPLCANodeCount。此属性的有效范围是 [1 .. 255]。
设置后,可选的 ETHTOOL_A_PLCA_TO_TMR
属性指示传输机会计时器的配置值,单位为比特时间。必须在共享介质的所有节点上将此值设置为相等,PLCA 才能正常工作。此选项对应于 IEEE 802.3cg-2019
30.16.1.1.5 aPLCATransmitOpportunityTimer。此属性的有效范围是 [0 .. 255]。
设置后,可选的 ETHTOOL_A_PLCA_BURST_CNT
属性指示节点在单个传输机会期间允许发送的额外数据包的配置数量。默认情况下,此属性为 0,表示节点在每个 TO 中只能发送一个帧。当大于 0 时,PLCA RS 在任何传输后保持 TO,等待 MAC 最多发送 aPLCABurstTimer BT 的新帧。每个 PLCA 循环中只能发生此次数,最多为此参数的值。之后,突发结束,TO 的正常计数恢复。此选项对应于 IEEE 802.3cg-2019
30.16.1.1.6 aPLCAMaxBurstCount。此属性的有效范围是 [0 .. 255]。
设置后,可选的 ETHTOOL_A_PLCA_BURST_TMR
属性指示当 aPLCAMaxBurstCount 大于 0 时,PLCA RS 等待 MAC 启动新传输的比特时间数。如果 MAC 未在此时间内发送新帧,则突发结束,TO 的计数恢复。否则,新帧将作为当前突发的一部分发送。此选项对应于 IEEE 802.3cg-2019
30.16.1.1.7 aPLCABurstTimer。此属性的有效范围是 [0 .. 255]。但是,对于 PLCA 突发模式按预期工作,该值应设置为大于 MAC 的帧间间隙 (IFG) 时间(加上一些余量)。
PLCA_SET_CFG¶
设置 PLCA RS 参数。
请求内容
ETHTOOL_A_PLCA_HEADER
嵌套
请求标头
ETHTOOL_A_PLCA_ENABLED
u8
PLCA 管理状态
ETHTOOL_A_PLCA_NODE_ID
u8
PLCA 唯一本地节点 ID
ETHTOOL_A_PLCA_NODE_CNT
u8
网络上的 PLCA 节点数,包括协调器
ETHTOOL_A_PLCA_TO_TMR
u8
传输机会计时器值,单位为比特时间 (BT)
ETHTOOL_A_PLCA_BURST_CNT
u8
节点在单个 TO 中允许发送的额外数据包数
ETHTOOL_A_PLCA_BURST_TMR
u8
在终止突发之前等待 MAC 传输新帧的时间
有关每个属性的描述,请参见 PLCA_GET_CFG
。
PLCA_GET_STATUS¶
获取 PLCA RS 状态信息。
请求内容
ETHTOOL_A_PLCA_HEADER
嵌套
请求标头
内核响应内容
ETHTOOL_A_PLCA_HEADER
嵌套
回复标头
ETHTOOL_A_PLCA_STATUS
u8
PLCA RS 运行状态
设置后,ETHTOOL_A_PLCA_STATUS
属性指示节点是否正在检测网络上是否存在 BEACON。此标志对应于 IEEE 802.3cg-2019
30.16.1.1.2 aPLCAStatus。
MM_GET¶
检索 802.3 MAC 合并参数。
请求内容
ETHTOOL_A_MM_HEADER
嵌套
请求标头
内核响应内容
ETHTOOL_A_MM_HEADER
嵌套
请求标头
ETHTOOL_A_MM_PMAC_ENABLED
bool
如果启用了可抢占帧和 SMD-V 帧的 RX,则设置
ETHTOOL_A_MM_TX_ENABLED
bool
如果以管理方式启用了可抢占帧的 TX,则设置(如果验证失败,则可能处于非活动状态)
ETHTOOL_A_MM_TX_ACTIVE
bool
如果以操作方式启用了可抢占帧的 TX,则设置
ETHTOOL_A_MM_TX_MIN_FRAG_SIZE
u32
以八位字节为单位的传输的非最终分段的最小大小
ETHTOOL_A_MM_RX_MIN_FRAG_SIZE
u32
以八位字节为单位的接收的非最终分段的最小大小
ETHTOOL_A_MM_VERIFY_ENABLED
bool
如果以管理方式启用了 SMD-V 帧的 TX,则设置
ETHTOOL_A_MM_VERIFY_STATUS
u8
验证功能的状态
ETHTOOL_A_MM_VERIFY_TIME
u32
验证尝试之间的延迟
ETHTOOL_A_MM_MAX_VERIFY_TIME`
u32
设备支持的最大验证间隔
ETHTOOL_A_MM_STATS
嵌套
IEEE 802.3-2018 子条款 30.14.1 oMACMergeEntity 统计计数器
这些属性由设备驱动程序通过以下结构填充
-
struct ethtool_mm_state¶
802.3 MAC 合并层状态
定义:
struct ethtool_mm_state {
u32 verify_time;
u32 max_verify_time;
enum ethtool_mm_verify_status verify_status;
bool tx_enabled;
bool tx_active;
bool pmac_enabled;
bool verify_enabled;
u32 tx_min_frag_size;
u32 rx_min_frag_size;
};
成员
verify_time
以毫秒为单位的验证尝试之间的等待时间(根据子条款 30.14.1.6 aMACMergeVerifyTime)
max_verify_time
设置请求中 verify_time 变量接受的最大值
verify_status
MM 层的验证状态机的状态(根据子条款 30.14.1.2 aMACMergeStatusVerify)
tx_enabled
如果 MM 层在 TX 方向上以管理方式启用,则设置(根据子条款 30.14.1.3 aMACMergeEnableTx)
tx_active
如果 MM 层在 TX 方向上启用,则设置,这使 FP 成为可能(根据 30.14.1.5 aMACMergeStatusTx)。如果启用了 MM,并且验证状态为已验证或已禁用,则应为 true。
pmac_enabled
如果可抢占 MAC 已通电并且能够接收可抢占数据包并响应验证帧,则设置。
verify_enabled
如果 MM 层的验证功能(发送 SMD-V 验证请求)以管理方式启用(无论当前是否处于 ETHTOOL_MM_VERIFY_STATUS_DISABLED 状态),则设置,根据子条款 30.14.1.4 aMACMergeVerifyDisableTx(但使用正逻辑而不是负逻辑)。只要设置了 pmac_enabled,设备应始终响应收到的 SMD-V 请求。
tx_min_frag_size
链路伙伴支持接收的非最终 mPacket 分段的最小大小,以八位字节为单位表示。与子条款 30.14.1.7 aMACMergeAddFragSize 的定义(以 0 到 3 的范围表示(需要根据公式 64 * (1 + addFragSize) - 4 转换为以八位字节为单位的大小))相比,此处可以指定连续且无界范围的值。
rx_min_frag_size
此设备支持接收的非最终 mPacket 分段的最小大小,以八位字节为单位表示。
ETHTOOL_A_MM_VERIFY_STATUS
将报告以下值之一
-
enum ethtool_mm_verify_status¶
MAC 合并验证功能的状态
常量
ETHTOOL_MM_VERIFY_STATUS_UNKNOWN
验证状态未知
ETHTOOL_MM_VERIFY_STATUS_INITIAL
802.3 验证状态图处于 INIT_VERIFICATION 状态
ETHTOOL_MM_VERIFY_STATUS_VERIFYING
验证状态图处于 VERIFICATION_IDLE、SEND_VERIFY 或 WAIT_FOR_RESPONSE 状态
ETHTOOL_MM_VERIFY_STATUS_SUCCEEDED
指示验证状态图处于 VERIFIED 状态
ETHTOOL_MM_VERIFY_STATUS_FAILED
验证状态图处于 VERIFY_FAIL 状态
ETHTOOL_MM_VERIFY_STATUS_DISABLED
禁用抢占操作的验证
如果在 MM_SET
命令中 ETHTOOL_A_MM_VERIFY_ENABLED
作为 false 传递,则 ETHTOOL_A_MM_VERIFY_STATUS
将报告 ETHTOOL_MM_VERIFY_STATUS_INITIAL
或 ETHTOOL_MM_VERIFY_STATUS_DISABLED
,否则应报告其他状态之一。
建议驱动程序以禁用 pMAC 开始,并在用户空间请求时启用它。还建议用户空间不要依赖于 ETHTOOL_MSG_MM_GET
请求的默认值。
如果在 ETHTOOL_A_HEADER_FLAGS
中设置了 ETHTOOL_FLAG_STATS
,则会报告 ETHTOOL_A_MM_STATS
。如果驱动程序未报告任何统计信息,则属性将为空。驱动程序在以下结构中填写统计信息
-
struct ethtool_mm_stats¶
802.3 MAC 合并层统计信息
定义:
struct ethtool_mm_stats {
u64 MACMergeFrameAssErrorCount;
u64 MACMergeFrameSmdErrorCount;
u64 MACMergeFrameAssOkCount;
u64 MACMergeFragCountRx;
u64 MACMergeFragCountTx;
u64 MACMergeHoldCount;
};
成员
MACMergeFrameAssErrorCount
接收到的具有重组错误的 MAC 帧
MACMergeFrameSmdErrorCount
由于未知或不正确的 SMD 而被拒绝的接收到的 MAC 帧/分段
MACMergeFrameAssOkCount
成功重组并传递的接收到的 MAC 帧
MACMergeFragCountRx
由于抢占而接收到的额外正确的 SMD-C mPacket 的数量
MACMergeFragCountTx
由于抢占而发送的额外 mPacket 的数量
MACMergeHoldCount
MM 层进入 HOLD 状态的次数,该状态阻止可抢占流量的传输
MM_SET¶
修改 802.3 MAC 合并层的配置。
请求内容
ETHTOOL_A_MM_VERIFY_TIME
u32
请参见 MM_GET 描述
ETHTOOL_A_MM_VERIFY_ENABLED
bool
请参见 MM_GET 描述
ETHTOOL_A_MM_TX_ENABLED
bool
请参见 MM_GET 描述
ETHTOOL_A_MM_PMAC_ENABLED
bool
请参见 MM_GET 描述
ETHTOOL_A_MM_TX_MIN_FRAG_SIZE
u32
请参见 MM_GET 描述
这些属性通过以下结构传播到驱动程序
-
struct ethtool_mm_cfg¶
802.3 MAC 合并层配置
定义:
struct ethtool_mm_cfg {
u32 verify_time;
bool verify_enabled;
bool tx_enabled;
bool pmac_enabled;
u32 tx_min_frag_size;
};
成员
verify_time
verify_enabled
tx_enabled
pmac_enabled
tx_min_frag_size
MODULE_FW_FLASH_ACT¶
刷新收发器模块固件。
请求内容
ETHTOOL_A_MODULE_FW_FLASH_HEADER
嵌套
请求标头
ETHTOOL_A_MODULE_FW_FLASH_FILE_NAME
字符串
固件映像文件名
ETHTOOL_A_MODULE_FW_FLASH_PASSWORD
u32
收发器模块密码
固件更新过程包括三个逻辑步骤
将固件映像下载到收发器模块并验证它。
运行固件映像。
提交固件映像,以便在重置时运行它。
当给出 flash 命令时,将按该顺序执行这三个步骤。
此消息仅计划更新过程并立即返回,而不会阻塞。然后该过程异步运行。由于完成可能需要几分钟,因此在更新过程中,内核会向用户空间发出通知,以更新其状态和进度。
ETHTOOL_A_MODULE_FW_FLASH_FILE_NAME
属性编码固件映像文件名。固件映像下载到收发器模块、验证、运行和提交。
可选的 ETHTOOL_A_MODULE_FW_FLASH_PASSWORD
属性编码密码,该密码可能作为收发器模块固件更新过程的一部分是必需的。
固件更新过程可能需要几分钟才能完成。因此,在更新过程中,内核会向用户空间发出通知,以更新其状态和进度。
通知内容
ETHTOOL_A_MODULE_FW_FLASH_HEADER
嵌套
回复标头
ETHTOOL_A_MODULE_FW_FLASH_STATUS
u32
状态
ETHTOOL_A_MODULE_FW_FLASH_STATUS_MSG
字符串
状态消息
ETHTOOL_A_MODULE_FW_FLASH_DONE
uint
进度
ETHTOOL_A_MODULE_FW_FLASH_TOTAL
uint
总计
ETHTOOL_A_MODULE_FW_FLASH_STATUS
属性编码固件更新过程的当前状态。可能的值包括
-
enum ethtool_module_fw_flash_status¶
插件模块固件刷新状态
常量
ETHTOOL_MODULE_FW_FLASH_STATUS_STARTED
固件刷新过程已启动。
ETHTOOL_MODULE_FW_FLASH_STATUS_IN_PROGRESS
固件刷新过程正在进行中。
ETHTOOL_MODULE_FW_FLASH_STATUS_COMPLETED
固件刷新过程已成功完成。
ETHTOOL_MODULE_FW_FLASH_STATUS_ERROR
固件刷新过程由于错误而停止。
ETHTOOL_A_MODULE_FW_FLASH_STATUS_MSG
属性编码状态消息字符串。
ETHTOOL_A_MODULE_FW_FLASH_DONE
和 ETHTOOL_A_MODULE_FW_FLASH_TOTAL
属性分别编码已完成和总计的工作量。
PHY_GET¶
检索有关位于链路上的给定以太网 PHY 的信息。DO 操作返回有关 dev->phydev 的所有可用信息。用户还可以指定 PHY_INDEX,在这种情况下,DO 请求返回有关该特定 PHY 的信息。
由于可以有多个 PHY,因此可以使用 DUMP 操作通过在 dump 请求中传递接口索引或名称来列出给定接口上存在的 PHY。
有关更多信息,请参阅 PHY 链路拓扑
请求内容
ETHTOOL_A_PHY_HEADER
嵌套
请求标头
内核响应内容
ETHTOOL_A_PHY_HEADER
嵌套
请求标头
ETHTOOL_A_PHY_INDEX
u32
phy 的唯一索引,可用于特定于 phy 的请求
ETHTOOL_A_PHY_DRVNAME
字符串
phy 驱动程序名称
ETHTOOL_A_PHY_NAME
字符串
phy 设备名称
ETHTOOL_A_PHY_UPSTREAM_TYPE
u32
此 phy 连接到的设备的类型
ETHTOOL_A_PHY_UPSTREAM_INDEX
u32
上游 PHY 的 PHY 索引
ETHTOOL_A_PHY_UPSTREAM_SFP_NAME
字符串
如果此 PHY 通过 SFP 总线连接到其父 PHY,则此 SFP 总线的名称
ETHTOOL_A_PHY_DOWNSTREAM_SFP_NAME
字符串
如果 phy 控制 sfp 总线,则 sfp 总线的名称
当 ETHTOOL_A_PHY_UPSTREAM_TYPE
是 PHY_UPSTREAM_PHY 时,PHY 的父级是另一个 PHY。
TSCONFIG_GET¶
检索有关当前硬件时间戳源和配置的信息。
它类似于已弃用的 SIOCGHWTSTAMP
ioctl 请求。
请求内容
ETHTOOL_A_TSCONFIG_HEADER
嵌套
请求标头
内核响应内容
ETHTOOL_A_TSCONFIG_HEADER
嵌套
请求标头
ETHTOOL_A_TSCONFIG_HWTSTAMP_PROVIDER
嵌套
PTP hw 时钟提供程序
ETHTOOL_A_TSCONFIG_TX_TYPES
位集
hwtstamp Tx 类型
ETHTOOL_A_TSCONFIG_RX_FILTERS
位集
hwtstamp Rx 过滤器
ETHTOOL_A_TSCONFIG_HWTSTAMP_FLAGS
u32
hwtstamp 标志
设置后,ETHTOOL_A_TSCONFIG_HWTSTAMP_PROVIDER
属性标识 hw 时间戳提供程序的来源。它由 ETHTOOL_A_TS_HWTSTAMP_PROVIDER_INDEX
属性组成,该属性描述 PTP 设备的索引,以及 ETHTOOL_A_TS_HWTSTAMP_PROVIDER_QUALIFIER
,它描述时间戳的限定符。
设置后,ETHTOOL_A_TSCONFIG_TX_TYPES
、ETHTOOL_A_TSCONFIG_RX_FILTERS
和 ETHTOOL_A_TSCONFIG_HWTSTAMP_FLAGS
属性标识为当前 hw 时间戳提供程序配置的 Tx 类型、Rx 过滤器和标志。这些属性通过以下结构传播到驱动程序
-
struct kernel_hwtstamp_config¶
struct hwtstamp_config 的内核副本
定义:
struct kernel_hwtstamp_config {
int flags;
int tx_type;
int rx_filter;
struct ifreq *ifr;
bool copied_to_user;
enum hwtstamp_source source;
enum hwtstamp_provider_qualifier qualifier;
};
成员
标志
请参阅 struct hwtstamp_config
tx_type
请参阅 struct hwtstamp_config
rx_filter
请参阅 struct hwtstamp_config
ifr
指向原始 ioctl 请求中的 ifreq 结构的指针,以传递给较低驱动程序的旧版实现
copied_to_user
请求已传递给旧版实现,该实现已将 ioctl 请求复制回用户空间
源
指示时间戳应来自 netdev 还是来自连接的 phylib PHY
限定符
hwtstamp 提供程序的限定符
描述
与暴露给 SIOCGHWTSTAMP
和 SIOCSHWTSTAMP
ioctl UAPI 的不可扩展的 struct hwtstamp_config 相比,更喜欢使用此结构进行硬件时间戳配置的内核内处理。
TSCONFIG_SET¶
设置有关当前硬件时间戳源和配置的信息。
它类似于已弃用的 SIOCSHWTSTAMP
ioctl 请求。
请求内容
ETHTOOL_A_TSCONFIG_HEADER
嵌套
请求标头
ETHTOOL_A_TSCONFIG_HWTSTAMP_PROVIDER
嵌套
PTP hw 时钟提供程序
ETHTOOL_A_TSCONFIG_TX_TYPES
位集
hwtstamp Tx 类型
ETHTOOL_A_TSCONFIG_RX_FILTERS
位集
hwtstamp Rx 过滤器
ETHTOOL_A_TSCONFIG_HWTSTAMP_FLAGS
u32
hwtstamp 标志
内核响应内容
ETHTOOL_A_TSCONFIG_HEADER
嵌套
请求标头
ETHTOOL_A_TSCONFIG_HWTSTAMP_PROVIDER
嵌套
PTP hw 时钟提供程序
ETHTOOL_A_TSCONFIG_TX_TYPES
位集
hwtstamp Tx 类型
ETHTOOL_A_TSCONFIG_RX_FILTERS
位集
hwtstamp Rx 过滤器
ETHTOOL_A_TSCONFIG_HWTSTAMP_FLAGS
u32
hwtstamp 标志
有关每个属性的说明,请参见 TSCONFIG_GET
。
请求转换¶
下表将 ioctl 命令映射到提供其功能的 netlink 命令。右列中带有“n/a”的条目是尚未具有其 netlink 替换的命令。左列中带有“n/a”的条目是仅 netlink 的条目。
ioctl 命令
netlink 命令
ETHTOOL_GSET
ETHTOOL_MSG_LINKINFO_GET
ETHTOOL_MSG_LINKMODES_GET
ETHTOOL_SSET
ETHTOOL_MSG_LINKINFO_SET
ETHTOOL_MSG_LINKMODES_SET
ETHTOOL_GDRVINFO
n/a
ETHTOOL_GREGS
n/a
ETHTOOL_GWOL
ETHTOOL_MSG_WOL_GET
ETHTOOL_SWOL
ETHTOOL_MSG_WOL_SET
ETHTOOL_GMSGLVL
ETHTOOL_MSG_DEBUG_GET
ETHTOOL_SMSGLVL
ETHTOOL_MSG_DEBUG_SET
ETHTOOL_NWAY_RST
n/a
ETHTOOL_GLINK
ETHTOOL_MSG_LINKSTATE_GET
ETHTOOL_GEEPROM
n/a
ETHTOOL_SEEPROM
n/a
ETHTOOL_GCOALESCE
ETHTOOL_MSG_COALESCE_GET
ETHTOOL_SCOALESCE
ETHTOOL_MSG_COALESCE_SET
ETHTOOL_GRINGPARAM
ETHTOOL_MSG_RINGS_GET
ETHTOOL_SRINGPARAM
ETHTOOL_MSG_RINGS_SET
ETHTOOL_GPAUSEPARAM
ETHTOOL_MSG_PAUSE_GET
ETHTOOL_SPAUSEPARAM
ETHTOOL_MSG_PAUSE_SET
ETHTOOL_GRXCSUM
ETHTOOL_MSG_FEATURES_GET
ETHTOOL_SRXCSUM
ETHTOOL_MSG_FEATURES_SET
ETHTOOL_GTXCSUM
ETHTOOL_MSG_FEATURES_GET
ETHTOOL_STXCSUM
ETHTOOL_MSG_FEATURES_SET
ETHTOOL_GSG
ETHTOOL_MSG_FEATURES_GET
ETHTOOL_SSG
ETHTOOL_MSG_FEATURES_SET
ETHTOOL_TEST
n/a
ETHTOOL_GSTRINGS
ETHTOOL_MSG_STRSET_GET
ETHTOOL_PHYS_ID
n/a
ETHTOOL_GSTATS
n/a
ETHTOOL_GTSO
ETHTOOL_MSG_FEATURES_GET
ETHTOOL_STSO
ETHTOOL_MSG_FEATURES_SET
ETHTOOL_GPERMADDR
rtnetlink
RTM_GETLINK
ETHTOOL_GUFO
ETHTOOL_MSG_FEATURES_GET
ETHTOOL_SUFO
ETHTOOL_MSG_FEATURES_SET
ETHTOOL_GGSO
ETHTOOL_MSG_FEATURES_GET
ETHTOOL_SGSO
ETHTOOL_MSG_FEATURES_SET
ETHTOOL_GFLAGS
ETHTOOL_MSG_FEATURES_GET
ETHTOOL_SFLAGS
ETHTOOL_MSG_FEATURES_SET
ETHTOOL_GPFLAGS
ETHTOOL_MSG_PRIVFLAGS_GET
ETHTOOL_SPFLAGS
ETHTOOL_MSG_PRIVFLAGS_SET
ETHTOOL_GRXFH
n/a
ETHTOOL_SRXFH
n/a
ETHTOOL_GGRO
ETHTOOL_MSG_FEATURES_GET
ETHTOOL_SGRO
ETHTOOL_MSG_FEATURES_SET
ETHTOOL_GRXRINGS
n/a
ETHTOOL_GRXCLSRLCNT
n/a
ETHTOOL_GRXCLSRULE
n/a
ETHTOOL_GRXCLSRLALL
n/a
ETHTOOL_SRXCLSRLDEL
n/a
ETHTOOL_SRXCLSRLINS
n/a
ETHTOOL_FLASHDEV
n/a
ETHTOOL_RESET
n/a
ETHTOOL_SRXNTUPLE
n/a
ETHTOOL_GRXNTUPLE
n/a
ETHTOOL_GSSET_INFO
ETHTOOL_MSG_STRSET_GET
ETHTOOL_GRXFHINDIR
n/a
ETHTOOL_SRXFHINDIR
n/a
ETHTOOL_GFEATURES
ETHTOOL_MSG_FEATURES_GET
ETHTOOL_SFEATURES
ETHTOOL_MSG_FEATURES_SET
ETHTOOL_GCHANNELS
ETHTOOL_MSG_CHANNELS_GET
ETHTOOL_SCHANNELS
ETHTOOL_MSG_CHANNELS_SET
ETHTOOL_SET_DUMP
n/a
ETHTOOL_GET_DUMP_FLAG
n/a
ETHTOOL_GET_DUMP_DATA
n/a
ETHTOOL_GET_TS_INFO
ETHTOOL_MSG_TSINFO_GET
ETHTOOL_GMODULEINFO
ETHTOOL_MSG_MODULE_EEPROM_GET
ETHTOOL_GMODULEEEPROM
ETHTOOL_MSG_MODULE_EEPROM_GET
ETHTOOL_GEEE
ETHTOOL_MSG_EEE_GET
ETHTOOL_SEEE
ETHTOOL_MSG_EEE_SET
ETHTOOL_GRSSH
ETHTOOL_MSG_RSS_GET
ETHTOOL_SRSSH
n/a
ETHTOOL_GTUNABLE
n/a
ETHTOOL_STUNABLE
n/a
ETHTOOL_GPHYSTATS
n/a
ETHTOOL_PERQUEUE
n/a
ETHTOOL_GLINKSETTINGS
ETHTOOL_MSG_LINKINFO_GET
ETHTOOL_MSG_LINKMODES_GET
ETHTOOL_SLINKSETTINGS
ETHTOOL_MSG_LINKINFO_SET
ETHTOOL_MSG_LINKMODES_SET
ETHTOOL_PHY_GTUNABLE
n/a
ETHTOOL_PHY_STUNABLE
n/a
ETHTOOL_GFECPARAM
ETHTOOL_MSG_FEC_GET
ETHTOOL_SFECPARAM
ETHTOOL_MSG_FEC_SET
n/a
ETHTOOL_MSG_CABLE_TEST_ACT
n/a
ETHTOOL_MSG_CABLE_TEST_TDR_ACT
n/a
ETHTOOL_MSG_TUNNEL_INFO_GET
n/a
ETHTOOL_MSG_PHC_VCLOCKS_GET
n/a
ETHTOOL_MSG_MODULE_GET
n/a
ETHTOOL_MSG_MODULE_SET
n/a
ETHTOOL_MSG_PLCA_GET_CFG
n/a
ETHTOOL_MSG_PLCA_SET_CFG
n/a
ETHTOOL_MSG_PLCA_GET_STATUS
n/a
ETHTOOL_MSG_MM_GET
n/a
ETHTOOL_MSG_MM_SET
n/a
ETHTOOL_MSG_MODULE_FW_FLASH_ACT
n/a
ETHTOOL_MSG_PHY_GET
SIOCGHWTSTAMP
ETHTOOL_MSG_TSCONFIG_GET
SIOCSHWTSTAMP
ETHTOOL_MSG_TSCONFIG_SET