On Tue, Oct 04, 2022 at 05:20:34PM +0200, Hans Schultz wrote: > Signed-off-by: Hans Schultz <netdev@xxxxxxxxxxxxxxxxxxxx> 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 >