PPP IPv6 prefix length and stateless autoconfiguration?
Krejsa, Dan
dan.krejsa at windriver.com
Mon Oct 16 22:19:59 UTC 2006
Hi,
Some code in the in6_update_ifa() function in netinet6/in6.c
enforces that if an IPv6 destination address is specified for
an interface address, the interface must be point-to-point or
loopback (fine), and the corresponding prefix length must be
exactly 128 bits.
The latter seems (at least naively) to conflict with
the definition in
http://www.ietf.org/internet-drafts/draft-ietf-ipv6-over-ppp-v2-02.txt
that the interface identifier length for PPP interfaces is 64 bits, and
correspondingly prefixes accepted from a router advertisement
must also be 64 bits long; see section 5.5.3 in
http://www.ietf.org/internet-drafts/draft-ietf-ipv6-rfc2462bis-08.txt
There's code in nd6_rtr.c's in6_ifadd() function which
requires the prefix length associated with the link local
in6_ifaddr (found by in6ifa_ifpforlinklocal()) to agree
with the prefix length from the router advertisement
prefix info option before adding an autoconfigured address.
They won't match if the in6_ifaddr has prefix length 128.
This would seem to prevent autoconfiguring global
IPv6 addresses on PPP links. Or is there a way this is
worked around elsewhere in the code?
- Dan
More information about the freebsd-net
mailing list