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:
parent
467f9fce60
commit
c6d0cfb54b
|
|
@ -33,7 +33,7 @@ static void usage(void)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Usage: bridge fdb { add | append | del | replace } ADDR dev DEV\n"
|
fprintf(stderr, "Usage: bridge fdb { add | append | del | replace } ADDR dev DEV\n"
|
||||||
" [ self ] [ master ] [ use ] [ router ]\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");
|
" [ port PORT] [ vni VNI ] [ via DEV ]\n");
|
||||||
fprintf(stderr, " bridge fdb [ show [ br BRDEV ] [ brport DEV ] ]\n");
|
fprintf(stderr, " bridge fdb [ show [ br BRDEV ] [ brport DEV ] ]\n");
|
||||||
exit(-1);
|
exit(-1);
|
||||||
|
|
@ -304,6 +304,9 @@ static int fdb_modify(int cmd, int flags, int argc, char **argv)
|
||||||
} else if (matches(*argv, "temp") == 0 ||
|
} else if (matches(*argv, "temp") == 0 ||
|
||||||
matches(*argv, "static") == 0) {
|
matches(*argv, "static") == 0) {
|
||||||
req.ndm.ndm_state |= NUD_REACHABLE;
|
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) {
|
} else if (matches(*argv, "vlan") == 0) {
|
||||||
if (vid >= 0)
|
if (vid >= 0)
|
||||||
duparg2("vlan", *argv);
|
duparg2("vlan", *argv);
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ bridge \- show / manipulate bridge addresses and devices
|
||||||
.I LLADDR
|
.I LLADDR
|
||||||
.B dev
|
.B dev
|
||||||
.IR DEV " { "
|
.IR DEV " { "
|
||||||
.BR local " | " temp " } [ "
|
.BR local " | " static " | " dynamic " } [ "
|
||||||
.BR self " ] [ " master " ] [ " router " ] [ " use " ] [ "
|
.BR self " ] [ " master " ] [ " router " ] [ " use " ] [ "
|
||||||
.B dst
|
.B dst
|
||||||
.IR IPADDR " ] [ "
|
.IR IPADDR " ] [ "
|
||||||
|
|
@ -338,6 +338,18 @@ the Ethernet MAC address.
|
||||||
.BI dev " DEV"
|
.BI dev " DEV"
|
||||||
the interface to which this address is associated.
|
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
|
.B self
|
||||||
- the address is associated with the port drivers fdb. Usually hardware.
|
- the address is associated with the port drivers fdb. Usually hardware.
|
||||||
.sp
|
.sp
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue