From 0475db71c650be8a626265002bb15fb7eac58333 Mon Sep 17 00:00:00 2001 From: Martin Fong Date: Fri, 9 Nov 2018 12:16:02 -0800 Subject: ovs-tcpdump: Add --span to mirror all ports on bridge. Signed-off-by: Martin Fong Signed-off-by: Ben Pfaff --- utilities/ovs-tcpdump.in | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'utilities/ovs-tcpdump.in') diff --git a/utilities/ovs-tcpdump.in b/utilities/ovs-tcpdump.in index 17b5d48f1..22f249f58 100755 --- a/utilities/ovs-tcpdump.in +++ b/utilities/ovs-tcpdump.in @@ -111,6 +111,7 @@ The following options are available: -i, --interface Open vSwitch interface to mirror and tcpdump --mirror-to The name for the mirror port to use (optional) Default 'miINTERFACE' + --span If specified, mirror all ports (optional) """ % {'prog': sys.argv[0]}) sys.exit(0) @@ -312,13 +313,14 @@ class OVSDB(object): self._txn = None return result - def bridge_mirror(self, intf_name, mirror_intf_name, br_name): + def bridge_mirror(self, intf_name, mirror_intf_name, br_name, + mirror_select_all=False): txn = self._start_txn() mirror = txn.insert(self.get_table('Mirror')) mirror.name = 'm_%s' % intf_name - mirror.select_all = False + mirror.select_all = mirror_select_all mirrored_port = self._find_row_by_name('Port', intf_name) @@ -404,6 +406,9 @@ def main(): mirror_interface = nxt skip_next = True continue + elif cur in ['--span']: + mirror_select_all = True + continue tcpdargs.append(cur) if interface is None: @@ -445,7 +450,8 @@ def main(): try: ovsdb.make_port(mirror_interface, ovsdb.port_bridge(interface)) ovsdb.bridge_mirror(interface, mirror_interface, - ovsdb.port_bridge(interface)) + ovsdb.port_bridge(interface), + mirror_select_all) except OVSDBException as oe: print("ERROR: Unable to properly setup the mirror: %s." % str(oe)) try: -- cgit v1.2.1