Hi Ales

Thanks for the patch.
nit: small typo in the commit message - see below
Other than that, LGTM
Acked-by: Xavier Simonart <[email protected]>
Thanks
Xavier

On Thu, Nov 13, 2025 at 11:05 AM Ales Musil via dev <[email protected]>
wrote:

> The test was using client and server to generate traffic that would
> be sampled. The sampling check relayed on the fact that the last
>
s/relayed/relied/

> echo from server would arrive when the client is already closed.
> That wasn't always the case which led to missing samples for ICMP
> error. Make sure the server waits a little before sending the last
> packet. Giving the client a chance to properly exit first. Also make
>
s/packet. Giving/packet, giving/

> the delay between the two packets sent by client smaller to slightly
> shorten the time required to execute the test.
>
> Reported-at: https://issues.redhat.com/browse/FDP-1941
> Signed-off-by: Ales Musil <[email protected]>
> ---
>  tests/system-ovn.at | 51 ++++++++++++++++++++++++++++++++++-----------
>  1 file changed, 39 insertions(+), 12 deletions(-)
>
> diff --git a/tests/system-ovn.at b/tests/system-ovn.at
> index 5b34e621f..9c86e1e38 100644
> --- a/tests/system-ovn.at
> +++ b/tests/system-ovn.at
> @@ -13302,6 +13302,32 @@ check_uuid ovn-nbctl
>  check_row_count nb:ACL 6
>  check_row_count nb:Sample 12
>
> +AT_DATA([client.py], [dnl
> +import socket
> +import sys
> +import time
> +
> +port = int(sys.argv[[1]])
> +
> +sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
> +sock.sendto(b"hello\n", ("43.43.43.43", port))
> +time.sleep(0.3)
> +sock.sendto(b"bye\n", ("43.43.43.43", port))
> +sock.close()
> +])
> +
> +AT_DATA([server.py], [dnl
> +import sys
> +import time
> +
> +line = sys.stdin.readline()
> +if "bye" in line:
> +    time.sleep(1)
> +
> +sys.stdout.write(line)
> +sys.stdout.flush()
> +])
> +
>  dnl Wait for ovn-controller to catch up.
>  wait_for_ports_up
>  check ovn-nbctl --wait=hv sync
> @@ -13322,24 +13348,25 @@ dnl And wait for it to be up and running.
>  OVS_WAIT_UNTIL([ovs-ofctl dump-ipfix-flow br-int | grep -q '1 ids'])
>
>  dnl Start UDP echo server on vm2.
> -NETNS_DAEMONIZE([vm2], [nc -e /bin/cat -k -u -v -l -m 1 1000],
> [nc-vm2-1000.pid])
> -NETNS_DAEMONIZE([vm2], [nc -e /bin/cat -k -u -v -l -m 1 1010],
> [nc-vm2-1010.pid])
> -NETNS_DAEMONIZE([vm2], [nc -e /bin/cat -k -u -v -l -m 1 2000],
> [nc-vm2-2000.pid])
> -NETNS_DAEMONIZE([vm2], [nc -e /bin/cat -k -u -v -l -m 1 2010],
> [nc-vm2-2010.pid])
> -NETNS_DAEMONIZE([vm2], [nc -e /bin/cat -k -u -v -l -m 1 3000],
> [nc-vm2-3000.pid])
> -NETNS_DAEMONIZE([vm2], [nc -e /bin/cat -k -u -v -l -m 1 3010],
> [nc-vm2-3010.pid])
> +NETNS_DAEMONIZE([vm2], [nc -e "$PYTHON ./server.py" -k -u -v -l -m 1
> 1000], [nc-vm2-1000.pid])
> +NETNS_DAEMONIZE([vm2], [nc -e "$PYTHON ./server.py" -k -u -v -l -m 1
> 1010], [nc-vm2-1010.pid])
> +NETNS_DAEMONIZE([vm2], [nc -e "$PYTHON ./server.py" -k -u -v -l -m 1
> 2000], [nc-vm2-2000.pid])
> +NETNS_DAEMONIZE([vm2], [nc -e "$PYTHON ./server.py" -k -u -v -l -m 1
> 2010], [nc-vm2-2010.pid])
> +NETNS_DAEMONIZE([vm2], [nc -e "$PYTHON ./server.py" -k -u -v -l -m 1
> 3000], [nc-vm2-3000.pid])
> +NETNS_DAEMONIZE([vm2], [nc -e "$PYTHON ./server.py" -k -u -v -l -m 1
> 3010], [nc-vm2-3010.pid])
> +NETNS_START_TCPDUMP([vm2], [-i vm2 -vnne], [vm2])
>
>  dnl Send traffic (2 packets) to the UDP LB1 (hits the from-lport ACL).
> -NS_CHECK_EXEC([vm1], [(echo a; sleep 1; echo a) | nc --send-only -u
> 43.43.43.43 1000])
> -NS_CHECK_EXEC([vm1], [(echo a; sleep 1; echo a) | nc --send-only -u
> 43.43.43.43 1010])
> +NS_CHECK_EXEC([vm1], [$PYTHON3 ./client.py 1000])
> +NS_CHECK_EXEC([vm1], [$PYTHON3 ./client.py 1010])
>
>  dnl Send traffic (2 packets) to the UDP LB1 (hits the from-lport after-lb
> ACL).
> -NS_CHECK_EXEC([vm1], [(echo a; sleep 1; echo a) | nc --send-only -u
> 43.43.43.43 2000])
> -NS_CHECK_EXEC([vm1], [(echo a; sleep 1; echo a) | nc --send-only -u
> 43.43.43.43 2010])
> +NS_CHECK_EXEC([vm1], [$PYTHON3 ./client.py 2000])
> +NS_CHECK_EXEC([vm1], [$PYTHON3 ./client.py 2010])
>
>  dnl Send traffic (2 packets) to the UDP LB1 (hits the from-lport ACL).
> -NS_CHECK_EXEC([vm1], [(echo a; sleep 1; echo a) | nc --send-only -u
> 43.43.43.43 3000])
> -NS_CHECK_EXEC([vm1], [(echo a; sleep 1; echo a) | nc --send-only -u
> 43.43.43.43 3010])
> +NS_CHECK_EXEC([vm1], [$PYTHON3 ./client.py 3000])
> +NS_CHECK_EXEC([vm1], [$PYTHON3 ./client.py 3010])
>
>  dnl Wait until OVS sampled all expected packets (4 data packets + 1 ICMP
>  dnl port unreachable error on each session).
> --
> 2.51.1
>
> _______________________________________________
> 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