[dpdk-dev] rte_flow ageing
David Bouyeure
david.bouyeure at fraudbuster.mobi
Thu Apr 8 18:45:37 CEST 2021
As seen with Matan, there's really a bug preventing to schedule a later
age event(with /rte_flow_get_aged_flows()/) from the user's callback itself.
I could suggest the following patch:
--- dpdk-21.02/drivers/net/mlx5/mlx5.c 2021-02-14 10:58:34.000000000
+0100
+++ dpdk-21.02/drivers/net/mlx5/mlx5.c.new 2021-04-08
18:35:44.124965176 +0200
@@ -554,7 +554,7 @@
rte_eth_dev_callback_process
(&rte_eth_devices[sh->port[i].devx_ih_port_id],
RTE_ETH_EVENT_FLOW_AGED, NULL);
- age_info->flags = 0;
+ age_info->flags &= ~MLX5_AGE_EVENT_NEW;
}
}
Thanks.
On 4/8/21 11:52 AM, Matan Azrad wrote:
>
> Yes, you right for the meaning of MLX5_AGE_TRIGGER.
>
> But why you said it is erased when the callback return?
>
> It is erased when a new aged-out flow is detected by the driver….
>
> Do you have an issue with option 1?
>
> Matan
>
> *From:*David Bouyeure <david.bouyeure at fraudbuster.mobi>
> *Sent:* Thursday, April 8, 2021 10:50 AM
> *To:* Matan Azrad <matan at nvidia.com>; Asaf Penso <asafp at nvidia.com>;
> dev at dpdk.org
> *Cc:* Jack Min <jackmin at nvidia.com>
> *Subject:* Re: [dpdk-dev] rte_flow ageing
>
> *External email: Use caution opening links or attachments*
>
> Hi Matan,
>
> below are my comments.
>
> Thank you.
>
> On 4/7/21 8:09 PM, Matan Azrad wrote:
>
> Yes you can call it from the event callback.
>
> Sure, but it won't trigger the event callback as it would for the next
> aged-out flow(s) if called from outside the callback.
>
> Yes, MLX5_AGE_TRIGGER probably means that event was sent and no
> need to send it again in the next aged-out flow.
>
> I don't think so. MLX5_AGE_TRIGGER means 'Do call the callback for
> next aged-out flow(s)'.
>
> Erasing it cause new event to be sent in the next aged-out flow...
>
> No, I think it's the reverse.
>
> I don't understand what is the issue for you in option 1...
>
> השג את Outlookעבור Android
> <https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2FAAb9ysg&data=04%7C01%7Cmatan%40nvidia.com%7C5f8447e5e9a0419d028408d8fa62f35c%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C637534650206068346%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=vfiLHcxWtpQEh9jqE7wIsGhs%2FZlMN5r4aJtSrvE7OgY%3D&reserved=0>
>
> ------------------------------------------------------------------------
>
> *From:*David Bouyeure <david.bouyeure at fraudbuster.mobi>
> <mailto:david.bouyeure at fraudbuster.mobi>
> *Sent:* Wednesday, April 7, 2021 7:19:34 PM
> *To:* Matan Azrad <matan at nvidia.com> <mailto:matan at nvidia.com>;
> Asaf Penso <asafp at nvidia.com> <mailto:asafp at nvidia.com>;
> dev at dpdk.org <mailto:dev at dpdk.org> <dev at dpdk.org>
> <mailto:dev at dpdk.org>
> *Cc:* Jack Min <jackmin at nvidia.com> <mailto:jackmin at nvidia.com>
> *Subject:* Re: [dpdk-dev] rte_flow ageing
>
> *External email: Use caution opening links or attachments*
>
> Hi Matan, and thanks a lot,
>
> regarding the mode *1*, I still have a doubt:
>
> 1. Register the AGE event -> in event time to query the
> aged-out flows by the rte_flow_get_aged_flows API, this
> call will trigger a new event when new aged-out flow will
> be detected for the port.(if you don’t call
> rte_flow_get_aged_flows the event will not be retriggered.)
>
> You meant calling rte_flow_get_aged_flows() from the event
> callback I guess...?
>
> I think this is not working because MLX5_AGE_TRIGGER is erased
> when the callback returns.
>
> Anyway, the polling mode is enough to me so far.
>
> Thanks again.
>
> Regards.
>
> On 4/5/21 12:23 PM, Matan Azrad wrote:
>
> -->
>
More information about the dev
mailing list