aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/freescale/fec_main.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2017-02-14 12:13:52 -0500
committerDavid S. Miller <davem@davemloft.net>2017-02-14 12:13:52 -0500
commit144adc655fac089d485ee66354d402b319cff6d2 (patch)
tree16f83a2393edec2827eac68eac1d1e739dcb862f /drivers/net/ethernet/freescale/fec_main.c
parentnet/mlx5e: Disable preemption when doing TC statistics upcall (diff)
parentipv6: Handle IPv4-mapped src to in6addr_any dst. (diff)
downloadlinux-dev-144adc655fac089d485ee66354d402b319cff6d2.tar.xz
linux-dev-144adc655fac089d485ee66354d402b319cff6d2.zip
Merge branch 'ipv6-v4mapped'
Jonathan T. Leighton says: ==================== IPv4-mapped on wire, :: dst address issue Under some circumstances IPv6 datagrams are sent with IPv4-mapped IPv6 addresses as the source. Given an IPv6 socket bound to an IPv4-mapped IPv6 address, and an IPv6 destination address, both TCP and UDP will will send packets using the IPv4-mapped IPv6 address as the source. Per RFC 6890 (Table 20), IPv4-mapped IPv6 source addresses are not allowed in an IP datagram. The problem can be observed by attempting to connect() either a TCP or UDP socket, or by using sendmsg() with a UDP socket. The patch is intended to correct this issue for all socket types. linux follows the BSD convention that an IPv6 destination address specified as in6addr_any is converted to the loopback address. Currently, neither TCP nor UDP consider the possibility that the source address is an IPv4-mapped IPv6 address, and assume that the appropriate loopback address is ::1. The patch adds a check on whether or not the source address is an IPv4-mapped IPv6 address and then sets the destination address to either ::ffff:127.0.0.1 or ::1, as appropriate. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/freescale/fec_main.c')
0 files changed, 0 insertions, 0 deletions