R7500v2 (ath10k 9980) netperf observations, firmware/board-2.bin files, and other wifi issues

@slh and/or @ansuel, if either of you have a minute and have a device running a recent master build with the ath10k-ct driver and firmware, could you do iw list and post the output below "Supported extended features:" for the 5GHz phy?

I'm looking for a line like:

[ AIRTIME_FAIRNESS ]: airtime fairness scheduling

For example, the output from a r7800 shown here does output such a line.

The output from the r7500v2 (built Nov 8 with kernel 5.10.78, ath10k-firmware-qca99x0-ct-full-htt - 2020-11-08-1 and kmod-ath10k-ct - 5.10.78+2021-09-22-e6a7d5b5-1)

       Supported extended features:
                * [ VHT_IBSS ]: VHT-IBSS
                * [ RRM ]: RRM
                * [ SET_SCAN_DWELL ]: scan dwell setting
                * [ FILS_STA ]: STA FILS (Fast Initial Link Setup)
                * [ CQM_RSSI_LIST ]: multiple CQM_RSSI_THOLD records
                * [ CONTROL_PORT_OVER_NL80211 ]: control port over nl80211
                * [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
                * [ AQL ]: Airtime Queue Limits (AQL)
                * [ CONTROL_PORT_NO_PREAUTH ]: disable pre-auth over nl80211 control port support
                * [ DEL_IBSS_STA ]: deletion of IBSS station support
                * [ SCAN_FREQ_KHZ ]: scan on kHz frequency support
                * [ CONTROL_PORT_OVER_NL80211_TX_STATUS ]: tx status for nl80211 control port support

i.e. there is no indication of airtime fairness support.

Thank you.

Can you check the hostpad config? I think it's not enabled there.

1 Like

What should i look for?

presumably i should see something in /var/run/hostapd-phy0.conf

yes that should be the location for the config

ya, but i have no idea what should be there for airtime fariness to be enabled.

my /var/run/hostapd-phy0.conf (some values redacted)

driver=nl80211
logger_syslog=127
logger_syslog_level=2
logger_stdout=127
logger_stdout_level=2
country_code=US
ieee80211d=1
ieee80211h=1
hw_mode=a
beacon_int=300
dtim_period=2
channel=36
chanlist=36

tx_queue_data2_burst=2.0
ieee80211n=1
ht_coex=0
ht_capab=[HT40+][LDPC][SHORT-GI-20][SHORT-GI-40][TX-STBC][RX-STBC1][MAX-AMSDU-7935][DSSS_CCK-40]
ieee80211ac=1
vht_oper_chwidth=1
vht_oper_centr_freq_seg0_idx=42
vht_capab=[RXLDPC][SHORT-GI-80][TX-STBC-2BY1][SU-BEAMFORMER][SU-BEAMFORMEE][MU-BEAMFORMER][MU-BEAMFORMEE][RX-ANTENNA-PATTERN][TX-ANTENNA-PATTERN][RX-STBC-1][MAX-MPDU-11454][MAX-A-MPDU-LEN-EXP7]

radio_config_id=
interface=wlan0
ctrl_interface=/var/run/hostapd
ap_isolate=1
ap_max_inactivity=3600
bss_load_update_period=60
chan_util_avg_period=600
disassoc_low_ack=0
skip_inactivity_poll=0
preamble=1
wmm_enabled=1
ignore_broadcast_ssid=0
uapsd_advertisement_enabled=1
utf8_ssid=1
multi_ap=0
wpa_group_rekey=28800
wpa_passphrase=
wpa_psk_file=/var/run/hostapd-wlan0.psk
auth_algs=1
wpa=2
wpa_pairwise=CCMP
ssid=WLAN5
bridge=switch0
wds_bridge=
snoop_iface=switch0.3
wpa_disable_eapol_key_retries=0
wpa_key_mgmt=WPA-PSK WPA-PSK-SHA256
okc=0
disable_pmksa_caching=1
ieee80211w=1
group_mgmt_cipher=AES-128-CMAC
dynamic_vlan=0
vlan_naming=1
vlan_no_bridge=1
vlan_file=/var/run/hostapd-wlan0.vlan
qos_map_set=0,0,2,16,1,1,255,255,18,22,24,38,40,40,44,46,48,56
config_id=
bssid=
dtim_period=1

i assume it should be added to vht or ht capab you should check how airtime fairness should be enabled from hostapd

did you check Controlling airtime fairness


also i can see this
https://patchwork.ozlabs.org/project/hostap/patch/20190215181129.21216-1-toke@toke.dk/

+#ifdef CONFIG_AIRTIME_POLICY
+	} else if (os_strcmp(buf, "airtime_mode") == 0) {
+		conf->airtime_mode = atoi(pos);
+	} else if (os_strcmp(buf, "airtime_update_interval") == 0) {
+		conf->airtime_update_interval = atoi(pos);
+	} else if (os_strcmp(buf, "airtime_bss_weight") == 0) {
+		bss->airtime_weight = atoi(pos);
+	} else if (os_strcmp(buf, "airtime_bss_limit") == 0) {
+		bss->airtime_limit = atoi(pos);
+	} else if (os_strcmp(buf, "airtime_sta_weight") == 0) {
+		if (add_airtime_weight(bss, pos) < 0) {
+			wpa_printf(MSG_DEBUG, "Line %d: Invalid airtime weight '%s'",
+				   line, pos);
+			return 1;
+		}
+#endif /* CONFIG_AIRTIME_POLICY */

and

+##### Airtime policy configuration ###########################################
+
+# Set the airtime policy operating mode:
+# 0 = disabled (default)
+# 1 = static config
+# 2 = per-BSS dynamic config
+# 3 = per-BSS limit mode
+#airtime_mode=0
+
+# Interval (in milliseconds) to poll the kernel for updated station activity in
+# dynamic and limit modes
+#airtime_update_interval=200
+
+# Static configuration of station weights (when airtime_mode=1). Kernel default
+# weight is 256; set higher for larger airtime share, lower for smaller share.
+# Each entry is a MAC address followed by a weight.
+#airtime_sta_weight=02:01:02:03:04:05 256
+#airtime_sta_weight=02:01:02:03:04:06 512
+
+# Per-BSS airtime weight. In multi-bss mode, set for each BSS and hostapd will
+# configure station weights to enforce the correct ratio between BSS weights
+# depending on the number of active stations. The *ratios* between different
+# BSSes is what's important, not the absolute numbers.
+# Must be set for all BSSes if airtime_mode=2 or 3, has no effect otherwise.
+#airtime_bss_weight=1
+
+# Whether the current BSS should be limited (when airtime_mode=3).
+#
+# If set, the BSS weight ratio will be applied in the case where the current BSS
+# would exceed the share defined by the BSS weight ratio. E.g., if two BSSes are
+# set to the same weights, and one is set to limited, the limited BSS will get
+# no more than half the available airtime, but if the non-limited BSS has more
+# stations active, that *will* be allowed to exceed its half of the available
+# airtime.
+#airtime_bss_limit=1

think you should tweak the hostpad.sh to add these extra feature (hardcode them to quickly test and check if the value appear in the supported values)

yes, i've been there and i've looked for some config variable to put in the hostapd config but so far its not clear to me what should be there.

Is it possible for you to check if your iw list output has an airtime fairness line and, if so, what might be in your hostapd config file that is not in mine?

Note i have built and tested the ath10k-ct driver with and without commenting out support for "airtime fairness" here.

There is no difference for me either way.

This in combination with my iw list output makes me suspect "airtime fairness" is not enabled in the ath10k-ct 99x0 firmware. Before I ping @greearb, I want to confirm that it is working for others.

I'll try playing with the config variables you posted above and see if shows up.

1 Like

@anon98444528 check the updated post ahahha i posted the missing feature and in fact it looks to be disabled by default...

if you notice it does work I can think of pushing a patch to add support for it and add support to make it configurable on openwrt. (or also consider setting it to a default sane value)

1 Like

again just to make sure... hostpad.conf should not be directly changed so you should tweak the shell script that generates that and restart wifi

i can edit the /var/run/hostapd-phy0.conf file and

kill -HUP $(pidof hostapd) # reload hostapd config

which i believe picks up the changes

oh ok using that won't regen the config...

wifi down
wifi up does tho

I think you should edit hostapd.sh or mac80211.sh as they are what generates the /var/run/hostapd-phy*.conf.

/lib/netifd/hostapd.sh
/lib/netifd/wireless/mac80211.sh

i just tried adding airtime_mode=0 and restarting hostapd with no change in iw list output.

/lib/netifd/hostapd.sh does not seem to have anything related to airtime fairness commented out (i.e. i think it should work there assuming it's enabled in the firmware).

I'll look at /lib/netifd/wireless/mac80211.sh now...

but it would be really nice if someone could answer my question "does it show up in your iw list output?" and if so "what is in your hostapd-phy0.conf file related to airtime?"

and why you set it to 0 ? it's the default option aka disabled....
try 2 pls

the comments (in hostapd.sh and other places i've looked) are not clear (to me)

from the comments, using 2 or 3 seems to imply manually setting bss weights - perhaps that is done by hostapd.sh or the mac80211.sh scripts

I'll give 2 a shot and see what happens

Yes you should also add airtime_bss_weight=1
but for sure setting the mode to 0 would actually disable it entirely...

1 and 3 require the mac list to be provided with the weight...

 Supported extended features:
                * [ VHT_IBSS ]: VHT-IBSS
                * [ RRM ]: RRM
                * [ SET_SCAN_DWELL ]: scan dwell setting
                * [ FILS_STA ]: STA FILS (Fast Initial Link Setup)
                * [ CQM_RSSI_LIST ]: multiple CQM_RSSI_THOLD records
                * [ CONTROL_PORT_OVER_NL80211 ]: control port over nl80211
                * [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
                * [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
                * [ AQL ]: Airtime Queue Limits (AQL)
                * [ CONTROL_PORT_NO_PREAUTH ]: disable pre-auth over nl80211 control port support
                * [ DEL_IBSS_STA ]: deletion of IBSS station support
                * [ SCAN_FREQ_KHZ ]: scan on kHz frequency support
                * [ CONTROL_PORT_OVER_NL80211_TX_STATUS ]: tx status for nl80211 control port support

Is shows up for me but nothing regarding airtime fairness in both hostapd-phy*.conf files.

2 Likes

Since you have nothing in your hostapd-phy0.conf file, i'm pretty sure its not enabled in my firmware. I'll need to ping @greearb and hope he has the time to respond.

In the mean time, I'll try @ansuel suggestions and see if i can't get it to come up.

FWIW i recall reading that it might not be enabled on my 99x0 firmware (i.e. totally not supported for me) but i can not find that post. My wifi certainly performs like it's not enabled and I'd really like to try it.

I'd also like to know if it makes sense to not have AQL enabled if airtime fairness is not supported.

anyway the strange thing is that i have airtime fairness enabled but i don't have the mode set in the conf... why you don't have that mode? O.O

I have in my hostapd.sh set by default

set_default airtime_bss_weight 0
set_default airtime_bss_limit 0
set_default airtime_mode 0
1 Like