On Wed, 19 Feb 2020 08:45:39 +0100 Claudio Jeker <cje...@diehard.n-r-g.com> 
wrote:
> On Tue, Feb 18, 2020 at 11:16:54PM +0000, Stuart Henderson wrote:
> > On 2020/02/18 13:40, Gerhard Roth wrote:  
> > > > > Yes, I tried MBIM_CONTEXT_IPTYPE_IPV4ANDV6 myself first but to no
> > > > > avail. The switched to MBIM_CONTEXT_IPTYPE_IPV4V6 and everything
> > > > > was fine.    
> > > > 
> > > > Obviously it needs to switch based on INET6, but with the current
> > > > mechanism used for handling v6 in OpenBSD, shouldn't it disable v6
> > > > unless the interface has a link-local configured? (So the usual method
> > > > to enable v6 and bring an interface up would be "inet6 eui64" and "up").
> > > > That is how pppoe works.  
> > > 
> > > 
> > > Hi Stuart,
> > > 
> > > you mean like that?  
> > 
> > Yes, that looks right - sorry I don't have a working umb to test though!  
> 
> I guess we should then also adjust the manpage to make sure people know
> how to enable IPv6 in hostname.umb0


Took a look at pppoe.4 and tried to extract what is needed for umb.4.
Updated diff below.

Gerhard


Index: share/man/man4/umb.4
===================================================================
RCS file: /cvs/src/share/man/man4/umb.4,v
retrieving revision 1.10
diff -u -p -u -p -r1.10 umb.4
--- share/man/man4/umb.4        18 Feb 2020 08:09:37 -0000      1.10
+++ share/man/man4/umb.4        19 Feb 2020 08:14:01 -0000
@@ -40,6 +40,19 @@ will remain in this state until the MBIM
 In case the device is connected to an "always-on" USB port,
 it may be possible to connect to a provider without entering the
 PIN again even if the system was rebooted.
+.Pp
+To use IPv6, configure a link-local address before bringing
+the interface up.
+Some devices require the
+.Sy AUTOCONF6
+flag on the interface.
+.Pp
+A typical
+.Pa /etc/hostname.umb0
+looks like this:
+.Bd -literal -offset indent
+pin 1234 apn ISP-APN-Name inet6 eui64 autoconf -roaming up
+.Ed
 .Sh HARDWARE
 The following devices should work:
 .Pp
Index: sys/dev/usb/if_umb.c
===================================================================
RCS file: /cvs/src/sys/dev/usb/if_umb.c,v
retrieving revision 1.32
diff -u -p -u -p -r1.32 if_umb.c
--- sys/dev/usb/if_umb.c        18 Feb 2020 08:09:37 -0000      1.32
+++ sys/dev/usb/if_umb.c        18 Feb 2020 12:35:45 -0000
@@ -2583,7 +2583,8 @@ umb_send_connect(struct umb_softc *sc, i
        c->iptype = htole32(MBIM_CONTEXT_IPTYPE_IPV4);
 #ifdef INET6
        /* XXX FIXME: support IPv6-only mode, too */
-       if ((sc->sc_flags & UMBFLG_NO_INET6) == 0)
+       if ((sc->sc_flags & UMBFLG_NO_INET6) == 0 &&
+           in6ifa_ifpforlinklocal(GET_IFP(sc), 0) != NULL)
                c->iptype = htole32(MBIM_CONTEXT_IPTYPE_IPV4V6);
 #endif
        memcpy(c->context, umb_uuid_context_internet, sizeof (c->context));

Reply via email to