mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 04:18:39 +08:00
flow_dissector: set encapsulation control flags for non-IP
Make sure to set encapsulated control flags also for non-IP packets, such that it's possible to allow matching on e.g. TUNNEL_OAM on a geneve packet carrying a non-IP packet. Suggested-by: Davide Caratti <dcaratti@redhat.com> Signed-off-by: Asbjørn Sloth Tønnesen <ast@fiberby.net> Tested-by: Davide Caratti <dcaratti@redhat.com> Reviewed-by: Davide Caratti <dcaratti@redhat.com> Link: https://patch.msgid.link/20240713021911.1631517-13-ast@fiberby.net Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
db5271d50e
commit
706bf4f44c
@ -434,6 +434,10 @@ skb_flow_dissect_tunnel_info(const struct sk_buff *skb,
|
||||
ipv6->dst = key->u.ipv6.dst;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
skb_flow_dissect_set_enc_control(0, ctrl_flags, flow_dissector,
|
||||
target_container);
|
||||
break;
|
||||
}
|
||||
|
||||
if (dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_ENC_KEYID)) {
|
||||
|
@ -2199,7 +2199,8 @@ static void fl_init_dissector(struct flow_dissector *dissector,
|
||||
FL_KEY_SET_IF_MASKED(mask, keys, cnt,
|
||||
FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS, enc_ipv6);
|
||||
if (FL_KEY_IS_MASKED(mask, enc_ipv4) ||
|
||||
FL_KEY_IS_MASKED(mask, enc_ipv6))
|
||||
FL_KEY_IS_MASKED(mask, enc_ipv6) ||
|
||||
FL_KEY_IS_MASKED(mask, enc_control))
|
||||
FL_KEY_SET(keys, cnt, FLOW_DISSECTOR_KEY_ENC_CONTROL,
|
||||
enc_control);
|
||||
FL_KEY_SET_IF_MASKED(mask, keys, cnt,
|
||||
|
Loading…
Reference in New Issue
Block a user