net/sched: cls_flower: Classify packet in ip tunnels
authorAmir Vadai <amir@vadai.me>
Thu, 8 Sep 2016 13:23:47 +0000 (16:23 +0300)
committerDavid S. Miller <davem@davemloft.net>
Sun, 11 Sep 2016 03:53:55 +0000 (20:53 -0700)
commitbc3103f1ed405de587fa43d8b0671e615505a700
tree04182b3ae814fc0b88cf629209e332981eb46455
parent2ff378b7474feac1ec665d01e4dfc6907cccc11c
net/sched: cls_flower: Classify packet in ip tunnels

Introduce classifying by metadata extracted by the tunnel device.
Outer header fields - source/dest ip and tunnel id, are extracted from
the metadata when classifying.

For example, the following will add a filter on the ingress Qdisc of shared
vxlan device named 'vxlan0'. To forward packets with outer src ip
11.11.0.2, dst ip 11.11.0.1 and tunnel id 11. The packets will be
forwarded to tap device 'vnet0' (after metadata is released):

$ tc filter add dev vxlan0 protocol ip parent ffff: \
    flower \
      enc_src_ip 11.11.0.2 \
      enc_dst_ip 11.11.0.1 \
      enc_key_id 11 \
      dst_ip 11.11.11.1 \
    action tunnel_key release \
    action mirred egress redirect dev vnet0

The action tunnel_key, will be introduced in the next patch in this
series.

Signed-off-by: Amir Vadai <amir@vadai.me>
Signed-off-by: Hadar Hen Zion <hadarh@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/uapi/linux/pkt_cls.h
net/sched/cls_flower.c