Tool/software: Linux
The product I am working on has a WiLink chip which is configured in access point mode. This is normally done via Connman. Currently, this works great for all IPv4 traffic. However, a use case has recently come up that will require us to support clients which will communicate via IPv6. I have determined that, for some reason, IPv6 traffic over a WiFi AP managed by the WiLink chip does not work.
Here is how I've determined this:
- Enable AP mode on product.
- Give the product an IPv6 address:
ifconfig wlan0 add 2001:0db8:0:f101::1/64 - Connect a Linux laptop to the product's WiFi.
- Give the Linux laptop an IPv6 address:
ifconfig wlan0 add 2001:0db8:0:f101::10/64 - Connect a second Linux laptop to the product's WiFi and configure as so:
ifconfig wlan0 add 2001:0db8:0:f101::11/64 - Attempt to ping second laptop from first:
ping6 2001:0db8:0:f101::11 (optionally can add on interface on the end of the IPv6 address - this does not affect outcome)
This does not work. - Ping either laptop from the product:
ping6 2001:0db8:0:f101::10
This does work.
Through some additional experimentation, I've determined that the limitation seems to be that the product running the AP can send IPv6 traffic to any connected client, but cannot receive traffic back from those clients nor can the clients communicate with each other.
IPv6 support is baked into the kernel. Furthermore, IPv6 traffic does work on other network interfaces for this product - particularly in the case where the product hosts a virtual network interface over USB (NCM). We also have a different product that has a very similar configuration and a different wireless chip which does not exhibit this issue.
Are there any limitations to IPv6 support when in AP mode for the WiLink chips? If not - are there any configuration changes I can make to hopefully alleviate this problem?
Thanks,
James Betker