We're having the problem that bmx6 nodes sometime come up on different subnets.

The interfaces are getting fd66:0066:0066:00XX::/64 IPs, where XX is the interface index. This means that some nodes are on different subnets, since they don't all have the same wifi interface index. Is this intentional, and if so, why? It means that just running "bmx6 dev=wlan0" on each node will not result in a working mesh where every node can reach every other node on their bmx6-assigned addresses.

It seems that either the mask should be changed to /56 or the interface index should be used as the eigth or higher byte instead of the seventh? Perhaps it would be better to replace the ff:fe inserted into the middle of the MAC address with the interface index?

Here's the responsible code from https://github.com/axn/bmx6/blob/master/ip.c:

if (!global_prefix_cfg.mask && !dev->global_prefix_conf_.mask && autoconf_prefix_cfg.mask) {
    autoIP6 = bmx6AutoEUI64Ip6(dev->if_link->addr, &autoconf_prefix_cfg);
    autoIP6.mask = DEF_AUTO_IP6_DEVMASK;
    autoIP6.ip.s6_addr[6] = DEF_AUTO_IP6_BYTE6;
    autoIP6.ip.s6_addr[7] = (uint8_t)dev->if_link->index; //different ULAs for equal MAC addresses!!
}

--
marc/juul