Commit 96d5822c authored by Erik Nordmark's avatar Erik Nordmark Committed by David S. Miller

ipv6: Allow IPv4-mapped address as next-hop

Made kernel accept IPv6 routes with IPv4-mapped address as next-hop.

It is possible to configure IP interfaces with IPv4-mapped addresses, and
one can add IPv6 routes for IPv4-mapped destinations/prefixes, yet prior
to this fix the kernel returned an EINVAL when attempting to add an IPv6
route with an IPv4-mapped address as a nexthop/gateway.

RFC 4798 (a proposed standard RFC) uses IPv4-mapped addresses as nexthops,
thus in order to support that type of address configuration the kernel
needs to allow IPv4-mapped addresses as nexthops.
Signed-off-by: default avatarErik Nordmark <nordmark@arista.com>
Signed-off-by: default avatarBob Gilligan <gilligan@arista.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3c839744
...@@ -2000,8 +2000,11 @@ static struct rt6_info *ip6_route_info_create(struct fib6_config *cfg) ...@@ -2000,8 +2000,11 @@ static struct rt6_info *ip6_route_info_create(struct fib6_config *cfg)
It is very good, but in some (rare!) circumstances It is very good, but in some (rare!) circumstances
(SIT, PtP, NBMA NOARP links) it is handy to allow (SIT, PtP, NBMA NOARP links) it is handy to allow
some exceptions. --ANK some exceptions. --ANK
We allow IPv4-mapped nexthops to support RFC4798-type
addressing
*/ */
if (!(gwa_type & IPV6_ADDR_UNICAST)) if (!(gwa_type & (IPV6_ADDR_UNICAST |
IPV6_ADDR_MAPPED)))
goto out; goto out;
if (cfg->fc_table) { if (cfg->fc_table) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment