On Tue, Nov 18, 2025 at 11:04 AM Xavier Simonart <[email protected]> wrote:
> 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 >> >> Thank you Xavier, I have updated the commit message, merged this into main and backported to 24.09. Regards, Ales _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
