Simple 802.11s Meshing

Hi

Adding a simple 802.11s mesh capability to OpenWrt/LEDE based routers is straightforward and just requires some simple modifications to the /etc/config/wireless and network files.

Below are sample files for an AR150 modified to add meshing on the WAN interface.

In the wireless config file, a section has been added to create a Meshpoint interface called ‘wlan0-1’, and this interface is attached to the ‘wan’ network.
In the network config file, the ‘wan’ network has been set to type ‘bridge’ so that the ‘eth0’ and ‘wlan0-1’ interfaces are bridged together.

In practice, the effect of adding the mesh capability as shown is that if you set up several devices like this, then if one device is connected to an upstream network via its WAN Ethernet port e.g. for Internet access, then the upstream connection will be shared across all the devices. It is just as if all the Ethernet WAN ports of the devices were connected to a network switch on the upstream network.

To see details of other nodes on the mesh, use the command:

iw wlan0-1 station dump

To disable the mesh interface, in the mesh section of the wireless config file, set:
option disabled ‘1’

 

In the example shown, the wifi mesh interface is attached to the ‘wan’ network, but it could alternatively be attached to the ‘lan’ network bridge.
The effect of this would be as if the LAN ports of all the devices were connected to a network switch. Of course in this scenario, you would have to ensure that each device has a distinct static IP address assigned to its ‘lan’ network to avoid address contention.

For more complex mesh networking, batman-adv provides more elaborate facilities but requires some additional setting up and memory usage on the device.

Note that for any device with a single wifi radio, using a Mesh interface in addition to the AP interface shares the resources of the wifi subsystem and the wifi channel, so there are practical limits to how far you can scale up the network.

T


/etc/config/wireless

config wifi-device ‘radio0’
option type ‘mac80211’
option channel ‘11’
option path ‘platform/ar933x_wmac’
option htmode ‘HT20’
option hwmode ‘11ng’
option txpower ‘18’

config wifi-iface
option device ‘radio0’
option network ‘lan’
option mode ‘ap’
option ssid ‘GL-AR150-9fb’
option encryption ‘psk-mixed’
option key ‘goodlife’
option wds ‘1’
option ifname ‘wlan0’

Add this section

config wifi-iface
option device ‘radio0’
option ifname ‘wlan0-1’
option mode ‘mesh’
option mesh_id ‘mymesh’
option network ‘wan’
option encryption ‘none’
option mesh_fwding ‘1’
option disabled ‘0’


/etc/config/network

config interface ‘loopback’
option ifname ‘lo’
option proto ‘static’
option ipaddr ‘127.0.0.1’
option netmask ‘255.0.0.0’

config globals ‘globals’
option ula_prefix ‘fde5:f328:d9ba::/48’

config interface ‘lan’
option ifname ‘eth1’
option force_link ‘1’
option type ‘bridge’
option proto ‘static’
option netmask ‘255.255.255.0’
option ip6assign ‘60’
option hostname ‘GL-AR150-9fa’
option ipaddr ‘192.168.8.1’

config interface ‘wan’
option type ‘bridge’ #### Add this line ###
option ifname ‘eth0’
option proto ‘dhcp’
option hostname ‘GL-AR150-9fa’

config interface ‘wan6’
option ifname ‘eth0’
option proto ‘dhcpv6’


Thanks for this. It is very helpful.

I have been using this for some time and can confirm it works very well.

But note it is only supported by the wifi chips in the AR series products.

 

I have tested this on a GL-MT300A device running LEDE 17.01 and it works fine, inter-operating with an AR150 running original GL-inet firmware modified as above.

@bluewavenet - I suspect your issue with running this on non-AR devices may have been due to limitations of the wifi drivers in earlier versions of OpenWrt.

The wifi drivers for the MT devices have been upgraded in recent times and it certainly works ok now with the LEDE firmware.

Regards
Terry

@Terry

In Lede 17.01.4 due to issues with the mt76 drivers, 80211s mode is not currently available as far as I am aware and also the the mt7628 is not supported at all. This is due to the closed policy of the chip manufacturers making reverse engineering of an open source driver very difficult. There is work apparently going on in Lede snapshots but it seems painfully slow progress if any at all recently.

My point is that anyone wanting to purchase hardware to work with 80211s mesh would be advised to go with the AR- products. I have found the AR-300M Lite makes an exceptionally good value meshpoint.

@bluewavenet

I agree that support in LEDE/OpenWrt for 802.11s (and other features) seems to be much better for the Qualcomm/Atheros chipsets than for the Mediatek chipsets, due no doubt to the long history of support of open source development by Atheros.

802.11s certainly works currently for the MT300A device (based on the MTK7620 chipset) in LEDE 17.01.4, but it may well be problematic for other chipsets as you mention.

The AR300M devices certainly represent good value.

@Terry

That’s interesting. It is a couple of months ago when I was working with an MT300A and found it was not working. IW did not report mesh functionality and the drivers ignored the uci config for 802.11s.
However I have a new unused model in stock as a spare so will give it a try. I also can get hold of an MT300N to try as well ( almost identical ).
Perhaps I did something wrong at the time, it would be nice if they both work :smiley:

 

 

 

@bluewavenet

Just to clarify, my test on the MT300A device was using a LEDE 17.01 build rather than the original OEM firmware on the device, which I think from memory is based on OpenWrt CC which may not have the 802.11s support.

(The example on the AR150 device was using the OEM firmware)

For info, the splash screen and iw output from my LEDE build on the MT300A build is as follows:

DISTRIB_DESCRIPTION=‘LEDE Reboot 17.01-SNAPSHOT r2993+219-0a3088c’ DISTRIB_REVISION=‘r2993+219-0a3088c’

root@MT300A-20:~# iw dev
phy#0
Interface wlan0
ifindex 8
wdev 0x3
addr e4:95:6e:40:12:34
ssid VT-SECN-AP
type AP
channel 11 (2462 MHz), width: 20 MHz, center1: 2462 MHz
txpower 20.00 dBm
Interface wlan0-1
ifindex 7
wdev 0x2
addr e4:95:6e:40:12:35
type mesh point
channel 11 (2462 MHz), width: 20 MHz, center1: 2462 MHz
txpower 20.00 dBm

 

I think this explains it. I have used Lede 17.01.4 stable release and found it did not work with the mt76 driver whereas you are using a snapshot. This bodes well for the upcoming OpenWrt 18 release.

:wink:

I bought a AR750 and an B1300 to try this with.

The B1300 is the main router node who’s WAN is connected to an upstream network via its WAN Ethernet port, this part is working.

When I configure the AR750 by adding the wifi-iface section to /etc/config/wireless and the bridge option to /etc/options/network, it brings a ‘mymesh’ network online. When I use a client to connect to it, I get an error:

Failed to add connection
802-11-wireless mode: connection does not match access point.

The AR750 has openwrt version 19.07.7
The B1300 has openwrt version 15.05

Just so I understand, I have to add the wifi-iface section to the wireless file on both devices correct? Do I also add the bridge option to the network file on both devices?

Any ideas on what I am doing wrong?

Thanks for writing this guide.

A couple of suggestions:

  1. Post the complete /etc/config/wireless and /etc/config/network files for both devices so we can see what you have set up. (Remove/modify any passwords and MAC addresses).

  2. Run the same version of OpenWRT on both devices if at all possible. The differences between 15.05 and 19.07 are pretty significant so it is likely this will cause you some headaches along the way.

  3. Both devices should essentially be set up the same way i.e. with the wi-iface section and bridge option.

T