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
1717 ETHTOOL_MSG_STRSET_GET,
1818 ETHTOOL_MSG_LINKINFO_GET,
1919 ETHTOOL_MSG_LINKINFO_SET,
20+ ETHTOOL_MSG_LINKMODES_GET,
2021
2122 /* add new constants above here */
2223 __ETHTOOL_MSG_USER_CNT,
@@ -29,6 +30,7 @@ enum { · 6 unmodified lines
2930 ETHTOOL_MSG_STRSET_GET_REPLY,
3031 ETHTOOL_MSG_LINKINFO_GET_REPLY,
3132 ETHTOOL_MSG_LINKINFO_NTF,
33+ ETHTOOL_MSG_LINKMODES_GET_REPLY,
3234
3335 /* add new constants above here */
3436 __ETHTOOL_MSG_KERNEL_CNT,
@@ -161,6 +163,22 @@ enum { · 126 unmodified lines
161163 ETHTOOL_A_LINKINFO_MAX = __ETHTOOL_A_LINKINFO_CNT - 1
162164 };
163165
166+/* LINKMODES */
167+
168+enum {
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+
164182 /* generic netlink info */
165183 #define ETHTOOL_GENL_NAME "ethtool"
166184 #define ETHTOOL_GENL_VERSION 1