From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf0-f195.google.com ([209.85.192.195]:42565 "EHLO mail-pf0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965686AbeCSR4D (ORCPT ); Mon, 19 Mar 2018 13:56:03 -0400 Received: by mail-pf0-f195.google.com with SMTP id a16so7318363pfn.9 for ; Mon, 19 Mar 2018 10:56:03 -0700 (PDT) Subject: Re: [PATCH iproute2 net-next] bridge: add option extern_learn to set NTF_EXT_LEARNED on fdb entries To: Stephen Hemminger , Roopa Prabhu Cc: netdev@vger.kernel.org, nikolay@cumulusnetworks.com References: <1521480010-47042-1-git-send-email-roopa@cumulusnetworks.com> <20180319105403.293d93ed@xeon-e3> From: David Ahern Message-ID: <4da9d3be-b5b0-aa91-bed0-ecb99f271a63@gmail.com> Date: Mon, 19 Mar 2018 11:56:31 -0600 MIME-Version: 1.0 In-Reply-To: <20180319105403.293d93ed@xeon-e3> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: netdev-owner@vger.kernel.org List-ID: On 3/19/18 11:54 AM, Stephen Hemminger wrote: > On Mon, 19 Mar 2018 10:20:10 -0700 > Roopa Prabhu wrote: > >> From: Roopa Prabhu >> >> 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 >> --- >> 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? > Also, I believe other commands have converged on 'external' for the keyword.