On Mon, Oct 23, 2023 at 10:19 AM David Marchand
<[email protected]> wrote:
>
> Rather than copy/paste everywhere, introduce helpers to control
> testpmd runs.
> Rely on --stats-period (which outputs port stats every n seconds) so that
> testpmd keeps running without expecting any user input.
>
> Signed-off-by: David Marchand <[email protected]>
> Acked-by: Aaron Conole <[email protected]>
> Acked-by: Eelco Chaudron <[email protected]>
> ---
> Changes since v1:
> - fixed OVS_DPDK_START_TESTPMD passed arguments evaluation:: $@ -> $1,

Thanks for working on this, is there a plan to backport this?

It appears that there is currently an issue with dpdk-testpmd that
makes it exit immediately when run in non-interactive mode [0], while
this is an upstream DPDK bug, it does affect the system-dpdk testsuite
for released versions of OVS. I suspect this DPDK commit broke it [1].

0: https://bugs.launchpad.net/bugs/2040097
1: https://github.com/DPDK/dpdk/commit/0fd1386c30c3ad9365d7fdd2829bf7cb2e1b9dff

If there is no plan to backport this patch also fixes the problem:

diff --git a/tests/system-dpdk.at b/tests/system-dpdk.at
index 0f58e8574..26e4b5ed9 100644
--- a/tests/system-dpdk.at
+++ b/tests/system-dpdk.at
@@ -130,7 +130,7 @@ on_exit "pkill -f -x -9 'tail -f /dev/null'"
 tail -f /dev/null | dpdk-testpmd --socket-mem="$(cat NUMA_NODE)" --no-pci\
            --vdev="net_virtio_user,path=$OVS_RUNDIR/dpdkvhostuser0" \
            --vdev="net_tap0,iface=tap0" --file-prefix page0 \
-           --single-file-segments -- -a
>$OVS_RUNDIR/testpmd-dpdkvhostuser0.log 2>&1 &
+           --single-file-segments -- -a --interactive
>$OVS_RUNDIR/testpmd-dpdkvhostuser0.log 2>&1 &

 OVS_WAIT_UNTIL([grep "virtio is now ready for processing" ovs-vswitchd.log])
 OVS_WAIT_UNTIL([ip link show dev tap0 | grep -qw LOWER_UP])
@@ -205,7 +205,7 @@ on_exit "pkill -f -x -9 'tail -f /dev/null'"
 tail -f /dev/null | dpdk-testpmd --socket-mem="$(cat NUMA_NODE)" --no-pci\
     
--vdev="net_virtio_user,path=$OVS_RUNDIR/dpdkvhostclient0,queues=2,server=1"
\
     --vdev="net_tap0,iface=tap0" --file-prefix page0 \
-    --single-file-segments -- -a --nb-cores 2 --rxq 2 --txq 2 \
+    --single-file-segments -- -a --nb-cores 2 --rxq 2 --txq 2 --interactive \
     >$OVS_RUNDIR/testpmd-dpdkvhostuserclient0.log 2>&1 &

 OVS_WAIT_UNTIL([grep "virtio is now ready for processing" ovs-vswitchd.log])
@@ -683,7 +683,7 @@ on_exit "pkill -f -x -9 'tail -f /dev/null'"
 tail -f /dev/null | dpdk-testpmd --socket-mem="$(cat NUMA_NODE)" --no-pci\
            --vdev="net_virtio_user,path=$OVS_RUNDIR/dpdkvhostclient0,server=1"
\
            --vdev="net_tap0,iface=tap0" --file-prefix page0 \
-           --single-file-segments -- -a
>$OVS_RUNDIR/testpmd-dpdkvhostuserclient0.log 2>&1 &
+           --single-file-segments -- -a --interactive
>$OVS_RUNDIR/testpmd-dpdkvhostuserclient0.log 2>&1 &

 OVS_WAIT_UNTIL([grep "virtio is now ready for processing" ovs-vswitchd.log])

@@ -740,7 +740,7 @@ on_exit "pkill -f -x -9 'tail -f /dev/null'"
 tail -f /dev/null | dpdk-testpmd --socket-mem="$(cat NUMA_NODE)" --no-pci\
            --vdev="net_virtio_user,path=$OVS_RUNDIR/dpdkvhostclient0,server=1"
\
            --vdev="net_tap0,iface=tap0" --file-prefix page0 \
-           --single-file-segments -- -a
>$OVS_RUNDIR/testpmd-dpdkvhostuserclient0.log 2>&1 &
+           --single-file-segments -- -a --interactive
>$OVS_RUNDIR/testpmd-dpdkvhostuserclient0.log 2>&1 &

 OVS_WAIT_UNTIL([grep "virtio is now ready for processing" ovs-vswitchd.log])

@@ -874,7 +874,7 @@ on_exit "pkill -f -x -9 'tail -f /dev/null'"
 tail -f /dev/null | dpdk-testpmd --socket-mem="$(cat NUMA_NODE)" --no-pci\
            --vdev="net_virtio_user,path=$OVS_RUNDIR/dpdkvhostclient0,server=1"
\
            --vdev="net_tap0,iface=tap0" --file-prefix page0 \
-           --single-file-segments -- -a
>$OVS_RUNDIR/testpmd-dpdkvhostuserclient0.log 2>&1 &
+           --single-file-segments -- -a --interactive
>$OVS_RUNDIR/testpmd-dpdkvhostuserclient0.log 2>&1 &

 OVS_WAIT_UNTIL([grep "virtio is now ready for processing" ovs-vswitchd.log])

@@ -931,7 +931,7 @@ on_exit "pkill -f -x -9 'tail -f /dev/null'"
 tail -f /dev/null | dpdk-testpmd --socket-mem="$(cat NUMA_NODE)" --no-pci\
            --vdev="net_virtio_user,path=$OVS_RUNDIR/dpdkvhostclient0,server=1"
\
            --vdev="net_tap0,iface=tap0" --file-prefix page0 \
-           --single-file-segments -- -a
>$OVS_RUNDIR/testpmd-dpdkvhostuserclient0.log 2>&1 &
+           --single-file-segments -- -a --interactive
>$OVS_RUNDIR/testpmd-dpdkvhostuserclient0.log 2>&1 &

 OVS_WAIT_UNTIL([grep "virtio is now ready for processing" ovs-vswitchd.log])

-- 
2.40.1

-- 
Frode Nordahl

> ---
>  tests/system-dpdk-macros.at |  37 +++++++++++++
>  tests/system-dpdk.at        | 103 +++++++++---------------------------
>  2 files changed, 61 insertions(+), 79 deletions(-)
>
> diff --git a/tests/system-dpdk-macros.at b/tests/system-dpdk-macros.at
> index 3920f08a5e..e1e91f2972 100644
> --- a/tests/system-dpdk-macros.at
> +++ b/tests/system-dpdk-macros.at
> @@ -79,3 +79,40 @@ m4_define([OVS_DPDK_START_VSWITCHD],
>     AT_CAPTURE_FILE([ovs-vswitchd.log])
>     on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
>  ])
> +
> +
> +# OVS_DPDK_CHECK_TESTPMD()
> +#
> +# Check dpdk-testpmd availability.
> +#
> +m4_define([OVS_DPDK_CHECK_TESTPMD],
> +  [AT_SKIP_IF([! which dpdk-testpmd >/dev/null 2>/dev/null])
> +])
> +
> +
> +# OVS_DPDK_START_TESTPMD()
> +#
> +# Start dpdk-testpmd in background.
> +#
> +m4_define([OVS_DPDK_START_TESTPMD],
> +  [AT_CHECK([lscpu], [], [stdout])
> +   AT_CHECK([cat stdout | grep "NUMA node(s)" | awk '{c=1; while (c++<$(3)) 
> {printf "512,"}; print "512"}' > NUMA_NODE])
> +   eal_options="--socket-mem="$(cat NUMA_NODE)" --file-prefix page0 
> --single-file-segments --no-pci"
> +   options="$1"
> +   [ "$options" != "${options%% -- *}" ] || options="$options -- "
> +   eal_options="$eal_options ${options%% -- *}"
> +   testpmd_options="-a --stats-period 2 ${options#* -- }"
> +   dpdk-testpmd $eal_options -- $testpmd_options >testpmd.log 2>&1 & \
> +   echo $! > testpmd.pid
> +   on_exit "kill -9 `cat testpmd.pid`"
> +])
> +
> +
> +# OVS_DPDK_STOP_TESTPMD()
> +#
> +# Stop background dpdk-testpmd.
> +#
> +m4_define([OVS_DPDK_STOP_TESTPMD],
> +  [AT_CHECK([kill `cat testpmd.pid`])
> +   OVS_WAIT([kill -0 `cat testpmd.pid`], [kill -9 `cat testpmd.pid`])
> +])
> diff --git a/tests/system-dpdk.at b/tests/system-dpdk.at
> index 0f58e85742..270587e2c0 100644
> --- a/tests/system-dpdk.at
> +++ b/tests/system-dpdk.at
> @@ -97,13 +97,9 @@ dnl Ping vhost-user port
>  AT_SETUP([OVS-DPDK - ping vhost-user ports])
>  AT_KEYWORDS([dpdk])
>  OVS_DPDK_PRE_CHECK()
> -AT_SKIP_IF([! which dpdk-testpmd >/dev/null 2>/dev/null])
> +OVS_DPDK_CHECK_TESTPMD()
>  OVS_DPDK_START([--no-pci])
>
> -dnl Find number of sockets
> -AT_CHECK([lscpu], [], [stdout])
> -AT_CHECK([cat stdout | grep "NUMA node(s)" | awk '{c=1; while (c++<$(3)) 
> {printf "512,"}; print "512"}' > NUMA_NODE])
> -
>  dnl Add userspace bridge and attach it to OVS
>  AT_CHECK([ovs-vsctl add-br br10 -- set bridge br10 datapath_type=netdev])
>  AT_CHECK([ovs-vsctl add-port br10 dpdkvhostuser0 -- set Interface 
> dpdkvhostuser0 \
> @@ -125,12 +121,8 @@ ADD_NAMESPACES(ns1, ns2)
>  dnl Add veth device
>  ADD_VETH(tap1, ns2, br10, "172.31.110.12/24")
>
> -dnl Execute testpmd in background
> -on_exit "pkill -f -x -9 'tail -f /dev/null'"
> -tail -f /dev/null | dpdk-testpmd --socket-mem="$(cat NUMA_NODE)" --no-pci\
> -           --vdev="net_virtio_user,path=$OVS_RUNDIR/dpdkvhostuser0" \
> -           --vdev="net_tap0,iface=tap0" --file-prefix page0 \
> -           --single-file-segments -- -a 
> >$OVS_RUNDIR/testpmd-dpdkvhostuser0.log 2>&1 &
> +OVS_DPDK_START_TESTPMD([--vdev="net_virtio_user,path=$OVS_RUNDIR/dpdkvhostuser0"
>  \
> +                        --vdev="net_tap0,iface=tap0"])
>
>  OVS_WAIT_UNTIL([grep "virtio is now ready for processing" ovs-vswitchd.log])
>  OVS_WAIT_UNTIL([ip link show dev tap0 | grep -qw LOWER_UP])
> @@ -151,8 +143,7 @@ AT_CHECK([ip netns exec ns2 ip link show], [], [stdout], 
> [stderr])
>  AT_CHECK([ip netns exec ns1 ping -c 4 -I tap0 172.31.110.12], [], [stdout],
>           [stderr])
>
> -dnl Clean up the testpmd now
> -pkill -f -x -9 'tail -f /dev/null'
> +OVS_DPDK_STOP_TESTPMD()
>
>  dnl Wait for vhost-user handling the socket disconnect.
>  OVS_WAIT_UNTIL([grep "vHost Device '$OVS_RUNDIR/dpdkvhostuser0' has been 
> removed" ovs-vswitchd.log])
> @@ -173,13 +164,9 @@ dnl Ping vhost-user-client port
>  AT_SETUP([OVS-DPDK - ping vhost-user-client ports])
>  AT_KEYWORDS([dpdk])
>  OVS_DPDK_PRE_CHECK()
> -AT_SKIP_IF([! which dpdk-testpmd >/dev/null 2>/dev/null])
> +OVS_DPDK_CHECK_TESTPMD()
>  OVS_DPDK_START([--no-pci])
>
> -dnl Find number of sockets
> -AT_CHECK([lscpu], [], [stdout])
> -AT_CHECK([cat stdout | grep "NUMA node(s)" | awk '{c=1; while (c++<$(3)) 
> {printf "512,"}; print "512"}' > NUMA_NODE])
> -
>  dnl Add userspace bridge and attach it to OVS
>  AT_CHECK([ovs-vsctl add-br br10 -- set bridge br10 datapath_type=netdev])
>  AT_CHECK([ovs-vsctl add-port br10 dpdkvhostuserclient0 -- set Interface \
> @@ -200,13 +187,8 @@ ADD_NAMESPACES(ns1, ns2)
>  dnl Add veth device
>  ADD_VETH(tap1, ns2, br10, "172.31.110.12/24")
>
> -dnl Execute testpmd in background
> -on_exit "pkill -f -x -9 'tail -f /dev/null'"
> -tail -f /dev/null | dpdk-testpmd --socket-mem="$(cat NUMA_NODE)" --no-pci\
> -    
> --vdev="net_virtio_user,path=$OVS_RUNDIR/dpdkvhostclient0,queues=2,server=1" \
> -    --vdev="net_tap0,iface=tap0" --file-prefix page0 \
> -    --single-file-segments -- -a --nb-cores 2 --rxq 2 --txq 2 \
> -    >$OVS_RUNDIR/testpmd-dpdkvhostuserclient0.log 2>&1 &
> +OVS_DPDK_START_TESTPMD([--vdev="net_virtio_user,path=$OVS_RUNDIR/dpdkvhostclient0,queues=2,server=1"
>  \
> +                        --vdev="net_tap0,iface=tap0" -- --nb-cores 2 --rxq 2 
> --txq 2])
>
>  OVS_WAIT_UNTIL([grep "virtio is now ready for processing" ovs-vswitchd.log])
>  OVS_WAIT_UNTIL([ip link show dev tap0 | grep -qw LOWER_UP])
> @@ -251,8 +233,7 @@ AT_CHECK([test `ovs-vsctl get interface 
> dpdkvhostuserclient0 statistics:tx_bytes
>                 $((`ovs-vsctl get interface dpdkvhostuserclient0 
> statistics:tx_q0_good_bytes` + dnl
>                    `ovs-vsctl get interface dpdkvhostuserclient0 
> statistics:tx_q1_good_bytes`))])
>
> -dnl Clean up the testpmd now
> -pkill -f -x -9 'tail -f /dev/null'
> +OVS_DPDK_STOP_TESTPMD()
>
>  dnl Clean up
>  AT_CHECK([ovs-vsctl del-port br10 dpdkvhostuserclient0], [], [stdout], 
> [stderr])
> @@ -659,14 +640,10 @@ dnl MTU increase vport port
>  AT_SETUP([OVS-DPDK - MTU increase vport port])
>  AT_KEYWORDS([dpdk])
>
> -AT_SKIP_IF([! which dpdk-testpmd >/dev/null 2>/dev/null])
> +OVS_DPDK_CHECK_TESTPMD()
>  OVS_DPDK_PRE_CHECK()
>  OVS_DPDK_START([--no-pci])
>
> -dnl Find number of sockets
> -AT_CHECK([lscpu], [], [stdout])
> -AT_CHECK([cat stdout | grep "NUMA node(s)" | awk '{c=1; while (c++<$(3)) 
> {printf "512,"}; print "512"}' > NUMA_NODE])
> -
>  dnl Add userspace bridge and attach it to OVS with default MTU value
>  AT_CHECK([ovs-vsctl add-br br10 -- set bridge br10 datapath_type=netdev])
>  AT_CHECK([ovs-vsctl add-port br10 dpdkvhostuserclient0 -- set Interface 
> dpdkvhostuserclient0 type=dpdkvhostuserclient 
> options:vhost-server-path=$OVS_RUNDIR/dpdkvhostclient0], [], [stdout], 
> [stderr])
> @@ -678,12 +655,8 @@ AT_CHECK([grep "VHOST_CONFIG: 
> ($OVS_RUNDIR/dpdkvhostclient0) vhost-user client:
>  AT_CHECK([grep "vHost User device 'dpdkvhostuserclient0' created in 'client' 
> mode, using client socket" ovs-vswitchd.log], [], [stdout])
>  AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) 
> reconnecting..." ovs-vswitchd.log], [], [stdout])
>
> -dnl Execute testpmd in background
> -on_exit "pkill -f -x -9 'tail -f /dev/null'"
> -tail -f /dev/null | dpdk-testpmd --socket-mem="$(cat NUMA_NODE)" --no-pci\
> -           
> --vdev="net_virtio_user,path=$OVS_RUNDIR/dpdkvhostclient0,server=1" \
> -           --vdev="net_tap0,iface=tap0" --file-prefix page0 \
> -           --single-file-segments -- -a 
> >$OVS_RUNDIR/testpmd-dpdkvhostuserclient0.log 2>&1 &
> +OVS_DPDK_START_TESTPMD([--vdev="net_virtio_user,path=$OVS_RUNDIR/dpdkvhostclient0,server=1"
>  \
> +                        --vdev="net_tap0,iface=tap0"])
>
>  OVS_WAIT_UNTIL([grep "virtio is now ready for processing" ovs-vswitchd.log])
>
> @@ -697,8 +670,7 @@ AT_CHECK([ovs-vsctl set Interface dpdkvhostuserclient0 
> mtu_request=9000])
>  AT_CHECK([ovs-appctl dpctl/show], [], [stdout])
>  AT_CHECK([grep -E 'mtu=9000' stdout], [], [stdout])
>
> -dnl Clean up the testpmd now
> -pkill -f -x -9 'tail -f /dev/null'
> +OVS_DPDK_STOP_TESTPMD()
>
>  dnl Clean up
>  AT_CHECK([ovs-vsctl del-port br10 dpdkvhostuserclient0], [], [stdout], 
> [stderr])
> @@ -715,14 +687,10 @@ dnl MTU decrease vport port
>  AT_SETUP([OVS-DPDK - MTU decrease vport port])
>  AT_KEYWORDS([dpdk])
>
> -AT_SKIP_IF([! which dpdk-testpmd >/dev/null 2>/dev/null])
> +OVS_DPDK_CHECK_TESTPMD()
>  OVS_DPDK_PRE_CHECK()
>  OVS_DPDK_START([--no-pci])
>
> -dnl Find number of sockets
> -AT_CHECK([lscpu], [], [stdout])
> -AT_CHECK([cat stdout | grep "NUMA node(s)" | awk '{c=1; while (c++<$(3)) 
> {printf "512,"}; print "512"}' > NUMA_NODE])
> -
>  dnl Add userspace bridge and attach it to OVS and modify MTU value
>  AT_CHECK([ovs-vsctl add-br br10 -- set bridge br10 datapath_type=netdev])
>  AT_CHECK([ovs-vsctl add-port br10 dpdkvhostuserclient0 -- set Interface 
> dpdkvhostuserclient0 type=dpdkvhostuserclient 
> options:vhost-server-path=$OVS_RUNDIR/dpdkvhostclient0], [], [stdout], 
> [stderr])
> @@ -735,12 +703,8 @@ AT_CHECK([grep "VHOST_CONFIG: 
> ($OVS_RUNDIR/dpdkvhostclient0) vhost-user client:
>  AT_CHECK([grep "vHost User device 'dpdkvhostuserclient0' created in 'client' 
> mode, using client socket" ovs-vswitchd.log], [], [stdout])
>  AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) 
> reconnecting..." ovs-vswitchd.log], [], [stdout])
>
> -dnl Execute testpmd in background
> -on_exit "pkill -f -x -9 'tail -f /dev/null'"
> -tail -f /dev/null | dpdk-testpmd --socket-mem="$(cat NUMA_NODE)" --no-pci\
> -           
> --vdev="net_virtio_user,path=$OVS_RUNDIR/dpdkvhostclient0,server=1" \
> -           --vdev="net_tap0,iface=tap0" --file-prefix page0 \
> -           --single-file-segments -- -a 
> >$OVS_RUNDIR/testpmd-dpdkvhostuserclient0.log 2>&1 &
> +OVS_DPDK_START_TESTPMD([--vdev="net_virtio_user,path=$OVS_RUNDIR/dpdkvhostclient0,server=1"
>  \
> +                        --vdev="net_tap0,iface=tap0"])
>
>  OVS_WAIT_UNTIL([grep "virtio is now ready for processing" ovs-vswitchd.log])
>
> @@ -754,8 +718,7 @@ AT_CHECK([ovs-vsctl set Interface dpdkvhostuserclient0 
> mtu_request=2000])
>  AT_CHECK([ovs-appctl dpctl/show], [], [stdout])
>  AT_CHECK([grep -E 'mtu=2000' stdout], [], [stdout])
>
> -dnl Clean up the testpmd now
> -pkill -f -x -9 'tail -f /dev/null'
> +OVS_DPDK_STOP_TESTPMD()
>
>  dnl Clean up
>  AT_CHECK([ovs-vsctl del-port br10 dpdkvhostuserclient0], [], [stdout], 
> [stderr])
> @@ -854,14 +817,10 @@ dnl MTU upper bound vport port
>  AT_SETUP([OVS-DPDK - MTU upper bound vport port])
>  AT_KEYWORDS([dpdk])
>
> -AT_SKIP_IF([! which dpdk-testpmd >/dev/null 2>/dev/null])
> +OVS_DPDK_CHECK_TESTPMD()
>  OVS_DPDK_PRE_CHECK()
>  OVS_DPDK_START([--no-pci])
>
> -dnl Find number of sockets
> -AT_CHECK([lscpu], [], [stdout])
> -AT_CHECK([cat stdout | grep "NUMA node(s)" | awk '{c=1; while (c++<$(3)) 
> {printf "512,"}; print "512"}' > NUMA_NODE])
> -
>  dnl Add userspace bridge and attach it to OVS and set MTU value to max upper 
> bound
>  AT_CHECK([ovs-vsctl add-br br10 -- set bridge br10 datapath_type=netdev])
>  AT_CHECK([ovs-vsctl add-port br10 dpdkvhostuserclient0 -- set Interface 
> dpdkvhostuserclient0 type=dpdkvhostuserclient 
> options:vhost-server-path=$OVS_RUNDIR/dpdkvhostclient0], [], [stdout], 
> [stderr])
> @@ -869,12 +828,8 @@ AT_CHECK([ovs-vsctl set Interface dpdkvhostuserclient0 
> mtu_request=9702])
>  AT_CHECK([ovs-vsctl show], [], [stdout])
>  sleep 2
>
> -dnl Execute testpmd in background
> -on_exit "pkill -f -x -9 'tail -f /dev/null'"
> -tail -f /dev/null | dpdk-testpmd --socket-mem="$(cat NUMA_NODE)" --no-pci\
> -           
> --vdev="net_virtio_user,path=$OVS_RUNDIR/dpdkvhostclient0,server=1" \
> -           --vdev="net_tap0,iface=tap0" --file-prefix page0 \
> -           --single-file-segments -- -a 
> >$OVS_RUNDIR/testpmd-dpdkvhostuserclient0.log 2>&1 &
> +OVS_DPDK_START_TESTPMD([--vdev="net_virtio_user,path=$OVS_RUNDIR/dpdkvhostclient0,server=1"
>  \
> +                        --vdev="net_tap0,iface=tap0"])
>
>  OVS_WAIT_UNTIL([grep "virtio is now ready for processing" ovs-vswitchd.log])
>
> @@ -886,8 +841,7 @@ dnl Set MTU value above upper bound and check for error
>  AT_CHECK([ovs-vsctl set Interface dpdkvhostuserclient0 mtu_request=9711])
>  AT_CHECK([grep "dpdkvhostuserclient0: unsupported MTU 9711" 
> ovs-vswitchd.log], [], [stdout])
>
> -dnl Clean up the testpmd now
> -pkill -f -x -9 'tail -f /dev/null'
> +OVS_DPDK_STOP_TESTPMD()
>
>  dnl Clean up
>  AT_CHECK([ovs-vsctl del-port br10 dpdkvhostuserclient0], [], [stdout], 
> [stderr])
> @@ -906,14 +860,10 @@ dnl MTU lower bound vport port
>  AT_SETUP([OVS-DPDK - MTU lower bound vport port])
>  AT_KEYWORDS([dpdk])
>
> -AT_SKIP_IF([! which dpdk-testpmd >/dev/null 2>/dev/null])
> +OVS_DPDK_CHECK_TESTPMD()
>  OVS_DPDK_PRE_CHECK()
>  OVS_DPDK_START([--no-pci])
>
> -dnl Find number of sockets
> -AT_CHECK([lscpu], [], [stdout])
> -AT_CHECK([cat stdout | grep "NUMA node(s)" | awk '{c=1; while (c++<$(3)) 
> {printf "512,"}; print "512"}' > NUMA_NODE])
> -
>  dnl Add userspace bridge and attach it to OVS and set MTU value to min lower 
> bound
>  AT_CHECK([ovs-vsctl add-br br10 -- set bridge br10 datapath_type=netdev])
>  AT_CHECK([ovs-vsctl add-port br10 dpdkvhostuserclient0 -- set Interface 
> dpdkvhostuserclient0 type=dpdkvhostuserclient 
> options:vhost-server-path=$OVS_RUNDIR/dpdkvhostclient0], [], [stdout], 
> [stderr])
> @@ -926,12 +876,8 @@ AT_CHECK([grep "VHOST_CONFIG: 
> ($OVS_RUNDIR/dpdkvhostclient0) vhost-user client:
>  AT_CHECK([grep "vHost User device 'dpdkvhostuserclient0' created in 'client' 
> mode, using client socket" ovs-vswitchd.log], [], [stdout])
>  AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) 
> reconnecting..." ovs-vswitchd.log], [], [stdout])
>
> -dnl Execute testpmd in background
> -on_exit "pkill -f -x -9 'tail -f /dev/null'"
> -tail -f /dev/null | dpdk-testpmd --socket-mem="$(cat NUMA_NODE)" --no-pci\
> -           
> --vdev="net_virtio_user,path=$OVS_RUNDIR/dpdkvhostclient0,server=1" \
> -           --vdev="net_tap0,iface=tap0" --file-prefix page0 \
> -           --single-file-segments -- -a 
> >$OVS_RUNDIR/testpmd-dpdkvhostuserclient0.log 2>&1 &
> +OVS_DPDK_START_TESTPMD([--vdev="net_virtio_user,path=$OVS_RUNDIR/dpdkvhostclient0,server=1"
>  \
> +                        --vdev="net_tap0,iface=tap0"])
>
>  OVS_WAIT_UNTIL([grep "virtio is now ready for processing" ovs-vswitchd.log])
>
> @@ -943,8 +889,7 @@ dnl Set MTU value below lower bound and check for error
>  AT_CHECK([ovs-vsctl set Interface dpdkvhostuserclient0 mtu_request=67])
>  AT_CHECK([grep "dpdkvhostuserclient0: unsupported MTU 67" ovs-vswitchd.log], 
> [], [stdout])
>
> -dnl Clean up the testpmd now
> -pkill -f -x -9 'tail -f /dev/null'
> +OVS_DPDK_STOP_TESTPMD()
>
>  dnl Clean up
>  AT_CHECK([ovs-vsctl del-port br10 dpdkvhostuserclient0], [], [stdout], 
> [stderr])
> --
> 2.41.0
>
> _______________________________________________
> dev mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to