Hi, I have been playing around with OvS(-DPDK) for a while, and nowadays, I am investigating its performance on SmartNICs. More precisely, the recent SoC-based Mellanox / NVIDIA Bluefield-2 SmartNIC (or DPU how NVIDIA started to call its product) heavily uses an OVS(-DPDK) running on its ARM cores when it processes packets from and to the host system (in SmartNIC mode).
On this SmartNIC, the OVS kernel datapath can be offloaded to the hardware with TC flowers. If OVS-DPDK is running on the SmartNIC, it can also be offloaded to the hardware - essentially, it is done via DPDK rte_flow (according to this OVS Conf talk - https://www.openvswitch.org/support/ovscon2019/day2/0951-hw_offload_ovs_con_19-Oz-Mellanox.pdf ) So, even though the different offloading approaches, when the datapath is offloaded to the hardware and all packets are processed by the hardware exclusively, the performance should be the same, right? In other words, while OVS-DPDK performs much better than the kernel datapath running on a host system, once offloaded, they are essentially the same as the same "hardware block" that implements the corresponding (part of the) datapath. Does this interpretation make sense? Or, since the megaflow cache algorithm is slightly different in each implementation, in some corner cases (like in the discrepancy of the megaflow cache presentation - https://www.youtube.com/watch?v=DSC3m-Bww64), the DPDK-based offloading should perform better? More information about my measurements (from which this question has been born) can be found in a blogpost: https://medium.com/codex/nvidia-mellanox-bluefield-2-smartnic-hands-on-tutorial-rig-for-dive-part-vii-1417e2e625bf Thank you, Levi _______________________________________________ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss