By default, "ovs-vsctl list-br" returns all bridges, real or fake.  This
commit adds a "--only-real" option that limits the output to only real
bridges.  This will be useful in a future commit that needs to perform
actions only on real bridges.

Signed-off-by: Justin Pettit <jpet...@nicira.com>
---
 utilities/ovs-vsctl.8.in |    4 ++--
 utilities/ovs-vsctl.c    |    7 ++++++-
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/utilities/ovs-vsctl.8.in b/utilities/ovs-vsctl.8.in
index 1b80d05..e356eab 100644
--- a/utilities/ovs-vsctl.8.in
+++ b/utilities/ovs-vsctl.8.in
@@ -195,9 +195,9 @@ Without \fB\-\-if\-exists\fR, attempting to delete a bridge 
that does
 not exist is an error.  With \fB\-\-if\-exists\fR, attempting to
 delete a bridge that does not exist has no effect.
 .
-.IP "\fBlist\-br\fR"
+.IP "[\fB\-\-only\-real\fR] \fBlist\-br\fR"
 Lists all existing real and fake bridges on standard output, one per
-line.
+line.  With \fB\-\-only\-real\fR, fake bridges will not be returned.
 .
 .IP "\fBbr\-exists \fIbridge\fR"
 Tests whether \fIbridge\fR exists as a real or fake bridge.  If so,
diff --git a/utilities/ovs-vsctl.c b/utilities/ovs-vsctl.c
index fda3a89..4e6bf8b 100644
--- a/utilities/ovs-vsctl.c
+++ b/utilities/ovs-vsctl.c
@@ -1582,12 +1582,17 @@ cmd_list_br(struct vsctl_context *ctx)
 {
     struct shash_node *node;
     struct svec bridges;
+    bool only_real = shash_find(&ctx->options, "--only-real");
 
     vsctl_context_populate_cache(ctx);
 
     svec_init(&bridges);
     SHASH_FOR_EACH (node, &ctx->bridges) {
         struct vsctl_bridge *br = node->data;
+
+        if (only_real && br->parent) {
+            continue;
+        }
         svec_add(&bridges, br->name);
     }
     output_sorted(&bridges, &ctx->output);
@@ -3961,7 +3966,7 @@ static const struct vsctl_command_syntax all_commands[] = 
{
     /* Bridge commands. */
     {"add-br", 1, 3, pre_get_info, cmd_add_br, NULL, "--may-exist", RW},
     {"del-br", 1, 1, pre_get_info, cmd_del_br, NULL, "--if-exists", RW},
-    {"list-br", 0, 0, pre_get_info, cmd_list_br, NULL, "", RO},
+    {"list-br", 0, 0, pre_get_info, cmd_list_br, NULL, "--only-real", RO},
     {"br-exists", 1, 1, pre_get_info, cmd_br_exists, NULL, "", RO},
     {"br-to-vlan", 1, 1, pre_get_info, cmd_br_to_vlan, NULL, "", RO},
     {"br-to-parent", 1, 1, pre_get_info, cmd_br_to_parent, NULL, "", RO},
-- 
1.7.5.4

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to