mirror of
https://github.com/Telecominfraproject/wlan-ap.git
synced 2025-12-19 10:23:03 +00:00
65 lines
2.2 KiB
Diff
65 lines
2.2 KiB
Diff
From 49de97b9da238db0af0fbbd89408c87cf9c7e139 Mon Sep 17 00:00:00 2001
|
|
From: Aloka Dixit <quic_alokad@quicinc.com>
|
|
Date: Thu, 22 Jul 2021 13:13:08 -0700
|
|
Subject: [PATCH 23/23] nl80211: pass EHT beacon rate configuration to kernel
|
|
|
|
Propagate EHT beacon rate to kernel if the driver has advertised
|
|
support for this configuration. Legacy, HT, VHT and HE rates will be
|
|
set to NULL.
|
|
|
|
Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
|
|
---
|
|
src/drivers/driver_nl80211.c | 22 ++++++++++++++++++++++
|
|
1 file changed, 22 insertions(+)
|
|
|
|
diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
|
|
index b5e336be826b..088e58edf2a7 100644
|
|
--- a/src/drivers/driver_nl80211.c
|
|
+++ b/src/drivers/driver_nl80211.c
|
|
@@ -4290,6 +4290,7 @@ static int nl80211_put_beacon_rate(struct nl_msg *msg, u64 flags, u64 flags2,
|
|
struct nlattr *bands, *band;
|
|
struct nl80211_txrate_vht vht_rate;
|
|
struct nl80211_txrate_he he_rate;
|
|
+ struct nl80211_txrate_eht eht_rate;
|
|
|
|
if (!params->freq ||
|
|
(params->beacon_rate == 0 &&
|
|
@@ -4323,6 +4324,7 @@ static int nl80211_put_beacon_rate(struct nl_msg *msg, u64 flags, u64 flags2,
|
|
|
|
os_memset(&vht_rate, 0, sizeof(vht_rate));
|
|
os_memset(&he_rate, 0, sizeof(he_rate));
|
|
+ os_memset(&eht_rate, 0, sizeof(eht_rate));
|
|
|
|
switch (params->rate_type) {
|
|
case BEACON_RATE_LEGACY:
|
|
@@ -4391,6 +4393,26 @@ static int nl80211_put_beacon_rate(struct nl_msg *msg, u64 flags, u64 flags2,
|
|
wpa_printf(MSG_DEBUG, " * beacon_rate = HE-MCS %u",
|
|
params->beacon_rate);
|
|
break;
|
|
+
|
|
+ case BEACON_RATE_EHT:
|
|
+ if (!(flags2 & WPA_DRIVER_FLAGS2_BEACON_RATE_EHT)) {
|
|
+ wpa_printf(MSG_INFO,
|
|
+ "nl80211: Driver does not support setting Beacon frame rate (EHT)");
|
|
+ return -1;
|
|
+ }
|
|
+ eht_rate.mcs[0] = BIT(params->beacon_rate);
|
|
+ if (nla_put(msg, NL80211_TXRATE_LEGACY, 0, NULL) ||
|
|
+ nla_put(msg, NL80211_TXRATE_HT, 0, NULL) ||
|
|
+ nla_put(msg, NL80211_TXRATE_VHT, sizeof(vht_rate),
|
|
+ &vht_rate) ||
|
|
+ nla_put(msg, NL80211_TXRATE_HE, sizeof(he_rate),
|
|
+ &he_rate) ||
|
|
+ nla_put(msg, NL80211_TXRATE_EHT, sizeof(eht_rate),
|
|
+ &eht_rate))
|
|
+ return -1;
|
|
+ wpa_printf(MSG_DEBUG, " * beacon_rate = EHT-MCS %u",
|
|
+ params->beacon_rate);
|
|
+ break;
|
|
}
|
|
|
|
nla_nest_end(msg, band);
|
|
--
|
|
2.31.1
|
|
|