On 8 June 2014 11:14, Henning Brauer <lists-openbsdt...@bsws.de> wrote: > since no consensus could be found yet for a new command line option to > ifconfig, heck, not even about wether it is needed, I propose this for > now. > > 1) make "ifconfig <if> inet6 eui64" reset the NOINET6 flag > unconditionally, so a link-local will be assigned if there isn't one > yet. > > Index: sbin/ifconfig/ifconfig.c > =================================================================== > RCS file: /cvs/src/sbin/ifconfig/ifconfig.c,v > retrieving revision 1.283 > diff -u -p -r1.283 ifconfig.c > --- sbin/ifconfig/ifconfig.c 12 May 2014 08:47:37 -0000 1.283 > +++ sbin/ifconfig/ifconfig.c 19 May 2014 00:27:07 -0000 > @@ -411,7 +411,7 @@ const struct cmd { > { "flowdst", NEXTARG, 0, setpflow_receiver }, > { "-flowdst", 1, 0, unsetpflow_receiver }, > { "pflowproto", NEXTARG, 0, setpflowproto }, > - { "-inet6", IFXF_NOINET6, 0, setifxflags } , > + { "-inet6", IFXF_NOINET6, 0, setifxflags }, > { "keepalive", NEXTARG2, 0, NULL, setkeepalive }, > { "-keepalive", 1, 0, unsetkeepalive }, > { "add", NEXTARG, 0, bridge_add }, > @@ -1312,6 +1312,7 @@ setia6eui64(const char *cmd, int val) > > if (afp->af_af != AF_INET6) > errx(1, "%s not allowed for the AF", cmd); > + setifxflags("inet6", -IFXF_NOINET6); > in6 = (struct in6_addr *)&in6_addreq.ifra_addr.sin6_addr; > if (memcmp(&in6addr_any.s6_addr[8], &in6->s6_addr[8], 8) != 0) > errx(1, "interface index is already filled"); > > 2) turn the NOINET6 flag on by default. > As said previously, it will be reset and thus a link-local assigned > transparently if either > -rtsol(d) is run > -an inet6 address is assigned > -ifconfig <if> inet6 eui64 is run > and thus should be entirely transparent for the vast majority of inet6 > users. > > Index: sys/net/if.c > =================================================================== > RCS file: /cvs/src/sys/net/if.c,v > retrieving revision 1.289 > diff -u -p -r1.289 if.c > --- sys/net/if.c 16 May 2014 08:21:54 -0000 1.289 > +++ sys/net/if.c 16 May 2014 14:15:24 -0000 > @@ -423,6 +423,9 @@ if_attach(struct ifnet *ifp) > #else > TAILQ_INSERT_TAIL(&ifnet, ifp, if_list); > #endif > +#ifdef INET6 > + ifp->if_xflags |= IFXF_NOINET6; > +#endif > > m_clinitifp(ifp); > > wether we need a less obscure ifconfig command than eui64 can be > discussed after. > > oks? > > -- > Henning Brauer, h...@bsws.de, henn...@openbsd.org > BS Web Services GmbH, http://bsws.de, Full-Service ISP > Secure Hosting, Mail and DNS. Virtual & Dedicated Servers, Root to Fully > Managed > Henning Brauer Consulting, http://henningbrauer.com/ >
Works for me. ok krw@ for what it's worth. .... Ken