[openwrt/openwrt] mac80211: set beamformer/beamformee number of antennas in VHT caps

LEDE Commits lede-commits at lists.infradead.org
Tue Nov 23 09:44:15 PST 2021


nbd pushed a commit to openwrt/openwrt.git, branch openwrt-21.02:
https://git.openwrt.org/c20f4e24bd12f8bb4a6d35f0199ae1695469859d

commit c20f4e24bd12f8bb4a6d35f0199ae1695469859d
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Mon Nov 22 13:04:03 2021 +0100

    mac80211: set beamformer/beamformee number of antennas in VHT caps
    
    Without this, beamforming is probably not working
    
    Signed-off-by: Felix Fietkau <nbd at nbd.name>
    (cherry-picked from commit e2c4998f6dca7d9b74a8b01762040ff2c5e38fd7)
---
 .../mac80211/files/lib/netifd/wireless/mac80211.sh       | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
index 4828951bab..d69667bf8c 100644
--- a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
+++ b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
@@ -53,6 +53,8 @@ drv_mac80211_init_device_config() {
 		he_spr_sr_control \
 		he_twt_required
 	config_add_int \
+		beamformer_antennas \
+		beamformee_antennas \
 		vht_max_a_mpdu_len_exp \
 		vht_max_mpdu \
 		vht_link_adapt \
@@ -294,6 +296,8 @@ mac80211_hostapd_setup_base() {
 			mu_beamformee:1 \
 			vht_txop_ps:1 \
 			htc_vht:1 \
+			beamformee_antennas:4 \
+			beamformer_antennas:4 \
 			rx_antenna_pattern:1 \
 			tx_antenna_pattern:1 \
 			vht_max_a_mpdu_len_exp:7 \
@@ -334,6 +338,18 @@ mac80211_hostapd_setup_base() {
 			RX-STBC-123:0x700:0x300:1 \
 			RX-STBC-1234:0x700:0x400:1 \
 
+		[ "$(($vht_cap & 0x800))" -gt 0 -a "$su_beamformer" -gt 0 ] && {
+			cap_ant="$(( ( ($vht_cap >> 16) & 3 ) + 1 ))"
+			[ "$cap_ant" -gt "$beamformer_antennas" ] && cap_ant="$beamformer_antennas"
+			[ "$cap_ant" -gt 1 ] && vht_capab="$vht_capab[SOUNDING-DIMENSION-$cap_ant]"
+		}
+
+		[ "$(($vht_cap & 0x1000))" -gt 0 -a "$su_beamformee" -gt 0 ] && {
+			cap_ant="$(( ( ($vht_cap >> 13) & 3 ) + 1 ))"
+			[ "$cap_ant" -gt "$beamformee_antennas" ] && cap_ant="$beamformee_antennas"
+			[ "$cap_ant" -gt 1 ] && vht_capab="$vht_capab[BF-ANTENNA-$cap_ant]"
+		}
+
 		# supported Channel widths
 		vht160_hw=0
 		[ "$(($vht_cap & 12))" -eq 4 -a 1 -le "$vht160" ] && \



More information about the lede-commits mailing list