<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Apr 10, 2017 at 4:49 PM, Martinx - ジェームズ <span dir="ltr"><<a href="mailto:thiagocmartinsc@gmail.com" target="_blank">thiagocmartinsc@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div class="gmail-h5"><br><div class="gmail_extra"><br><div class="gmail_quote">On 8 April 2017 at 00:37, Martinx - ジェームズ <span dir="ltr"><<a href="mailto:thiagocmartinsc@gmail.com" target="_blank">thiagocmartinsc@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Guys,<div><br></div><div> I manage to deploy Ocata on Ubuntu 16.04 with OVN for the first time ever, today!</div><div><br></div><div> It looks very, very good... OVN L3 Router is working, OVN DHCP working... bridge mappings "br-ex" on each compute node... All good!</div><div><br></div><div> Then, I've said: time for DPDK!</div><div><br></div><div> I manage to use OVS with DPDK easily on top of Ubuntu (plus Ocata Cloud Archive) with plain KVM, no OpenStack, so, I have experience about how to setup DPDK, OVS+DPDK, Libvirt vhostuser, KVM and etc...</div><div><br></div><div> After configuring DPDK on a compute node, I tried the following instructions:</div><div><br></div><div> <a href="https://docs.openstack.org/developer/networking-ovn/dpdk.html" target="_blank">https://docs.openstack.org/de<wbr>veloper/networking-ovn/dpdk.ht<wbr>ml</a></div><div><br></div><div> It looks quite simple!</div><div><br></div><div> To make things even simpler, I have just 1 controller, and 1 compute node, to begin with, before enabling DPDK at the compute node and changing the "br-int" datapath, I deleted all OVN Routers and all Neutron Networks and Subnets, that was previously working with regular OVS (no DPDK).</div><div><br></div><div> Then, after enabling DPDK and updating the "br-int" and the "br-ex" interfaces, right after connecting the "OVN L3 Router" into the "ext-net / br-ex" network, the following errors appeared on OpenvSwitch logs of the related compute node (OpenFlow error):</div><div><br></div><div><br></div><div> * After connecting OVN L3 Router against the "ext-net / br-ex" Flat / VLAN Network:<br></div><div><br></div><div> ovs-vswitchd.log:</div><div><br></div><div> <a href="http://paste.openstack.org/show/605800/" target="_blank">http://paste.openstack.org/sh<wbr>ow/605800/</a><br></div><div><br></div><div> ovn-controller.log:</div><div><br></div><div> <a href="http://paste.openstack.org/show/605801/" target="_blank">http://paste.openstack.org/sh<wbr>ow/605801/</a></div><div><br></div><div><br></div><div> Also, after connecting the OVN L3 Router into the local (GENEVE) network, very similar error messages appeared on OpenvSwitch logs...</div><div><br></div><div><br></div><div> * After connecting OVN L3 Router on a "local" GENEVE Network:</div><div><br></div><div> ovs-vswitchd.log:</div><div><br></div><div> <a href="http://paste.openstack.org/show/605804/" target="_blank">http://paste.openstack.org/sh<wbr>ow/605804/</a></div><div><br></div><div> ovn-controller.log:</div><div><br></div><div> <a href="http://paste.openstack.org/show/605805/" target="_blank">http://paste.openstack.org/sh<wbr>ow/605805/</a></div><div><br></div><div><br></div><div> * Output of "ovs-vsctl show" at the single compute node, after plugging the OVN L3 Router against the two networks (external / GENEVE):</div><div><br></div><div> <a href="http://paste.openstack.org/show/605806/" target="_blank">http://paste.openstack.org/sh<wbr>ow/605806/</a></div><div><br></div><div><br></div><div> Then, I tried to launch an Instance anyway and, for my surprise, the Instance was created! Using vhostuser OVS+DPDK socket!</div><div><br></div><div> Also, the Instance got its IP! Which is great!</div><div><br></div><div> However, the Instance can not ping its OVN L3 Router (its default gateway), with or without any kind of security groups applied, no deal...   :-(</div><div><br></div><div> BTW, the Instance did not received the ARP stuff of the OVN L3 Router, I mean, for the instance, the gateway IP on "arp -an" shows "<incomplete>".</div><div><br></div><div><br></div><div> * The ovs-vswitchd.log after launching an Instance on top of OVN/OVS+DPDK:</div><div><br></div><div> <a href="http://paste.openstack.org/show/605807/" target="_blank">http://paste.openstack.org/sh<wbr>ow/605807/</a></div><div><br></div><div> * The output of "ovs-vsctl show" after launching the above instance:</div><div><br></div><div> <a href="http://paste.openstack.org/show/605809/" target="_blank">http://paste.openstack.org/sh<wbr>ow/605809/</a> - Line 33 is the dpdkvhostuser</div><div><br></div><div><br></div><div> Just to give another try, I started a second Instance, to see if the Instances can ping each other... Also did not worked, the Instances can not ping each other.</div><div><br></div><div><br></div><div> So, from what I'm seeing, OVN on top of DPDK does not work.</div><div><br></div><div> Any tips?<br></div><div><br></div><div><br></div><div> NOTE:</div><div><br></div><div> I tried to enable "hugepages" on my OpenStack's flavor, just in case... Then, I found another bug, it doesn't even boot the Instance:</div><div><br></div><div> <a href="https://bugs.launchpad.net/cloud-archive/+bug/1680956" target="_blank">https://bugs.launchpad.net/cl<wbr>oud-archive/+bug/1680956</a></div><div><br></div><div><br></div><div> For now, I'll deploy Ocata with regular OVN, no DPDK, but, my goal with this cloud is for high performance networks, so, I need DPDK, and I also need GENEVE and Provider Networks, everything on top of DPDK.</div><div><br></div><div>---</div><div> After researching more about this "high perf networks", I found this:</div><div><br></div><div> * DPDK-like performance in Linux kernel with XDP !</div><div><br></div><div> <a href="http://openvswitch.org/support/ovscon2016/7/0930-pettit.pdf" target="_blank">http://openvswitch.org/suppor<wbr>t/ovscon2016/7/0930-pettit.pdf</a></div><div><br></div><div> <a href="https://www.iovisor.org/technology/xdp" target="_blank">https://www.iovisor.org/techn<wbr>ology/xdp</a></div><div> <a href="https://www.iovisor.org/technology/ebpf" target="_blank">https://www.iovisor.org/techn<wbr>ology/ebpf</a></div><div><br></div><div> <a href="https://qmonnet.github.io/whirl-offload/2016/09/01/dive-into-bpf/" target="_blank">https://qmonnet.github.io/whi<wbr>rl-offload/2016/09/01/dive-int<wbr>o-bpf/</a></div><div><br></div><div> But I have no idea about how to use OpenvSwitch with this thing, however, if I can achieve DPDK-Like performance, without DPDK, using just plain Linux, I'm a 100% sure that I'll prefer it!</div><div><br></div><div> I'm okay to give OpenvSwitch + DPDK another try, even knowing that it [OVS] STILL have serious problems (<a href="https://bugs.launchpad.net/ubuntu/+source/openvswitch/+bug/1577088)." target="_blank">https://bugs.launchpad.net/ub<wbr>untu/+source/openvswitch/+bug/<wbr>1577088).</a>..</div><div>---</div><div><br></div><div> OpenStack on Ubuntu rocks!   :-D</div><div><br></div><div>Thanks!</div><div>Thiago</div></div>
</blockquote></div><br></div></div></div><div class="gmail_extra">I just realized how cool IO Visor is!<div><div><br></div><div>Sorry about mixing subjects, let's keep this one clear for OVN on top of DPDK.</div><div><br></div><div>I found a opened bug on RedHat's Bugzilla, I updated it with the info from this e-mail:</div><div><br></div><div><a href="https://bugzilla.redhat.com/show_bug.cgi?id=1410565" target="_blank">https://bugzilla.redhat.com/<wbr>show_bug.cgi?id=1410565</a><br></div><div><br></div><div>Looks like that, OVN doc say that it is supported on top of any OpenvSwitch Datapath but, it is not the case... Right?</div><div><br></div><div>I would be happy to be able to use GENEVE on top of regular Linux datapath, and only Provider Networks on top of DPDK but, it also doesn't work. I'll post more details about this later.</div><div><br></div></div></div></div></blockquote></div><div class="gmail_extra"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">​The primary limitation here is that the userspace (DPDK) datapath does not yet support NAT.  See the datapath feature matrix here:</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><a href="http://docs.openvswitch.org/en/latest/faq/releases/">http://docs.openvswitch.org/en/latest/faq/releases/</a>​</div><div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">​</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">​So, indeed, provider networks only is going to the configuration​ that works with DPDK.  You could do Geneve networks + provider networks, assuming you set it up so that NAT is not used anywhere.</div></div><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><font face="arial, helvetica, sans-serif">Russell Bryant</font></div></div></div></div></div>
</div></div>