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