aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Kicinski <kuba@kernel.org>2022-11-29 17:35:57 -0800
committerMichal Kubecek <mkubecek@suse.cz>2022-12-04 18:01:36 +0100
commit3acf7eee7ade666289f98311befe334bb57d3765 (patch)
treecc96871d360b02c79eda0c4f57cd8d6a026b744b
parentefafc0ad6e6f6fb409dcf5464e448dc872ef5acd (diff)
downloadethtool-3acf7eee7ade666289f98311befe334bb57d3765.tar.gz
rings: report TCP header-data split
Report if device is in HDS compatible mode or not. Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--netlink/rings.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/netlink/rings.c b/netlink/rings.c
index d50bbac..6284035 100644
--- a/netlink/rings.c
+++ b/netlink/rings.c
@@ -20,6 +20,7 @@ int rings_reply_cb(const struct nlmsghdr *nlhdr, void *data)
const struct nlattr *tb[ETHTOOL_A_RINGS_MAX + 1] = {};
DECLARE_ATTR_TB_INFO(tb);
struct nl_context *nlctx = data;
+ unsigned char tcp_hds;
bool silent;
int err_ret;
int ret;
@@ -50,6 +51,24 @@ int rings_reply_cb(const struct nlmsghdr *nlhdr, void *data)
show_u32(tb[ETHTOOL_A_RINGS_CQE_SIZE], "CQE Size:\t\t");
show_bool("tx-push", "TX Push:\t%s\n", tb[ETHTOOL_A_RINGS_TX_PUSH]);
+ tcp_hds = tb[ETHTOOL_A_RINGS_TCP_DATA_SPLIT] ?
+ mnl_attr_get_u8(tb[ETHTOOL_A_RINGS_TCP_DATA_SPLIT]) : 0;
+ printf("TCP data split:\t");
+ switch (tcp_hds) {
+ case ETHTOOL_TCP_DATA_SPLIT_UNKNOWN:
+ printf("n/a\n");
+ break;
+ case ETHTOOL_TCP_DATA_SPLIT_DISABLED:
+ printf("off\n");
+ break;
+ case ETHTOOL_TCP_DATA_SPLIT_ENABLED:
+ printf("on\n");
+ break;
+ default:
+ printf("unknown(%d)\n", tcp_hds);
+ break;
+ }
+
return MNL_CB_OK;
}