net/sched: cls_flower: Allow setting encapsulation fields as used key
When encapsulation field is set, mark it as used key for the flow dissector. This will be used by offloading drivers. Signed-off-by: Hadar Hen Zion <hadarh@mellanox.com> Signed-off-by: Saeed Mahameed <saeedm@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
9ba6a9a9f7
commit
519d10521c
|
@ -567,6 +567,16 @@ static void fl_init_dissector(struct cls_fl_head *head,
|
|||
FLOW_DISSECTOR_KEY_PORTS, tp);
|
||||
FL_KEY_SET_IF_MASKED(&mask->key, keys, cnt,
|
||||
FLOW_DISSECTOR_KEY_VLAN, vlan);
|
||||
FL_KEY_SET_IF_MASKED(&mask->key, keys, cnt,
|
||||
FLOW_DISSECTOR_KEY_ENC_KEYID, enc_key_id);
|
||||
FL_KEY_SET_IF_MASKED(&mask->key, keys, cnt,
|
||||
FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS, enc_ipv4);
|
||||
FL_KEY_SET_IF_MASKED(&mask->key, keys, cnt,
|
||||
FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS, enc_ipv6);
|
||||
if (FL_KEY_IS_MASKED(&mask->key, enc_ipv4) ||
|
||||
FL_KEY_IS_MASKED(&mask->key, enc_ipv6))
|
||||
FL_KEY_SET(keys, cnt, FLOW_DISSECTOR_KEY_ENC_CONTROL,
|
||||
enc_control);
|
||||
|
||||
skb_flow_dissector_init(&head->dissector, keys, cnt);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue