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

Support TSO with tunnels and recirculation

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Undefined Undefined
    • None
    • None
    • openvswitch3.5
    • None
    • False
    • Hide

      None

      Show
      None
    • False
    • rhel-9
    • rhel-sst-network-fastdatapath
    • ssg_networking

      TSO (over tunnel) packets get dropped if recirculated.
      This can be reproduced with (in preparation) OVS 3.5.

      Reproducer:

      • system A
      # ip -4 a a 172.16.10.1/24 dev ens1f0np0
      # ip l set ens1f0np0 up
      # ip link add tunnel0 type geneve id 0 remote 172.16.10.2
      # ip -4 a a 172.16.20.1/24 dev tunnel0
      # ip l set tunnel0 up
      # iperf3 -s
      
      • system B (already set up for OVS-DPDK, iow hugepages, isolation in place, dpdk-init=true, pmd threads configured)
      # ovs-vsctl set o . other_config:userspace-tso-enable=true
      
      # ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev
      # ovs-vsctl add-port br0 dpdk0 -- set interface dpdk0 type=dpdk options:dpdk-devargs=0000:3b:00.0
      # ip -4 a a 172.16.10.2/24 dev br0
      # ip l set br0 up
      
      # ovs-vsctl add-br br-int -- set bridge br-int datapath_type=netdev
      # ovs-vsctl add-port br-int vhost0 -- set interface vhost0 type=dpdkvhostuserclient options:vhost-server-path="/var/run/openvswitch/vhost_sockets/vhost0"
      # ovs-vsctl add-port br-int tunnel0 -- set interface tunnel0 type=geneve options:remote_ip=172.16.10.1
      
      • setup a guest on system B, plugged on /var/run/openvswitch/vhost_sockets/vhost0
      # nmcli device set ens9 managed no
      # ip l set ens9 mtu 1400
      # ip -4 a a 172.16.20.20/24 dev ens9
      # iperf3 -c 172.16.20.1
      Connecting to host 172.16.20.1, port 5201
      [  5] local 172.16.20.20 port 53996 connected to 172.16.20.1 port 5201
      [ ID] Interval           Transfer     Bitrate         Retr  Cwnd
      [  5]   0.00-1.00   sec  1.18 GBytes  10.2 Gbits/sec    5    787 KBytes       
      [  5]   1.00-2.00   sec  1.18 GBytes  10.1 Gbits/sec   37    640 KBytes       
      [  5]   2.00-3.00   sec  1.18 GBytes  10.1 Gbits/sec   23    586 KBytes       
      ...
      
      • then add a openflow rule to force recirculation of encapsulated packets:
      # ovs-ofctl add-group br0 group_id=1234,type=select,selection_method=dp_hash,bucket=weight=1,output:dpdk0
      # ovs-ofctl del-flows br0
      # ovs-ofctl add-flow br0 in_port=br0,action=group:1234
      # ovs-ofctl add-flow br0 actions=NORMAL
      
      • restart iperf in guest
      # iperf3 -c 172.16.20.1
      Connecting to host 172.16.20.1, port 5201
      [  5] local 172.16.20.20 port 55872 connected to 172.16.20.1 port 5201
      [ ID] Interval           Transfer     Bitrate         Retr  Cwnd
      [  5]   0.00-1.00   sec   168 KBytes  1.38 Mbits/sec   36   2.63 KBytes       
      [  5]   1.00-2.00   sec   240 KBytes  1.96 Mbits/sec   33   2.63 KBytes       
      ...
      
      • check OVS logs
      2025-02-11T14:42:22.292Z|00192|connmgr|INFO|br0<->unix#57: 1 flow_mods in the last 0 s (1 deletes)
      2025-02-11T14:42:26.635Z|00193|connmgr|INFO|br0<->unix#60: 1 flow_mods in the last 0 s (1 adds)
      2025-02-11T14:42:30.202Z|00194|connmgr|INFO|br0<->unix#63: 1 flow_mods in the last 0 s (1 adds)
      2025-02-11T14:42:42.673Z|1529742|dpif_netdev(pmd-c04/id:10)|WARN|Dropped 177 log messages in last 415 seconds (most recently, 405 seconds ago) due to excessive rate
      2025-02-11T14:42:42.673Z|1529743|dpif_netdev(pmd-c04/id:10)|WARN|Recirculating tunnel packets with TSO is not supported
      2025-02-11T14:42:42.673Z|1529744|dpif_netdev(pmd-c04/id:10)|WARN|Recirculating tunnel packets with TSO is not supported
      2025-02-11T14:42:42.677Z|1529745|dpif_netdev(pmd-c04/id:10)|WARN|Recirculating tunnel packets with TSO is not supported
      

      Some patch is being discussed upstream: https://patchwork.ozlabs.org/project/openvswitch/patch/20250123155628.3694720-1-david.marchand@redhat.com/

              ovsdpdk-triage ovsdpdk triage
              rhn-support-dmarchan David Marchand
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: