On the egress issue and sharing.

Let me provide a simple example to illustrate.

tc qdisc add dev enps7 root handle 1: prio block 1

Creates 3 classes

$ tc class ls dev enps7
  class prio 1:1 parent 1:
  class prio 1:2 parent 1:
  class prio 1:3 parent 1:

tc qdisc add dev enps8 root handle 10: prio block 1

Creates 3 classes

$ tc class ls dev enps8
  class prio 10:1 parent 10:
  class prio 10:2 parent 10:
  class prio 10:3 parent 10:

So now i add filters, today I can do:

tc filter add dev enps7 parent 1:0 protocol ip priority 10 flower ...
classid 1:2

I could also have added this via the new block interface i.e

$ tc filter add block 1 protocol ip priority 10 flower ...
classid 1:2

Looks good - things will work fine for packets showing
up on egress of enps7 which match the flower rule
and classid 1:2 is selected to queue the packet on.

Things will not _work fine_ for packets showing up on
egress of ensp8. There is no classid 1:2 on egress of
enps8. The prio qdisc is a bad example because it
has a default queue (i think 10:2) in this case. Other
qdiscs(off top of my head DRR) will just drop the packet.

I think this is resolvable - but it will take more to the
patches than the current set you posted Jiri.
A simple solution is to say sharing only works for ingress
(but that sounds very lame).

cheers,
jamal

Reply via email to