In our test networks, we are using dual radio nodes built from cheap routers plus wifi dongles. The problem is that there are currently (as of October 2012) no wifi usb drivers that work perfectly in adhoc mode, so we must fall back to using both adhoc, and infrastructure links – adhoc is working fine in router builtin radio (ath9k) and infrastructure (AP-client) saves the day with the dongles (ath9k_htc).
Normal infrastructure mode puts clients into the same link-local, the AP relays traffic between them, so they look like direct neighbours even though the packets are hopping through the AP node. When you try to graph this with batman-adv, every client connected to an AP will look like it is directly connected to every other client thus creating a mess in potential hops selection.
Turning isolation on in the AP radio solves the problem. Client nodes will no longer directly receive OGMs from other clients and will correctly show the AP as next hop.
The images show batman-adv visualization graphics with isolation turned on and off.
The option is documented in the OpenWRT website. Note this should not be confused with the ap_isolation mode of batman-adv itself, which is unrelated to this.
Our resulting wireless configuration follows:
config 'wifi-iface' option 'device' 'radio0' option 'encryption' 'none' option 'mode' 'ap' option 'ssid' 'infra.quintanalibre' option 'network' 'mesh0' option 'isolate' '1'
Because of batman-adv being active in all interfaces involved, actual traffic between clients will continue to flow normally.