From f0a3aa2ecf3c81b448edfaa8c86e5dd07ba82e3a Mon Sep 17 00:00:00 2001 From: Ansis Atteka Date: Tue, 1 Nov 2011 12:08:04 -0700 Subject: [PATCH] ovs-appctl: Add fdb/flush command Added a new command that will allow to flush particular bridge's MAC learning table. Issue #7819 --- NEWS | 2 ++ ofproto/ofproto-dpif.c | 18 ++++++++++++++++++ vswitchd/ovs-vswitchd.8.in | 2 ++ 3 files changed, 22 insertions(+) diff --git a/NEWS b/NEWS index f0baf372..41e224d5 100644 --- a/NEWS +++ b/NEWS @@ -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 @@ -5115,6 +5115,22 @@ ofproto_dpif_lookup(const char *name) : NULL); } +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, -- 2.30.2