net/sched: store the last executed chain also for clsact egress
authorDavide Caratti <dcaratti@redhat.com>
Wed, 28 Jul 2021 18:08:00 +0000 (20:08 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 29 Jul 2021 21:17:37 +0000 (22:17 +0100)
commit3aa2605594556c676fb88744bd9845acae60683d
tree9ee66dff30989b750f6b4fa16009f11e5e880186
parentb2492d503b414e25fc9b9fee347567a083e4b911
net/sched: store the last executed chain also for clsact egress

currently, only 'ingress' and 'clsact ingress' qdiscs store the tc 'chain
id' in the skb extension. However, userspace programs (like ovs) are able
to setup egress rules, and datapath gets confused in case it doesn't find
the 'chain id' for a packet that's "recirculated" by tc.
Change tcf_classify() to have the same semantic as tcf_classify_ingress()
so that a single function can be called in ingress / egress, using the tc
ingress / egress block respectively.

Suggested-by: Alaa Hleilel <alaa@nvidia.com>
Signed-off-by: Davide Caratti <dcaratti@redhat.com>
Reviewed-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 files changed:
include/net/pkt_cls.h
net/core/dev.c
net/sched/cls_api.c
net/sched/sch_atm.c
net/sched/sch_cake.c
net/sched/sch_cbq.c
net/sched/sch_drr.c
net/sched/sch_dsmark.c
net/sched/sch_ets.c
net/sched/sch_fq_codel.c
net/sched/sch_fq_pie.c
net/sched/sch_hfsc.c
net/sched/sch_htb.c
net/sched/sch_multiq.c
net/sched/sch_prio.c
net/sched/sch_qfq.c
net/sched/sch_sfb.c
net/sched/sch_sfq.c