Hi Lui,
there is no direct way to get a topology change in userspace unless you want to parse the originator table (and even in that case you will only see "local" changes).
The behaviour you described about the ARP packets is normal because the IP layer does not know anything about changes happening at the batman-adv layer. You need to handle them by yourself (if possible).
However it looks like you want to detect a "gateway change" rather than a real "topology change".
Please check this link[1] out that is explaining how batman-adv tells userspace about GW changes.
Cheers,
[1] http://www.open-mesh.org/projects/batman-adv/wiki/Uevent#Gateway-uevents
On 07/08/14 09:49, liudows wrote:
Hello, eveyone, I am learning the batman.adv recently.
We know that batman.adv works on layer 2. When the network topology change, batman.adv can know this change and handle it. But the IP layer doesn't know that. How to make IP layer handle the change of network topology?
For example, I have 3 mesh nodes, client node A, gateway node B and geteway node C. A connects to internet via B. Then I shutdown B. I guess A will switch to C as it's gateway node automatically. But it's not so. A continuously send the ARP request packet to search the MAC address of B. The default gateway is still B, not C.
So, how should I do to make the IP layer be aware of that the gateway has swithed to another one?
Thanks! Best regards.
liu