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

Reply via email to