Suspect Android not responding to NDP, can I Proxy it?

I am having a hard time using Bria on my phone. it operates over native ipv6 on my network. the symptom is after several minutes my Debian router is receiving packets for the phone but not forwarding them to the LAN. I will check when I get back home but I now suspect that the routers neighbor cache expired because the phone is not responding to NDP during sleep.

My access points are OpenWrt. is it possible to proxy the phone NDP on an AP so it is always reachable?

things I've checked: no the router is not firewalling the packets, and no the router isn't sending them out the LAN port and having them swallowed by switches or APs... they come in on WAN, are not filtered, and then just don't go out on LAN... like they go in a black hole in the router.

Most phones switch WiFi off while they sleep, how do you plan to wake them up when a call arrives?

nope wifi stays on, and Bria sends keepalives and soforth but I'm at home now and can verify that the router drops the phone because it loses the neighbor cache... any ideas?

btw this all worked for years and I think was broken by an Android OTA update a few months back

check your wifi sleep settings when screen is off on android device

Yep, wifi stays on. I even checked it with android ADB. I can even see the packets coming from the phone, but the router can't send the reply packets because it loses the NDP cache entry for the phone. Basically, the phone isn't responding to the NDP protocol during sleep.

I'm going to try editing sysctl.conf on the router to set the base_reachable_time_ms to 300000 (5 minutes) and see if this solves it. Perhaps the phone responds occasionally but not reliably. If that doesn't work I'll try 10 minutes and 30 minutes.

5 minutes didn't work, it expired. Set it to 10mins will see what happens.

1 Like