diff options
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | ofproto/ofproto-dpif.c | 18 | ||||
-rw-r--r-- | vswitchd/ovs-vswitchd.8.in | 2 |
3 files changed, 22 insertions, 0 deletions
@@ -1,5 +1,7 @@ post-v1.3.0 ------------------------ + - ovs-appctl: + - New "fdb/flush" command to flush bridge's MAC learning table. v1.3.0 - xx xxx xxxx diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c index 3cceb6be..6c303bba 100644 --- a/ofproto/ofproto-dpif.c +++ b/ofproto/ofproto-dpif.c @@ -5116,6 +5116,22 @@ ofproto_dpif_lookup(const char *name) } static void +ofproto_unixctl_fdb_flush(struct unixctl_conn *conn, + const char *args, void *aux OVS_UNUSED) +{ + const struct ofproto_dpif *ofproto; + + ofproto = ofproto_dpif_lookup(args); + if (!ofproto) { + unixctl_command_reply(conn, 501, "no such bridge"); + return; + } + mac_learning_flush(ofproto->ml); + + unixctl_command_reply(conn, 200, "table successfully flushed"); +} + +static void ofproto_unixctl_fdb_show(struct unixctl_conn *conn, const char *args, void *aux OVS_UNUSED) { @@ -5367,6 +5383,8 @@ ofproto_dpif_unixctl_init(void) unixctl_command_register("ofproto/trace", "bridge {tun_id in_port packet | odp_flow [-generate]}", ofproto_unixctl_trace, NULL); + unixctl_command_register("fdb/flush", "bridge", ofproto_unixctl_fdb_flush, + NULL); unixctl_command_register("fdb/show", "bridge", ofproto_unixctl_fdb_show, NULL); unixctl_command_register("ofproto/clog", "", ofproto_dpif_clog, NULL); diff --git a/vswitchd/ovs-vswitchd.8.in b/vswitchd/ovs-vswitchd.8.in index 1f010910..314fe609 100644 --- a/vswitchd/ovs-vswitchd.8.in +++ b/vswitchd/ovs-vswitchd.8.in @@ -120,6 +120,8 @@ then displays detailed information about all interfaces with CFM enabled. .SS "BRIDGE COMMANDS" These commands manage bridges. +.IP "\fBfdb/flush\fR \fIbridge\fR" +Flushes \fIbridge\fR MAC address learning table. .IP "\fBfdb/show\fR \fIbridge\fR" Lists each MAC address/VLAN pair learned by the specified \fIbridge\fR, along with the port on which it was learned and the age of the entry, |