History

ethtool: provide link mode information with LINKMODES_GET request

Implement LINKMODES_GET netlink request to get link modes related information provided by ETHTOOL_GLINKSETTINGS and ETHTOOL_GSET ioctl commands. This request provides supported, advertised and peer advertised link modes, autonegotiation flag, speed and duplex. LINKMODES_GET request can be used with NLM_F_DUMP (without device identification) to request the information for all devices in current network namespace providing the data.

Michal Kubecek committed 6 years ago

Commit f625aa91 parent 73286737 files · +207 −1Browse files

Showing the changes to include/uapi/linux (1 of 7 files). Show all

Unified · Split

include/uapi/linux/ethtool_netlink.h+18−0
@@ -17,6 +17,7 @@ enum { · 16 unmodified lines
17 ETHTOOL_MSG_STRSET_GET,17 ETHTOOL_MSG_STRSET_GET,
18 ETHTOOL_MSG_LINKINFO_GET,18 ETHTOOL_MSG_LINKINFO_GET,
19 ETHTOOL_MSG_LINKINFO_SET,19 ETHTOOL_MSG_LINKINFO_SET,
20 ETHTOOL_MSG_LINKMODES_GET,
20 21
21 /* add new constants above here */22 /* add new constants above here */
22 __ETHTOOL_MSG_USER_CNT,23 __ETHTOOL_MSG_USER_CNT,
@@ -29,6 +30,7 @@ enum { · 6 unmodified lines
29 ETHTOOL_MSG_STRSET_GET_REPLY,30 ETHTOOL_MSG_STRSET_GET_REPLY,
30 ETHTOOL_MSG_LINKINFO_GET_REPLY,31 ETHTOOL_MSG_LINKINFO_GET_REPLY,
31 ETHTOOL_MSG_LINKINFO_NTF,32 ETHTOOL_MSG_LINKINFO_NTF,
33 ETHTOOL_MSG_LINKMODES_GET_REPLY,
32 34
33 /* add new constants above here */35 /* add new constants above here */
34 __ETHTOOL_MSG_KERNEL_CNT,36 __ETHTOOL_MSG_KERNEL_CNT,
@@ -161,6 +163,22 @@ enum { · 126 unmodified lines
161 ETHTOOL_A_LINKINFO_MAX = __ETHTOOL_A_LINKINFO_CNT - 1163 ETHTOOL_A_LINKINFO_MAX = __ETHTOOL_A_LINKINFO_CNT - 1
162};164};
163 165
166/* LINKMODES */
167
168enum {
169 ETHTOOL_A_LINKMODES_UNSPEC,
170 ETHTOOL_A_LINKMODES_HEADER, /* nest - _A_HEADER_* */
171 ETHTOOL_A_LINKMODES_AUTONEG, /* u8 */
172 ETHTOOL_A_LINKMODES_OURS, /* bitset */
173 ETHTOOL_A_LINKMODES_PEER, /* bitset */
174 ETHTOOL_A_LINKMODES_SPEED, /* u32 */
175 ETHTOOL_A_LINKMODES_DUPLEX, /* u8 */
176
177 /* add new constants above here */
178 __ETHTOOL_A_LINKMODES_CNT,
179 ETHTOOL_A_LINKMODES_MAX = __ETHTOOL_A_LINKMODES_CNT - 1
180};
181
164/* generic netlink info */182/* generic netlink info */
165#define ETHTOOL_GENL_NAME "ethtool"183#define ETHTOOL_GENL_NAME "ethtool"
166#define ETHTOOL_GENL_VERSION 1184#define ETHTOOL_GENL_VERSION 1