<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On 11 April 2017 at 11:08, Russell Bryant <span dir="ltr"><<a href="mailto:rbryant@redhat.com" target="_blank">rbryant@redhat.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 style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_extra"><div><div class="gmail-h5"><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-m_-7066795447713815249gmail-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/sh<wbr>ow_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></div><div 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 style="font-family:arial,helvetica,sans-serif"><br></div><div style="font-family:arial,helvetica,sans-serif"><a href="http://docs.openvswitch.org/en/latest/faq/releases/" target="_blank">http://docs.openvswitch.org/<wbr>en/latest/faq/releases/</a>​</div><div><div style="font-family:arial,helvetica,sans-serif">​</div><div 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><span class="gmail-HOEnZb"><font color="#888888"><div><br></div>-- <br><div class="gmail-m_-7066795447713815249gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><font face="arial, helvetica, sans-serif">Russell Bryant</font></div></div></div></div></div>
</font></span></div></div>
</blockquote></div><br></div><div class="gmail_extra">Hi Russel,</div><div class="gmail_extra"><br></div><div class="gmail_extra"> I'm curious about something and maybe you can clarify it for me...</div><div class="gmail_extra"><br></div><div class="gmail_extra"> Let's say that I don't need NAT, neither Security Groups (just to try to avoid more OpenFlow rules on top of DPDK), and then, I'll try to run GENEVE on top of DPDK anyway, regardless of the lack of NAT and/or SecGrp (since I don't need those for perf tests that I'm planning to run).</div><div class="gmail_extra"><br></div><div class="gmail_extra"> At the following document:</div><div class="gmail_extra"><br></div><div class="gmail_extra"> <a href="https://docs.openstack.org/developer/networking-ovn/install.html">https://docs.openstack.org/developer/networking-ovn/install.html</a><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"> We have this (Compute Node):</div><div class="gmail_extra"><br></div><div class="gmail_extra">---</div><div class="gmail_extra"><div class="gmail_extra"> Configure the overlay network local endpoint IP address.</div><div class="gmail_extra"><br></div><div class="gmail_extra"> # ovs-vsctl set open . external-ids:ovn-encap-ip=IP_ADDRESS</div><div class="gmail_extra"><br></div><div class="gmail_extra"> Replace IP_ADDRESS with the IP address of the overlay network interface on the compute node.</div><div class="gmail_extra">---</div><div class="gmail_extra"><br></div><div class="gmail_extra"> This means that the OVN / GENEVE / VXLAN tunnels will be created on top of that "IP_ADDRESS", right?</div><div class="gmail_extra"><br></div><div class="gmail_extra"> So, that "IP_ADDRESS" must be configured on Linux, in advance, so OVS/OVN can use it...</div><div class="gmail_extra"><br></div><div class="gmail_extra"> However, if I want to use that physical NIC (where IP_ADDRESS is) card with DPDK, the interface disappear from Linux! Since DPDK takes it over, so, the "IP_ADDRESS" will be also gone!</div><div class="gmail_extra"><br></div><div class="gmail_extra"> With that being said, how to specify the "IP_ADDRESS" (overlay network local endpoint ___ ?) if there is no more NIC/IP on Linux?<br></div><div class="gmail_extra"><br></div><div class="gmail_extra"> The Networking OVN DPDK doc doesn't say anything about the "overlay endpoint" or how to deploy GENEVE on top of DPDK-based interfaces.</div><div class="gmail_extra"><br></div><div class="gmail_extra"> <a href="https://docs.openstack.org/developer/networking-ovn/dpdk.html">https://docs.openstack.org/developer/networking-ovn/dpdk.html</a></div></div><div class="gmail_extra"><br></div><div class="gmail_extra"> I'm a little bit confused...   =P</div><div class="gmail_extra"><br></div><div class="gmail_extra"> BTW, when I was first trying this, I've successfully reconfiured the "br-int" to "datapath_type=netdev" and I can see that OVS+DPDK is working, pooling for packets but, I didn't added ANY PCI ID to DPDK config files!</div><div class="gmail_extra"><br></div><div class="gmail_extra">Thanks!</div><div class="gmail_extra">Thiago</div><div class="gmail_extra"><br></div></div>