On 2014/10/08 11:10, Stefan Sperling wrote: > On Tue, Oct 07, 2014 at 11:42:10PM -0400, Brad Smith wrote: > > On 07/10/14 10:03 PM, Stuart Henderson wrote: > > >Since it's non-obvious how to setup pppoe for v6 now that link-local > > >addresses are no longer configured by default, I think we should have > > >something in the manual. > > > > > >Any comments/objections/suggestions for a better way to do this? > > > > This doesn't make any sense. IPv6CP configures the link local address. > > IPv6CP prevents *collisions* of link-local addresses on the same p2p link. > > If an existing link-local address doesn't collide with the remote peer's > address we keep using the existing address. The link-local address will > be changed by IPv6CP only if there is a collision (which won't ever happen > under normal conditions).
pppoe(4) doesn't send an IPV6CP request unless it already has a link-local address. With a pre-existing link-local : We request They ack They request We ack Done, echoes start Without : They request We ack They request We ack They request We ack They request We ack They reques.....etc etc until they give up waiting for us to send a req. > A route to fe80:: needs to be configured statically in any case > until autoconf works with ip6 forwarding enabled. > > !/sbin/route add default -ifp pppoe0 fe80:: > > I suppose we can't run this command from hostname.pppoe0 if there is > no IPv6 address yet, so it makes sense to configure one first. With the current behaviour it's more that it's a requirement rather than just "makes sense". But then... you expect that a pppoe(4) interface *does* pick up addresses automatically when it's configured/brought up, so perhaps the argument that triggered the change to NOINET6 by default shouldn't apply in this case - should pppoe(4) interfaces actually get an IPv6 link-local address by default like they used to? Index: if_pppoe.c =================================================================== RCS file: /cvs/src/sys/net/if_pppoe.c,v retrieving revision 1.41 diff -u -p -w -r1.41 if_pppoe.c --- if_pppoe.c 13 Aug 2014 12:03:40 -0000 1.41 +++ if_pppoe.c 8 Oct 2014 12:24:07 -0000 @@ -245,6 +245,9 @@ pppoe_clone_create(struct if_clone *ifc, timeout_set(&sc->sc_timeout, pppoe_timeout, sc); if_attach(&sc->sc_sppp.pp_if); +#ifdef INET6 + sc->sc_sppp.pp_if.if_xflags &= ~IFXF_NOINET6; +#endif if_alloc_sadl(&sc->sc_sppp.pp_if); sppp_attach(&sc->sc_sppp.pp_if); #if NBPFILTER > 0