diff options
author | Paul Blakey <paulb@mellanox.com> | 2016-12-28 14:54:47 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-12-28 14:28:13 -0500 |
commit | 0df0f207aab4f42e5c96a807adf9a6845b69e984 (patch) | |
tree | 556ed18ccf957bad0ccc8b62d6b8c6b4506bfd38 /net/sched | |
parent | 5701659004d68085182d2fd4199c79172165fa65 (diff) | |
download | linux-0df0f207aab4f42e5c96a807adf9a6845b69e984.tar.gz linux-0df0f207aab4f42e5c96a807adf9a6845b69e984.tar.bz2 linux-0df0f207aab4f42e5c96a807adf9a6845b69e984.zip |
net/sched: cls_flower: Fix missing addr_type in classify
Since we now use a non zero mask on addr_type, we are matching on its
value (IPV4/IPV6). So before this fix, matching on enc_src_ip/enc_dst_ip
failed in SW/classify path since its value was zero.
This patch sets the proper value of addr_type for encapsulated packets.
Fixes: 970bfcd09791 ('net/sched: cls_flower: Use mask for addr_type')
Signed-off-by: Paul Blakey <paulb@mellanox.com>
Reviewed-by: Hadar Hen Zion <hadarh@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched')
-rw-r--r-- | net/sched/cls_flower.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c index 333f8e268431..970db7a41684 100644 --- a/net/sched/cls_flower.c +++ b/net/sched/cls_flower.c @@ -153,10 +153,14 @@ static int fl_classify(struct sk_buff *skb, const struct tcf_proto *tp, switch (ip_tunnel_info_af(info)) { case AF_INET: + skb_key.enc_control.addr_type = + FLOW_DISSECTOR_KEY_IPV4_ADDRS; skb_key.enc_ipv4.src = key->u.ipv4.src; skb_key.enc_ipv4.dst = key->u.ipv4.dst; break; case AF_INET6: + skb_key.enc_control.addr_type = + FLOW_DISSECTOR_KEY_IPV6_ADDRS; skb_key.enc_ipv6.src = key->u.ipv6.src; skb_key.enc_ipv6.dst = key->u.ipv6.dst; break; |