ip_tunnel: Respect tunnel key's "flow_flags" in IP tunnels
authorEyal Birger <eyal.birger@gmail.com>
Thu, 18 Aug 2022 07:41:18 +0000 (10:41 +0300)
committerDaniel Borkmann <daniel@iogearbox.net>
Thu, 18 Aug 2022 19:18:28 +0000 (21:18 +0200)
commit7ec9fce4b31604f8415136a4c07f7dc8ad431aec
tree22313025bd52882ceaffcc2b686719347787dada
parent14b20b784f59bdd95f6f1cfb112c9818bcec4d84
ip_tunnel: Respect tunnel key's "flow_flags" in IP tunnels

Commit 451ef36bd229 ("ip_tunnels: Add new flow flags field to ip_tunnel_key")
added a "flow_flags" member to struct ip_tunnel_key which was later used by
the commit in the fixes tag to avoid dropping packets with sources that
aren't locally configured when set in bpf_set_tunnel_key().

VXLAN and GENEVE were made to respect this flag, ip tunnels like IPIP and GRE
were not.

This commit fixes this omission by making ip_tunnel_init_flow() receive
the flow flags from the tunnel key in the relevant collect_md paths.

Fixes: b8fff748521c ("bpf: Set flow flag to allow any source IP in bpf_tunnel_key")
Signed-off-by: Eyal Birger <eyal.birger@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: Paul Chaignon <paul@isovalent.com>
Link: https://lore.kernel.org/bpf/20220818074118.726639-1-eyal.birger@gmail.com
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
include/net/ip_tunnels.h
net/ipv4/ip_gre.c
net/ipv4/ip_tunnel.c