On 4/11/2019 10:48 AM, Nikolas Britton wrote:
I'm not sure what you mean by pulled from the OOT drivers. I was able to build the kernel modules with a few hacks to ./debian/rules and everything necessary was already there. I was able to build the openvswitch.ko, vport_geneve.ko, vport_vxlan.ko, vport_gre.ko, vport_lisp.ko, and vport_stt.ko with dpdk appending the following in ./debian/rules for configure:

--with-dpdk=/usr/src/dpdk-stable-18.11.1/x86_64-native-linuxapp-gcc
--with-linux=/usr/src/linux-headers-4.18.0-17-generic

Top posting... so hard to follow.

In any case I misunderstood - I was referring to the Linux upstream kernel where the stt and lisp drivers are not included.  If Ubuntu adds them to their distro package then that changes the calculus.

So now I'm confused though - the stt driver is in the native Linux kernel datapath but you're using dpdk to
bypass the kernel datapath?

Maybe someone who knows DPDK better can help.

- Greg


For some reason the dpdk 18.11 upstream debian packages doesn't build / install the libraries necessary for the openvswitch configure script to use on ubuntu 18.04, so I had to first manually build the dpdk libraries by running make install T=x86_64-native-linuxapp-gcc in /usr/src/dpdk-stable-18.11.1/. More information about that process is documented here: http://docs.openvswitch.org/en/latest/intro/install/dpdk/

I compiled it for skylake-avx512, here are my flags:
export DEB_CFLAGS_APPEND="-m64 -Ofast -march=skylake-avx512 -mtune=skylake-avx512 -funroll-loops" export DEB_CXXFLAGS_APPEND="-m64 -Ofast -march=skylake-avx512 -mtune=skylake-avx512 -funroll-loops" export DEB_LDFLAGS_APPEND="-m64 -Ofast -march=skylake-avx512 -mtune=skylake-avx512 -funroll-loops" export DEB_OBJCFLAGS_APPEND="-m64 -Ofast -march=skylake-avx512 -mtune=skylake-avx512 -funroll-loops" export DEB_OBJCXXFLAGS_APPEND="-m64 -Ofast -march=skylake-avx512 -mtune=skylake-avx512 -funroll-loops" export DEB_CPPFLAGS_APPEND="-m64 -Ofast -march=skylake-avx512 -mtune=skylake-avx512 -funroll-loops"

I uploaded all the packages to here: http://www.exabit.io/ubuntu/

I did an initial test with the vport-stt.ko, and openvswitch.ko, modules enabled and performance was amazing to say the least, iperf test appeared to fully saturate my 16 Gbps connection between two nodes.

root@bm001:~# ovs-vsctl show
224dea41-f166-4f33-aa31-372fa5617624
    Bridge "overlay0"
        Port "stt0"
Interface "stt0"
type: stt
options: {remote_cert="/etc/openvswitch/bm002-cert.pem", remote_ip="10.3.40.52"}
        Port "overlay0"
Interface "overlay0"
type: internal
    ovs_version: "2.11.1"

root@bm001:~# ifconfig overlay0
overlay0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.144.1  netmask 255.255.255.0  broadcast 192.168.144.255
        inet6 fe80::181b:5dff:fed5:bc4f  prefixlen 64  scopeid 0x20<link>
        ether 1a:1b:5d:d5:bc:4f  txqueuelen 1000  (Ethernet)
        RX packets 755447  bytes 36222552 (36.2 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 714694  bytes 44007592220 (44.0 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

root@bm001:~# ifconfig ens3
ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9000
        inet 10.3.40.51  netmask 255.255.255.0  broadcast 10.3.40.255
        inet6 fe80::17ff:fe00:57ce  prefixlen 64  scopeid 0x20<link>
        ether 02:00:17:00:57:ce  txqueuelen 1000  (Ethernet)
        RX packets 13310513  bytes 1332012738 (1.3 GB)
        RX errors 0  dropped 1570  overruns 0  frame 0
        TX packets 20576288  bytes 45912880820 (45.9 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

root@bm001:~# iperf -c 192.168.144.2
------------------------------------------------------------
Client connecting to 192.168.144.2, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.144.1 port 32834 connected with 192.168.144.2 port 5001
[ ID] Interval       Transfer   Bandwidth
[  3]  0.0-10.0 sec  17.7 GBytes  15.2 Gbits/sec

root@bm002:~# ovs-vsctl show
75ef1aaf-a31a-4e87-b3d3-94241d9b7125
    Bridge "overlay0"
        Port "overlay0"
Interface "overlay0"
type: internal
        Port "stt0"
Interface "stt0"
type: stt
options: {local_ip="10.3.40.52", remote_cert="/etc/openvswitch/bm001-cert.pem", remote_ip="10.3.40.51"}
ovs_version: "2.11.1"

overlay0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.144.2  netmask 255.255.255.0  broadcast 192.168.144.255
        inet6 fe80::1097:22ff:fe53:1e49  prefixlen 64  scopeid 0x20<link>
        ether 12:97:22:53:1e:49  txqueuelen 1000  (Ethernet)
        RX packets 944565  bytes 44007205884 (44.0 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 517923  bytes 34184906 (34.1 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9000
inet 10.3.40.52  netmask 255.255.255.0  broadcast 10.3.40.255
inet6 fe80::17ff:fe02:12b8  prefixlen 64  scopeid 0x20<link>
ether 02:00:17:02:12:b8  txqueuelen 1000  (Ethernet)
        RX packets 20679038  bytes 45910655685 (45.9 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 13338314  bytes 1344124706 (1.3 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

root@bm002:~# iperf -s -B 192.168.144.2
------------------------------------------------------------
Server listening on TCP port 5001
Binding to local address 192.168.144.2
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 192.168.144.2 port 5001 connected with 192.168.144.1 port 32834
[ ID] Interval Transfer     Bandwidth
[  4]  0.0-10.0 sec  17.7 GBytes  15.2 Gbits/sec

On Wed, Apr 10, 2019 at 5:53 PM Gregory Rose <[email protected] <mailto:[email protected]>> wrote:



    On 4/10/2019 1:32 PM, Nikolas Britton wrote:
    > Hi,
    >
    > I just finished compiling OVS 2.11.0 packages for Ubuntu 18.04
    using the
    > Debian upstream source package. I was experimenting with tunnels
    to create
    > an overlay network to connect multiple KVM hypervisors. One of
    the options
    > I tried to use was an STT tunnel. However, it appears that the
    STT protocol
    > didn't get included in the binary somehow. Does it need to be
    enabled with
    > a build flag? The STT option also doesn't work with IPsec, but
    the manual
    > says it should.

    The STT driver isn't included in the upstream drivers.  You'd need to
    pull from the OOT drivers at
    github.

    - Greg



--
*Nikolas Britton*
*Senior Deployment Engineer, Mirantis*
12301-B Riata Trace Pkwy Bldg #2, Suite 150, Austin, Texas

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to