bridge: add support for dynamic fdb entries

This patch is a follow up to the recently added
'static' fdb option.

It introduces a new option 'dynamic' which adds
dynamic fdb entries with NUD_REACHABLE.

$bridge fdb add 00:01:02:03:04:06 dev eth0 master dynamic

$bridge fdb show
00:01:02:03:04:06 dev eth0

This patch also documents all fdb types. Removes 'temp'
from usage message since it is now replaced by 'static'.
'temp' still works and is synonymous with static.

Signed-off-by: Wilson Kok <wkok@cumulusnetworks.com>
Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
This commit is contained in:
Roopa Prabhu 2016-02-19 21:34:52 -08:00 committed by Stephen Hemminger
parent 467f9fce60
commit c6d0cfb54b
2 changed files with 17 additions and 2 deletions

View File

@ -33,7 +33,7 @@ static void usage(void)
{
fprintf(stderr, "Usage: bridge fdb { add | append | del | replace } ADDR dev DEV\n"
" [ self ] [ master ] [ use ] [ router ]\n"
" [ local | temp | static ] [ dst IPADDR ] [ vlan VID ]\n"
" [ local | static | dynamic ] [ dst IPADDR ] [ vlan VID ]\n"
" [ port PORT] [ vni VNI ] [ via DEV ]\n");
fprintf(stderr, " bridge fdb [ show [ br BRDEV ] [ brport DEV ] ]\n");
exit(-1);
@ -304,6 +304,9 @@ static int fdb_modify(int cmd, int flags, int argc, char **argv)
} else if (matches(*argv, "temp") == 0 ||
matches(*argv, "static") == 0) {
req.ndm.ndm_state |= NUD_REACHABLE;
} else if (matches(*argv, "dynamic") == 0) {
req.ndm.ndm_state |= NUD_REACHABLE;
req.ndm.ndm_state &= ~NUD_NOARP;
} else if (matches(*argv, "vlan") == 0) {
if (vid >= 0)
duparg2("vlan", *argv);

View File

@ -54,7 +54,7 @@ bridge \- show / manipulate bridge addresses and devices
.I LLADDR
.B dev
.IR DEV " { "
.BR local " | " temp " } [ "
.BR local " | " static " | " dynamic " } [ "
.BR self " ] [ " master " ] [ " router " ] [ " use " ] [ "
.B dst
.IR IPADDR " ] [ "
@ -338,6 +338,18 @@ the Ethernet MAC address.
.BI dev " DEV"
the interface to which this address is associated.
.B local
- is a local permanent fdb entry
.sp
.B static
- is a static (no arp) fdb entry
.sp
.B dynamic
- is a dynamic reachable age-able fdb entry
.sp
.B self
- the address is associated with the port drivers fdb. Usually hardware.
.sp