Jamal Hadi Salim
619fe32640
net_sched fix: reclassification needs to consider ether protocol changes
...
actions could change the etherproto in particular with ethernet
tunnelled data. Typically such actions, after peeling the outer header,
will ask for the packet to be reclassified. We then need to restart
the classification with the new proto header.
Example setup used to catch this:
sudo tc qdisc add dev $ETH ingress
sudo $TC filter add dev $ETH parent ffff: pref 1 protocol 802.1Q \
u32 match u32 0 0 flowid 1:1 \
action vlan pop reclassify
Fixes: 3b3ae88026 ("net: sched: consolidate tc_classify{,_compat}")
Signed-off-by: Jamal Hadi Salim <[email protected] >
Acked-by: Daniel Borkmann <[email protected] >
Signed-off-by: David S. Miller <[email protected] >
2016-02-18 11:14:19 -05:00
..
act_api.c
net_sched: make tcf_hash_destroy() static
2015-08-26 11:01:44 -07:00
act_bpf.c
bpf: add bpf_redirect() helper
2015-09-17 21:09:07 -07:00
act_connmark.c
netfilter: nf_conntrack: Add a struct net parameter to l4_pkt_to_tuple
2015-09-18 22:00:04 +02:00
act_csum.c
net: sched: add percpu stats to actions
2015-07-08 13:50:41 -07:00
act_gact.c
net_sched: act_gact: remove spinlock in fast path
2015-07-08 13:50:42 -07:00
act_ipt.c
netfilter: x_tables: Pass struct net in xt_action_param
2015-09-18 21:58:14 +02:00
act_mirred.c
act_mirred: clear sender cpu before sending to tx
2015-10-08 04:59:04 -07:00
act_nat.c
net: Change pseudohdr argument of inet_proto_csum_replace* to be a bool
2015-08-17 21:33:06 -07:00
act_pedit.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2015-07-31 23:52:20 -07:00
act_police.c
act_simple.c
net: sched: add percpu stats to actions
2015-07-08 13:50:41 -07:00
act_skbedit.c
net: sched: add percpu stats to actions
2015-07-08 13:50:41 -07:00
act_vlan.c
net: sched: add percpu stats to actions
2015-07-08 13:50:41 -07:00
cls_api.c
net: sched: fix call_rcu() race on classifier module unloads
2015-05-21 18:48:18 -04:00
cls_basic.c
net_sched: destroy proto tp when all filters are gone
2015-03-09 15:35:55 -04:00
cls_bpf.c
net, sched: add clsact qdisc
2016-01-10 22:13:15 -05:00
cls_cgroup.c
cls_cgroup: factor out classid retrieval
2015-07-20 12:41:30 -07:00
cls_flow.c
sched: cls_flow: use skb_to_full_sk() helper
2015-11-08 20:56:39 -05:00
cls_flower.c
sched,cls_flower: set key address type when present
2016-01-11 17:27:30 -05:00
cls_fw.c
net: revert "net_sched: move tp->root allocation into fw_init()"
2015-09-24 14:33:30 -07:00
cls_route.c
net_sched: destroy proto tp when all filters are gone
2015-03-09 15:35:55 -04:00
cls_rsvp.c
cls_rsvp.h
net_sched: convert rsvp to call tcf_exts_destroy from rcu callback
2015-08-26 11:01:45 -07:00
cls_rsvp6.c
cls_tcindex.c
net_sched: convert tcindex to call tcf_exts_destroy from rcu callback
2015-08-26 11:01:44 -07:00
cls_u32.c
cls_u32: complete the check for non-forced case in u32_destroy()
2015-08-25 17:02:48 -07:00
em_canid.c
em_cmp.c
em_ipset.c
netfilter: x_tables: Pass struct net in xt_action_param
2015-09-18 21:58:14 +02:00
em_meta.c
net_sched: em_meta: use skb_to_full_sk() helper
2015-11-08 20:56:39 -05:00
em_nbyte.c
em_text.c
em_u32.c
ematch.c
Kconfig
net, sched: add clsact qdisc
2016-01-10 22:13:15 -05:00
Makefile
tc: introduce Flower classifier
2015-05-13 15:19:48 -04:00
sch_api.c
net_sched fix: reclassification needs to consider ether protocol changes
2016-02-18 11:14:19 -05:00
sch_atm.c
net: sched: consolidate tc_classify{,_compat}
2015-08-27 14:18:48 -07:00
sch_blackhole.c
net/sched: make sch_blackhole.c explicitly non-modular
2015-10-09 07:52:28 -07:00
sch_cbq.c
net: sched: consolidate tc_classify{,_compat}
2015-08-27 14:18:48 -07:00
sch_choke.c
net: sched: kill dead code in sch_choke.c
2015-11-03 13:30:47 -05:00
sch_codel.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2015-05-13 14:31:43 -04:00
sch_drr.c
net_sched: drr: check for NULL pointer in drr_dequeue
2016-01-29 17:26:44 -08:00
sch_dsmark.c
sch_dsmark: improve memory locality
2015-09-17 22:37:19 -07:00
sch_fifo.c
net: sched: drop all special handling of tx_queue_len == 0
2015-08-18 11:55:08 -07:00
sch_fq.c
net: synack packets can be attached to request sockets
2015-10-11 05:05:06 -07:00
sch_fq_codel.c
net: sched: consolidate tc_classify{,_compat}
2015-08-27 14:18:48 -07:00
sch_generic.c
net: sched: fix missing free per cpu on qstats
2016-01-06 01:40:21 -05:00
sch_gred.c
net: sched: drop all special handling of tx_queue_len == 0
2015-08-18 11:55:08 -07:00
sch_hfsc.c
net: sched: consolidate tc_classify{,_compat}
2015-08-27 14:18:48 -07:00
sch_hhf.c
sch_hhf: fix return value of hhf_drop()
2015-10-11 04:49:33 -07:00
sch_htb.c
net: sched: consolidate tc_classify{,_compat}
2015-08-27 14:18:48 -07:00
sch_ingress.c
net, sched: add clsact qdisc
2016-01-10 22:13:15 -05:00
sch_mq.c
net_sched: fix qdisc_tree_decrease_qlen() races
2015-12-03 14:59:05 -05:00
sch_mqprio.c
net_sched: fix qdisc_tree_decrease_qlen() races
2015-12-03 14:59:05 -05:00
sch_multiq.c
net: sched: consolidate tc_classify{,_compat}
2015-08-27 14:18:48 -07:00
sch_netem.c
net: sched: deprecate enqueue_root()
2015-05-11 14:17:32 -04:00
sch_pie.c
sch_plug.c
net: sched: drop all special handling of tx_queue_len == 0
2015-08-18 11:55:08 -07:00
sch_prio.c
net: sched: consolidate tc_classify{,_compat}
2015-08-27 14:18:48 -07:00
sch_qfq.c
net: sched: consolidate tc_classify{,_compat}
2015-08-27 14:18:48 -07:00
sch_red.c
sch_sfb.c
net: sched: consolidate tc_classify{,_compat}
2015-08-27 14:18:48 -07:00
sch_sfq.c
net: sched: consolidate tc_classify{,_compat}
2015-08-27 14:18:48 -07:00
sch_tbf.c
sch_teql.c