Batman mesh (GL-MT6000, R7800), latencies/bufferbloat issues

I've been setting up a Batman mesh with my GL-MT6000 as gateway/AP and 2 R7800's as nodes, to get VLANs in my network. I have set it up according to this guide https://cgomesu.com/blog/Mesh-networking-openwrt-batman/ and I'm using non-ct versions as recommended there (ath10k-firmware-qca9984, kmod-ath10k) for my R7800's.

Things seem to be working well, except I have problems with high latencies/bufferbloat whenever I'm connected to one of my R7800's. Same problem if I only use 1 R7800. When testing a simple WDS setup instead (no VLANs), I had good latencies/bufferbloat.

Is there a problem with R7800's (or the GL-MT6000) in meshes, or is there some tuning/troubleshooting that I can do?

Unless I'm able to solve it, I'm probably looking at implementing VLANs with VXLAN instead.

Edit: I'm using "wpad-mesh-mbedtls" on all devices. I see that wolfssl or openssl versions also exists. Maybe try using one of those instead?!

Edit 2: added config

GL-MT6000:

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 'fd38:9268:27fb::/48'
 	option packet_steering '1'
 
 config device
 	option name 'br-lan'
 	option type 'bridge'
 	list ports 'lan1'
 	list ports 'lan2'
 	list ports 'lan3'
 	list ports 'lan4'
 	list ports 'lan5'
 
 config interface 'lan'
 	option device 'br-lan'
 	option proto 'static'
 	option ipaddr '192.168.1.1'
 	option netmask '255.255.255.0'
 	list dns '192.168.1.101'
 
 config interface 'wan'
 	option device 'eth1'
 	option proto 'dhcp'
 
 config interface 'bat0'
 	option proto 'batadv'
 	option routing_algo 'BATMAN_IV'
 	option aggregated_ogms '1'
 	option ap_isolation '0'
 	option bonding '0'
 	option bridge_loop_avoidance '1'
 	option distributed_arp_table '1'
 	option fragmentation '1'
 	option gw_mode 'off'
 	option hop_penalty '30'
 	option isolation_mark '0x00000000/0x00000000'
 	option log_level '0'
 	option multicast_mode '1'
 	option multicast_fanout '16'
 	option network_coding '0'
 	option orig_interval '1000'
 
 config interface 'mesh'
 	option proto 'batadv_hardif'
 	option master 'bat0'
 	option mtu '1536'
 
 config device
 	option name 'br-default'
 	option type 'bridge'
 	list ports 'bat0.1'
 
 config interface 'default'
 	option device 'br-default'
 	option proto 'static'
 	option ipaddr '192.168.10.1'
 	option netmask '255.255.255.0'
 	list dns '192.168.1.101'
 
 config device
 	option name 'br-iot'
 	option type 'bridge'
 	list ports 'bat0.2'
 
 config interface 'iot'
 	option device 'br-iot'
 	option proto 'static'
 	option ipaddr '192.168.20.1'
 	option netmask '255.255.255.0'
 	list dns '192.168.1.101'
 
 config device
 	option name 'br-mmedia'
 	option type 'bridge'
 	list ports 'bat0.3'
 
 config interface 'mmedia'
 	option device 'br-mmedia'
 	option proto 'static'
 	option ipaddr '192.168.30.1'
 	option netmask '255.255.255.0'
 	list dns '192.168.1.101'
 
 config device
 	option name 'br-guest'
 	option type 'bridge'
 	list ports 'bat0.5'
 
 config interface 'guest'
 	option device 'br-guest'
 	option proto 'static'
 	option ipaddr '192.168.50.1'
 	option netmask '255.255.255.0'
 	list dns '192.168.1.101'
 config wifi-device 'radio0'
 	option type 'mac80211'
 	option path 'platform/soc/18000000.wifi'
 	option band '2g'
 	option channel '1'
 	option htmode 'HE20'
 	option cell_density '1'
 	option country 'SE'
 	option txpower '20'

 config wifi-iface 'wmesh'
 	option device 'radio0'
 	option network 'mesh'
 	option mode 'mesh'
 	option mesh_id 'my-mesh'
 	option encryption 'sae'
 	option key 'XXXXX'
 	option mesh_fwding '0'
 	option mesh_ttl '1'
 	option mcast_rate '24000'
 	option mesh_rssi_threshold '0'

1st R7800:

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 'fd4e:72f:4e0d::/48'
 
 config device
 	option name 'br-default'
 	option type 'bridge'
 	list ports 'lan1'
 	list ports 'lan2'
 	list ports 'lan3'
 	list ports 'lan4'
 	list ports 'bat0.1'
 
 config interface 'default'
 	option device 'br-default'
 	option proto 'static'
 	option ipaddr '192.168.10.2'
 	option netmask '255.255.255.0'
 	option gateway '192.168.10.1'
 	option dns '192.168.10.1'
 
 config device
         option name 'br-iot'
         option type 'bridge'
         list ports 'eth0.1'
         list ports 'bat0.2'
 
 config interface 'iot'
         option device 'br-iot'
         option proto 'static'
         option ipaddr '192.168.20.2'
         option netmask '255.255.255.0'
         option gateway '192.168.20.1'
         option dns '192.168.20.1'
 
 config device
         option name 'br-mmedia'
         option type 'bridge'
         list ports 'eth0.1'
         list ports 'bat0.3'
 
 config interface 'mmedia'
         option device 'br-mmedia'
         option proto 'static'
         option ipaddr '192.168.30.2'
         option netmask '255.255.255.0'
         option gateway '192.168.30.1'
         option dns '192.168.30.1'
 
 config device
         option name 'br-guest'
         option type 'bridge'
         list ports 'eth0.1'
         list ports 'bat0.5'
 
 config interface 'guest'
         option device 'br-guest'
         option proto 'static'
         option ipaddr '192.168.50.2'
         option netmask '255.255.255.0'
         option gateway '192.168.50.1'
         option dns '192.168.50.1'
 
 
 config interface 'bat0'
         option proto 'batadv'
         option routing_algo 'BATMAN_IV'
         option aggregated_ogms '1'
         option ap_isolation '0'
         option bonding '0'
         option bridge_loop_avoidance '1'
         option distributed_arp_table '1'
         option fragmentation '1'
         option gw_mode 'off'
         #option gw_sel_class '20'
         #option gw_bandwidth '10000/2000'
         option hop_penalty '30'
         option isolation_mark '0x00000000/0x00000000'
         option log_level '0'
         option multicast_mode '1'
         option multicast_fanout '16'
         option network_coding '0'
         option orig_interval '1000'
 
 config interface 'mesh'
         option proto 'batadv_hardif'
         option master 'bat0'
         option mtu '1536'
config wifi-device 'radio0'
 	option type 'mac80211'
 	option path 'soc/1b500000.pci/pci0000:00/0000:00:00.0/0000:01:00.0'
 	option band '5g'
 	option channel '36'
 	option htmode 'VHT40'
 	option country 'SE'
 	option cell_density '1'
 
 config wifi-device 'radio1'
 	option type 'mac80211'
 	option path 'soc/1b700000.pci/pci0001:00/0001:00:00.0/0001:01:00.0'
 	option band '2g'
 	option channel '11'
 	option htmode 'HT20'
 	option country 'SE'
 	option cell_density '0'
 	option txpower '20'
 
 config wifi-iface 'wmesh'
 	option device 'radio1'
 	option network 'mesh'
 	option mode 'mesh'
 	option mesh_id 'my-mesh'
 	option encryption 'sae'
 	option key 'XXXXXXX'
 	option mesh_fwding '0'
 	option mesh_ttl '1'
 	option mcast_rate '24000'
 	option mesh_rssi_threshold '0'
 
 config wifi-iface 'wifinet2'
 	option device 'radio0'
 	option mode 'ap'
 	option ssid 'default_wifi'
 	option encryption 'psk2+ccmp'
 	option ieee80211r '1'
 	option mobility_domain '1114'
 	option ft_over_ds '0'
 	option network 'default'
 	option key 'XXXXXXX'
 	option ocv '0'
 	option wpa_disable_eapol_key_retries '1'
 	option ieee80211w '2'
 	option ft_psk_generate_local '1'
 
 config wifi-iface 'wifinet3'
 	option device 'radio0'
 	option network 'guest'
 	option mode 'ap'
 	option ssid 'guest'
 	option encryption 'psk2+aes'
 	option key 'XXXXXXXX'
 	option ieee80211r '1'
 	option mobility_domain '1234'
 	option ft_over_ds '0'
 	option ft_psk_generate_local '1'
 	option ieee80211w '2'
 	option ocv '0'
 	option wpa_disable_eapol_key_retries '1'
 	option isolate '1'
 
 
 config wifi-iface 'wifinet4'
 	option device 'radio0'
 	option mode 'ap'
 	option ssid 'mmedia'
 	option encryption 'psk2+ccmp'
 	option key 'XXXXXX'
 	option network 'mmedia'
 	option ieee80211r '1'
 	option mobility_domain '1115'
 	option ft_over_ds '0'
 	option ft_psk_generate_local '1'
 	option ieee80211w '2'
 	option ocv '0'
 	option wpa_disable_eapol_key_retries '1'
 
 config wifi-iface 'wifinet5'
 	option device 'radio0'
 	option mode 'ap'
 	option ssid 'iot'
 	option encryption 'psk2+ccmp'
 	option key 'XXXXXXX'
 	option network 'iot'
 	option ieee80211r '1'
 	option mobility_domain '1116'
 	option ft_over_ds '0'
 	option ft_psk_generate_local '1'
 	option ieee80211w '2'
 	option ocv '0'
 	option wpa_disable_eapol_key_retries '1'

Im far from an expert in this area but I would just like to add a link to a guide that I found more up to date and easier to follow:

(and its referring to the guide you link)

1 Like

I'm not quiet sure why do you thing this would make any difference?

Most of the latency with Wifi comes from physical parameters and not limitations by a CPU or NIC....
Also, VLAN operates on Layer-2, while for VXLAN you need an already functional backbone with Layer-3. You also have a full UDP header around your original packet, and not just a few bit (from the VLAN ID within the Ethernet frame).

As always: Share your config, otherwise nobody is able to help you.

EDIT: And please try to stick to sane conclusions.
VLAN and VXLAN has nothing to do with each other! And not every "isolated" Layer-2 domain is automatically its own VLAN Domain. End of nitpick and being a grunty old man...

Sorry for not providing my config, my mistake. Added it to first post. And I worded the VXLAN part incorrectly. I meant extending my vlans to 2nd AP using vxlan. I'm not that knowledgeable about networking, but can at least do some of the most basic stuff. For more advanced things I need good guides, examples or assistance. I hope you can have the patience.