net sched ife action: Introduce skb tcindex metadata encap decap
authorJamal Hadi Salim <jhs@mojatatu.com>
Sun, 18 Sep 2016 11:31:43 +0000 (07:31 -0400)
committerDavid S. Miller <davem@davemloft.net>
Tue, 20 Sep 2016 01:55:28 +0000 (21:55 -0400)
commit408fbc22ef1efb00dd896acd00e9f7d9b641e047
tree66fdcc1ead156e7b2404fbccdd8d1077765841f8
parent6a5d58b67e205f2ffc62d0a9ee4ef7d237e9a7fb
net sched ife action: Introduce skb tcindex metadata encap decap

Sample use case of how this is encoded:
user space via tuntap (or a connected VM/Machine/container)
encodes the tcindex TLV.

Sample use case of decoding:
IFE action decodes it and the skb->tc_index is then used to classify.
So something like this for encoded ICMP packets:

.. first decode then reclassify... skb->tcindex will be set
sudo $TC filter add dev $ETH parent ffff: prio 2 protocol 0xbeef \
u32 match u32 0 0 flowid 1:1 \
action ife decode reclassify

...next match the decode icmp packet...
sudo $TC filter add dev $ETH parent ffff: prio 4 protocol ip \
u32 match ip protocol 1 0xff flowid 1:1 \
action continue

... last classify it using the tcindex classifier and do someaction..
sudo $TC filter add dev $ETH parent ffff: prio 5 protocol ip \
handle 0x11 tcindex classid 1:1 \
action blah..

Signed-off-by: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/uapi/linux/tc_act/tc_ife.h
net/sched/Kconfig
net/sched/Makefile
net/sched/act_meta_skbtcindex.c [new file with mode: 0644]