From: Yotam Gigi <yotamg(a)mellanox.com>
Change the span recipe to use the clsact qdisc rather than the ingress and
egress qdiscs. Using the clsact qdisc it is possible to add both ingress
and egress filters, so update the code to accommodate with these changes.
Signed-off-by: Yotam Gigi <yotamg(a)mellanox.com>
Signed-off-by: Yuval Mintz <yuvalm(a)mellanox.com>
---
recipes/switchdev/l2-021-span.py | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/recipes/switchdev/l2-021-span.py b/recipes/switchdev/l2-021-span.py
index 336b3c8..f9d6df9 100644
--- a/recipes/switchdev/l2-021-span.py
+++ b/recipes/switchdev/l2-021-span.py
@@ -21,24 +21,22 @@ class MirredPort:
self.mirred_port = mirred_port
self.mach = mach
- mach.run("tc qdisc replace dev %s handle 0: root prio" % devname)
- mach.run("tc qdisc add dev %s handle ffff: ingress" % devname)
+ mach.run("tc qdisc add dev %s clsact" % devname)
self.pref = [1, 1]
def create_mirror(self, to_port, ingress = False):
- ingress_str = "ingress" if ingress else ""
- qdisc_handle = "ffff" if ingress else "0"
+ ingress_str = "ingress" if ingress else "egress"
from_dev = self.mirred_port.get_devname()
to_dev = to_port.get_devname()
- self.mach.run("tc filter add dev %s parent %s: pref %d matchall \
+ self.mach.run("tc filter add dev %s %s pref %d matchall \
skip_sw action mirred egress mirror dev %s" % (from_dev,
- qdisc_handle, self.pref[ingress], to_dev))
+ ingress_str, self.pref[ingress], to_dev))
self.pref[ingress] += 1
def remove_mirror(self, to_port, ingress = False):
from_dev = self.mirred_port.get_devname()
- ingress_str = "ingress" if ingress else ""
+ ingress_str = "ingress" if ingress else "egress"
self.pref[ingress] -= 1
self.mach.run("tc filter del dev %s pref %d %s" % (from_dev,
self.pref[ingress], ingress_str))
--
2.4.3