mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-24 14:07:52 -04:00
ip_tunnels: record IP version in tunnel info
There's currently nothing preventing directing packets with IPv6 encapsulation data to IPv4 tunnels (and vice versa). If this happens, IPv6 addresses are incorrectly interpreted as IPv4 ones. Track whether the given ip_tunnel_key contains IPv4 or IPv6 data. Store this in ip_tunnel_info. Reject packets at appropriate places if they are supposed to be encapsulated into an incompatible protocol. Signed-off-by: Jiri Benc <jbenc@redhat.com> Acked-by: Alexei Starovoitov <ast@plumgrid.com> Acked-by: Thomas Graf <tgraf@suug.ch> Acked-by: Pravin B Shelar <pshelar@nicira.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
46fa062ad6
commit
7f9562a1f4
9 changed files with 24 additions and 2 deletions
|
@ -688,6 +688,8 @@ int ovs_flow_key_extract(const struct ip_tunnel_info *tun_info,
|
|||
{
|
||||
/* Extract metadata from packet. */
|
||||
if (tun_info) {
|
||||
if (ip_tunnel_info_af(tun_info) != AF_INET)
|
||||
return -EINVAL;
|
||||
memcpy(&key->tun_key, &tun_info->key, sizeof(key->tun_key));
|
||||
|
||||
if (tun_info->options) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue