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

Reply via email to