Open zasherif opened 4 years ago
Hi, guys. I'm from USTC. Our group has some questions about establishing a fast path between the gateway node and OVS:
Thanks for your help.
Thank you for your questions and interest to contribute to Mizar:
I would recommend starting first by evaluating the ovs/ebpf approach, because it may be the least intrusive and allow reuse of existing Mizar code: https://github.com/williamtu/ovs-ebpf
We think that if we want to implement OVS fast path, we should change OVS source code. Is this acceptable?
Shouldn't we use "Mizar OVS Adapter" approach versus changing the OVS itself. Essentially, "Mizar OVS Adapter" configures the flow rules in order to facilitate fastpath for OVS.
Similar adapter could be built for virtual networking solutions such as Tungsten Fabric (MPLS/BGP based) and so on.
Both open-flow or ebpf based approaches are considered a form of an adapter with no (or minimal) change on the OVS side. I don't want to discourage @HuaqingTu from exploring proposed changes to OVS as well if that makes sense because packet exiting the data-path for userspace is a slow-path. Fortunately, we don't need to worry much about these with XDP/ebpf because all the packet processing is running in the Kernel anyway!!
Hello, what are the main advantages of "Mizar OVS Adapter" compared to "OVS with DPDK"? How big is the difference in forwarding efficiency between the two?
Well, the adapter and ovs-dpdk are two separate topics. The adapter role is to understand the "Direct path" protocol in Mizar and program OVS accordingly. Using ovs-ebpf, ovs-dpdk, ovs-xdp, OpenFlow, or modify ovs data-paths is an implementation-specific that needs to justify the performance of each approach. Does that make sense?
We have shown OVS compatibility and support to run Mizar functional tests, this issue needs to address two parts:
Data-Plane:
This part shall provide code-refactoring to the exiting ebpf programs for a possibility to run in the OVS hook. This is primarily needed for deployment scenarios in which kernel update is impossible. I don't imagine serious production environments that should be reluctant to major kernel updates (at least from security updates perspectives), but we need this to be ready and proofed.
Management-Plane:
Refactor/Rewrite the test controller workflows into the new micro-service based management plane in Mizar.