diff mbox series

[ovs-dev,v8,08/15] test: Flush datapath when changing rules on the fly.

Message ID 167456503352.1023551.291733417267211535.stgit@ebuild.local
State Changes Requested
Headers show
Series tests: Add system-traffic.at tests to check-offloads. | expand

Checks

Context Check Description
ovsrobot/apply-robot success apply and check: success
ovsrobot/github-robot-_Build_and_Test success github build: passed

Commit Message

Eelco Chaudron Jan. 24, 2023, 12:57 p.m. UTC
Flush datapath flows as TC flows take some more time to be flushed out.
The flush speeds this up.

Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
Acked-by: Roi Dayan <roid@nvidia.com>
---
 tests/system-offloads.at |    2 --
 tests/system-traffic.at  |    6 ++++++
 2 files changed, 6 insertions(+), 2 deletions(-)

Comments

Ilya Maximets Jan. 26, 2023, 8:50 p.m. UTC | #1
On 1/24/23 13:57, Eelco Chaudron wrote:
> Flush datapath flows as TC flows take some more time to be flushed out.
> The flush speeds this up.
> 
> Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
> Acked-by: Roi Dayan <roid@nvidia.com>
> ---
>  tests/system-offloads.at |    2 --
>  tests/system-traffic.at  |    6 ++++++
>  2 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/tests/system-offloads.at b/tests/system-offloads.at
> index 593dc1c7a..9d1e80c8d 100644
> --- a/tests/system-offloads.at
> +++ b/tests/system-offloads.at
> @@ -48,8 +48,6 @@ m4_define([OVS_TEST_SKIP_LIST],
>      [ovs_test_skip_list="
>  datapath - truncate and output to gre tunnel by simulated packets
>  datapath - truncate and output to gre tunnel
> -conntrack - zones from other field
> -conntrack - zones from other field, more tests
>  conntrack - multiple namespaces, internal ports
>  conntrack - ct metadata, multiple zones
>  conntrack - ICMP related
> diff --git a/tests/system-traffic.at b/tests/system-traffic.at
> index 2497dcd60..8b8b63749 100644
> --- a/tests/system-traffic.at
> +++ b/tests/system-traffic.at
> @@ -2845,6 +2845,9 @@ AT_CHECK([ovs-appctl dpctl/dump-flows --names filter=in_port=ovs-p0 dnl
>  AT_CHECK([ovs-ofctl mod-flows br0 dnl
>              'priority=100,ct_state=-trk,tcp,in_port="ovs-p0" actions=ct(table=0,zone=15)'])
>  
> +dnl Force flush flows as some datapaths (read TC) might take time to clear.
> +AT_CHECK([ovs-appctl dpctl/del-flows])

dpctl/del-flows may cause some random warnings in logs regarding
flows not being found.   Can we use revalidator/wait instead?

> +
>  NS_CHECK_EXEC([at_ns0], [wget 10.1.1.2 -t 3 -T 1 --retry-connrefused -v -o wget0.log])
>  
>  AT_CHECK([ovs-appctl dpctl/dump-flows --names filter=in_port=ovs-p0 dnl
> @@ -2893,6 +2896,9 @@ AT_CHECK([ovs-appctl dpctl/dump-flows --names filter=in_port=ovs-p0 dnl
>  
>  AT_CHECK([ovs-ofctl mod-flows br0 'priority=100,ct_state=-trk,tcp,in_port="ovs-p0" actions=ct(table=0,zone=15,commit,exec(load:0xffff000f->NXM_NX_CT_LABEL[[0..31]]))'])
>  
> +dnl Force flush flows as some datapaths (read TC) might take time to clear.
> +AT_CHECK([ovs-appctl dpctl/del-flows])
> +
>  NS_CHECK_EXEC([at_ns0], [wget 10.1.1.2 -t 3 -T 1 --retry-connrefused -v -o wget0.log])
>  
>  AT_CHECK([ovs-appctl dpctl/dump-flows --names filter=in_port=ovs-p0 dnl
> 
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
Eelco Chaudron Jan. 30, 2023, 4:25 p.m. UTC | #2
On 26 Jan 2023, at 21:50, Ilya Maximets wrote:

> On 1/24/23 13:57, Eelco Chaudron wrote:
>> Flush datapath flows as TC flows take some more time to be flushed out.
>> The flush speeds this up.
>>
>> Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
>> Acked-by: Roi Dayan <roid@nvidia.com>
>> ---
>>  tests/system-offloads.at |    2 --
>>  tests/system-traffic.at  |    6 ++++++
>>  2 files changed, 6 insertions(+), 2 deletions(-)
>>
>> diff --git a/tests/system-offloads.at b/tests/system-offloads.at
>> index 593dc1c7a..9d1e80c8d 100644
>> --- a/tests/system-offloads.at
>> +++ b/tests/system-offloads.at
>> @@ -48,8 +48,6 @@ m4_define([OVS_TEST_SKIP_LIST],
>>      [ovs_test_skip_list="
>>  datapath - truncate and output to gre tunnel by simulated packets
>>  datapath - truncate and output to gre tunnel
>> -conntrack - zones from other field
>> -conntrack - zones from other field, more tests
>>  conntrack - multiple namespaces, internal ports
>>  conntrack - ct metadata, multiple zones
>>  conntrack - ICMP related
>> diff --git a/tests/system-traffic.at b/tests/system-traffic.at
>> index 2497dcd60..8b8b63749 100644
>> --- a/tests/system-traffic.at
>> +++ b/tests/system-traffic.at
>> @@ -2845,6 +2845,9 @@ AT_CHECK([ovs-appctl dpctl/dump-flows --names filter=in_port=ovs-p0 dnl
>>  AT_CHECK([ovs-ofctl mod-flows br0 dnl
>>              'priority=100,ct_state=-trk,tcp,in_port="ovs-p0" actions=ct(table=0,zone=15)'])
>>
>> +dnl Force flush flows as some datapaths (read TC) might take time to clear.
>> +AT_CHECK([ovs-appctl dpctl/del-flows])
>
> dpctl/del-flows may cause some random warnings in logs regarding
> flows not being found.   Can we use revalidator/wait instead?

Yes a revalidator wait worked for me, will update to something like:

-dnl Force flush flows as some datapaths (read TC) might take time to clear.
-AT_CHECK([ovs-appctl dpctl/del-flows])
+dnl Wait for a flow flush as some datapaths (read TC) might take time to clear.
+AT_CHECK([ovs-appctl revalidator/wait], [0])
+

>> +
>>  NS_CHECK_EXEC([at_ns0], [wget 10.1.1.2 -t 3 -T 1 --retry-connrefused -v -o wget0.log])
>>
>>  AT_CHECK([ovs-appctl dpctl/dump-flows --names filter=in_port=ovs-p0 dnl
>> @@ -2893,6 +2896,9 @@ AT_CHECK([ovs-appctl dpctl/dump-flows --names filter=in_port=ovs-p0 dnl
>>
>>  AT_CHECK([ovs-ofctl mod-flows br0 'priority=100,ct_state=-trk,tcp,in_port="ovs-p0" actions=ct(table=0,zone=15,commit,exec(load:0xffff000f->NXM_NX_CT_LABEL[[0..31]]))'])
>>
>> +dnl Force flush flows as some datapaths (read TC) might take time to clear.
>> +AT_CHECK([ovs-appctl dpctl/del-flows])
>> +
>>  NS_CHECK_EXEC([at_ns0], [wget 10.1.1.2 -t 3 -T 1 --retry-connrefused -v -o wget0.log])
>>
>>  AT_CHECK([ovs-appctl dpctl/dump-flows --names filter=in_port=ovs-p0 dnl
>>
>> _______________________________________________
>> dev mailing list
>> dev@openvswitch.org
>> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>>
diff mbox series

Patch

diff --git a/tests/system-offloads.at b/tests/system-offloads.at
index 593dc1c7a..9d1e80c8d 100644
--- a/tests/system-offloads.at
+++ b/tests/system-offloads.at
@@ -48,8 +48,6 @@  m4_define([OVS_TEST_SKIP_LIST],
     [ovs_test_skip_list="
 datapath - truncate and output to gre tunnel by simulated packets
 datapath - truncate and output to gre tunnel
-conntrack - zones from other field
-conntrack - zones from other field, more tests
 conntrack - multiple namespaces, internal ports
 conntrack - ct metadata, multiple zones
 conntrack - ICMP related
diff --git a/tests/system-traffic.at b/tests/system-traffic.at
index 2497dcd60..8b8b63749 100644
--- a/tests/system-traffic.at
+++ b/tests/system-traffic.at
@@ -2845,6 +2845,9 @@  AT_CHECK([ovs-appctl dpctl/dump-flows --names filter=in_port=ovs-p0 dnl
 AT_CHECK([ovs-ofctl mod-flows br0 dnl
             'priority=100,ct_state=-trk,tcp,in_port="ovs-p0" actions=ct(table=0,zone=15)'])
 
+dnl Force flush flows as some datapaths (read TC) might take time to clear.
+AT_CHECK([ovs-appctl dpctl/del-flows])
+
 NS_CHECK_EXEC([at_ns0], [wget 10.1.1.2 -t 3 -T 1 --retry-connrefused -v -o wget0.log])
 
 AT_CHECK([ovs-appctl dpctl/dump-flows --names filter=in_port=ovs-p0 dnl
@@ -2893,6 +2896,9 @@  AT_CHECK([ovs-appctl dpctl/dump-flows --names filter=in_port=ovs-p0 dnl
 
 AT_CHECK([ovs-ofctl mod-flows br0 'priority=100,ct_state=-trk,tcp,in_port="ovs-p0" actions=ct(table=0,zone=15,commit,exec(load:0xffff000f->NXM_NX_CT_LABEL[[0..31]]))'])
 
+dnl Force flush flows as some datapaths (read TC) might take time to clear.
+AT_CHECK([ovs-appctl dpctl/del-flows])
+
 NS_CHECK_EXEC([at_ns0], [wget 10.1.1.2 -t 3 -T 1 --retry-connrefused -v -o wget0.log])
 
 AT_CHECK([ovs-appctl dpctl/dump-flows --names filter=in_port=ovs-p0 dnl