Hi folks,

Here are a few takeaways of mine, with a few actions for Alex and Ori:

1. Problem with pre-definition of meter profiles and policies: In the case of 
the data plane adding flow rules to itself  (as opposed to the control plane 
adding flow rules to the data plane), the API requirement of pre-defining the 
profile and the policy results in a performance problem. This is because the 
driver needs to acquire the lock to the list of profiles/policies and to search 
for the profile/policy ID within the profile/policy list. Therefore, to avoid 
this issue, the API needs to allow passing the profile parameters (i.e. the 
full profile) and the policy parameters (i.e. the full policy) to the meter 
object creation/configuration.

2. Add the packet color to the list of possible match items: This would make 
the meter policy specification redundant, as the packet color that is set by a 
meter object could be used as match field into a subsequent table (group) to 
apply the actions that currently have to be specified as part of the meter 
policy. Therefore, in this case, passing the policy to the meter object 
creation/configuration is redundant, and therefore the API should accept 
passing a NULL policy as well as a valid policy.

3. The flow METER action needs to continue to imply the implicit action of 
setting the packet color (internal meta-data).

4. Translation of meter profile (i.e. srTCM/trTCM rates and bucket sizes) to 
the implementation-dependent low-level values: This is still required, as it is 
taking significant cycles, which is a problem when the data plane is adding 
flow rules to itself. What should be avoided is the registration of the output 
of the translation as a pre-defined profile ID.

5. Proposal to create/configure a meter object as part of an rte_flow action. 
Question to be addressed by Alexander Kozyrev and Ori Kam: How do we get an ID 
for the meter object for the purpose of (1) sharing the same meter object with 
other flows; (2) Freeing up the meter object after the flow is removed (in 
fact, after all the flows sharing the same meter object are removed).

6. Alexander Kozyrev to provide pseudo-code for the meter operation with the 
new proposal:
        (1) meter creation;
        (2) meter sharing;
        (3) meter reconfiguration: do we need to remove the flow/flows using 
the meter and re-add them with a new meter object that has updated 
configuration, or can we update the meter object itself (what API?);
        (4) meter free.

Regards,
Cristian

> -----Original Appointment-----
> From: Alexander Kozyrev <akozy...@nvidia.com>
> Sent: Friday, May 13, 2022 10:37 PM
> To: Alexander Kozyrev; Ori Kam; Jerin Jacob; Dumitrescu, Cristian; NBU-
> Contact-Thomas Monjalon (EXTERNAL); Andrew Rybchenko;
> vipin.vargh...@amd.com; Ajit Khaparde; Ferruh Yigit
> Cc: Ray Kinsella; Sunil Kumar Kori; Ivan Malov; Awal, Mohammad Abdul; Zhang,
> Qi Z; Richardson, Bruce; Konstantin Ananyev; Singh, Jasvinder; dev@dpdk.org
> Subject: [RFC] ethdev: datapath-focused meter actions, continue
> When: 19 May 2022 15:00-16:00 (UTC) Coordinated Universal Time.
> Where: https://meet.jit.si/DPDK
> 
> Agenda: continue discussion about proposed improvements to Flow API in
> regards to Meter handling (slides attached).

Reply via email to