Message ID | 20221004152036.7848-2-netdev@kapio-technology.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [v2,iproute2-next,1/4] include: uapi: MacAuth and Blackhole feature header changes | expand |
On Tue, Oct 04, 2022 at 05:20:34PM +0200, Hans Schultz wrote: > Signed-off-by: Hans Schultz <netdev@kapio-technology.com> Don't leave the commit message empty. Explain the change and include an example output showing the "locked" flag. > --- > bridge/fdb.c | 11 +++++++++-- Still missing a description of the "locked" flag from the man page. Something like: " locked - this entry was added by the kernel in response to a host trying to communicate behind a bridge port with MAB enabled. User space can authenticate the host by clearing the flag. The flag cannot be set by user space. " > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/bridge/fdb.c b/bridge/fdb.c > index 5f71bde0..f1f0a5bb 100644 > --- a/bridge/fdb.c > +++ b/bridge/fdb.c > @@ -93,7 +93,7 @@ static int state_a2n(unsigned int *s, const char *arg) > return 0; > } > > -static void fdb_print_flags(FILE *fp, unsigned int flags) > +static void fdb_print_flags(FILE *fp, unsigned int flags, __u8 ext_flags) s/__u8/__u32/ > { > open_json_array(PRINT_JSON, > is_json_context() ? "flags" : ""); > @@ -116,6 +116,9 @@ static void fdb_print_flags(FILE *fp, unsigned int flags) > if (flags & NTF_STICKY) > print_string(PRINT_ANY, NULL, "%s ", "sticky"); > > + if (ext_flags & NTF_EXT_LOCKED) > + print_string(PRINT_ANY, NULL, "%s ", "locked"); > + > close_json_array(PRINT_JSON, NULL); > } > > @@ -144,6 +147,7 @@ int print_fdb(struct nlmsghdr *n, void *arg) > struct ndmsg *r = NLMSG_DATA(n); > int len = n->nlmsg_len; > struct rtattr *tb[NDA_MAX+1]; > + __u32 ext_flags = 0; > __u16 vid = 0; > > if (n->nlmsg_type != RTM_NEWNEIGH && n->nlmsg_type != RTM_DELNEIGH) { > @@ -170,6 +174,9 @@ int print_fdb(struct nlmsghdr *n, void *arg) > parse_rtattr(tb, NDA_MAX, NDA_RTA(r), > n->nlmsg_len - NLMSG_LENGTH(sizeof(*r))); > > + if (tb[NDA_FLAGS_EXT]) > + ext_flags = rta_getattr_u32(tb[NDA_FLAGS_EXT]); > + > if (tb[NDA_VLAN]) > vid = rta_getattr_u16(tb[NDA_VLAN]); > > @@ -266,7 +273,7 @@ int print_fdb(struct nlmsghdr *n, void *arg) > if (show_stats && tb[NDA_CACHEINFO]) > fdb_print_stats(fp, RTA_DATA(tb[NDA_CACHEINFO])); > > - fdb_print_flags(fp, r->ndm_flags); > + fdb_print_flags(fp, r->ndm_flags, ext_flags); > > > if (tb[NDA_MASTER]) > -- > 2.34.1 >
diff --git a/bridge/fdb.c b/bridge/fdb.c index 5f71bde0..f1f0a5bb 100644 --- a/bridge/fdb.c +++ b/bridge/fdb.c @@ -93,7 +93,7 @@ static int state_a2n(unsigned int *s, const char *arg) return 0; } -static void fdb_print_flags(FILE *fp, unsigned int flags) +static void fdb_print_flags(FILE *fp, unsigned int flags, __u8 ext_flags) { open_json_array(PRINT_JSON, is_json_context() ? "flags" : ""); @@ -116,6 +116,9 @@ static void fdb_print_flags(FILE *fp, unsigned int flags) if (flags & NTF_STICKY) print_string(PRINT_ANY, NULL, "%s ", "sticky"); + if (ext_flags & NTF_EXT_LOCKED) + print_string(PRINT_ANY, NULL, "%s ", "locked"); + close_json_array(PRINT_JSON, NULL); } @@ -144,6 +147,7 @@ int print_fdb(struct nlmsghdr *n, void *arg) struct ndmsg *r = NLMSG_DATA(n); int len = n->nlmsg_len; struct rtattr *tb[NDA_MAX+1]; + __u32 ext_flags = 0; __u16 vid = 0; if (n->nlmsg_type != RTM_NEWNEIGH && n->nlmsg_type != RTM_DELNEIGH) { @@ -170,6 +174,9 @@ int print_fdb(struct nlmsghdr *n, void *arg) parse_rtattr(tb, NDA_MAX, NDA_RTA(r), n->nlmsg_len - NLMSG_LENGTH(sizeof(*r))); + if (tb[NDA_FLAGS_EXT]) + ext_flags = rta_getattr_u32(tb[NDA_FLAGS_EXT]); + if (tb[NDA_VLAN]) vid = rta_getattr_u16(tb[NDA_VLAN]); @@ -266,7 +273,7 @@ int print_fdb(struct nlmsghdr *n, void *arg) if (show_stats && tb[NDA_CACHEINFO]) fdb_print_stats(fp, RTA_DATA(tb[NDA_CACHEINFO])); - fdb_print_flags(fp, r->ndm_flags); + fdb_print_flags(fp, r->ndm_flags, ext_flags); if (tb[NDA_MASTER])
Signed-off-by: Hans Schultz <netdev@kapio-technology.com> --- bridge/fdb.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)