aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux
diff options
context:
space:
mode:
authorAmir Vadai <amir@vadai.me>2016-09-08 09:23:47 -0400
committerDavid S. Miller <davem@davemloft.net>2016-09-10 23:53:55 -0400
commitbc3103f1ed405de587fa43d8b0671e615505a700 (patch)
tree04182b3ae814fc0b88cf629209e332981eb46455 /include/uapi/linux
parent2ff378b7474feac1ec665d01e4dfc6907cccc11c (diff)
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>
Diffstat (limited to 'include/uapi/linux')
-rw-r--r--include/uapi/linux/pkt_cls.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/uapi/linux/pkt_cls.h b/include/uapi/linux/pkt_cls.h
index 51b5b247fb5a..f9c287c67eae 100644
--- a/include/uapi/linux/pkt_cls.h
+++ b/include/uapi/linux/pkt_cls.h
@@ -431,6 +431,17 @@ enum {
431 TCA_FLOWER_KEY_VLAN_ID, 431 TCA_FLOWER_KEY_VLAN_ID,
432 TCA_FLOWER_KEY_VLAN_PRIO, 432 TCA_FLOWER_KEY_VLAN_PRIO,
433 TCA_FLOWER_KEY_VLAN_ETH_TYPE, 433 TCA_FLOWER_KEY_VLAN_ETH_TYPE,
434
435 TCA_FLOWER_KEY_ENC_KEY_ID, /* be32 */
436 TCA_FLOWER_KEY_ENC_IPV4_SRC, /* be32 */
437 TCA_FLOWER_KEY_ENC_IPV4_SRC_MASK,/* be32 */
438 TCA_FLOWER_KEY_ENC_IPV4_DST, /* be32 */
439 TCA_FLOWER_KEY_ENC_IPV4_DST_MASK,/* be32 */
440 TCA_FLOWER_KEY_ENC_IPV6_SRC, /* struct in6_addr */
441 TCA_FLOWER_KEY_ENC_IPV6_SRC_MASK,/* struct in6_addr */
442 TCA_FLOWER_KEY_ENC_IPV6_DST, /* struct in6_addr */
443 TCA_FLOWER_KEY_ENC_IPV6_DST_MASK,/* struct in6_addr */
444
434 __TCA_FLOWER_MAX, 445 __TCA_FLOWER_MAX,
435}; 446};
436 447