flow_dissector: prepare for encapsulated control flags
Rename skb_flow_dissect_set_enc_addr_type() to skb_flow_dissect_set_enc_control(), and make it set both addr_type and flags in FLOW_DISSECTOR_KEY_ENC_CONTROL. 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-7-ast@fiberby.net Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
0e83a7875d
commit
4d0aed380f
@ -299,9 +299,10 @@ void skb_flow_dissect_meta(const struct sk_buff *skb,
|
||||
EXPORT_SYMBOL(skb_flow_dissect_meta);
|
||||
|
||||
static void
|
||||
skb_flow_dissect_set_enc_addr_type(enum flow_dissector_key_id type,
|
||||
struct flow_dissector *flow_dissector,
|
||||
void *target_container)
|
||||
skb_flow_dissect_set_enc_control(enum flow_dissector_key_id type,
|
||||
u32 ctrl_flags,
|
||||
struct flow_dissector *flow_dissector,
|
||||
void *target_container)
|
||||
{
|
||||
struct flow_dissector_key_control *ctrl;
|
||||
|
||||
@ -312,6 +313,7 @@ skb_flow_dissect_set_enc_addr_type(enum flow_dissector_key_id type,
|
||||
FLOW_DISSECTOR_KEY_ENC_CONTROL,
|
||||
target_container);
|
||||
ctrl->addr_type = type;
|
||||
ctrl->flags = ctrl_flags;
|
||||
}
|
||||
|
||||
void
|
||||
@ -367,6 +369,7 @@ skb_flow_dissect_tunnel_info(const struct sk_buff *skb,
|
||||
{
|
||||
struct ip_tunnel_info *info;
|
||||
struct ip_tunnel_key *key;
|
||||
u32 ctrl_flags = 0;
|
||||
|
||||
/* A quick check to see if there might be something to do. */
|
||||
if (!dissector_uses_key(flow_dissector,
|
||||
@ -395,9 +398,9 @@ skb_flow_dissect_tunnel_info(const struct sk_buff *skb,
|
||||
|
||||
switch (ip_tunnel_info_af(info)) {
|
||||
case AF_INET:
|
||||
skb_flow_dissect_set_enc_addr_type(FLOW_DISSECTOR_KEY_IPV4_ADDRS,
|
||||
flow_dissector,
|
||||
target_container);
|
||||
skb_flow_dissect_set_enc_control(FLOW_DISSECTOR_KEY_IPV4_ADDRS,
|
||||
ctrl_flags, flow_dissector,
|
||||
target_container);
|
||||
if (dissector_uses_key(flow_dissector,
|
||||
FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS)) {
|
||||
struct flow_dissector_key_ipv4_addrs *ipv4;
|
||||
@ -410,9 +413,9 @@ skb_flow_dissect_tunnel_info(const struct sk_buff *skb,
|
||||
}
|
||||
break;
|
||||
case AF_INET6:
|
||||
skb_flow_dissect_set_enc_addr_type(FLOW_DISSECTOR_KEY_IPV6_ADDRS,
|
||||
flow_dissector,
|
||||
target_container);
|
||||
skb_flow_dissect_set_enc_control(FLOW_DISSECTOR_KEY_IPV6_ADDRS,
|
||||
ctrl_flags, flow_dissector,
|
||||
target_container);
|
||||
if (dissector_uses_key(flow_dissector,
|
||||
FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS)) {
|
||||
struct flow_dissector_key_ipv6_addrs *ipv6;
|
||||
|
Loading…
x
Reference in New Issue
Block a user