802.11s badman-adv 2nd 5Ghz radio is not working

Hi All,

I am setting up a batman-adv mesh to learn a bit more about the technology, I've been heavily utilizing omemarcfifty's excellent video and Carlos his fantastic written guide.

I am using 2 Linksys MR8300 routers with openwrt 22.03 on them and have installed all the neccessary packages. Additionally, I have removed the ath10k-firmware-qca9888-ct & kmod-ath10k-ct packages and installed ath10k-firmware-qca9888 & kmod-ath10k in their place as suggested by Carlos his guide.

Using the first 5Ghz Radio I can setup the backhaul mesh perfectly fine, I run through the config steps and have an ok working mesh (although it seems to be capped out at 150Mbit/s, which seems on the slow side given that the link says 800Mbit/s).

Now I'm trying to add the second 5Ghz as an additional backhaul in combination with bonding mode, as described in Carlos guide, but it does not seem to want to work on batctl. I see the interface connecting to the second mesh router, but that appears to only be 802.11s.

When I do a batctl if I only see the wlan2 as active on both routers. So it looks to me that batman-adv does not see the second radio/mesh network.

As far as I can tell, I have it all setup correctly.

My configs:

Router 1 /etc/config/network

root@router1:~# cat /etc/config/network

config interface 'loopback'
	option device 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config globals 'globals'
	option ula_prefix 'fd57:82c3:2a75::/48'

config device
	option name 'br-lan'
	option type 'bridge'
	list ports 'eth0'
	list ports 'bat0.10'

config interface 'lan'
	option device 'br-lan'
	option proto 'static'
	option netmask '255.255.255.0'
	option ip6assign '60'
	option ipaddr '10.10.10.2'
	list dns '1.1.1.1'

config interface 'wan'
	option device 'eth1'
	option proto 'dhcp'
	option force_link '1'

config interface 'wan6'
	option device 'eth1'
	option proto 'dhcpv6'

config switch
	option name 'switch0'
	option reset '1'
	option enable_vlan '1'

config switch_vlan
	option device 'switch0'
	option vlan '1'
	option ports '1 2 3 4 0'

config switch_vlan
	option device 'switch0'
	option vlan '2'
	option ports '5 0'

config interface 'guest'
	option proto 'static'
	option ipaddr '10.10.20.1'
	option netmask '255.255.255.0'
	option device 'br-guest'

config interface 'lan'
	option proto 'dhcp'
	option device 'br-lan'

config interface 'iot'
	option proto 'static'
	option ipaddr '10.0.20.254'
	option netmask '255.255.255.0'
	option device 'br-iot'

config interface 'bat0'
	option proto 'batadv'
	option routing_algo 'BATMAN_IV'
	option bridge_loop_avoidance '1'
	option gw_mode 'server'
	option hop_penalty '30'
	option bonding '1'

config interface 'mesh'
	option proto 'batadv_hardif'
	option master 'bat0'
	option mtu '2304'

config interface 'mesh2g'
	option proto 'batadv_hardif'
	option master 'bat0'

config interface 'mesh5g2'
	option proto 'batadv_hardif'
	option master 'bat0'
    option mtu '2304'

config device
	option type 'bridge'
	option name 'br-guest'
	list ports 'bat0.40'

config device
	option type 'bridge'
	option name 'br-iot'
	list ports 'bat0.50'

config device
	option type 'bridge'
	option name 'br-lan'
	list ports 'bat0.30'

Router 1 etc/config/wireless

root@router1:~# cat /etc/config/wireless

config wifi-device 'radio0'
	option type 'mac80211'
	option path 'soc/40000000.pci/pci0000:00/0000:00:00.0/0000:01:00.0'
	option band '5g'
	option htmode 'VHT80'
	option cell_density '0'
	option country 'ES'
	option txpower '20'
	option channel '136'

config wifi-device 'radio1'
	option type 'mac80211'
	option path 'platform/soc/a000000.wifi'
	option channel '1'
	option band '2g'
	option htmode 'HT40'
	option cell_density '0'
	option country 'ES'
	option disabled '1'

config wifi-device 'radio2'
	option type 'mac80211'
	option path 'platform/soc/a800000.wifi'
	option band '5g'
	option htmode 'VHT80'
	option cell_density '0'
	option channel '36'
	option country 'ES'
	option txpower '23'

config wifi-iface 'wifinet5'
	option device 'radio1'
	option mode 'mesh'
	option encryption 'sae'
	option mesh_id 'mesh-2G'
	option mesh_fwding '1'
	option mesh_rssi_threshold '0'
	option key 'super-secret-password'
	option network 'mesh2g'
	option disabled '1'

config wifi-iface 'wifinet1'
	option device 'radio2'
	option mode 'mesh'
	option encryption 'sae'
	option mesh_id 'mesh'
	option mesh_rssi_threshold '0'
	option key 'super-secret-password'
	option mesh_fwding '0'
	option network 'mesh'

config wifi-iface 'wifinet2'
	option device 'radio0'
	option mode 'ap'
	option ssid 'guest'
	option encryption 'psk2'
	option key 'guests-secret-password'
	option network 'guest'
	option ieee80211r '1'
	option mobility_domain 'F040'
	option ft_over_ds '0'
	option ft_psk_generate_local '1'
	option disabled '1'

config wifi-iface 'wifinet3'
	option device 'radio0'
	option mode 'ap'
	option ssid 'iot'
	option encryption 'psk2'
	option key 'iot-secret-password'
	option network 'iot'
	option ieee80211r '1'
	option mobility_domain 'F050'
	option ft_over_ds '0'
	option ft_psk_generate_local '1'
	option disabled '1'

config wifi-iface 'wifinet4'
	option device 'radio0'
	option mode 'ap'
	option ssid 'lan'
	option encryption 'psk2'
	option key 'super-secret-password'
	option ieee80211r '1'
	option mobility_domain 'F030'
	option ft_over_ds '0'
	option ft_psk_generate_local '1'
	option network 'lan'
	option disabled '1'

config wifi-iface 'wifinet6'
	option device 'radio0'
	option mode 'mesh'
	option mesh_id 'mesh-5g2'
	option mesh_rssi_threshold '0'
	option mesh_fwding '0'
	option encryption 'sae'
	option key 'super-secret-password'
    option network 'mesh-5g2'
    option disabled '0'

Router 2 /etc/config/network

root@router2:~# cat /etc/config/network

config interface 'loopback'
	option device 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config globals 'globals'
	option ula_prefix 'fdf5:9d6e:3fb6::/48'

config device
	option name 'br-lan'
	option type 'bridge'
	option ipv6 '0'
	list ports 'eth0'
	list ports 'eth1'
	list ports 'bat0.10'

config interface 'lan'
	option device 'br-lan'
	option proto 'static'
	option ipaddr '10.10.10.5'
	option netmask '255.255.255.0'
	option gateway '10.10.10.2'

config switch
	option name 'switch0'
	option reset '1'
	option enable_vlan '1'

config switch_vlan
	option device 'switch0'
	option vlan '1'
	option ports '1 2 3 4 0'

config switch_vlan
	option device 'switch0'
	option vlan '2'
	option ports '5 0'

config interface 'lan'
	option proto 'dhcp'
	option device 'br-lan'
	option defaultroute '0'

config interface 'guest'
	option proto 'dhcp'
	option device 'br-guest'
	option defaultroute '0'

config interface 'iot'
	option proto 'dhcp'
	option device 'br-iot'
	option defaultroute '0'

config interface 'bat0'
	option proto 'batadv'
	option routing_algo 'BATMAN_IV'
	option bridge_loop_avoidance '1'
	option gw_mode 'off'
	option hop_penalty '30'
	option bonding '1'

config interface 'mesh'
	option proto 'batadv_hardif'
	option master 'bat0'
	option mtu '2304'

config interface 'mesh2g'
	option proto 'batadv_hardif'
	option master 'bat0'

config interface 'mesh5g2'
	option proto 'batadv_hardif'
	option master 'bat0'
    option mtu '2304'

config device
	option type 'bridge'
	option name 'br-guest'
	list ports 'bat0.40'
	option ipv6 '0'

config device
	option type 'bridge'
	option name 'br-iot'
	list ports 'bat0.50'
	option ipv6 '0'

config device
	option type 'bridge'
	option name 'br-lan'
	list ports 'bat0.30'
	option ipv6 '0'

config device
	option name 'bat0'
	option ipv6 '0'

Router 2 /etc/config/wireless

root@router2:~# cat /etc/config/wireless

config wifi-device 'radio0'
	option type 'mac80211'
	option path 'soc/40000000.pci/pci0000:00/0000:00:00.0/0000:01:00.0'
	option band '5g'
	option htmode 'VHT80'
	option cell_density '0'
	option country 'ES'
	option txpower '20'
	option channel '136'

config wifi-device 'radio1'
	option type 'mac80211'
	option path 'platform/soc/a000000.wifi'
	option channel '1'
	option band '2g'
	option htmode 'HT40'
	option cell_density '0'
	option country 'ES'
	option disabled '1'

config wifi-device 'radio2'
	option type 'mac80211'
	option path 'platform/soc/a800000.wifi'
	option band '5g'
	option htmode 'VHT80'
	option cell_density '0'
	option channel '36'
	option country 'ES'
	option txpower '23'

config wifi-iface 'wifinet4'
	option device 'radio1'
	option mode 'mesh'
	option encryption 'sae'
	option mesh_fwding '1'
	option mesh_rssi_threshold '0'
	option key 'super-secret-password'
	option mesh_id 'mesh-2G'
	option network 'mesh2g'
	option disabled '1'

config wifi-iface 'wifinet1'
	option device 'radio2'
	option mode 'mesh'
	option encryption 'sae'
	option mesh_id 'mesh'
	option mesh_rssi_threshold '0'
	option key 'super-secret-password'
	option mesh_fwding '0'
	option network 'mesh'

config wifi-iface 'wifinet2'
	option device 'radio0'
	option mode 'ap'
	option ssid 'CB'
	option encryption 'psk2'
	option key 'guests-secret-password'
	option network 'guest'
	option ieee80211r '1'
	option mobility_domain 'F040'
	option ft_over_ds '0'
	option ft_psk_generate_local '1'
	option disabled '1'

config wifi-iface 'wifinet3'
	option device 'radio0'
	option mode 'ap'
	option ssid 'iot'
	option encryption 'sae'
	option key 'iot-secret-password'
	option network 'iot'
	option ieee80211r '1'
	option mobility_domain 'F050'
	option ft_over_ds '0'
	option ft_psk_generate_local '1'
	option disabled '1'

config wifi-iface 'wifinet5'
	option device 'radio0'
	option mode 'ap'
	option ssid 'lan'
	option encryption 'psk2'
	option key 'super-secret-password'
	option ieee80211r '1'
	option mobility_domain 'F030'
	option ft_over_ds '0'
	option ft_psk_generate_local '1'
	option network 'lan'
	option disabled '1'

config wifi-iface 'wifinet6'
	option device 'radio0'
	option mode 'mesh'
	option mesh_id 'mesh-5g2'
	option mesh_fwding '0'
	option mesh_rssi_threshold '0'
	option encryption 'sae'
	option key 'super-secret-password'
	option network 'mesh-5g2'
	option disabled '0'

Any help would be much appreciated to get the 2nd 5Ghz link working as backhaul. I like to have a scenario where there are two 5Ghz channels used as backhaul (with bonding) and all devices connected via ethernet to the switches.

Side question, what kind of speed should I be expecting between the two mesh units? When I do iperf3 tests: gbit eth <> router <> router2 <> gbit eth I have a max speed of 150mbps, while i would expect around 300/400mbps. Is that realistic?

Thanks in Advance!

After looking through the settings one more time, I decided to reapply the config via luci, and this has solved my issue on the 2nd 5Ghz link not working. I'm not entirely sure why, but I believe the device did not add the network to the wireless link for some reason.

I think I celebrated a little too early. I now have the link showing as both up, however, I cannot ping nor get any throughput from the 2nd backhaul mesh.

Router 1 to Router 2 on 1st 5Ghz link works fine

root@router1:~# batctl tp router2
Test duration 10540ms.
Sent 231609492 Bytes.
Throughput: 20.96 MB/s (175.79 Mbps)

Router 1 to Router 2 on 2nd 5Ghz link does not work

root@router1:~# batctl tp ea:9f:80:af:79:ad
Test duration 10490ms.
Sent 0 Bytes.
Throughput: 0 Bytes/s (0 Bps)

Ping reports unreachable.

root@router1:~# batctl p ea:9f:80:af:79:ad
PING ea:9f:80:af:79:ad (ea:9f:80:af:79:ad) 20(48) bytes of data
From ea:9f:80:af:79:ad: Destination Host Unreachable (icmp_seq 1)
From ea:9f:80:af:79:ad: Destination Host Unreachable (icmp_seq 2)
^C--- ea:9f:80:af:79:ad ping statistics ---
2 packets transmitted, 0 received, 100% packet loss
rtt min/avg/max/mdev = 0.000/0.000/0.000/0.000 ms

I've checked the settings over dozens of time, but can't find the issue. Pretty sure it is a config issue.

Any help is appreciated.

Thanks!

Did you ever figure this out?

I’m trying to wrap my head around why you’d want/need two 802.11s points (links) for batman mesh… because creating a second point when running one mesh point already will halve the throughput of both 5ghz points, which if you also run an AP band off the 5ghz band, the AP throughput is also halved, rendering the need for 2+ bands as moot and null.

I am running batman mesh successfully using a 2.4ghz backhaul on one 802.11s mesh point with 4 mesh nodes (1 gateway node and 3 client nodes). Of course this halves my throughput on any 2.4ghz AP bands I use (IoT and guest) and it caps the bandwidth for the 5ghz bands on my mesh node clients, I still get full throughput for 5ghz on my main mesh node gateway. I find this effective as IoT devices don’t require much bandwidth anyway and I don’t want guests eating up my bandwidth. I’ve also setup DAWN in my network and use 802.11rkv for fast transition for my lan and guest networks.

EDIT: I see the devices you’re using have three radios. So as long as your backhaul mesh points are separated on each radio, you’ll get full throughput UNLESS you also add a 5ghz AP to either radio, in which case the throughput will get halved. If I were using triband devices, personally, I’d only dedicate one 5ghz radio to the backhaul.