Thu, Jan 11, 2018 at 03:46:09PM CET, j...@mojatatu.com wrote: >On 18-01-11 09:41 AM, Jiri Pirko wrote: >> Thu, Jan 11, 2018 at 03:37:08PM CET, j...@mojatatu.com wrote: >> > On 18-01-11 09:24 AM, Jiri Pirko wrote: >> > > Thu, Jan 11, 2018 at 02:36:01PM CET, j...@mojatatu.com wrote: >> > > > On 18-01-09 09:07 AM, Jiri Pirko wrote: >> > > > > From: Jiri Pirko <j...@mellanox.com> >> > > > > >> > > > > Benefit from the previously introduced shared filter blocks >> > > > > infrastructure and allow ingress and clsact qdisc instances to share >> > > > > filter blocks. The block index is coming from userspace as qdisc >> > > > > option. >> > > > >> > > > Didnt quiet follow why ingress is special and needs attributes to >> > > > set the block but other qdiscs didnt. >> > > >> > > Jamal, again, other qdiscs does not support block sharing. This patchset >> > > only adds support for sharing of block for ingress and clsact qdiscs. >> > > Later on, other qdiscs could also support block sharing. >> > > >> > >> > Can you stop a config which says: >> > tc qdisc add dev ens9 root block 22 handle 1:0 prio ? >> >> Please see the iproute2 patches. Parsing of "block" command line option >> is done inside q_ingress.c >> > >I only looked at the kernel code. Good you can stop it at tc >but the API does not stop it (unless you expect the rest of the >world to only use tc).
Jamal, apparently, you did not looked at the kernel code either :) Look at the changes done in net/sched/sch_ingress.c - there is where the parsing of block attr takes place. >Really - there is no reason for this API to be only via ingress qdisc >attributes. You can add a check in cls api to reject any parent that is >not either of the clsacts + ingress (depending on tc doesnt sound >right). I was thinking to take this direction originally. To have another generic attr called TCA_BLOCK or something that would be used when qdisc is created. For ingress, what would work. But for clsact, you need to be able to specify 2 block during qdisc creation - one for ingress, one for egress. That's when I realized this has to be per-qdisc-type attr.