[ovs-discuss] dpdk, netns and jumbo frames dropping packets

Tonghao Zhang xiangxia.m.yue at gmail.com
Fri Jan 10 03:01:21 UTC 2020


On Tue, Jul 9, 2019 at 3:43 PM Liam Young <liam.young at canonical.com> wrote:
>
> Hi,
>
> I have a server which has an ovs bridge with a dpdk device attached
> for external network access and a network namespace attached via a tap
> device. Sending data out of the namespace fails if jumbo frames are enabled.
> Sending data into the namespace seems ok.  Dropping the mtu of the tap device
> in the network namespace to 1500 also seems to fix the issue.
>
> I initially came across the issue in an OpenStack deployment and raised
> Bug #1833713 *1. However, I was able to reproduce the issue without
> OpenStack by manually creating the bridge etc *2.
>
> Any advice, tips or you-missed-this-step very gratefully received,
> Liam
>
> Below is my setup:
>
> Ubuntu: eoan
> DPDK pkg: 18.11.1-3
> OVS DPDK pkg: 2.11.0-0ubuntu2
> Kerenl: 5.0.0-20-generic
>
> root at node-licetus:~# ovs-vsctl show
> 523eab62-8d03-4445-a7ba-7570f5027ff6
>     Bridge br-test
>         Port "tap1"
>             Interface "tap1"
>                 type: internal
>         Port br-test
>             Interface br-test
>                 type: internal
>         Port "dpdk-nic1"
>             Interface "dpdk-nic1"
>                 type: dpdk
>                 options: {dpdk-devargs="0000:03:00.0"}
>     ovs_version: "2.11.0"
>
> root at node-licetus:~# ovs-vsctl get Interface dpdk-nic1 mtu
> 9000
>
> root at node-licetus:~# ip netns exec ns1 ip addr show tap1
tap1 is veth netdevice?

I tested as below:
[root at localhost myshell]# ovs-vsctl show
933a262a-a5e5-4112-ad2b-e4fe9b65fdc2
    Bridge "br0"
        datapath_type: netdev
        Port "br0"
            Interface "br0"
                type: internal
        Port "dpdk0"
            Interface "dpdk0"
                type: dpdk
                options: {dpdk-devargs="0000:82:00.0", n_rxq="4"}
        Port "__tap01"
            Interface "__tap01"

ip link add __tap00 type veth peer name __tap01
ip li set __tap00 netns ns100
ovs-vsctl add-port br0 __tap01
ip netns exec ns100 ifconfig __tap00 mtu 9000
ovs-vsctl set interface __tap01 mtu_request=9000
ovs-vsctl set interface dpdk0 mtu_request=9000

It works fine.
> 12: tap1: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 9000 qdisc fq_codel state UNKNOWN group default qlen 1000
>     link/ether 0a:dd:76:38:52:54 brd ff:ff:ff:ff:ff:ff
>     inet 10.246.112.101/21 scope global tap1
>        valid_lft forever preferred_lft forever
>     inet6 fe80::8dd:76ff:fe38:5254/64 scope link
>        valid_lft forever preferred_lft forever
>
> Using iperf to send data out of the netns fails:
>
> root at node-licetus:~# ip netns exec ns1 iperf -c 10.246.114.29
> ------------------------------------------------------------
> Client connecting to 10.246.114.29, TCP port 5001
> TCP window size: 325 KByte (default)
> ------------------------------------------------------------
> [ 3] local 10.246.112.101 port 51590 connected with 10.246.114.29 port 5001
> [ ID] Interval Transfer Bandwidth
> [ 3] 0.0-10.3 sec 323 KBytes 257 Kbits/sec
>
>
> root at node-hippalus:~# iperf -s -m
> ------------------------------------------------------------
> Server listening on TCP port 5001
> TCP window size: 128 KByte (default)
> ------------------------------------------------------------
> root at node-hippalus:~#
>
>
> *1 https://bugs.launchpad.net/ubuntu/+source/dpdk/+bug/1833713
> *2 https://bugs.launchpad.net/ubuntu/+source/dpdk/+bug/1833713/comments/7
> _______________________________________________
> discuss mailing list
> discuss at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


More information about the discuss mailing list