How to configure a mesh network

I have a Turris Omnia with Turris OS and 5 Linksys MX5300 with OpenWrt. With the firmware selector I created an ad-hoc build with just replacing wpad-basic-mbedtls with wpad-mesh-mbedtls. In the end I configured all nodes exactly the same way to act as "Dumb" WiFi Access Points. Since the Linksys have 3 WiFi devices, I used a 5GHz one for the mesh network backhaul, another 5GHz one for the first home network, and the last 2.4 GHz one for the second home network. The backhaul is configured via LuCI, with 802.11s protocol and connected to the lan. I have not been able to use 802.11sd with automatic configuration, because it is incompatible with the ath10k-ct drivers; even using standard ath10k, the 802.11sd service, when configured and started, continuously reboots the network, making any kind of connection impossible.

My goal now is to implement B.A.T.M.A.N. I don't know if it really serves in my case, but it seems to. I have tried following the OpenWrt Wiki, but to no avail. Could someone please guide me?

If you have a wired back haul option, that will always be the best performance and makes mesh/BATMAN entirely unnecessary

Unfortunately, the backhaul can only be wireless, because the nodes are scattered around the house and I cannot run cables everywhere. The only consolation is that there is a dedicated wireless interface.

I take it you mean mesh11sd?


You need to choose one or the other - manual or automatic - which do you want?

For clarity:
802.11s is an ieee standard with a unique frame type. The frame type is not a protocol. Mesh11sd uses the HWMP protocol built into the kernel and Batman uses its own ipv6 tunnelling protocol on top of the 802.11s frame type, with HWMP disabled.

Yes, the ct drivers do not seem to work with encrypted mesh, whether it is mesh11sd or Batman, at least as far as I have seen.

This is usually caused by manual configurations done by luci or command line that are conflicting with auto configuration. It may restart the wireless interfaces as it removes/updates the conflicting manual configs.
So yes you will loose your connection to any device as the mesh establishes (because it is no longer a router but a mesh peer). Just like how a "Dumb AP" will no longer be accessible on the original ip address once you have restarted it.

Your Turris Omnia with Turris OS cannot be part of the mesh, so the "first" meshnode must have an ethernet connection to the Turris.

The wireless band you use for the mesh is important.
Bare in mind that in normal circumstances, to "fill in" wi-fi coverage, you need a good signal for the mesh backhaul so that the nodes can repeat signals to from clients. But if you can get a good signal for the backhaul, why do you need a mesh in the first place?

For this reason, the best backhaul penetration is on 2.4GHz. But this has a lower bandwith. So compromises are required.

BUT, with wifi6, you can achieve over 1Gb/s data rates or above on 2.4GHz, making this band the best choice in most cases.

I would suggest reading as, in my opinion, the best way forward for you:

For some background, read:

One problem with any mesh network in a domestic environment is that the mesh nodes can often be in very close proximity to each other (from a signal point of view). Mesh11sd has numerous options/tools to help with this.

A long and very detailed thread on the subject can be seen here:

1 Like

iirc the Turris Omnia comes with QCA9880 5 GHz WLAN, which would be a 802.11ac/wave1 chipset that doesn't support meshing with ath10k-ct (but it should be supported by plain ath10k). ath10k-ct only supports mesh modes for wave2 chipset generations.

The OP says the Omnia is running Turris OS, so it cannot be a mesh node unless he reflashes it. Even then, it would be a bottleneck, not being wifi 6.
Though with an ethernet link to the first meshnode it would be just fine.

I have not got to the bottom of the real situation (I don't have access to hardware types to test), but from fading memory, wave2 with ct did support a mesh interface, but did not support encryption on that interface. In addition, the total number of connections was very low (is it 8?) This total seemed to include the sum of ap sta connections and mesh sta connections, making it of little use for a mesh.
I may be mistaken and if not this may have changed but it seemed to be the case a couple of years ago.

Now, I always change to non-ct as a matter of course - just to be on the safe side.

It would be good to have a definitive answer though.

Technically I would have both types of hardware (wave1 bthub5a (lantiq vr9+QCA9880) and wave2 g10 (ipq8064+QCA9980), nbg6817 (ipq8065+qca9984), ax3600 (ipq8071a+QCA9889), but I never had a need to play with meshing, yet.

Normally I use ath10k on all of those except for the g10/ qca9980 (as there have been very few ath10k firmware updates for that one).

Thank you for your responses and @bluewavenet's clarification. I have now refreshed the correct terminology and recovered a bit from the sleepless night. Actually Turris Omnia only acts as a wired router (I have physically disconnected each WiFi card and antenna). The WiFi access is from the Linksys MX5300 nodes, one of which is connected to Omnia's LAN0 port.
Honestly so, the network overall works better than with the stock firmware, in terms of speed and stability of connections, even between the same nodes, which tended to lose connection for no apparent reason. I am only looking for a more basic guide to be able to take advantage of the B.A.T.M.A.N. routing protocol for mesh network management. This is still not enough for me

EDIT: Eventually with the Wiki and extraordinary persistence and patience I managed to configure what he wanted with the infamous B.A.T.M.A.N.