155. Vhost/virtio-user pvp share lib test plan

155.1. Description

The feature need compile dpdk as shared libraries, then application should use option -d to load the dynamic pmd that are built as shared libraries.

155.2. Test Case1: Vhost/virtio-user pvp share lib test with niantic

  1. Enable the shared lib in DPDK configure file:

    vi ./config/common_base
    -CONFIG_RTE_BUILD_SHARED_LIB=n
    +CONFIG_RTE_BUILD_SHARED_LIB=y
    
  2. Recompile dpdk code:

    make install T=x86_64-native-linux-gcc -j 30
    
  3. Export shared lib files into host environment:

    export LD_LIBRARY_PATH=/root/dpdk/x86_64-native-linuxapp-gcc/lib:$LD_LIBRARY_PATH
    
  4. Bind niantic port with igb_uio, use option -d to load the dynamic pmd when launch vhost:

    ./testpmd  -c 0x03 -n 4 --socket-mem 1024,1024 --legacy-mem -d librte_pmd_vhost.so.2.1 -d librte_pmd_ixgbe.so.2.1 -d librte_mempool_ring.so.1.1 \
    --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=1' -- -i
    testpmd>start
    
  5. Launch virtio-user:

    ./testpmd -c 0x0c -n 4 --socket-mem 1024,1024 --legacy-mem -d librte_pmd_virtio.so.1.1 -d librte_mempool_ring.so.1.1 \
    --no-pci --file-prefix=virtio  --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net -- -i
    testpmd>start
    
  6. Send traffic by packet generator, check the throughput with below command:

    testpmd>show port stats all
    

155.3. Test Case2: Vhost/virtio-user pvp share lib test with fortville

Similar as Test Case1, all steps are similar except step 4:

  1. Bind fortville port with igb_uio, use option -d to load the dynamic pmd when launch vhost:

    ./testpmd  -c 0x03 -n 4 --socket-mem 1024,1024 --legacy-mem -d librte_pmd_vhost.so.2.1 -d librte_pmd_i40e.so.1.1 -d librte_mempool_ring.so.1.1 \
    --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=1' -- -i
    testpmd>start