On Wed, 29 May 2019 12:26:20 +0200, Horatiu Vultur wrote: > +static int ocelot_flower_replace(struct tc_cls_flower_offload *f, > + struct ocelot_port_block *port_block) > +{ > + struct ocelot_ace_rule *rule; > + int ret; > + > + if (port_block->port->tc.block_shared) > + return -EOPNOTSUPP; FWIW since you only support TRAP and DROP actions here (AFAICT) you should actually be okay with shared blocks. The problems with shared blocks start when the action is stateful (like act_police), because we can't share that state between devices. But for most actions which just maintain statistics, it's fine to allow shared blocks. HTH