From: Emma Finn <[email protected]> The existing port mirroring uses packet copy to replicate the traffic from the mirror target site. This patch replaces the packet copy with hardware (NIC) device mirroring which is available in many NICs.
Our benchmark shows (detail test setup can be found in ovs/ovn conference 2020 Port Mirroring Offload track http://www.openvswitch.org/support/ovscon2020/) that for a 64-byte packet stream, running a single port port-mirroring with existing implementation, the overall system throughput is observed 65% drop. Running the same test with the attached patch, the performance is seen double, and the performance drop (comparing no mirroring is turned on) reduces to only 20 - 30%. In additional to port mirroring, in this patch we extend the existing port mirror configuration to support L2 layer based "flow" mirroring (using L2, MAC address, to filtering unwanted packet stream). Before we put this patch for upstream, we would like to use this RFC to seek comments and feedbacks about this design. Signed-off-by: Liang-Min Wang <[email protected]> Tested-by: Timothy Miskell <[email protected]> Suggested-by: Munish Mehan <[email protected]> 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 [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
