ethtool: provide coalescing parameters with COALESCE_GET request
Implement COALESCE_GET request to get coalescing parameters of a network device. These are traditionally available via ETHTOOL_GCOALESCE ioctl request. This commit adds only support for device coalescing parameters, not per queue coalescing parameters. Omit attributes with zero values unless they are declared as supported (i.e. the corresponding bit in ethtool_ops::supported_coalesce_params is set). Signed-off-by: Michal Kubecek <mkubecek@suse.cz> Reviewed-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
b51fb7711a
commit
217275453b
@@ -32,6 +32,7 @@ enum {
|
||||
ETHTOOL_MSG_RINGS_SET,
|
||||
ETHTOOL_MSG_CHANNELS_GET,
|
||||
ETHTOOL_MSG_CHANNELS_SET,
|
||||
ETHTOOL_MSG_COALESCE_GET,
|
||||
|
||||
/* add new constants above here */
|
||||
__ETHTOOL_MSG_USER_CNT,
|
||||
@@ -60,6 +61,7 @@ enum {
|
||||
ETHTOOL_MSG_RINGS_NTF,
|
||||
ETHTOOL_MSG_CHANNELS_GET_REPLY,
|
||||
ETHTOOL_MSG_CHANNELS_NTF,
|
||||
ETHTOOL_MSG_COALESCE_GET_REPLY,
|
||||
|
||||
/* add new constants above here */
|
||||
__ETHTOOL_MSG_KERNEL_CNT,
|
||||
@@ -310,6 +312,39 @@ enum {
|
||||
ETHTOOL_A_CHANNELS_MAX = (__ETHTOOL_A_CHANNELS_CNT - 1)
|
||||
};
|
||||
|
||||
/* COALESCE */
|
||||
|
||||
enum {
|
||||
ETHTOOL_A_COALESCE_UNSPEC,
|
||||
ETHTOOL_A_COALESCE_HEADER, /* nest - _A_HEADER_* */
|
||||
ETHTOOL_A_COALESCE_RX_USECS, /* u32 */
|
||||
ETHTOOL_A_COALESCE_RX_MAX_FRAMES, /* u32 */
|
||||
ETHTOOL_A_COALESCE_RX_USECS_IRQ, /* u32 */
|
||||
ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ, /* u32 */
|
||||
ETHTOOL_A_COALESCE_TX_USECS, /* u32 */
|
||||
ETHTOOL_A_COALESCE_TX_MAX_FRAMES, /* u32 */
|
||||
ETHTOOL_A_COALESCE_TX_USECS_IRQ, /* u32 */
|
||||
ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ, /* u32 */
|
||||
ETHTOOL_A_COALESCE_STATS_BLOCK_USECS, /* u32 */
|
||||
ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX, /* u8 */
|
||||
ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX, /* u8 */
|
||||
ETHTOOL_A_COALESCE_PKT_RATE_LOW, /* u32 */
|
||||
ETHTOOL_A_COALESCE_RX_USECS_LOW, /* u32 */
|
||||
ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW, /* u32 */
|
||||
ETHTOOL_A_COALESCE_TX_USECS_LOW, /* u32 */
|
||||
ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW, /* u32 */
|
||||
ETHTOOL_A_COALESCE_PKT_RATE_HIGH, /* u32 */
|
||||
ETHTOOL_A_COALESCE_RX_USECS_HIGH, /* u32 */
|
||||
ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH, /* u32 */
|
||||
ETHTOOL_A_COALESCE_TX_USECS_HIGH, /* u32 */
|
||||
ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH, /* u32 */
|
||||
ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL, /* u32 */
|
||||
|
||||
/* add new constants above here */
|
||||
__ETHTOOL_A_COALESCE_CNT,
|
||||
ETHTOOL_A_COALESCE_MAX = (__ETHTOOL_A_COALESCE_CNT - 1)
|
||||
};
|
||||
|
||||
/* generic netlink info */
|
||||
#define ETHTOOL_GENL_NAME "ethtool"
|
||||
#define ETHTOOL_GENL_VERSION 1
|
||||
|
Reference in New Issue
Block a user