]> git.baikalelectronics.ru Git - kernel.git/commit
ip_tunnels: record IP version in tunnel info
authorJiri Benc <jbenc@redhat.com>
Fri, 28 Aug 2015 18:48:20 +0000 (20:48 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sat, 29 Aug 2015 20:07:54 +0000 (13:07 -0700)
commit2bdb719ad0c0cded5c29426035e9f32bb02ef695
tree298378f868e85024a908e9bae1e0754fc59e169e
parenta972548ad1b6f7c53017ddd92553219330007c4f
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>
drivers/net/geneve.c
drivers/net/vxlan.c
include/net/dst_metadata.h
include/net/ip_tunnels.h
net/core/filter.c
net/ipv4/ip_gre.c
net/ipv4/ip_tunnel_core.c
net/openvswitch/flow.c
net/openvswitch/vport.c