Re: [ovs-dev] [PATCH v9 09/11] system-dpdk: Refactor tests using vhost-user ports.

2023-11-21 Thread Eelco Chaudron



On 20 Nov 2023, at 16:56, David Marchand wrote:

> Introduce macros responsible for adding a vhost-user / vhost-user client
> port to a userspace datapath bridge and check associated logs.
>
> Signed-off-by: David Marchand 

Thanks for getting to the bottom of this! This looks good to me.

Acked-by: Eelco Chaudron 

___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


[ovs-dev] [PATCH v9 09/11] system-dpdk: Refactor tests using vhost-user ports.

2023-11-20 Thread David Marchand
Introduce macros responsible for adding a vhost-user / vhost-user client
port to a userspace datapath bridge and check associated logs.

Signed-off-by: David Marchand 
---
Changes since v8:
- added this patch to avoid issues like what is fixed by the previous
  patch in this series,

---
 tests/system-dpdk.at | 123 +--
 1 file changed, 36 insertions(+), 87 deletions(-)

diff --git a/tests/system-dpdk.at b/tests/system-dpdk.at
index b7ae4af406..4da2afd683 100644
--- a/tests/system-dpdk.at
+++ b/tests/system-dpdk.at
@@ -18,6 +18,29 @@ m4_define([CHECK_MEMPOOL_PARAM], [
| grep "User configured shared mempool set for: MTU $1, 
NUMA $2."])
 ])
 
+dnl ADD_VHOST_USER_CLIENT_PORT([bridge], [port], [socket])
+dnl Add a dpdk vhost-user client port to a bridge and check this port is ready
+dnl to be used by looking at the logs.
+m4_define([ADD_VHOST_USER_CLIENT_PORT], [
+AT_CHECK([ovs-vsctl add-port $1 $2 -- \
+  set Interface $2 type=dpdkvhostuserclient 
options:vhost-server-path=$3],
+ [], [stdout], [stderr])
+OVS_WAIT_UNTIL([grep "VHOST_CONFIG: ($3) vhost-user client: socket 
created" ovs-vswitchd.log])
+OVS_WAIT_UNTIL([grep "vHost User device '$2' created in 'client' mode, 
using client socket" ovs-vswitchd.log])
+OVS_WAIT_UNTIL([grep "VHOST_CONFIG: ($3) reconnecting..." 
ovs-vswitchd.log])
+])
+
+dnl ADD_VHOST_USER_PORT([bridge], [port], [socket])
+dnl Add a dpdk vhost-user port to a bridge and check this port is ready
+dnl to be used by looking at the logs.
+m4_define([ADD_VHOST_USER_PORT], [
+AT_CHECK([ovs-vsctl add-port $1 $2 -- set Interface $2 
type=dpdkvhostuser], [],
+ [stdout], [stderr])
+OVS_WAIT_UNTIL([grep "VHOST_CONFIG: ($3) vhost-user server: socket 
created" ovs-vswitchd.log])
+OVS_WAIT_UNTIL([grep "Socket $3 created for vhost-user port $2" 
ovs-vswitchd.log])
+OVS_WAIT_UNTIL([grep "VHOST_CONFIG: ($3) binding succeeded" 
ovs-vswitchd.log])
+])
+
 dnl --
 dnl Check if EAL init is successful
 AT_SETUP([OVS-DPDK - EAL init])
@@ -64,15 +87,10 @@ OVS_DPDK_START([--no-pci])
 
 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 
dpdkvhostuserclient0 type=dpdkvhostuserclient 
options:vhost-server-path=$OVS_RUNDIR/dpdkvhostclient0], [], [stdout], [stderr])
+ADD_VHOST_USER_CLIENT_PORT([br10], [dpdkvhostuserclient0], 
[$OVS_RUNDIR/dpdkvhostclient0])
 AT_CHECK([ovs-vsctl show], [], [stdout])
 sleep 2
 
-dnl Parse log file
-AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) vhost-user 
client: socket created" ovs-vswitchd.log], [], [stdout])
-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 Clean up
 AT_CHECK([ovs-vsctl del-port br10 dpdkvhostuserclient0], [], [stdout], 
[stderr])
 OVS_DPDK_STOP_VSWITCHD(["dnl
@@ -92,19 +110,9 @@ OVS_DPDK_START([--no-pci])
 
 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 \
-  type=dpdkvhostuser], [],
- [stdout], [stderr])
+ADD_VHOST_USER_PORT([br10], [dpdkvhostuser0], [$OVS_RUNDIR/dpdkvhostuser0])
 AT_CHECK([ovs-vsctl show], [], [stdout])
 
-dnl Parse log file
-AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostuser0) vhost-user server: 
socket created" \
-  ovs-vswitchd.log], [], [stdout])
-AT_CHECK([grep "Socket $OVS_RUNDIR/dpdkvhostuser0 created for vhost-user port 
dpdkvhostuser0" \
-  ovs-vswitchd.log], [], [stdout])
-AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostuser0) binding succeeded" 
ovs-vswitchd.log], [],
- [stdout])
-
 dnl Set up namespaces
 ADD_NAMESPACES(ns1, ns2)
 
@@ -158,18 +166,9 @@ OVS_DPDK_START([--no-pci])
 
 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 \
-  dpdkvhostuserclient0 \
-  type=dpdkvhostuserclient \
-  options:vhost-server-path=$OVS_RUNDIR/dpdkvhostclient0], [],
- [stdout], [stderr])
+ADD_VHOST_USER_CLIENT_PORT([br10], [dpdkvhostuserclient0], 
[$OVS_RUNDIR/dpdkvhostclient0])
 AT_CHECK([ovs-vsctl show], [], [stdout])
 
-dnl Parse log file
-AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) vhost-user 
client: socket created" ovs-vswitchd.log], [], [stdout])
-AT_CHECK([grep "vHost User device 'dpdkvhostuserclient0' created in 'client' 
mode, using client socket" ovs-vswitchd.log], [], [stdout])
-AT_CHECK([gr