From 5ec55c2a0a264292cfced11d0d72765c2f9ccfe6 Mon Sep 17 00:00:00 2001 From: Florian Westphal Date: Tue, 25 Aug 2020 12:42:38 +0200 Subject: conntrack: add support for CLASH_RESOLVED counter While at it, also allow to display up to 4 counters that are sent by kernel but that we do not know. This is useful to list counters that a new kernel supports with and older release of conntrack-tools. Signed-off-by: Florian Westphal --- src/conntrack.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/conntrack.c b/src/conntrack.c index fb4e5be..a26fa60 100644 --- a/src/conntrack.c +++ b/src/conntrack.c @@ -1986,11 +1986,13 @@ static int nfct_stats_attr_cb(const struct nlattr *attr, void *data) return MNL_CB_OK; } +#define UNKNOWN_STATS_NUM 4 + static int nfct_stats_cb(const struct nlmsghdr *nlh, void *data) { - struct nlattr *tb[CTA_STATS_MAX+1] = {}; + struct nlattr *tb[CTA_STATS_MAX + UNKNOWN_STATS_NUM + 1] = {}; struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh); - const char *attr2name[CTA_STATS_MAX+1] = { + const char *attr2name[CTA_STATS_MAX + UNKNOWN_STATS_NUM + 1] = { [CTA_STATS_SEARCHED] = "searched", [CTA_STATS_FOUND] = "found", [CTA_STATS_NEW] = "new", @@ -2004,6 +2006,15 @@ static int nfct_stats_cb(const struct nlmsghdr *nlh, void *data) [CTA_STATS_EARLY_DROP] = "early_drop", [CTA_STATS_ERROR] = "error", [CTA_STATS_SEARCH_RESTART] = "search_restart", + [CTA_STATS_CLASH_RESOLVE] = "clash_resolve", + + /* leave at end. Allows to show counters supported + * by newer kernel with older conntrack-tools release. + */ + [CTA_STATS_MAX + 1] = "unknown1", + [CTA_STATS_MAX + 2] = "unknown2", + [CTA_STATS_MAX + 3] = "unknown3", + [CTA_STATS_MAX + 4] = "unknown4", }; int i; @@ -2011,7 +2022,7 @@ static int nfct_stats_cb(const struct nlmsghdr *nlh, void *data) printf("cpu=%-4u\t", ntohs(nfg->res_id)); - for (i=0; i