On 16 Sep 2022, at 15:11, Ilya Maximets wrote:
> On 9/16/22 11:25, Eelco Chaudron wrote: >> >> >> On 16 Sep 2022, at 4:25, Tianyu Yuan wrote: >> >>> On 9/16/22 10:14, Ilya Maximets wrote: >>>> On 9/15/22 13:38, Tianyu Yuan wrote: >>>>> >>>>> On 9/15/22 19:28, Ilya Maximets wrote: >>>>>> On 9/14/22 16:19, Simon Horman wrote: >>>>>>> From: Tianyu Yuan <tianyu.y...@corigine.com> >>>>>>> >>>>>>> Since dd9881ed55e6 ("tc: Fix stats dump when using same meter >>>>>>> table") rule stats update will ignore meter police. Correspondingly, >>>>>>> the reference stats of the test should also be modified to ensure >>>>>>> the test could pass correctly. >>>>>>> >>>>>>> Fixes: dd9881ed55e6 ("tc: Fix stats dump when using same meter >>>>>>> table") >>>>>>> Signed-off-by: Tianyu Yuan <tianyu.y...@corigine.com> >>>>>>> Signed-off-by: Simon Horman <simon.hor...@corigine.com> >>>>>>> --- >>>>>>> tests/system-offloads-traffic.at | 2 +- >>>>>>> 1 file changed, 1 insertion(+), 1 deletion(-) >>>>>>> >>>>>>> diff --git a/tests/system-offloads-traffic.at >>>>>>> b/tests/system-offloads-traffic.at >>>>>>> index d9b815a5ddf4..24e49d42f589 100644 >>>>>>> --- a/tests/system-offloads-traffic.at >>>>>>> +++ b/tests/system-offloads-traffic.at >>>>>>> @@ -264,7 +264,7 @@ NS_CHECK_EXEC([at_ns0], [echo "mark" | nc >>>>>>> $NC_EOF_OPT -u 10.1.1.2 5678 -p 6789]) done >>>>>>> >>>>>>> AT_CHECK([ovs-appctl dpctl/dump-flows | grep "meter" | >>>>>>> DUMP_CLEAN_SORTED], [0], [dnl >>>>>>> -in_port(2),eth(macs),eth_type(0x0800),ipv4(proto=17,frag=no), >>>>>>> packets:10, bytes:330, used:0.001s, actions:meter(0),3 >>>>>>> +in_port(2),eth(macs),eth_type(0x0800),ipv4(proto=17,frag=no), >>>>>>> +packets:1, bytes:33, used:0.001s, actions:meter(0),3 >>>>>> >>>>>> This looks very strange to me. The test does send 10 packets. >>>>>> Why the flow should report only one? >>>>>> >>>>> Thanks for your review Ilya. >>>>> The test does send 10 packets but 9 of them are dropped by meter >>>>> action. As we descript in commit (dd9881ed55e6), the flow stats should >>>>> not report the police stats. In this case, only one packet passes the >>>>> meter action and be used to update flow stats. >>>> >>>> The flow statistics counts how many packets hit the flow by the match >>>> criteria, >>>> not how many of them survived after the action execution. >>>> >>>> See the same test with offloads disabled (next to it in the file). >>>> It correctly counts all the 10 packets. >>>> >>>> If we will not count packets, OVS will eventually remove the flow from the >>>> datapath causing removal from TC and hardware and triggering upcalls on the >>>> next packet. And OpenFlow statistics will also be incorrect. >>>> >>>> Best regards, Ilya Maximets. >>>> >>> >>> Thanks Ilya, I previously had some misunderstanding of flow stats. >>> >>> Now the problem is, once police action(meter) is the first action in a >>> filter, >>> flow stats will ignore the police action and only be updated using the >>> survived >>> packets, which means the flow stats either before or after the commit >>> dd9881ed55e6 >>> is incorrect. >>> >>> We will keep looking into this issue. >> >> >> I while back before doing chk_pkt_len I suggested a patch, but some told me >> not all actions are implemented, it might be worth looking into this again >> if needed: >> >> https://www.mail-archive.com/ovs-dev@openvswitch.org/msg62960.html > > For the rte_flow case, the similar issue is solved by always adding > an RTE_FLOW_ACTION_TYPE_COUNT action at the beginning of the action > list. Is there some similar action in TC? TC does not have a specific count action. It’s part of each action, however some action type always return 0 (I was told). >> >> I can’t remember how I fixed this for chk_pkt_len, as it does work there, as >> there are some specific test cases for it :) >> >> >> /ovs-master/tests/system-offloads-traffic.at >> >> # This test verifies the total packet counters work when individual branches >> # are taken. >> >> >> //Eelco >> _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev