The existing port mirroring implementation uses packet copy operations
to replicate traffic from the mirror target site. This patch replaces 
the packet copy operations with hardware (NIC) device mirroring, which 
is available from many NICs.

Based on the benchmarks presented at the OvS+OVN
Conference 2020 Port Mirroring Offload track
http://www.openvswitch.org/support/ovscon2020/), for a 64-byte
packet stream, with a single port mirror enabled with the default 
implementation, the overall system throughput is observed to degrade 
up to 65%. Running the same test with the attached patch, the 
performance doubles, and the performance drop, compared to the 
case where mirroring is disabled, reduces to between 20 - 30%.

In addition to port mirroring, in this patch we extend the existing
port mirror configuration to support L2 layer based "flow" mirroring,
i.e. based on the MAC address, to filter out unwanted packet 
streams.

Signed-off-by: Liang-Min Wang <liang-min.w...@intel.com>
Tested-by: Timothy Miskell <timothy.misk...@intel.com>
Suggested-by: Munish Mehan <mm6...@att.com>

Liang-min Wang (1):
  Extends the existing mirror configuration parameters

 lib/automake.mk            |   2 +
 lib/netdev-dpdk-mirror.c   | 516 +++++++++++++++++++++++++++++++++++++
 lib/netdev-dpdk-mirror.h   |  83 ++++++
 lib/netdev-dpdk.c          | 397 ++++++++++++++++++++++++++++
 lib/netdev-provider.h      |  16 ++
 lib/netdev.c               | 386 +++++++++++++++++++++++++++
 lib/netdev.h               |  16 ++
 tests/ovs-vsctl.at         |   2 +
 vswitchd/bridge.c          | 271 ++++++++++++++++++-
 vswitchd/vswitch.ovsschema |  24 +-
 vswitchd/vswitch.xml       |  50 ++++
 11 files changed, 1759 insertions(+), 4 deletions(-)
 create mode 100644 lib/netdev-dpdk-mirror.c
 create mode 100644 lib/netdev-dpdk-mirror.h

-- 
2.25.1

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to