OpenWrt Mesh slow

After good success with my router, I thought it would be a good idea to migrate my mesh to openwrt too.
I have the TP-link deco M4Rv2
I made a backup of the first configuration and restored it on the other 2.


config wifi-iface 'mesh0'
        option device 'radio0'
        option disabled '0'
        option mode 'mesh'
        option ifname 'mesh0'
        option network 'lan'
        option mesh_id 'MyMeshId'
        option encryption 'sae'
        option key 'MyKey'

config wifi-iface 'mesh1'
        option device 'radio1'
        option disabled '0'
        option mode 'mesh'
        option ifname 'mesh1'
        option network 'lan'
        option mesh_id 'MyMeshId'
        option encryption 'sae'
        option key 'MyKey'

Then I reinstalled the packages.

But whenever I have more then 1 accesspoint with the same mesh_id my wifi becomes really slow, actually unworkably slow.
If I modify the mesh_id, there are no issues, the only thing then is that it's basically 3 accesspoints using the same SSID but don't work together.

Is there a way to debug, So I can check what goes wrong?

I checked IW list and that notices "mesh point"

root@OpenWrtMesh5:~# iw list | grep "Supported interface modes" -A 9
        Supported interface modes:
                 * IBSS
                 * managed
                 * AP
                 * AP/VLAN
                 * monitor
                 * mesh point
                 * P2P-client
                 * P2P-GO
                 * outside context of a BSS
--
        Supported interface modes:
                 * IBSS
                 * managed
                 * AP
                 * AP/VLAN
                 * monitor
                 * mesh point
                 * P2P-client
                 * P2P-GO
                 * P2P-device

Can anyone please help me?

If the mesh on radio 0 and 1 share the same network interface on more than one router, then presumably you are creating a bridge loop, which would cause a storm of traffic.

You might want to look into using batman-adv and enable bridge_loop_avoidance, or just use one radio for the mesh link.

You have not been at all clear in what you are trying to do, but I'm guessing you have:

  1. An OpenWrt router providing Internet feed from your ISP to your local network
  2. Three TP-link deco M4Rv2 devices you want to use to extend the local network around your house by implementing an 802.11s mesh network.

Your disclosed wireless config, if that is the entirety of it, does not make sense for various reasons:

  1. You have two configured mesh interfaces, one on 2GHz, the other on 5GHz. For a functioning mesh, you need to decide which radio you want to use for the mesh backhaul, using both on all meshnodes will cause bridging loops.
  2. You do not have any AP mode interfaces shown in the configuration. This means that user devices will generally not be able to connect via wireless. This is fine if you intend to connect only by ethernet - you have not indicated anything about this.
  3. As you have more than 1 meshnode to mesh with your router, you must install the mesh11sd package, as this is required to configure mesh parameters needed to support multiple meshnodes.

It might be useful to read the following:

Thank you both for your response,

I removed 1 of the mesh interfaces, apparently only one is required. and I dived into b.a.t.m.a.n. but unfortunately I still have the same issues.
Also mseh11sd was already isntalled, but for some reason it doesn't seem to work much. Also I'm not sure how this will work together with batman.

Anyway, I made small diagram with my Network Typology (router does not have wifi on it's own)


my wireless config now looks like this

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

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'pci0000:00/0000:00:00.0'
        option band '5g'
        option htmode 'VHT80'
        option cell_density '0'
        option channel '36'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option encryption 'sae-mixed'
        option key 'Wifi Key'
        option ssid 'MySsId'

config wifi-device 'radio1'
        option type 'mac80211'
        option path 'platform/ahb/18100000.wmac'
        option channel '1'
        option band '2g'
        option htmode 'HT20'
        option cell_density '0'

config wifi-iface 'default_radio1'
        option device 'radio1'
        option network 'lan'
        option mode 'ap'
        option encryption 'sae-mixed'
        option key 'Wifi Key'
        option ssid 'MySsId'

config wifi-iface 'mesh0'
        option device 'radio0'
        option disabled '0'
        option mode 'mesh'
        option ifname 'mesh0'
        option network 'lan'
        option mesh_fwding '0'
        option mesh_id 'MyMeshId'
        option encryption 'sae'
        option key 'MyMeshKey'

config interface 'bat0'
        option proto 'batadv'
        option routing_algo 'BATMAN_IV'
        option aggregated_ogms 1
        option ap_isolation 0
        option bonding 0
        option fragmentation 1
        #option gw_bandwidth '10000/2000'
        option gw_mode 'off'
        #option gw_sel_class 20
        option log_level 0
        option orig_interval 1000
        option bridge_loop_avoidance 1
        option distributed_arp_table 1
        option multicast_mode 1
        option network_coding 0
        option hop_penalty 30
        option isolation_mark '0x00000000/0x00000000'

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

and mesh11sd looks like this

root@OpenWrtMesh5:~# cat /etc/config/mesh11sd

config mesh11sd 'setup'
        option enabled '1'
        option debuglevel '1'
        option checkinterval '10'
        option interface_timeout '10'

config mesh11sd 'mesh_params'
        option mesh_fwding '0'
        option mesh_rssi_threshold '-80'
        option mesh_gate_announcements '1'
        option mesh_hwmp_rootmode '3'
        option mesh_max_peer_links '150'

I modified mesh_fwding twice and added batman since my last post.
But Still whenever mesh_id is the same on multiple devices internet becomes slower and slower and dies within 30 seconds.

There is no mesh in your diagram and you seem to have cabled access points........

A mesh network is a wireless backhaul providing links between nodes.

What is it you are trying to do?

my goal is to have devices automatically detect the best accesspoint and have them automatically switch between accesspoints when the device(phone or tables) moves closes to another accesspoint.

In my schema, there indeed only is an Ethernet Backhaul. But I'm planning to add a 4th accesspoint using a wireless backhaul. But first I want the Ethernet Backhaul to work.

the original TP-link firmware automatically detects ethernet or wireless backhaul and calls it both mesh. So maybe I'm confused about the naming and don't know how a wireless network with Ethernet backhaul is called.

Anyway my goal is to cover the whole house using the same SSID, so users don't have to determine which AP to connect.

This has nothing whatsoever to do with mesh networking.
Did you even read the mesh documentation?

What you are looking for is wifi roaming, something entirely different.

1 Like

I actually did read the documentation, but made some wrong assumptions based on what I thought I knew.
But This makes sence

@bartje
It seems you are a victim of the Tp-link marketing machine.

These particular devices do indeed make good 802.11s meshnodes. I think the manufacturer's firmware does have a proprietory AP to AP wireless link capability for up to 3 devices but it is not a mesh in the accepted technical sense.

1 Like

I just want to grumble and nitpick that this is not true. For a simple and just fine working 802.11s mesh the options provided by vanilla OpenWrt is sufficient. mesh11sd "just" fine tunes.

If you have a single hop mesh eg your mesh nodes are all well within range of each other, then yes, mesh11sd is not necessarily needed.

TL;DR
For multiple hops, the mesh needs to build a mac-routing table at layer 2, so that each node knows the route to all the others. It is not possible to turn on the mac routing from the wireless config - not due to any bug, but due to the fact it can only be turned on after the mesh interface is up. This also applies to the majority of other mesh "tuning" parameters.

You can read about it in some detail here:

If you want to discuss it in more detail, please open a new thread on this forum or open an issue on Github at:

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.