summaryrefslogtreecommitdiff
path: root/net/mac80211/parse.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2024-05-06 22:54:51 +0300
committerJohannes Berg <johannes.berg@intel.com>2024-05-23 12:28:56 +0300
commit4540568136fefe0fcc366ded125cc56b0d9e1724 (patch)
tree47ca417880f0f64aa75b6bb6fd833f519ff3af27 /net/mac80211/parse.c
parentf81747a9ad2e773ee72d881717e859a9f7a01c76 (diff)
downloadlinux-4540568136fefe0fcc366ded125cc56b0d9e1724.tar.xz
wifi: mac80211: handle TPE element during CSA
Handle the transmit power envelope (TPE) element during channel switch, applying it when the channel switch is done. Reviewed-by: Miriam Rachel Korenblit <miriam.rachel.korenblit@intel.com> Link: https://msgid.link/20240506215543.486c33157d18.Idf971ad801b6961c177bdf42cc323fd1a4ca8165@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/parse.c')
-rw-r--r--net/mac80211/parse.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/net/mac80211/parse.c b/net/mac80211/parse.c
index 6efeb977f8e5..5c5c21ecb2b7 100644
--- a/net/mac80211/parse.c
+++ b/net/mac80211/parse.c
@@ -607,6 +607,13 @@ _ieee802_11_parse_elems_full(struct ieee80211_elems_parse_params *params,
elem_parse_failed =
IEEE80211_PARSE_ERR_BAD_ELEM_SIZE;
}
+
+ subelem = cfg80211_find_ext_elem(WLAN_EID_TX_POWER_ENVELOPE,
+ pos, elen);
+ if (subelem)
+ ieee80211_parse_tpe(&elems->csa_tpe,
+ subelem->data + 1,
+ subelem->datalen - 1);
break;
case WLAN_EID_COUNTRY:
elems->country_elem = pos;
@@ -962,6 +969,7 @@ ieee802_11_parse_elems_full(struct ieee80211_elems_parse_params *params)
/* set all TPE entries to unlimited (but invalid) */
ieee80211_clear_tpe(&elems->tpe);
+ ieee80211_clear_tpe(&elems->csa_tpe);
nontransmitted_profile = elems_parse->scratch_pos;
nontransmitted_profile_len =