On 26 Jan 2023, at 22:43, Ilya Maximets wrote:
> On 1/24/23 13:59, Eelco Chaudron wrote: >> If a tc flow was installed but has not yet been used, report it as such. >> >> In addition, add a delay to the "IGMP - flood under normal action" test >> case to make it work with many repetitions. This delay is also present >> in other ICMP/IGMP tests. >> > > Should there be a Fixes tag? Yes, will add ‘f98e418fbdb6 ("tc: Add tc flower functions”)’ >> Signed-off-by: Eelco Chaudron <echau...@redhat.com> >> Acked-by: Roi Dayan <r...@nvidia.com> >> --- >> lib/tc.c | 14 +++++++++++++- >> tests/system-offloads.at | 3 +-- >> tests/system-traffic.at | 2 ++ >> 3 files changed, 16 insertions(+), 3 deletions(-) >> >> diff --git a/lib/tc.c b/lib/tc.c >> index 447ab376e..c8f16874b 100644 >> --- a/lib/tc.c >> +++ b/lib/tc.c >> @@ -1366,7 +1366,19 @@ get_user_hz(void) >> static void >> nl_parse_tcf(const struct tcf_t *tm, struct tc_flower *flower) >> { >> - uint64_t lastused = time_msec() - (tm->lastuse * 1000 / get_user_hz()); >> + uint64_t lastused; >> + >> + /* On creation both tm->install and tm->lastuse are set to jiffies >> + * by the kernel. So if both values are the same, the flow has not been >> + * used yet. >> + * >> + * Note that tm->firstuse can not be used due to some kernel bug, i.e., >> + * hardware offloaded flows do not update tm->firstuse. */ >> + if (tm->lastuse == tm->install) { >> + lastused = 0; >> + } else { >> + lastused = time_msec() - (tm->lastuse * 1000 / get_user_hz()); >> + } >> >> if (flower->lastused < lastused) { >> flower->lastused = lastused; >> diff --git a/tests/system-offloads.at b/tests/system-offloads.at >> index 57be710a7..f4adac7b3 100644 >> --- a/tests/system-offloads.at >> +++ b/tests/system-offloads.at >> @@ -75,8 +75,7 @@ conntrack - multiple zones, local >> conntrack - multi-stage pipeline, local >> conntrack - ICMP related with NAT >> conntrack - DNAT load balancing >> -conntrack - DNAT load balancing with NC >> -IGMP - flood under normal action" >> +conntrack - DNAT load balancing with NC" >> echo "$ovs_test_skip_list" | sed "s/<SPC>/ /g"]) >> >> m4_include([tests/system-traffic.at]) >> diff --git a/tests/system-traffic.at b/tests/system-traffic.at >> index b140a1e26..d162674c9 100644 >> --- a/tests/system-traffic.at >> +++ b/tests/system-traffic.at >> @@ -7153,6 +7153,8 @@ f0 00 00 01 01 01 08 00 46 c0 00 28 00 00 40 00 01 02 >> d3 49 45 65 eb 4a e0 dnl >> 00 00 16 94 04 00 00 22 00 f9 02 00 00 00 01 04 00 00 00 e0 00 00 fb 00 00 >> dnl >> 00 00 00 00 > /dev/null]) >> >> +sleep 1 >> + >> AT_CHECK([ovs-appctl dpctl/dump-flows --names | grep -e .*ipv4 | sort | dnl >> strip_stats | strip_used | strip_recirc | dnl >> sed 's/,packet_type(ns=[[0-9]]*,id=[[0-9]]*),/,/'], > > OVS_WAIT_UNTIL_EQUAL() ? I removed the delay altogether after doing 50+ successful runs on my system :) Not sure why but it seems TC seems to need fewer delays. Will re-test all patches before sending them out again and remove all obsolete patches. _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev