Uploaded image for project: 'Fast Datapath Product'
  1. Fast Datapath Product
  2. FDP-363

[OVS TSO] iperf3 doesn't work for ovs+dpdk+vhostuser over IPv6 vxlan and geneve tunnels

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Critical Critical
    • FDP-25.B
    • None
    • openvswitch3.3
    • None
    • 8
    • False
    • Hide

      None

      Show
      None
    • False
    • rhel-sst-network-fastdatapath
    • ssg_networking
    • OVS/DPDK - FDP-25.B
    • 1

      iperf3 doesn't work for ovs+dpdk+vhostuser over IPv6 vxlan and geneve tunnels

      The issue is found in openvswitch3.3 and no such issue in openvswitch3.2

       
      [root@netqe43 ~]
      [root@netqe43 ~]# uname -r
      5.14.0-417.el9.x86_64
      [root@netqe43 ~]# rpm -q openvswitch3.3
      openvswitch3.3-3.3.0-0.14.el9fdp.x86_64
      [root@netqe43 ~]# ovs-vsctl show
      98d9759a-5c51-4e2a-89a0-8a40618b6eb6
          Bridge ovsbr0
              datapath_type: netdev
              Port ovsbr0
                  Interface ovsbr0
                      type: internal
              Port dpdk0
                  Interface dpdk0
                      type: dpdk
                      options: {dpdk-devargs="0000:b1:00.0", n_rxq="1", n_rxq_desc="1024"}
          Bridge ovsbr1
              datapath_type: netdev
              Port vhost0
                  Interface vhost0
                      type: dpdkvhostuserclient
                      options: {vhost-server-path="/tmp/vhost0"}
              Port ovsbr1
                  Interface ovsbr1
                      type: internal
              Port vxlan0
                  Interface vxlan0
                      type: vxlan
                      options: {csum="true", remote_ip="2001:db8:1::2"}
          ovs_version: "3.3.0"
      [root@netqe43 ~]# ovs-vsctl get Open_vSwitch . other_config

      {dpdk-init="true", dpdk-lcore-mask="2", dpdk-socket-mem="4096,4096", pmd-cpu-mask=a0000000000000000000, userspace-tso-enable="true", vhost-iommu-support="false"}

      [root@netqe43 ~]
      [root@netqe43 ~]# virsh console g1
      Connected to domain 'g1'
      Escape character is ^] (Ctrl + ])
       
      [root@localhost ~]# ip add
      1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
          link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
          inet 127.0.0.1/8 scope host lo
             valid_lft forever preferred_lft forever
          inet6 ::1/128 scope host 
             valid_lft forever preferred_lft forever
      2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
          link/ether 52:54:00:00:00:01 brd ff:ff:ff:ff:ff:ff
          inet 192.168.122.101/24 brd 192.168.122.255 scope global dynamic noprefixroute enp2s0
             valid_lft 3026sec preferred_lft 3026sec
          inet6 fe80::e345:a7a:342b:5552/64 scope link noprefixroute 
             valid_lft forever preferred_lft forever
      3: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1430 qdisc fq_codel state UP group default qlen 1000
          link/ether 52:54:01:00:00:01 brd ff:ff:ff:ff:ff:ff
          inet 192.168.123.1/24 scope global enp3s0
             valid_lft forever preferred_lft forever
          inet6 2001:db8:123::1/64 scope global 
             valid_lft forever preferred_lft forever
      [root@localhost ~]# ethtool -i enp3s0
      driver: virtio_net
      version: 1.0.0
      firmware-version: 
      expansion-rom-version: 
      bus-info: 0000:03:00.0
      supports-statistics: yes
      supports-test: no
      supports-eeprom-access: no
      supports-register-dump: no
      supports-priv-flags: no
      [root@localhost ~]
      [root@localhost ~]# ethtool -k enp3s0
      Features for enp3s0:
      rx-checksumming: on [fixed]
      tx-checksumming: on
      tx-checksum-ipv4: off [fixed]
      tx-checksum-ip-generic: on
      tx-checksum-ipv6: off [fixed]
      tx-checksum-fcoe-crc: off [fixed]
      tx-checksum-sctp: off [fixed]
      scatter-gather: on
      tx-scatter-gather: on
      tx-scatter-gather-fraglist: off [fixed]
      tcp-segmentation-offload: off
      tx-tcp-segmentation: off
      tx-tcp-ecn-segmentation: off [fixed]
      tx-tcp-mangleid-segmentation: off
      tx-tcp6-segmentation: off
      generic-segmentation-offload: on
      generic-receive-offload: on
      large-receive-offload: off [fixed]
      rx-vlan-offload: off [fixed]
      tx-vlan-offload: off [fixed]
      ntuple-filters: off [fixed]
      receive-hashing: off [fixed]
      highdma: on [fixed]
      rx-vlan-filter: on [fixed]
      vlan-challenged: off [fixed]
      tx-lockless: off [fixed]
      netns-local: off [fixed]
      tx-gso-robust: on [fixed]
      tx-fcoe-segmentation: off [fixed]
      tx-gre-segmentation: off [fixed]
      tx-gre-csum-segmentation: off [fixed]
      tx-ipxip4-segmentation: off [fixed]
      tx-ipxip6-segmentation: off [fixed]
      tx-udp_tnl-segmentation: off [fixed]
      tx-udp_tnl-csum-segmentation: off [fixed]
      tx-gso-partial: off [fixed]
      tx-tunnel-remcsum-segmentation: off [fixed]
      tx-sctp-segmentation: off [fixed]
      tx-esp-segmentation: off [fixed]
      tx-udp-segmentation: off [fixed]
      tx-gso-list: off [fixed]
      fcoe-mtu: off [fixed]
      tx-nocache-copy: off
      loopback: off [fixed]
      rx-fcs: off [fixed]
      rx-all: off [fixed]
      tx-vlan-stag-hw-insert: off [fixed]
      rx-vlan-stag-hw-parse: off [fixed]
      rx-vlan-stag-filter: off [fixed]
      l2-fwd-offload: off [fixed]
      hw-tc-offload: off [fixed]
      esp-hw-offload: off [fixed]
      esp-tx-csum-hw-offload: off [fixed]
      rx-udp_tunnel-port-offload: off [fixed]
      tls-hw-tx-offload: off [fixed]
      tls-hw-rx-offload: off [fixed]
      rx-gro-hw: on
      tls-hw-record: off [fixed]
      rx-gro-list: off
      macsec-hw-offload: off [fixed]
      rx-udp-gro-forwarding: off
      hsr-tag-ins-offload: off [fixed]
      hsr-tag-rm-offload: off [fixed]
      hsr-fwd-offload: off [fixed]
      hsr-dup-offload: off [fixed]
      [root@localhost ~]
      [root@localhost ~]# ping 192.168.123.2 -c3
      PING 192.168.123.2 (192.168.123.2) 56(84) bytes of data.
      64 bytes from 192.168.123.2: icmp_seq=1 ttl=64 time=0.255 ms
      64 bytes from 192.168.123.2: icmp_seq=2 ttl=64 time=0.096 ms
      64 bytes from 192.168.123.2: icmp_seq=3 ttl=64 time=0.097 ms
       
      — 192.168.123.2 ping statistics —
      3 packets transmitted, 3 received, 0% packet loss, time 2071ms
      rtt min/avg/max/mdev = 0.096/0.149/0.255/0.074 ms
      [root@localhost ~]# iperf3 -c 192.168.123.2

      • - - - - - - - - - - - - - - - - - - - - - - - -
        [ ID] Interval           Transfer     Bitrate         Retr
        iperf3: interrupt - the client has terminated
        [root@localhost ~]
        [root@localhost ~]
         
         
         
         
        [root@netqe27 ~]# ovs-tcpdump -nnev -i dpdk0
        dropped privs to tcpdump
        tcpdump: listening on midpdk0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
        22:42:31.846443 50:7c:6f:3c:0a:98 > 3c:fd:fe:b9:52:c0, ethertype IPv6 (0x86dd), length 140: (hlim 64, next-header UDP (17) payload length: 86) 200
        72:29:fa:7f:2f:45 > 33:33:00:00:00:02, ethertype IPv6 (0x86dd), length 70: (hlim 255, next-header ICMPv6 (58) payload length: 16) fe80::7029:faff6
          source link-address option (1), length 8 (1): 72:29:fa:7f:2f:45
        22:42:34.949546 50:7c:6f:3c:0a:98 > 3c:fd:fe:b9:52:c0, ethertype IPv6 (0x86dd), length 168: (hlim 64, next-header UDP (17) payload length: 114) 20
        52:54:01:00:00:01 > 52:54:01:00:00:02, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 5591, offset 0, flags [DF], proto ICMP (1), lengt)
            192.168.123.1 > 192.168.123.2: ICMP echo request, id 3, seq 1, length 64
        22:42:34.949691 3c:fd:fe:b9:52:c0 > 50:7c:6f:3c:0a:98, ethertype IPv6 (0x86dd), length 168: (hlim 64, next-header UDP (17) payload length: 114) 20
        52:54:01:00:00:02 > 52:54:01:00:00:01, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 17136, offset 0, flags [none], proto ICMP (1), le)
            192.168.123.2 > 192.168.123.1: ICMP echo reply, id 3, seq 1, length 64
        22:42:35.996600 50:7c:6f:3c:0a:98 > 3c:fd:fe:b9:52:c0, ethertype IPv6 (0x86dd), length 168: (hlim 64, next-header UDP (17) payload length: 114) 20
        52:54:01:00:00:01 > 52:54:01:00:00:02, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 6584, offset 0, flags [DF], proto ICMP (1), lengt)
            192.168.123.1 > 192.168.123.2: ICMP echo request, id 3, seq 2, length 64
        22:42:35.996642 3c:fd:fe:b9:52:c0 > 50:7c:6f:3c:0a:98, ethertype IPv6 (0x86dd), length 168: (hlim 64, next-header UDP (17) payload length: 114) 20
        52:54:01:00:00:02 > 52:54:01:00:00:01, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 17789, offset 0, flags [none], proto ICMP (1), le)
            192.168.123.2 > 192.168.123.1: ICMP echo reply, id 3, seq 2, length 64
        22:42:37.020610 50:7c:6f:3c:0a:98 > 3c:fd:fe:b9:52:c0, ethertype IPv6 (0x86dd), length 168: (hlim 64, next-header UDP (17) payload length: 114) 20
        52:54:01:00:00:01 > 52:54:01:00:00:02, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 6919, offset 0, flags [DF], proto ICMP (1), lengt)
            192.168.123.1 > 192.168.123.2: ICMP echo request, id 3, seq 3, length 64
        22:42:37.020656 3c:fd:fe:b9:52:c0 > 50:7c:6f:3c:0a:98, ethertype IPv6 (0x86dd), length 168: (hlim 64, next-header UDP (17) payload length: 114) 20
        52:54:01:00:00:02 > 52:54:01:00:00:01, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 17837, offset 0, flags [none], proto ICMP (1), le)
            192.168.123.2 > 192.168.123.1: ICMP echo reply, id 3, seq 3, length 64
        22:42:39.952282 3c:fd:fe:b9:52:c0 > 50:7c:6f:3c:0a:98, ethertype IPv6 (0x86dd), length 112: (hlim 64, next-header UDP (17) payload length: 58) 200
        52:54:01:00:00:02 > 52:54:01:00:00:01, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.123.1 tell 192.8
        22:42:39.952371 50:7c:6f:3c:0a:98 > 3c:fd:fe:b9:52:c0, ethertype IPv6 (0x86dd), length 112: (hlim 64, next-header UDP (17) payload length: 58) 200
        52:54:01:00:00:01 > 52:54:01:00:00:02, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Reply 192.168.123.1 is-at 52:54:01:00:08
        22:42:40.156629 50:7c:6f:3c:0a:98 > 3c:fd:fe:b9:52:c0, ethertype IPv6 (0x86dd), length 112: (hlim 64, next-header UDP (17) payload length: 58) 200
        52:54:01:00:00:01 > 52:54:01:00:00:02, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.123.2 tell 192.8
        22:42:40.156664 3c:fd:fe:b9:52:c0 > 50:7c:6f:3c:0a:98, ethertype IPv6 (0x86dd), length 112: (hlim 64, next-header UDP (17) payload length: 58) 200
        52:54:01:00:00:02 > 52:54:01:00:00:01, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Reply 192.168.123.2 is-at 52:54:01:00:08
         
         
         
        22:43:04.614322 50:7c:6f:3c:0a:98 > 33:33:00:00:00:02, ethertype IPv6 (0x86dd), length 70: (hlim 255, next-header ICMPv6 (58) payload length: 16)6
          source link-address option (1), length 8 (1): 50:7c:6f:3c:0a:98
        22:43:07.770749 50:7c:6f:3c:0a:98 > 3c:fd:fe:b9:52:c0, ethertype IPv6 (0x86dd), length 144: (hlim 64, next-header UDP (17) payload length: 90) 200
        52:54:01:00:00:01 > 52:54:01:00:00:02, ethertype IPv4 (0x0800), length 74: (tos 0x0, ttl 64, id 35471, offset 0, flags [DF], proto TCP (6), lengt)
            192.168.123.1.34166 > 192.168.123.2.5201: Flags [S], cksum 0x53a2 (correct), seq 2129478068, win 65330, options [mss 1390,sackOK,TS val 287930
        22:43:08.828936 50:7c:6f:3c:0a:98 > 3c:fd:fe:b9:52:c0, ethertype IPv6 (0x86dd), length 144: (hlim 64, next-header UDP (17) payload length: 90) 200
        52:54:01:00:00:01 > 52:54:01:00:00:02, ethertype IPv4 (0x0800), length 74: (tos 0x0, ttl 64, id 35472, offset 0, flags [DF], proto TCP (6), lengt)
            192.168.123.1.34166 > 192.168.123.2.5201: Flags [S], cksum 0x4f7f (correct), seq 2129478068, win 65330, options [mss 1390,sackOK,TS val 287930
        22:43:10.876984 50:7c:6f:3c:0a:98 > 3c:fd:fe:b9:52:c0, ethertype IPv6 (0x86dd), length 144: (hlim 64, next-header UDP (17) payload length: 90) 200
        52:54:01:00:00:01 > 52:54:01:00:00:02, ethertype IPv4 (0x0800), length 74: (tos 0x0, ttl 64, id 35473, offset 0, flags [DF], proto TCP (6), lengt)
            192.168.123.1.34166 > 192.168.123.2.5201: Flags [S], cksum 0x477f (correct), seq 2129478068, win 65330, options [mss 1390,sackOK,TS val 287930
        22:43:14.909035 50:7c:6f:3c:0a:98 > 3c:fd:fe:b9:52:c0, ethertype IPv6 (0x86dd), length 144: (hlim 64, next-header UDP (17) payload length: 90) 200
        52:54:01:00:00:01 > 52:54:01:00:00:02, ethertype IPv4 (0x0800), length 74: (tos 0x0, ttl 64, id 35474, offset 0, flags [DF], proto TCP (6), lengt)
            192.168.123.1.34166 > 192.168.123.2.5201: Flags [S], cksum 0x37bf (correct), seq 2129478068, win 65330, options [mss 1390,sackOK,TS val 287930
        22:43:22.375275 3c:fd:fe:b9:52:c0 > 33:33:00:00:00:02, ethertype IPv6 (0x86dd), length 70: (hlim 255, next-header ICMPv6 (58) payload length: 16)6
          source link-address option (1), length 8 (1): 3c:fd:fe:b9:52:c0
        ^C17 packets captured
        17 packets received by filter
        0 packets dropped by kernel
        [root@netqe27 ~]
         
         
         
        [root@netqe27 ~]# ovs-tcpdump -nnev -i vhost0
        dropped privs to tcpdump
        tcpdump: listening on mivhost0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
        22:42:31.846415 72:29:fa:7f:2f:45 > 33:33:00:00:00:02, ethertype IPv6 (0x86dd), length 70: (hlim 255, next-header ICMPv6 (58) payload length: 16) fe80::7029:faff:fe7f:2f45 > ff02::2: [icmp6 sum ok] ICMP6, router solicitation, length 16
          source link-address option (1), length 8 (1): 72:29:fa:7f:2f:45
        22:42:34.949527 52:54:01:00:00:01 > 52:54:01:00:00:02, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 5591, offset 0, flags [DF], proto ICMP (1), length 84)
            192.168.123.1 > 192.168.123.2: ICMP echo request, id 3, seq 1, length 64
        22:42:34.949676 52:54:01:00:00:02 > 52:54:01:00:00:01, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 17136, offset 0, flags [none], proto ICMP (1), length 84)
            192.168.123.2 > 192.168.123.1: ICMP echo reply, id 3, seq 1, length 64
        22:42:35.996582 52:54:01:00:00:01 > 52:54:01:00:00:02, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 6584, offset 0, flags [DF], proto ICMP (1), length 84)
            192.168.123.1 > 192.168.123.2: ICMP echo request, id 3, seq 2, length 64
        22:42:35.996630 52:54:01:00:00:02 > 52:54:01:00:00:01, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 17789, offset 0, flags [none], proto ICMP (1), length 84)
            192.168.123.2 > 192.168.123.1: ICMP echo reply, id 3, seq 2, length 64
        22:42:37.020594 52:54:01:00:00:01 > 52:54:01:00:00:02, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 6919, offset 0, flags [DF], proto ICMP (1), length 84)
            192.168.123.1 > 192.168.123.2: ICMP echo request, id 3, seq 3, length 64
        22:42:37.020643 52:54:01:00:00:02 > 52:54:01:00:00:01, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 17837, offset 0, flags [none], proto ICMP (1), length 84)
            192.168.123.2 > 192.168.123.1: ICMP echo reply, id 3, seq 3, length 64
        22:42:39.952269 52:54:01:00:00:02 > 52:54:01:00:00:01, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.123.1 tell 192.168.123.2, length 28
        22:42:39.952353 52:54:01:00:00:01 > 52:54:01:00:00:02, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Reply 192.168.123.1 is-at 52:54:01:00:00:01, length 28
        22:42:40.156613 52:54:01:00:00:01 > 52:54:01:00:00:02, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.123.2 tell 192.168.123.1, length 28
        22:42:40.156652 52:54:01:00:00:02 > 52:54:01:00:00:01, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Reply 192.168.123.2 is-at 52:54:01:00:00:02, length 28
         
         
         
        ^C11 packets captured
        11 packets received by filter
        0 packets dropped by kernel
        [root@netqe27 ~]
         

              rh-ee-mpattric Mike Pattrick
              rhn-support-qding Qijun Ding
              Qijun Ding Qijun Ding
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated: