diff --git a/include/linux/pkt_cls.h b/include/linux/pkt_cls.h index defbde2..2f80fa0 100644 --- a/include/linux/pkt_cls.h +++ b/include/linux/pkt_cls.h @@ -333,6 +333,11 @@ enum { FLOW_KEY_SKGID, FLOW_KEY_VLAN_TAG, FLOW_KEY_RXHASH, + FLOW_KEY_TUNNEL_SRC, + FLOW_KEY_TUNNEL_DST, + FLOW_KEY_TUNNEL_PROTO, + FLOW_KEY_TUNNEL_PROTO_SRC, + FLOW_KEY_TUNNEL_PROTO_DST, __FLOW_KEY_MAX, }; diff --git a/tc/f_flow.c b/tc/f_flow.c index 574253d..1b92f2b 100644 --- a/tc/f_flow.c +++ b/tc/f_flow.c @@ -33,7 +33,8 @@ static void explain(void) "KEY := [ src | dst | proto | proto-src | proto-dst | iif | priority | \n" " mark | nfct | nfct-src | nfct-dst | nfct-proto-src | \n" " nfct-proto-dst | rt-classid | sk-uid | sk-gid |\n" -" vlan-tag | rxhash ]\n" +" vlan-tag | rxhash | tunnel-src | tunnel-dst | tunnel-proto | \n" +" tunnel-proto-src | tunnel-proto-dst ] \n" "OPS := [ or NUM | and NUM | xor NUM | rshift NUM | addend NUM ]\n" "ID := X:Y\n" ); @@ -58,6 +59,11 @@ static const char *flow_keys[FLOW_KEY_MAX+1] = { [FLOW_KEY_SKGID] = "sk-gid", [FLOW_KEY_VLAN_TAG] = "vlan-tag", [FLOW_KEY_RXHASH] = "rxhash", + [FLOW_KEY_TUNNEL_SRC] = "tunnel-src", + [FLOW_KEY_TUNNEL_DST] = "tunnel-dst", + [FLOW_KEY_TUNNEL_PROTO] = "tunnel-proto", + [FLOW_KEY_TUNNEL_PROTO_SRC] = "tunnel-proto-src", + [FLOW_KEY_TUNNEL_PROTO_DST] = "tunnel-proto-dst", }; static int flow_parse_keys(__u32 *keys, __u32 *nkeys, char *argv)