summaryrefslogtreecommitdiffstats
path: root/net/sched
diff options
context:
space:
mode:
authorSimon Horman <simon.horman@netronome.com>2017-12-04 11:31:48 +0100
committerDavid S. Miller <davem@davemloft.net>2017-12-05 12:09:18 -0500
commit62b32379fd124fea521484ba7e220d8a449f0b59 (patch)
tree7c727ac15eb379872b1e0feff1646278db762d0c /net/sched
parent96f84061620c6325a2ca9a9a05b410e6461d03c3 (diff)
downloadlinux-62b32379fd124fea521484ba7e220d8a449f0b59.tar.bz2
flow_dissector: dissect tunnel info outside __skb_flow_dissect()
Move dissection of tunnel info to outside of the main flow dissection function, __skb_flow_dissect(). The sole user of this feature, the flower classifier, is updated to call tunnel info dissection directly, using skb_flow_dissect_tunnel_info(). This results in a slightly less complex implementation of __skb_flow_dissect(), in particular removing logic from that call path which is not used by the majority of users. The expense of this is borne by the flower classifier which now has to make an extra call for tunnel info dissection. This patch should not result in any behavioural change. Signed-off-by: Simon Horman <simon.horman@netronome.com> Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched')
-rw-r--r--net/sched/cls_flower.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c
index 543a3e875d05..6132a7317efa 100644
--- a/net/sched/cls_flower.c
+++ b/net/sched/cls_flower.c
@@ -166,6 +166,7 @@ static int fl_classify(struct sk_buff *skb, const struct tcf_proto *tp,
* so do it rather here.
*/
skb_key.basic.n_proto = skb->protocol;
+ skb_flow_dissect_tunnel_info(skb, &head->dissector, &skb_key);
skb_flow_dissect(skb, &head->dissector, &skb_key, 0);
fl_set_masked_key(&skb_mkey, &skb_key, &head->mask);