|
|
5ebd6f |
diff --git a/bridge/fdb.c b/bridge/fdb.c
|
|
|
5ebd6f |
index 591fbbe..e2e53f1 100644
|
|
|
5ebd6f |
--- a/bridge/fdb.c
|
|
|
5ebd6f |
+++ b/bridge/fdb.c
|
|
|
5ebd6f |
@@ -30,7 +30,7 @@ int filter_index;
|
|
|
5ebd6f |
|
|
|
5ebd6f |
static void usage(void)
|
|
|
5ebd6f |
{
|
|
|
5ebd6f |
- fprintf(stderr, "Usage: bridge fdb { add | append | del } ADDR dev DEV {self|master} [ temp ]\n"
|
|
|
5ebd6f |
+ fprintf(stderr, "Usage: bridge fdb { add | append | del | replace } ADDR dev DEV {self|master} [ temp ]\n"
|
|
|
5ebd6f |
" [router] [ dst IPADDR] [ vlan VID ]\n"
|
|
|
5ebd6f |
" [ port PORT] [ vni VNI ] [via DEV]\n");
|
|
|
5ebd6f |
fprintf(stderr, " bridge fdb {show} [ dev DEV ]\n");
|
|
|
5ebd6f |
@@ -334,6 +334,8 @@ int do_fdb(int argc, char **argv)
|
|
|
5ebd6f |
return fdb_modify(RTM_NEWNEIGH, NLM_F_CREATE|NLM_F_EXCL, argc-1, argv+1);
|
|
|
5ebd6f |
if (matches(*argv, "append") == 0)
|
|
|
5ebd6f |
return fdb_modify(RTM_NEWNEIGH, NLM_F_CREATE|NLM_F_APPEND, argc-1, argv+1);
|
|
|
5ebd6f |
+ if (matches(*argv, "replace") == 0)
|
|
|
5ebd6f |
+ return fdb_modify(RTM_NEWNEIGH, NLM_F_CREATE|NLM_F_REPLACE, argc-1, argv+1);
|
|
|
5ebd6f |
if (matches(*argv, "delete") == 0)
|
|
|
5ebd6f |
return fdb_modify(RTM_DELNEIGH, 0, argc-1, argv+1);
|
|
|
5ebd6f |
if (matches(*argv, "show") == 0 ||
|