802.11s Configuration references? (TP-Link Archer C7)

I've had several TP-Link Archer C7 units running APs on both 2.4 GHz and 5 GHz, with backahul between them running over WDS on a dedicated 5 GHz channel mainly successfully for some time now.

I've had some issues with ARP in my setup and wanted to move to 802.11s in the hopes that it would resolve it cleanly. Unfortunately, I haven't been able to find much good documentation. My first question is if there is something better written than

https://wiki.openwrt.org/doc/howto/mesh.80211s
(which fails to explain any of the steps, especially the later iw commands)

or

I'm running Reboot (17.01.1, r3316-7eb58cf109)
on two TP-Link Archer C7 v2 units, that are known good under AP and WDS on both bands.

I have not been able to get the radios to "turn on" at least as seen by the scans on other radios, nor have the two of them associated with each other.

If anyone is more familiar with getting 802.11s to work and has some suggestions, I would appreciate it.

I've confirmed that the radios appear to support mesh configuration at the driver level using iw list

phy1 (2.4 GHz)

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

phy0 (5 GHz)

	valid interface combinations:
		 * #{ AP, mesh point } <= 8, #{ managed } <= 1,
		   total <= 8, #channels <= 1, STA/AP BI must match, radar detect widths: { 20 MHz (no HT), 20 MHz, 40 MHz, 80 MHz }

As I haven't found any documentation on what #{ managed } means, I chose to keep things simple and start with and stick with 2.4 GHz

I first updated all packages with opkg upgrade $(opkg list-upgradable | cut -f 1 -d ' ')

Based on the descriptions of wpad at https://wiki.openwrt.org/doc/howto/wireless.utilities#wpad I uninstalled wpad-mini and installed wpad-mesh

Again, starting simple, I tried to configure for no authentication for the mesh. Apparently this is all LuCI supports at this time.

root@coop:~# uci show wireless
wireless.radio0=wifi-device
wireless.radio0.type='mac80211'
wireless.radio0.hwmode='11a'
wireless.radio0.path='pci0000:01/0000:01:00.0'
wireless.radio0.htmode='VHT80'
wireless.radio0.channel='149'
wireless.radio0.country='US'
wireless.radio0.txpower='30'
wireless.radio1=wifi-device
wireless.radio1.type='mac80211'
wireless.radio1.hwmode='11g'
wireless.radio1.path='platform/qca955x_wmac'
wireless.radio1.htmode='HT20'
wireless.radio1.txpower='23'
wireless.radio1.country='US'
wireless.radio1.channel='6'
wireless.@wifi-iface[0]=wifi-iface
wireless.@wifi-iface[0].device='radio1'
wireless.@wifi-iface[0].encryption='none'
wireless.@wifi-iface[0].ssid='SeeThrough'
wireless.@wifi-iface[0].mode='mesh'
wireless.@wifi-iface[0].network='mesh'

10.11.12.1/24 is configured on one unit, 10.11.12.2/24 on the other. Neither is bridged at this time. Access is wired, through br-lan on a different net.

network.mesh=interface
network.mesh._orig_ifname='wlan1'
network.mesh._orig_bridge='false'
network.mesh.proto='static'
network.mesh.ipaddr='10.11.12.2'
network.mesh.netmask='255.255.255.0'

The interface apparently does not come up, with the following log messages

Thu Jul  6 07:54:11 2017 daemon.notice netifd: Interface 'mesh' is now down
Thu Jul  6 07:54:11 2017 daemon.notice netifd: Interface 'mesh' is disabled
Thu Jul  6 07:54:12 2017 kern.info kernel: [ 1804.621138] IPv6: ADDRCONF(NETDEV_UP): wlan1: link is not ready
Thu Jul  6 07:54:12 2017 daemon.notice netifd: radio1 (8893): command failed: Invalid argument (-22)
Thu Jul  6 07:54:12 2017 daemon.notice netifd: Interface 'mesh' is enabled
Thu Jul  6 07:54:12 2017 daemon.notice netifd: Interface 'mesh' is setting up now
Thu Jul  6 07:54:12 2017 daemon.notice netifd: Interface 'mesh' is now up
Thu Jul  6 07:54:13 2017 daemon.info odhcpd[828]: Using a RA lifetime of 0 seconds on br-lan

Trying manual configuration with authentication at least removes the logged failure, but the SSID is not seen by other radios' scans, nor do the two units associate.

Edit: uci set wireless.@wifi-iface[0].encryption='none' and uci set wireless.@wifi-iface[0].key='BigSecret' removes the log error as well, but apparently does not enable the radio to be seen by others' scans, nor do the two units associate. This suggests that the wifi script or that which it calls is not robust to the absence of a key when there is no encryption requested.

wireless.@wifi-iface[0]=wifi-iface
wireless.@wifi-iface[0].device='radio1'
wireless.@wifi-iface[0].ssid='SeeThrough'
wireless.@wifi-iface[0].network='mesh'
wireless.@wifi-iface[0].mode='mesh'
wireless.@wifi-iface[0].encryption='psk2/aes'
wireless.@wifi-iface[0].key='BigSecret'
Thu Jul  6 08:24:43 2017 daemon.notice netifd: Interface 'mesh' is now down
Thu Jul  6 08:24:43 2017 daemon.notice netifd: Interface 'mesh' is disabled
Thu Jul  6 08:24:44 2017 kern.info kernel: [ 3426.222435] IPv6: ADDRCONF(NETDEV_UP): wlan1: link is not ready
Thu Jul  6 08:24:44 2017 daemon.info odhcpd[828]: Using a RA lifetime of 0 seconds on br-lan
Thu Jul  6 08:24:44 2017 daemon.notice netifd: radio1 (4887): Successfully initialized wpa_supplicant
Thu Jul  6 08:24:45 2017 daemon.notice netifd: Interface 'mesh' is enabled
Thu Jul  6 08:24:45 2017 daemon.notice netifd: Interface 'mesh' is setting up now
Thu Jul  6 08:24:45 2017 daemon.notice netifd: Interface 'mesh' is now up
Thu Jul  6 08:24:46 2017 daemon.info odhcpd[828]: Using a RA lifetime of 0 seconds on br-lan

I definitely could use some pointers as either where to get more information, or what might resolve these issues.

Thanks!

Jeff


has some "manual" information, but something seems to be missing, as the interface created

  • Won't take 10.11.12.3/24 as an address ('bad address" even though ifconfig --help indicates it is valid syntax)
  • Won't take netmask 255.255.255.0
  • Won't come up
   \  DE    \  /    Reboot (17.01.1, r3316-7eb58cf109)
    \________\/    -----------------------------------------------------------

root@coop:~# iw dev wlan1 interface add mesh_wlan type mp
root@coop:~# iw dev mesh_wlan set channel 6
root@coop:~# ifconfig mesh_wlan
mesh_wlan Link encap:Ethernet  HWaddr 30:B5:C2:FB:65:29  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

root@coop:~# ifconfig mesh_wlan 10.11.12.3 netmask 255.255.255.0
ifconfig: SIOCSIFFLAGS: No error information
root@coop:~# ifconfig mesh_wlan
mesh_wlan Link encap:Ethernet  HWaddr 30:B5:C2:FB:65:29  
          inet addr:10.11.12.3  Bcast:10.255.255.255  Mask:255.0.0.0
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

root@coop:~# iw dev mesh_wlan mesh join SeeThrough
command failed: Network is down (-127)
root@coop:~# ifconfig mesh_wlan up
ifconfig: SIOCSIFFLAGS: No error information
root@coop:~# ifconfig mesh_wlan
mesh_wlan Link encap:Ethernet  HWaddr 30:B5:C2:FB:65:29  
          inet addr:10.11.12.3  Bcast:10.255.255.255  Mask:255.0.0.0
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

root@coop:~# iw dev mesh_wlan mesh join SeeThrough
command failed: Network is down (-127)
root@coop:~# ifconfig mesh_wlan 10.11.12.3/24
ifconfig: bad address '10.11.12.3/24'

You need to set a mesh_id instead of a ssid. That is not supported by LUCI. You also need to explicitly set all your mesh points to the same RF channel.

To encrypt the mesh, install the authsae package and set encryption=authsae and a key= of at least 8 characters like a WPA key. Encryption has worked for me on ath9k but trying to enable it on an ath10k radio always crashed the driver.

A {managed} interface is a STA or client to an AP.

1 Like

search the openwrt forum. I've posted some stuff there including configs in a couple of different threads.
Strongly suggest you get it working with unencrypted first then add encryption.
You must use the cli, avoid doing anything to the wireless config via luci as it can undo part of your configs.

Thanks, yes, changing to mesh_id resolved the connectivity issues. Everything done by either direct-edit of the config files, or using uci

Thanks also to @mk24 for clarifying #{ managed } for me. Not clear why I would want to associate as a client to multiple APs on the same channel, but at least it tells me that a limit of one isn't going to impact my intended topology.

I appear to have been able to add encryption to the link with

root@coop:~# uci set wireless.@wifi-iface[0].encryption='psk2/aes'
root@coop:~# uci set wireless.@wifi-iface[0].key='SuperSecret'

with wpad-mesh installed.

I haven't snooped the RF, so can't completely confirm connectivity or encryption, but the route table looks correct, ping works across the two nodes, and I get

root@coop:~# iw dev wlan1 station dump
Station 30:b5:c2:aa:43:31 (on wlan1)
	inactive time:	810 ms
	rx bytes:	89382
	rx packets:	1127
	tx bytes:	2465
	tx packets:	19
	tx retries:	8
	tx failed:	0
	rx drop misc:	3
	signal:  	-70 [-78, -71, -78] dBm
	signal avg:	-70 [-77, -72, -79] dBm
	Toffset:	18446744072593432486 us
	tx bitrate:	39.0 MBit/s MCS 4
	rx bitrate:	6.5 MBit/s MCS 0
	expected throughput:	22.338Mbps
	mesh llid:	0
	mesh plid:	0
	mesh plink:	ESTAB
	mesh local PS mode:	ACTIVE
	mesh peer PS mode:	ACTIVE
	mesh non-peer PS mode:	ACTIVE
	authorized:	yes
	authenticated:	yes
	associated:	yes
	preamble:	long
	WMM/WME:	yes
	MFP:		yes
	TDLS peer:	no
	DTIM period:	2
	beacon interval:1000
	connected time:	694 seconds

LuCI does show Associated Stations be Mesh Point "radio1.network1" in case someone is following along.

As noted, LuCI, at least as of lede-17.01 branch (git-17.163.57307-c79bb96), is not sufficient to edit the required configuration.

Changing to the 5 GHz radio with uci set wireless.@wifi-iface[0].device='radio0' on both units appears to successfully create the link. I noted that mesh peer PS mode: UNKNOWN in the station dump changed to ACTIVE after noting that there was a log message indicating there was a tcn bpdu (STP topology-change notice).

With the link apparently active, next steps will be to bridge a 5-GHz backhaul to 2.4-GHz APs (on various channels).

Hey guys

I have also the same problem meaning that when I am about to use radio1 (5 GHz) using 802.11s mesh mode, the radio wont be turned on . I am using D'link router dir 825 with LEDE firmware(LuCI).

some one said this problem is solved when mesh id is set however i see no mesh id in configuration just Essid can be set. shall I set myself in the wireless configuration file ? shall I install authsae first for authentication ? That would be great if someone guide me through this and tell what packages are required to make this work .

Thanks in advanced

Read my reply above

Thank for your reply

I have reseted my router and enabled radio1 (5GHz) (enabled(in ap mode) and disabled dosent matter). and set wlan1 interface via cli interface.

I removed wpad-mini package and installed wpad-mesh instead

root@LEDE:~# iw dev waln1 interface add backhaul type mp mesh_id test
root@LEDE:~# ifconfig backhaul 192.168.1.10 netmask 255.255.255.0
root@LEDE:~# ifconfig backhaul

backhaul Link encap:Ethernet HWaddr 00:18:E7:D3:2B:72
inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

root@LEDE:~# uci show wireless
wireless.radio0=wifi-device
wireless.radio0.type='mac80211'
wireless.radio0.channel='11'
wireless.radio0.hwmode='11g'
wireless.radio0.path='pci0000:00/0000:00:11.0'
wireless.radio0.htmode='HT20'
wireless.radio0.disabled='1'
wireless.default_radio0=wifi-iface
wireless.default_radio0.device='radio0'
wireless.default_radio0.network='lan'
wireless.default_radio0.mode='ap'
wireless.default_radio0.ssid='LEDE'
wireless.default_radio0.encryption='none'
wireless.radio1=wifi-device
wireless.radio1.type='mac80211'
wireless.radio1.channel='36'
wireless.radio1.hwmode='11a'
wireless.radio1.path='pci0000:00/0000:00:12.0'
wireless.radio1.htmode='HT20'
wireless.default_radio1=wifi-iface
wireless.default_radio1.device='radio1'
wireless.default_radio1.network='lan'
wireless.default_radio1.mode='ap'
wireless.default_radio1.ssid='LEDE'
wireless.default_radio1.encryption='none'

but the problem is nothing happens in wireless LuCI radio1 interface just it creates a physical interface to choose when you are creating a interface. nth else. nothing also changes in my configuration files dont know why .

root@coop:~# iw dev wlan1 station dump
this command doesnt do anything also !

Any suggestions ?

that would be greatly appreciated if you can send me your configuration files, i really need to make this work

Ignore LuCI and what it says when you are trying to run 802.11s. It doesn't have access to the "right" parameters.

See the configuration above and note the helpful hint from @mk24 that it needs to be mesh_id and not ssid

Right now I'm completely redoing my WiFi, so I don't have the config up and running.

Thanks my friend

After hours of configuring two routers I got this result on 1st router, however the radio1 is not turned on just getting signals (75%) and can detect each other and the same command for the second router shows"peer ps mode" as unknown instead of ACTIVE and has tx faild : 2 . I am using both ssid and mesh may be I should remove ssid

root@LEDE:~# iw dev wlan1 station dump
Station 00:18:e7:d3:2b:72 (on wlan1)
inactive time: 10 ms
rx bytes: 127370
rx packets: 1991
tx bytes: 266
tx packets: 3
tx retries: 0
tx failed: 0
rx drop misc: 6
signal: -69 [-77, -69] dBm
signal avg: -68 [-75, -69] dBm
Toffset: 4922840 us
tx bitrate: 52.0 MBit/s MCS 5
rx bitrate: 26.0 MBit/s MCS 3
mesh llid: 13848
mesh plid: 11747
mesh plink: ESTAB
mesh local PS mode: ACTIVE
mesh peer PS mode: ACTIVE
mesh non-peer PS mode: ACTIVE
authorized: yes
authenticated: yes
associated: yes
preamble: long
WMM/WME: yes
MFP: no
TDLS peer: no
DTIM period: 2
beacon interval:100
short slot time:yes
connected time: 102 seconds

but I think they dont seem to see (ping) each other and I dont know if i should configure the firewall for that or not.

Here are my configuration files

For wireless :
config wifi-iface 'mesh'
option device 'radio1'
option mode 'mesh'
option ssid 'GetIn'
option mesh_id 'Backhaul'
option encryption 'none'
option network 'Meshif'

For network
config interface 'Meshif'
option proto 'static'
option ipaddr '192.168.1.11'
option netmask '255.255.255.0'
option type 'bridge'
option _orig_ifname 'wlan1'
option _orig_bridge 'true'

root@LEDE:~# uci show network
network.loopback=interface
network.loopback.ifname='lo'
network.loopback.proto='static'
network.loopback.ipaddr='127.0.0.1'
network.loopback.netmask='255.0.0.0'
network.globals=globals
network.globals.ula_prefix='fd28:1d5e:fd56::/48'
network.lan=interface
network.lan.type='bridge'
network.lan.ifname='eth0'
network.lan.proto='static'
network.lan.ipaddr='192.168.1.1'
network.lan.netmask='255.255.255.0'
network.lan.ip6assign='60'
network.@switch[0]=switch
network.@switch[0].name='switch0'
network.@switch[0].reset='1'
network.@switch[0].enable_vlan='1'
network.@switch_vlan[0]=switch_vlan
network.@switch_vlan[0].device='switch0'
network.@switch_vlan[0].vlan='1'
network.@switch_vlan[0].ports='0 1 2 3 5'
network.Meshif=interface
network.Meshif.proto='static'
network.Meshif.ipaddr='192.168.1.11'
network.Meshif.netmask='255.255.255.0'
network.Meshif._orig_ifname='wlan1'

Hi All,
Checking in on this thread to see if any one has gotten Archer c7 v2 working with 5ghz Mesh 802.11s with encryption and AP on the same radio ?

I've tested with v17.01.4 and older releases. Changed ATHK10 Firmware All end up in the same results of stack trace.
Any guidance on getting it going would be appreciated .

I've also experience the same results on a TP-LINK 4300

[ 1062.706278] WARNING: CPU: 0 PID: 8 at backports-2017-10-06/net/mac80211/ieee80211_i.h:1411 ieee80211_debugfs_key_sta_del+0xc8/0x7b0 [mac80211] [ 1062.719240] Modules linked in: ath9k ath9k_common pppoe ppp_async ath9k_hw ath10k_pci ath10k_core ath pppox ppp_generic nf_conntrack_ipv6 mac80211 iptable_nat ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_conntrack xt_comment xt_TCPMSS xt_REDIRECT xt_LOG slhc nf_reject_ipv4 nf_nat_redirect nf_nat_masquerade_ipv4 nf_conntrack_ipv4 nf_nat_ipv4 nf_nat nf_log_ipv4 nf_defrag_ipv6 nf_defrag_ipv4 nf_conntrack_rtcache nf_conntrack iptable_mangle iptable_filter ip_tables crc_ccitt compat ledtrig_usbport ip6t_REJECT nf_reject_ipv6 nf_log_ipv6 nf_log_common ip6table_mangle ip6table_filter ip6_tables x_tables ehci_platform ehci_hcd gpio_button_hotplug usbcore nls_base usb_common
[ 1062.785252] CPU: 0 PID: 8 Comm: kworker/u2:1 Tainted: G W 4.9.58 #0
[ 1062.792825] Workqueue: phy0 ieee80211_ibss_leave [mac80211] [ 1062.798479] Stack : 87c03414 87c70f18 00000088 800a9b84 87c2e69c 80461247 804136fc 00000008
[ 1062.807024] 80413668 87c73b54 80460000 800d923c 00000088 800a9b84 80418f2c 80460000
[ 1062.815569] 00000003 87c73b54 80460000 800953f0 00000088 87c73b8c 00000000 80222df8
[ 1062.824113] 804736b0 80222d00 87693a44 87f6c500 87f6c600 70687930 00000000 00000000
[ 1062.832658] 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 1062.841204] ...
[ 1062.843694] Call Trace:
[ 1062.846174] [<8006b2e8>] show_stack+0x54/0x88 [ 1062.850604] [<80080530>] __warn+0xe4/0x118 [ 1062.854775] [<800805f8>] warn_slowpath_null+0x1c/0x34 [ 1062.859971] [<876c8698>] ieee80211_debugfs_key_sta_del+0xc8/0x7b0 [mac80211]

Just tried adding an AP to the same radio as running the encrypted mesh without success (LuCI-generated)
It seems like the mesh connectivity dies when I do:

config wifi-iface
	option device 'radio1'
	option mode 'ap'
	option encryption 'none'
	option ssid 'Test'

It comes up and I can see it on non-mesh devices

phy#0
	Interface wlan0-1
		ifindex 61
		wdev 0x6
		addr <redacted>
		ssid Test
		type AP
		channel 149 (5745 MHz), width: 80 MHz, center1: 5775 MHz
		txpower 30.00 dBm
	Interface wlan0
		ifindex 60
		wdev 0x5
		addr <redacted>
		type mesh point
		txpower 0.00 dBm

I have not tried encryption as of yet, as I just needed something so I could see signal strength (the 802.11s doesn't show up on my phone's monitor app).

Edit:

On the symptoms that @cititechs pointed out https://bugs.openwrt.org/index.php?do=details&task_id=1453, no "known-good" points that I could find in the recent lede-17.01 branch for combined mesh and AP on the same radio at of March 20, 2018.

Somewhat older master builds functional for mesh and AP on the same radio, with encryption and authentication using wpad-mesh as well as gretap configuration through UCI. The latest known-good commit for these features at this time is

commit d57ca53ff9d0f6236ab4d5fb7d5585da6596aef9
Author: John Crispin <john@phrozen.org>
Date:   Tue Mar 13 13:09:59 2018 +0100

The commit immediately following that above appears to break UCI configuration of gretap interfaces