On Wed, Jan 21, 2026 at 02:02:09PM +0100, Stefano Brivio wrote: > On Sun, 18 Jan 2026 17:16:06 -0500 > Jon Maloy wrote: [snip] > > @@ -1230,30 +1238,34 @@ static void conf_print(const struct ctx *c) > > } > > > > if (c->ifi6) { > > + bool do_slaac = !c->no_ndp || !c->no_dhcpv6; > > We can enable DHCPv6 and disable SLAAC though. The "SL" in SLAAC stands > for "stateless", DHCPv6 is stateful. We can enable both, one, or none. Hm.. I thought DHCPv6 was designed to require SLAAC (although in a kind of minimal mode). > The 'dns6' label was meant to avoid a variable like this one and > another block, maybe it would be more practical to keep it. > > > + > > if (!IN6_IS_ADDR_UNSPECIFIED(&c->ip6.map_host_loopback)) > > info(" NAT to host ::1: %s", > > inet_ntop(AF_INET6, &c->ip6.map_host_loopback, > > buf6, sizeof(buf6))); > > > > - if (!c->no_ndp && !c->no_dhcpv6) > > - info("NDP/DHCPv6:"); > > - else if (!c->no_dhcpv6) > > - info("DHCPv6:"); > > - else if (!c->no_ndp) > > - info("NDP:"); > > - else > > - goto dns6; > > - > > - info(" assign: %s", > > - inet_ntop(AF_INET6, &c->ip6.addrs[0].addr.a6, > > - buf6, sizeof(buf6))); > > - info(" router: %s", > > - inet_ntop(AF_INET6, &c->ip6.guest_gw, buf6, sizeof(buf6))); > > - info(" our link-local: %s", > > - inet_ntop(AF_INET6, &c->ip6.our_tap_ll, > > - buf6, sizeof(buf6))); > > - > > -dns6: > > + if (do_slaac) { > > + if (!c->no_ndp && !c->no_dhcpv6) > > + info("NDP/DHCPv6:"); > > + else if (!c->no_dhcpv6) > > + info("DHCPv6:"); > > + else > > + info("NDP:"); > > + > > + for (i = 0; i < c->ip6.addr_count; i++) { > > + info(" assign: %s", > > + inet_ntop(AF_INET6, &c->ip6.addrs[i].addr.a6, > > + buf6, sizeof(buf6))); > > I don't see a matching change for neither NDP nor DHCPv6, so we > shouldn't really print more than one address (at least until this > point). > > > + } > > + info(" router: %s", > > + inet_ntop(AF_INET6, &c->ip6.guest_gw, > > + buf6, sizeof(buf6))); > > + info(" our link-local: %s", > > + inet_ntop(AF_INET6, &c->ip6.our_tap_ll, > > + buf6, sizeof(buf6))); > > + } > > + > > for (i = 0; !IN6_IS_ADDR_UNSPECIFIED(&c->ip6.dns[i]); i++) { > > if (!i) > > info("DNS:"); > > I reviewed up to 5/9 so far, no further comments until then. > > -- > Stefano > -- David Gibson (he or they) | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you, not the other way | around. http://www.ozlabs.org/~dgibson