I have come across an issue with the Pi-3 internal Wi-Fi, when in ad-hoc mode.
Setup is three PI-3s in ad-hoc mode, with Babel routing protocol and shncpd, to create a mesh network.
Pi 'A' has been allocated an address. Pi 'B' has not yet been allocated an address, and still has a link local address 169.254.xxx.xxx.
Using Wireshark at both ends, have seen that if Pi 'A' sends an ARP request to Pi 'B' then Pi'B sends a reply, however Pi 'A' does not receive it.
If I fit external WiFi dongles, and use these in preference to the internal BCM43430 SDIO, then the ARP reply is received.
So it looks like the internal Pi-3 Wi-Fi does not complete an ARP response/reply. I think the ARP reply is being sent but is not received - instead it is quietly discarded.
I can force the issue (without babel or shncpd) by simply setting manual static IP addresses to mimic link local addresses in /etc/network/interfaces, i.e. Pi 'A with:-
address 169.254.10.10
netmask 255.255.0.0
and Pi'B' with:-
address 169.254.10.20
netmask 255.255.0.0
When an ARP request goes out the reply is sent but not received.
If I change the IP address to something more typical such as 192.168.10.10 and 192.168.10.20, then ARP completes successfully.
The arp table shows "incomplete" for the IP address. Clearing the arp table does not fix the issue:-
arp -n
sudo ifdown wlan0
sudo ip link set arp off dev wlan0
sudo ip link set arp on dev wlan0
sudo ifup wlan0
Does anyone know how to resolve this?
Note:-
have tried turning powersave off, with "sudo iw dev wlan0 set power_save off"
do not want to manually set the MAC addresses in the ARP table.
do not want to have to set static IP addresses across all Pi's in the network as that is the purpose of Babel and SHNCPD. So will be faced with link local addresses.
Am using 4.1.19 v7+ with February version of the bcmhmac SDIO drivers.
do not have the option of using external dongles, which work ok.
Any help would be appreciated.