From: Arkadi Sharshevsky Date: Mon, 5 Jun 2017 10:07:05 +0000 (+0200) Subject: bridge: Distinguish between externally learned vs offloaded FDBs X-Git-Tag: v4.13.0~124 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8a38e44fadaa52f207c2a3e5cf16a36b1fa0ad82;p=thirdparty%2Fiproute2.git bridge: Distinguish between externally learned vs offloaded FDBs Distinguish between externally learned vs offloaded FDBs. This is done in order to indicate that FDBs added by software was successfully offloaded. Signed-off-by: Arkadi Sharshevsky Signed-off-by: Jiri Pirko --- diff --git a/bridge/fdb.c b/bridge/fdb.c index a71a78f23..e5cebf9ba 100644 --- a/bridge/fdb.c +++ b/bridge/fdb.c @@ -261,6 +261,10 @@ int print_fdb(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) jsonw_string(jw_global, "router"); } if (r->ndm_flags & NTF_EXT_LEARNED) { + start_json_fdb_flags_array(&fdb_flags); + jsonw_string(jw_global, "extern_learn"); + } + if (r->ndm_flags & NTF_OFFLOADED) { start_json_fdb_flags_array(&fdb_flags); jsonw_string(jw_global, "offload"); } @@ -280,6 +284,8 @@ int print_fdb(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) if (r->ndm_flags & NTF_ROUTER) fprintf(fp, "router "); if (r->ndm_flags & NTF_EXT_LEARNED) + fprintf(fp, "extern_learn "); + if (r->ndm_flags & NTF_OFFLOADED) fprintf(fp, "offload "); if (tb[NDA_MASTER]) { fprintf(fp, "master %s ", diff --git a/include/linux/neighbour.h b/include/linux/neighbour.h index f3d16dbe0..3199d2898 100644 --- a/include/linux/neighbour.h +++ b/include/linux/neighbour.h @@ -41,6 +41,7 @@ enum { #define NTF_MASTER 0x04 #define NTF_PROXY 0x08 /* == ATF_PUBL */ #define NTF_EXT_LEARNED 0x10 +#define NTF_OFFLOADED 0x20 #define NTF_ROUTER 0x80 /*