State of TP-Link Archer C7v2|v5 in 2021

Hey, my two cent on Archer c7 in 21
I use two v5 as APs and one v2 as router.
Other than @Catfriend1 I don't use mesh (802.11s) but 802.11 r,k,v with dawn.
I've been running openwrt/master snapshots and just recently switched to v21.02 snapshots.

I fully agree with: stability is better with non ct version of Firmware and kernel module.

Any attempts to use 802.11w for wpa3 fail for me, staying at wpa2 with ccmp.

My setup is not 100% stable, i.e. it requires a reboot of router/APs every now and then, but overall I'm happy. Maybe the 2.4GHz scans I've just recently added will help (see https://forum.openwrt.org/t/archer-c7-2-4-ghz-wireless-dies-in-24-48-hours/44163/150.)

I see some
daemon.err hostapd: nl80211: kernel reports: key addition failed
and a lot of
daemon.err dawn[3681]: Neigbor-Report is NULL!
(known issue see https://github.com/berlin-open-wireless-lab/DAWN/issues/108 btw @PolynomialDivision any update on 802.11k?)
in the log files, but roaming works just fine.

Based on Catfriends write up on building openwrt images (State of Archer C7 v2 in mid-2020 - #15 by Catfriend1) I did my own:

make menuconfig
# Selections
## Target System (Atheros ATH79 (DTS))
## Subtarget (Generic)
## Target Profile (TP-Link Archer C7 v5)

## Base system
### <*> sqm-scripts       (router only)
### < > dnsmasq           (router only)
### <*> dnsmasq-full      (router only)
### < > opkg

## Development
### <*> diffutils

## Firmware
### <*> ath10k-firmware-qca988x
### < > ath10k-firmware-qca988x-ct

## Kernel modules
### Filesystems
#### <*> kmod-fs-exfat
#### <*> kmod-fs-ext4
#### <*> kmod-fs-msdos
### USB Support
#### <*> kmod-usb-storage
### Wireless drivers
#### <*> kmod-ath10k
#### < > kmod-ath10k-ct
### Network Support
#### <*> Wireguard        (router only) 

## LuCI
### Collections
#### <*> luci
### Applications
#### <*> luci-app-adblock (router only)
#### <*> luci-app-dawn
#### <*> luci-app-sqm     (router only)
#### <*> luci-app-wireguard (router only)

## Network
### File Transfer
#### <*> wget-ssl
### IP Addresses and Names
#### <*> avahi-daemon-service-http
#### <*> stubby           (router only)
### VPN
#### <*> wireguard-tools  (router only)
### WirelessAPD
#### < > wpad-basic-wolfssl
#### <*> wpad-openssl
### <*> adblock           (router only)
### <*> dawn

## Utilities
### Editors
#### <*> vim-full
### Shells
#### <*> bash
### <*> less

my wireless config:

config wifi-device 'radio5'
        option type 'mac80211'
        option hwmode '11a'
        option path 'pci0000:00/0000:00:00.0'
        option country 'DE'
        option txpower '23'
        option htmode 'VHT80'
        option channel '116'
        option cell_density '0'

config wifi-iface 'default_radio0'
        option device 'radio5'
        option network 'lan'
        option mode 'ap'
        option key '###########'
        option ieee80211v '1'
        option ieee80211k '1'
        option bss_transition '1'
        option disassoc_low_ack '0'
        option max_inactivity '65000'
        option ieee80211r '1'
        option ft_psk_generate_local '1'
        option ssid '############'
        option ft_over_ds '1'
        option encryption 'psk2+ccmp'

config wifi-device 'radio24'
        option type 'mac80211'
        option hwmode '11g'
        option path 'platform/ahb/18100000.wmac'
        option htmode 'HT20'
        option channel '11'
        option country 'DE'
        option txpower '20'
        option cell_density '0'

config wifi-iface 'default_radio1'
        option device 'radio24'
        option network 'lan'
        option mode 'ap'
        option key '###########'
        option ieee80211v '1'
        option ieee80211k '1'
        option bss_transition '1'
        option disassoc_low_ack '0'
        option max_inactivity '65000'
        option ieee80211r '1'
        option ft_psk_generate_local '1'
        option ssid '############'
        option ft_over_ds '1'
        option encryption 'psk2+ccmp'

my dawn config

config network
        option broadcast_ip '192.168.1.255'
        option broadcast_port '1025'
        option tcp_port '1026'
        option network_option '2'
        option shared_key '###############'
        option iv '###############'
        option use_symm_enc '1'
        option collision_domain '-1'
        option bandwidth '-1'

config ordering
        option sort_order 'cbfs'

config hostapd
        option hostapd_dir '/var/run/hostapd'

config times
        option update_client '10'
        option denied_req_threshold '30'
        option remove_client '15'
        option remove_probe '30'
        option remove_ap '460'
        option update_hostapd '10'
        option update_tcp_con '10'
        option update_chan_util '5'
        option update_beacon_reports '80'

config metric
        option ap_weight '0'
        option max_chan_util_val '170'
        option max_station_diff '1'
        option deny_auth_reason '1'
        option deny_assoc_reason '17'
        option use_driver_recog '1'
        option chan_util_avg_period '3'
        option set_hostapd_nr '1'
        option op_class '0'
        option duration '0'
        option mode '0'
        option scan_channel '0'
        option rssi_val '-60'
        option eval_probe_req '1'
        option kicking '1'
        option vht_support '0'
        option min_probe_count '1'
        option min_number_to_kick '1'
        option low_rssi_val '-75'
        option eval_auth_req '1'
        option use_station_count '1'
        option bandwidth_threshold '10'
        option evalcd_assoc_req '1'
        option eval_assoc_req '1'
        option no_vht_support '0'
        option low_rssi '-100'
        option rssi '20'
        option freq '40'
        option chan_util_val '50'
        option max_chan_util '-10'
        option no_ht_support '0'
        option ht_support '0'
        option chan_util '5'
2 Likes

@umayer Thank you very much , I'd like to try dawn too :-). It's perfect to have an example :popcorn: . Btw do you know if it's also possible to configure DAWN for band steering EAP (enterprise radius) wireless networks?

Thanks @umayer

Would you be able to share how and why you changed your Dawn settings from the default values?

Sorry, I've just improved my home network. Relying on PSK only.

1 Like

@PolynomialDivision Sorry to wave my hand to get you in here. I'm just starting studying the docs on DAWN and like to know if the configuration with EAP RADIUS WiFi SSIDs is as easy (namely the same config/process) as setting it up on a PSK WiFi SSID? I remember 802.11r being more complex to setup for EAP, is the same applying for 802.11k, v?

1 Like

The option server_ip has probably not been in the default config when I started to use dawn, at least I don't recall removing it.

I've increased update_beacon_reports probably also because of this discussion: https://github.com/berlin-open-wireless-lab/DAWN/issues/108.

For an number of changes I looked at the source code, in particular at the function
eval_probe_metric in storage/datastorage.c which does compute the score value shown in the Hearing Map. The score is computed per STA per AP. It is used to sort the list of APs before sending it to a STA and thereby givins the STA a hint about alternate (better) APs to connect to.

freq is added to score for 5GHz (favouring the extra bandwidth)
rssi is added to score if the signal is stronger than rssi_val
low_rssi is added to score if the signal is weaker than low_rssi_val
chan_util is added to score if channel utilization is lower than chan_util_val
max_chan_util is added to score if channel utilization is greater than max_chan_util_val

With those numbers you can define rules, e.g.:
With low_rssi + freq < 0 2.4 GHz channels are higher in the list if their signal is better than low_rssi_val and the 5GHz channels are worse.
Similarly you can steer STAs to less utilized APs with chan_util.

The other values are related to kicking a STA off an AP.
kicking = 1 enables APs to actively remove STAs, forcing them to find a new AP.
If STA RX rate (actively used download bandwidth) is higher than bandwidth_threashold: don't kick (seems to be active)
min_number_to_kick threshold: only kick if concluded to kick this number of times

eval_probe_req, eval_auth_req, and eval_assoc_req are used in util/ubus.c to steer probe/authentication/association requests.
With the values != 0 they are handled even if they are not yet in the probe database.
I just played with those values as I do not understand the details.
Maybe @PolynomialDivision can chime in?

2 Likes

Thanks for the help. I found the code in storage/datastorage.c and will have a detailed look at the settings.

One more quick question. Have you noticed any issues or drops while roaming with "kick" enabled?

1 Like

Unfortunately, the build in post made my C7 V5 RU very slow and choppy, and even moreso with SQM. But I do use it as a NAT+AP all-in-one.

Please, open the pictures in new tabs, if they're too small here.

UPD: re-installing -ct drivers and kmod normalized everything back.

1 Like

never rebooted since the flash , got 21 days uptime and zero issue , real good work :slight_smile:

is anyone has been able able to have NFS to work ? I am not able to NFS export an HDD portable plugged on USB , I keep receiving this : /mnt/xxx does not support NFS export

Hence I've decided to install smb but not enough space :frowning:

Installing samba4-libs (4.13.8-1) to root...
Collected errors:
 * verify_pkg_installable: Only have 2636kb available on filesystem /overlay, pkg samba4-libs needs 6985
 * opkg_install_cmd: Cannot install package samba4-server.

when I look to free space I can see this, don't we have 16 MB NVRAM ? 5.6 MB sounds not right for me but I can be wrong

I am looking to free up some space , I don't use Mesh at all , which packages are safe to be deleted ?

root@TPLINK:/mnt/4To# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 8.3M      8.3M         0 100% /rom
tmpfs                    60.3M      1.2M     59.1M   2% /tmp
/dev/mtdblock4            5.6M      3.0M      2.6M  54% /overlay
overlayfs:/overlay        5.6M      3.0M      2.6M  54% /
tmpfs                   512.0K         0    512.0K   0% /dev
/dev/sda1                 3.6T     88.0M      3.6T   0% /mnt/4To

EDIT : I have removed the pkg for Mesh & BT and ... I have less free space available

/dev/mtdblock4            5.6M      3.0M      2.5M  54% /overlay
overlayfs:/overlay        5.6M      3.0M      2.5M  54% /

Is anyone has succeeded to install smb on this build on an Archer C7 V2 ?

See ya

XT

You'd be better using ImageBuilder to do-your-own image and leave packages out you do not need to save space. I built from official sources so there is no black magic why you need my build. Recipe is in the first post.

For that you need can set min_probe_count to 0. It was used to force a client to scan the whole band to get a better hearing map approach.

Sorry, for my late answer, but currently I do other things. If you want to help me going further with dawn. Maybe I can write in more detail.

As you can see in the PR https://github.com/berlin-open-wireless-lab/DAWN/pull/126

I want to go away from kicking clients and hearing maps to 802.11k only. So I can throw away all that checking of assoc and auth and probe requests.

Are you interested in legacy client steering, or are you also fine with just removing all that legacy stuff?

@umayer Also you described everything correctly. :wink: But as you can see it is a very complex task to steer clients in a good way. That is why I want to make it more easy.

The standards cover a lot and not only steering. However, just turning on 802.11v will directly improve roaming. More details here:

1 Like

Yep, for that I need a better handling of 802.11k. :wink:

1 Like

I've updated my first post with a link to 21.02.0-rc2 , using the same recipe for ImageBuilder like shown there.

Just a side note on my Archer C7v2's. I've seen some kernel log lines like this, related to the ath10k 5 GHz radio1. By doing a lot of tests as I own multiple devices, I found out that its a side-effect of USB 1 being not connected and USB 2 being connected to a USB Bluetooth Dongle (Belkin Bluetooth USB Stick, no BLE). If I unplug the device, those messages don't occur. I suspect its the Archer's hardware design to blame not providing enough power for the USB BT dongle.

[ 5745.145705] Rekeying PTK for STA AAA but driver can't safely do that.
[ 9342.978291] Rekeying PTK for STA AAA but driver can't safely do that.
[ 9411.995838] Rekeying PTK for STA BBB but driver can't safely do that.
[12943.878515] Rekeying PTK for STA AAA but driver can't safely do that.
[13012.966663] Rekeying PTK for STA BBB but driver can't safely do that.
[16544.686922] Rekeying PTK for STA AAA but driver can't safely do that.
[24111.145477] Rekeying PTK for STA BBB but driver can't safely do that.
[24116.243208] ath10k_pci 0000:00:00.0: failed to flush transmit queue (skip 0 ar-state 1): 0
[25873.512885] Rekeying PTK for STA AAA but driver can't safely do that.
[25878.526485] ath10k_pci 0000:00:00.0: failed to flush transmit queue (skip 0 ar-state 1): 0
[27716.844376] Rekeying PTK for STA BBB but driver can't safely do that.
[27721.960507] ath10k_pci 0000:00:00.0: failed to flush transmit queue (skip 0 ar-state 1): 0
[29479.216758] Rekeying PTK for STA AAA but driver can't safely do that.
[29484.243547] ath10k_pci 0000:00:00.0: failed to flush transmit queue (skip 0 ar-state 1): 0
[31325.576783] Rekeying PTK for STA BBB but driver can't safely do that.
[31330.749931] ath10k_pci 0000:00:00.0: failed to flush transmit queue (skip 0 ar-state 1): 0
[33088.007513] Rekeying PTK for STA AAA but driver can't safely do that.
[33093.034027] ath10k_pci 0000:00:00.0: failed to flush transmit queue (skip 0 ar-state 1): 0
[34934.269452] Rekeying PTK for STA BBB but driver can't safely do that.
[34939.286006] ath10k_pci 0000:00:00.0: failed to flush transmit queue (skip 0 ar-state 1): 0
[36696.582167] Rekeying PTK for STA AAA but driver can't safely do that.
[36701.827281] ath10k_pci 0000:00:00.0: failed to flush transmit queue (skip 0 ar-state 1): 0
[38543.050255] Rekeying PTK for STA BBB but driver can't safely do that.
[38548.080235] ath10k_pci 0000:00:00.0: failed to flush transmit queue (skip 0 ar-state 1): 0
[50551.118039] Rekeying PTK for STA AAA but driver can't safely do that.
[51163.665078] Rekeying PTK for STA AAA but driver can't safely do that.
[54151.953580] Rekeying PTK for STA AAA but driver can't safely do that.
[54269.908168] Rekeying PTK for STA BBB but driver can't safely do that.

Than you @Catfriend1 for supplying us with a running image!

Unfortunately its speed seems to be limited.
Via 5 Ghz(80HZ) im only to reach 250Mbit down.

Different, older builds would be able to go up to 500-600 Mbits. Is there anything we can do?
best & thank you again !

btw Software flow offloading is activated and im running your latest rc3 image

1 Like

Which type of encryption / scenario do you use? Multi Ssid?

Yes, i use multiple SSIDs, both on the 2,4 & 5 Ghz band. only a couple of devices in use.
Encryption is WPA2 PSK (CCMP)

Does this have something to do with the speed?
Sorry im a noob, dont know much about networking.

Does this help?

yes, see Overall slow 2.4 GHz WiFi on OpenWrt devices - #26 by ACwifidude

1 Like

This is a very crowded enviroments with lots of differents wiFis across the spectrum.
For testing purposes, i've also disabled all but 1 SSIDs.

Funny thing is: The modem/router from my isp gives me constant speed upwards of 500 mbits on the same 5 Ghz channels (80 width) during testing...
Is there anything else we can do to speed up the Archer?