User Tools

Site Tools


docs:guide-user:network:wifi:mesh:80211s

802.11s based wireless mesh network

802.11s is an open-source standard for connecting wireless devices without having to set up infrastructure. It operates on Layer 2 and makes sure that all nodes see each other on Layer 2 (as if they were all plugged in a switch). It means that you will need more Layer 3 infrastructure for TCP/IP to work (assign IP addresses, etc).

:!: TODO clarify the following: To connect end-user devices without infrastructure see P2P (Wi-Fi Direct)FIXME or IBSS (ad-hoc). Ad-Hoc is used in B.A.T.M.A.N and OLSR

See also B.A.T.M.A.N / batman-adv where configuration and set up of encrypted, authenticated 802.11s is briefly described (OpenWrt 18.06 and later).

Status

802.11s works reliably with OpenWrt 18.06 and later, including authentication and encryption, assuming that there is hardware/driver support and that wpad-mesh (or equivalent) has been installed.

Open 802.11s should work with Chaos Calmer (15.05) and above, instructions are updated for latest OpenWrt, last test on June 2018, encryption may have issues.

Relevant issues in the tracker:

Config

Install dependencies (if short on space may use wpad-mesh instead):

# opkg remove wpad-mini
# opkg install wpad

Edit /etc/config/wireless and make sure:

  • radio0 is not disabled
  • radio0 is configured to be compatible on each device (same channel, etc)
  • add an iface entry along these lines:
config wifi-iface 'mesh'
        option network 'mesh'
        option device 'radio0'
        option mode 'mesh'
        option mesh_id 'your-mesh-name' # anything, this connects the nodes into one mesh (plus the password if there's any)
        option encryption 'psk2/aes' # or 'none'
        option key 'your-secret-password'

For a complete list of mesh parameters you can inspect the values of the following variables in mac80211.sh Source:

  • MP_CONFIG_INT
  • MP_CONFIG_BOOL
  • MP_CONFIG_STRING

Then reinitialize wifi and see if it worked:

# wifi
# logread -l 20 -f
# iw dev wlan0 station dump

Known Issues

:!: Support for 802.11s (type mesh) depends on wireless driver

:!: 802.11s , P2P-GO or P2P-client (Wi-Fi Direct), IBSS are less often used. There might be bugs.

Use the following to determine if your hardware supports 802.11s mesh.

iw list | grep "Supported interface modes" -A 9

...
      Supported interface modes:
                 * IBSS
                 * managed
                 * AP
                 * AP/VLAN
                 * WDS
                 * monitor
                 * mesh point
                 * P2P-client
		 * P2P-GO
...
  • Having multiple mesh points, APs depends on the wireless driver

Example: ath9k in router

iw list
...
valid interface combinations:
		 * #{ managed, WDS } <= 2048, #{ AP, mesh point } <= 8, #{ P2P-client, P2P-GO } <= 1, #{ IBSS } <= 1,
		   total <= 2048, #channels <= 1, STA/AP BI must match
		 * #{ IBSS, AP, mesh point } <= 1,
		   total <= 1, #channels <= 1, STA/AP BI must match, radar detect widths: { 20 MHz (no HT), 20 MHz }
...

Example: ath9k_htc USB Stick

iw list
...
valid interface combinations:
		 * #{ managed, P2P-client } <= 2, #{ AP, mesh point, P2P-GO } <= 2,
		   total <= 2, #channels <= 1
...

Using the command line CLI

iw is a new nl80211 based CLI configuration utility for wireless devices.more...

Create a new interface “mesh0”

iw phy phy0 interface add mesh0 type mp mesh_id mymesh

Confirm that the new interface exists

ifconfig -a | grep mesh0

     mesh0      Link encap:Ethernet  HWaddr 00:18:39:14:48:B5

Bring up your mesh0 interface

ifconfig mesh0 up

Assign the interface an IP address. ie: 10.0.0.x

ifconfig mesh0 10.0.0.1

By default, mesh points will use channel 1 and automatically attempt to create peer links with mesh nodes with the same mesh ID and channel.

Verify

Use the iw command to display peer links or a table of reachable nodes in your mesh

iw dev $MESH_IFACE station dump
iw dev $MESH_IFACE mpath dump

Example:

iw dev $MESH_IFACE station dump
    Station 00:15:6d:84:14:10 (on mesh)
         inactive time:  1320 ms
         rx bytes:   352
         rx packets: 4
         tx bytes:   174
         tx packets: 2
         signal:     -61 dBm
         tx bitrate: 1.0 MBit/s
         mesh llid:  32577
         mesh plid:  15969
         mesh plink: ESTAB
    Station 00:15:6d:84:14:09 (on mesh)
         inactive time:  3370 ms
         rx bytes:   1064
         rx packets: 12
         tx bytes:   545
         tx packets: 7
         signal:     -53 dBm
         tx bitrate: 1.0 MBit/s
         mesh llid:  41036
         mesh plid:  24435
         mesh plink: ESTAB

More background

docs/guide-user/network/wifi/mesh/80211s.txt · Last modified: 2018/09/04 21:12 by jeff