61. vhost/virtio-user pvp with multi-queues and port restart test plan

61.1. Description

This test plan test vhost/virtio-user pvp multi-queues with split virtqueue and packed virtqueue different rx/tx paths, includes split virtqueue in-order mergeable, in-order non-mergeable, mergeable, non-mergeable, vector_rx path test, and packed virtqueue in-order mergeable, in-order non-mergeable, mergeable, non-mergeable path, also cover port restart test with each path.

61.2. Test flow

TG –> NIC –> Vhost –> Virtio–> Vhost –> NIC –> TG

61.3. Test Case 1: pvp 2 queues test with packed ring mergeable path

  1. Bind one port to igb_uio, then launch vhost by below command:

    rm -rf vhost-net*
    ./testpmd -n 4 -l 2-4  --socket-mem 1024,1024 --legacy-mem \
    --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=2,client=0' -- -i --nb-cores=2 --rxq=2 --txq=2
    testpmd>set fwd mac
    testpmd>start
    
  2. Launch virtio-user by below command:

    ./testpmd -n 4 -l 5-7 --socket-mem 1024,1024 \
    --legacy-mem --no-pci --file-prefix=virtio \
    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,packed_vq=1,mrg_rxbuf=1,in_order=0 \
    -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip --nb-cores=2 --rxq=2 --txq=2
    >set fwd mac
    >start
    
  3. Send different ip packets with packet generator, check the throughput with below command:

    testpmd>show port stats all
    
  4. Check each queue’s rx/tx packet numbers:

    testpmd>stop
    
  5. Port restart 100 times by below command and re-calculate the average througnput,verify the throughput is not zero after port restart:

    testpmd>stop
    testpmd>start
    ...
    testpmd>stop
    testpmd>show port stats all
    testpmd>start
    testpmd>show port stats all
    

61.4. Test Case 2: pvp 2 queues test with packed ring non-mergeable path

  1. Bind one port to igb_uio, then launch vhost by below command:

    rm -rf vhost-net*
    ./testpmd -n 4 -l 2-4  --socket-mem 1024,1024 --legacy-mem \
    --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=2,client=0' -- -i --nb-cores=2 --rxq=2 --txq=2
    testpmd>set fwd mac
    testpmd>start
    
  2. Launch virtio-user by below command:

    ./testpmd -n 4 -l 5-7 --socket-mem 1024,1024 \
    --legacy-mem --no-pci --file-prefix=virtio \
    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,packed_vq=1,mrg_rxbuf=0,in_order=0 \
    -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip --nb-cores=2 --rxq=2 --txq=2
    >set fwd mac
    >start
    
  3. Send different ip packets with packet generator, check the throughput with below command:

    testpmd>show port stats all
    
  4. Check each queue’s RX/TX packet numbers:

    testpmd>stop
    
  5. Restart port at vhost side by below command and re-calculate the average throughput,verify the throughput is not zero after port restart:

    testpmd>start
    testpmd>show port stats all
    

61.5. Test Case 3: pvp 2 queues test with split ring inorder mergeable path

  1. Bind one port to igb_uio, then launch vhost by below command:

    rm -rf vhost-net*
    ./testpmd -n 4 -l 2-4  --socket-mem 1024,1024 --legacy-mem \
    --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=2,client=0' -- -i --nb-cores=2 --rxq=2 --txq=2
    testpmd>set fwd mac
    testpmd>start
    
  2. Launch virtio-user by below command:

    ./testpmd -n 4 -l 5-7 --socket-mem 1024,1024 \
    --legacy-mem --no-pci --file-prefix=virtio \
    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,in_order=1,mrg_rxbuf=1 \
    -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip --nb-cores=2 --rxq=2 --txq=2
    >set fwd mac
    >start
    
  3. Send different ip packets with packet generator, check the throughput with below command:

    testpmd>show port stats all
    
  4. Check each queue’s RX/TX packet numbers:

    testpmd>stop
    
  5. Restart port at vhost side by below command and re-calculate the average throughput,verify the throughput is not zero after port restart:

    testpmd>start
    testpmd>show port stats all
    

61.6. Test Case 4: pvp 2 queues test with split ring inorder non-mergeable path

  1. Bind one port to igb_uio, then launch vhost by below command:

    rm -rf vhost-net*
    ./testpmd -n 4 -l 2-4  --socket-mem 1024,1024 --legacy-mem \
    --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=2,client=0' -- -i --nb-cores=2 --rxq=2 --txq=2
    testpmd>set fwd mac
    testpmd>start
    
  2. Launch virtio-user by below command:

    ./testpmd -n 4 -l 5-7 --socket-mem 1024,1024 \
    --legacy-mem --no-pci --file-prefix=virtio \
    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,in_order=1,mrg_rxbuf=0 \
    -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip --nb-cores=2 --rxq=2 --txq=2
    >set fwd mac
    >start
    
  3. Send different ip packets with packet generator, check the throughput with below command:

    testpmd>show port stats all
    
  4. Check each queue’s RX/TX packet numbers:

    testpmd>stop
    
  5. Restart port at vhost side by below command and re-calculate the average throughput,verify the throughput is not zero after port restart:

    testpmd>start
    testpmd>show port stats all
    

61.7. Test Case 5: pvp 2 queues test with split ring mergeable path

  1. Bind one port to igb_uio, then launch vhost by below command:

    rm -rf vhost-net*
    ./testpmd -n 4 -l 2-4  --socket-mem 1024,1024 --legacy-mem \
    --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=2,client=0' -- -i --nb-cores=2 --rxq=2 --txq=2
    testpmd>set fwd mac
    testpmd>start
    
  2. Launch virtio-user by below command:

    ./testpmd -n 4 -l 5-7 --socket-mem 1024,1024 \
    --legacy-mem --no-pci --file-prefix=virtio \
    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,in_order=0,mrg_rxbuf=1 \
    -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip --nb-cores=2 --rxq=2 --txq=2
    >set fwd mac
    >start
    
  3. Send different ip packets with packet generator, check the throughput with below command:

    testpmd>show port stats all
    
  4. Check each queue’s RX/TX packet numbers:

    testpmd>stop
    
  5. Restart port at vhost side by below command and re-calculate the average throughput,verify the throughput is not zero after port restart:

    testpmd>start
    testpmd>show port stats all
    

61.8. Test Case 6: pvp 2 queues test with split ring non-mergeable path

  1. Bind one port to igb_uio, then launch vhost by below command:

    rm -rf vhost-net*
    ./testpmd -n 4 -l 2-4  --socket-mem 1024,1024 --legacy-mem \
    --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=2,client=0' -- -i --nb-cores=2 --rxq=2 --txq=2
    testpmd>set fwd mac
    testpmd>start
    
  2. Launch virtio-user by below command:

    ./testpmd -n 4 -l 5-7 --socket-mem 1024,1024 \
    --legacy-mem --no-pci --file-prefix=virtio \
    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,in_order=0,mrg_rxbuf=0 \
    -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip --nb-cores=2 --rxq=2 --txq=2
    >set fwd mac
    >start
    
  3. Send different ip packets with packet generator, check the throughput with below command:

    testpmd>show port stats all
    
  4. Check each queue’s RX/TX packet numbers:

    testpmd>stop
    
  5. Restart port at vhost side by below command and re-calculate the average throughput,verify the throughput is not zero after port restart:

    testpmd>start
    testpmd>show port stats all
    

61.9. Test Case 7: pvp 2 queues test with split ring vector_rx path

  1. Bind one port to igb_uio, then launch vhost by below command:

    rm -rf vhost-net*
    ./testpmd -n 4 -l 2-4  --socket-mem 1024,1024 --legacy-mem \
    --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=2,client=0' -- -i --nb-cores=2 --rxq=2 --txq=2
    testpmd>set fwd mac
    testpmd>start
    
  2. Launch virtio-user by below command:

    ./testpmd -n 4 -l 5-7 --socket-mem 1024,1024 \
    --legacy-mem --no-pci --file-prefix=virtio \
    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,in_order=0,mrg_rxbuf=0 \
    -- -i --tx-offloads=0x0 --rss-ip --nb-cores=2 --rxq=2 --txq=2
    >set fwd mac
    >start
    
  3. Send different ip packets with packet generator, check the throughput with below command:

    testpmd>show port stats all
    
  4. Check each queue’s RX/TX packet numbers:

    testpmd>stop
    
  5. Restart port at vhost side by below command and re-calculate the average throughput,verify the throughput is not zero after port restart:

    testpmd>start
    testpmd>show port stats all
    

61.10. Test Case 8: pvp 2 queues test with packed ring inorder mergeable path

  1. Bind one port to igb_uio, then launch vhost by below command:

    rm -rf vhost-net*
    ./testpmd -n 4 -l 2-4  --socket-mem 1024,1024 --legacy-mem \
    --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=2,client=0' -- -i --nb-cores=2 --rxq=2 --txq=2
    testpmd>set fwd mac
    testpmd>start
    
  2. Launch virtio-user by below command:

    ./testpmd -n 4 -l 5-7 --socket-mem 1024,1024 \
    --legacy-mem --no-pci --file-prefix=virtio \
    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,packed_vq=1,mrg_rxbuf=1,in_order=1 \
    -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip --nb-cores=2 --rxq=2 --txq=2
    >set fwd mac
    >start
    
  3. Send different ip packets with packet generator, check the throughput with below command:

    testpmd>show port stats all
    
  4. Check each queue’s RX/TX packet numbers:

    testpmd>stop
    
  5. Restart port at vhost side by below command and re-calculate the average throughput,verify the throughput is not zero after port restart:

    testpmd>start
    testpmd>show port stats all
    

61.11. Test Case 9: pvp 2 queues test with packed ring inorder non-mergeable path

  1. Bind one port to igb_uio, then launch vhost by below command:

    rm -rf vhost-net*
    ./testpmd -n 4 -l 2-4  --socket-mem 1024,1024 --legacy-mem \
    --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=2,client=0' -- -i --nb-cores=2 --rxq=2 --txq=2
    testpmd>set fwd mac
    testpmd>start
    
  2. Launch virtio-user by below command:

    ./testpmd -n 4 -l 5-7 --socket-mem 1024,1024 \
    --legacy-mem --no-pci --file-prefix=virtio \
    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,packed_vq=1,mrg_rxbuf=0,in_order=1 \
    -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip --nb-cores=2 --rxq=2 --txq=2
    >set fwd mac
    >start
    
  3. Send different ip packets with packet generator, check the throughput with below command:

    testpmd>show port stats all
    
  4. Check each queue’s RX/TX packet numbers:

    testpmd>stop
    
  5. Restart port at vhost side by below command and re-calculate the average throughput,verify the throughput is not zero after port restart:

    testpmd>start
    testpmd>show port stats all