Implement CHANNELS_GET request to get channel counts of a network device. These are traditionally available via ETHTOOL_GCHANNELS ioctl request. Omit attributes for channel types which are not supported by driver or device (zero reported for maximum). v2: (all suggested by Jakub Kicinski) - minor cleanup in channels_prepare_data() - more descriptive channels_reply_size() - omit attributes with zero max count
Showing the changes to include/uapi/linux (1 of 6 files). Show all
Unified · Split
| @@ -30,6 +30,7 @@ enum { · 29 unmodified lines | ||
| 30 | 30 | ETHTOOL_MSG_PRIVFLAGS_SET, |
| 31 | 31 | ETHTOOL_MSG_RINGS_GET, |
| 32 | 32 | ETHTOOL_MSG_RINGS_SET, |
| 33 | + ETHTOOL_MSG_CHANNELS_GET, | |
| 33 | 34 | |
| 34 | 35 | /* add new constants above here */ |
| 35 | 36 | __ETHTOOL_MSG_USER_CNT, |
| @@ -56,6 +57,7 @@ enum { · 20 unmodified lines | ||
| 56 | 57 | ETHTOOL_MSG_PRIVFLAGS_NTF, |
| 57 | 58 | ETHTOOL_MSG_RINGS_GET_REPLY, |
| 58 | 59 | ETHTOOL_MSG_RINGS_NTF, |
| 60 | + ETHTOOL_MSG_CHANNELS_GET_REPLY, | |
| 59 | 61 | |
| 60 | 62 | /* add new constants above here */ |
| 61 | 63 | __ETHTOOL_MSG_KERNEL_CNT, |
| @@ -287,6 +289,25 @@ enum { · 225 unmodified lines | ||
| 287 | 289 | ETHTOOL_A_RINGS_MAX = (__ETHTOOL_A_RINGS_CNT - 1) |
| 288 | 290 | }; |
| 289 | 291 | |
| 292 | +/* CHANNELS */ | |
| 293 | + | |
| 294 | +enum { | |
| 295 | + ETHTOOL_A_CHANNELS_UNSPEC, | |
| 296 | + ETHTOOL_A_CHANNELS_HEADER, /* nest - _A_HEADER_* */ | |
| 297 | + ETHTOOL_A_CHANNELS_RX_MAX, /* u32 */ | |
| 298 | + ETHTOOL_A_CHANNELS_TX_MAX, /* u32 */ | |
| 299 | + ETHTOOL_A_CHANNELS_OTHER_MAX, /* u32 */ | |
| 300 | + ETHTOOL_A_CHANNELS_COMBINED_MAX, /* u32 */ | |
| 301 | + ETHTOOL_A_CHANNELS_RX_COUNT, /* u32 */ | |
| 302 | + ETHTOOL_A_CHANNELS_TX_COUNT, /* u32 */ | |
| 303 | + ETHTOOL_A_CHANNELS_OTHER_COUNT, /* u32 */ | |
| 304 | + ETHTOOL_A_CHANNELS_COMBINED_COUNT, /* u32 */ | |
| 305 | + | |
| 306 | + /* add new constants above here */ | |
| 307 | + __ETHTOOL_A_CHANNELS_CNT, | |
| 308 | + ETHTOOL_A_CHANNELS_MAX = (__ETHTOOL_A_CHANNELS_CNT - 1) | |
| 309 | +}; | |
| 310 | + | |
| 290 | 311 | /* generic netlink info */ |
| 291 | 312 | #define ETHTOOL_GENL_NAME "ethtool" |
| 292 | 313 | #define ETHTOOL_GENL_VERSION 1 |