Subject: Re: [PATCH iproute2 net-next] bridge: add option extern_learn to set NTF_EXT_LEARNED on fdb entries

From: Stephen Hemminger <[email-masked]>
Date: Mon, 19 Mar 2018 10:54:03 -0700

On Mon, 19 Mar 2018 10:20:10 -0700
Roopa Prabhu <[email-masked]> wrote:

> From: Roopa Prabhu <[email-masked]>
> 
> NTF_EXT_LEARNED can be set by a user on bridge fdb entry.
> Provide a bridge command option to allow a user to set
> NTF_EXT_LEARNED on a bridge fdb entry.
> 
> Signed-off-by: Roopa Prabhu <[email-masked]>
> ---
>  bridge/fdb.c      | 4 +++-
>  man/man8/bridge.8 | 8 +++++++-
>  2 files changed, 10 insertions(+), 2 deletions(-)
> 
> diff --git a/bridge/fdb.c b/bridge/fdb.c
> index 205b4fa..4dbc894 100644
> --- a/bridge/fdb.c
> +++ b/bridge/fdb.c
> @@ -36,7 +36,7 @@ static void usage(void)
>  {
>  	fprintf(stderr,
>  		"Usage: bridge fdb { add | append | del | replace } ADDR dev DEV\n"
> -		"              [ self ] [ master ] [ use ] [ router ]\n"
> +		"              [ self ] [ master ] [ use ] [ router ] [ extern_learn ]\n"
>  		"              [ local | static | dynamic ] [ dst IPADDR ] [ vlan VID ]\n"
>  		"              [ port PORT] [ vni VNI ] [ via DEV ]\n"
>  		"       bridge fdb [ show [ br BRDEV ] [ brport DEV ] [ vlan VID ] [ state STATE ] ]\n");
> @@ -412,6 +412,8 @@ static int fdb_modify(int cmd, int flags, int argc, char **argv)
>  			vid = atoi(*argv);
>  		} else if (matches(*argv, "use") == 0) {
>  			req.ndm.ndm_flags |= NTF_USE;
> +		} else if (matches(*argv, "extern_learn") == 0) {
> +			req.ndm.ndm_flags |= NTF_EXT_LEARNED;
>  		} else {
>  			if (strcmp(*argv, "to") == 0)
>  				NEXT_ARG();
> diff --git a/man/man8/bridge.8 b/man/man8/bridge.8
> index 05512b0..e7f7148 100644
> --- a/man/man8/bridge.8
> +++ b/man/man8/bridge.8
> @@ -61,7 +61,7 @@ bridge \- show / manipulate bridge addresses and devices
>  .B dev
>  .IR DEV " { "
>  .BR local " | " static " | " dynamic " } [ "
> -.BR self " ] [ " master " ] [ " router " ] [ " use " ] [ "
> +.BR self " ] [ " master " ] [ " router " ] [ " use " ] [ " extern_learn " ] [ "
>  .B dst
>  .IR IPADDR " ] [ "
>  .B vni
> @@ -414,6 +414,12 @@ route shortcircuit enabled.
>  indicate to the kernel that the fdb entry is in use.
>  .sp
>  
> +.B extern_learn
> +- this entry was learned externally. This option can be used to
> +indicate to the kernel that an entry was hardware or user-space
> +controller learnt dynamic entry. Kernel will not age such an entry.
> +.sp
> +
>  .in -8
>  The next command line parameters apply only
>  when the specified device

What about displaying the flag as well?