Description of problem:
OVN will work to some degree with OVS-DPDK and the userspace OVS datapath.
However, userspace OVS datapath conntrack is missing some features (such as IP fragmentation) and does not have NAT. It is anticipated that these will be required by the vast majority of OVN users.
This bugzilla is to identify what is missing in userspace OVS datapath to enable fully functional OVN.
I have successfully deployed Ocata with Networking OVN, but, when I try to reconfigure OpenvSwitch to use DPDK, it stops working.
After enabling OVS+DPDK, I can still create Neutron Networks, Subnets and Routers, however, when I try to plug the OVN L3 Router, into a Network, the following error appear on OVS logs:
Here is a more detailed description about the problems I faced while trying to run OVN, with both GENEVE and Provider Networks, on top of DPDK:
Hope it helps somehow!
Worth to mention that I can easily use OpenvSwitch with DPDK on a KVM-Only hypervisor, no OpenStack.
I'm facing a hard time to integrate it with OpenStack...
My Instances have many interfaces (i.e., eth0, eth1, eth2, eth3) and mixed underlying technologies, for example:
* first 2 (eth0 and eth1), are GENEVE / VXLAN networks, being used by "Control" and "Service", where "Control" is for people to access the Instances' itself, via its Floating IP, SSH, HTTP, etc, its Security Groups are locked by default and, the "Service" is for the Instance to talk with other Instances on the same Stack, Security Groups are opened, no firewall. Doesn't need OVS+DPDK but, would be good to have it.
* latest 2 (eth2 and eth3), are Flat / VLAN Provider Networks, being used by a L2 Bridge Application running inside of the Instance, so, it is is a NFV (L2 Bridge) App. It needs OVS+DPDK at the host.
This is very easy to deploy on a KVM-Only hypervisor. Using 1 KVM with OpenvSwitch host, I can easily create 2 regular OVS bridges, and 2 DPDK-Based OVS bridges and it just works!
However, when with OpenStack, it doesn't play well... Previously, with Neutron OpenvSwitch Agent, it is all or nothing, I mean, you have to change openvsiwtch ML2 config, to make the whole thing DPDK-Based, or Kernel-Based, there is no way to use half / half.
When I moved to OVN, I was expecting to be able to use it on top of DPDK (because the docs that I found on the Internet says it works on top of ANY datapath), for both GENEVE and Provider Networks but, still no deal.