On Fri, Feb 28, 2020 at 06:24:54PM +0100, Jiri Pirko wrote: > From: Jiri Pirko <jiri@xxxxxxxxxxxx> > > Initially, pass "ANY" (struct is zeroed) to the drivers as that is the > current implicit value coming down to flow_offload. Add a bool > indicating that entries have mixed HW stats type. > > Signed-off-by: Jiri Pirko <jiri@xxxxxxxxxxxx> > --- > v1->v2: > - moved to actions > - add mixed bool > --- > include/net/flow_offload.h | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/include/net/flow_offload.h b/include/net/flow_offload.h > index 4e864c34a1b0..eee1cbc5db3c 100644 > --- a/include/net/flow_offload.h > +++ b/include/net/flow_offload.h > @@ -154,6 +154,10 @@ enum flow_action_mangle_base { > FLOW_ACT_MANGLE_HDR_TYPE_UDP, > }; > > +enum flow_action_hw_stats_type { > + FLOW_ACTION_HW_STATS_TYPE_ANY, > +}; > + > typedef void (*action_destr)(void *priv); > > struct flow_action_cookie { > @@ -168,6 +172,7 @@ void flow_action_cookie_destroy(struct flow_action_cookie *cookie); > > struct flow_action_entry { > enum flow_action_id id; > + enum flow_action_hw_stats_type hw_stats_type; > action_destr destructor; > void *destructor_priv; > union { > @@ -228,6 +233,7 @@ struct flow_action_entry { > }; > > struct flow_action { > + bool mixed_hw_stats_types; Why do you want to place this built-in into the struct flow_action as a boolean? You can express the same thing through a new FLOW_ACTION_COUNTER. I know tc has implicit counters in actions, in that case tc can just generate the counter right after the action. Please, explain me why it would be a problem from the driver side to provide a separated counter action.