diff options
| author | Johannes Berg <johannes.berg@intel.com> | 2024-05-06 22:54:51 +0300 |
|---|---|---|
| committer | Johannes Berg <johannes.berg@intel.com> | 2024-05-23 12:28:56 +0300 |
| commit | 4540568136fefe0fcc366ded125cc56b0d9e1724 (patch) | |
| tree | 47ca417880f0f64aa75b6bb6fd833f519ff3af27 /net/mac80211/parse.c | |
| parent | f81747a9ad2e773ee72d881717e859a9f7a01c76 (diff) | |
| download | linux-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.c | 8 |
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 = |
