Can someone explain to me how Android uses SLAAC to implement tethering? SLAAC allows the Android device to have as many addresses it wants. But how does that allow it to reshare those address to a tethered device? A tethering device that might itself be running SLAAC or DHCPv6. If the tethering client device was running DHCPv6 the Android phone could proxy that. But with SLAAC the Android has no idea which addresses are in play - unless it implements NAT! We also have the option that the Android is simply doing a layer 2 bridge. In that case, the Android would not care what the tethering client device is doing. Just move the packets. If Google are truly worried about tethering, they would implement something like LISP. It is then possible to provision the tethered device with address space that is totally unrelated to the host network. They gave you only 1 address? Does not matter, we will use that only for the LISP endpoint. Put a /64 on a loopback interface inside the device, so applications can get unlimited addresses as needed. Regards, Baldur