wlan-ap-Telecominfraproject/feeds/qca/hostapd/patches/r18-wpa-supplicant-Set-frequency-parameter-for-SA-query.patch
John Crispin 008ca9618d
Some checks failed
Build OpenWrt/uCentral images / build (cig_wf186h) (push) Has been cancelled
Build OpenWrt/uCentral images / build (cig_wf186w) (push) Has been cancelled
Build OpenWrt/uCentral images / build (cig_wf188n) (push) Has been cancelled
Build OpenWrt/uCentral images / build (cig_wf189) (push) Has been cancelled
Build OpenWrt/uCentral images / build (cig_wf196) (push) Has been cancelled
Build OpenWrt/uCentral images / build (cybertan_eww631-a1) (push) Has been cancelled
Build OpenWrt/uCentral images / build (cybertan_eww631-b1) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_eap101) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_eap102) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_eap104) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_eap105) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_eap111) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_eap112) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_oap101) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_oap101-6e) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_oap101e) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_oap101e-6e) (push) Has been cancelled
Build OpenWrt/uCentral images / build (hfcl_ion4x) (push) Has been cancelled
Build OpenWrt/uCentral images / build (hfcl_ion4x_2) (push) Has been cancelled
Build OpenWrt/uCentral images / build (hfcl_ion4x_3) (push) Has been cancelled
Build OpenWrt/uCentral images / build (hfcl_ion4x_w) (push) Has been cancelled
Build OpenWrt/uCentral images / build (hfcl_ion4xe) (push) Has been cancelled
Build OpenWrt/uCentral images / build (hfcl_ion4xi) (push) Has been cancelled
Build OpenWrt/uCentral images / build (hfcl_ion4xi_w) (push) Has been cancelled
Build OpenWrt/uCentral images / build (indio_um-305ax) (push) Has been cancelled
Build OpenWrt/uCentral images / build (sercomm_ap72tip) (push) Has been cancelled
Build OpenWrt/uCentral images / build (sonicfi_rap630c-311g) (push) Has been cancelled
Build OpenWrt/uCentral images / build (sonicfi_rap630w-211g) (push) Has been cancelled
Build OpenWrt/uCentral images / build (sonicfi_rap630w-311g) (push) Has been cancelled
Build OpenWrt/uCentral images / build (udaya_a6-id2) (push) Has been cancelled
Build OpenWrt/uCentral images / build (udaya_a6-od2) (push) Has been cancelled
Build OpenWrt/uCentral images / build (wallys_dr5018) (push) Has been cancelled
Build OpenWrt/uCentral images / build (wallys_dr6018) (push) Has been cancelled
Build OpenWrt/uCentral images / build (wallys_dr6018-v4) (push) Has been cancelled
Build OpenWrt/uCentral images / build (yuncore_ax820) (push) Has been cancelled
Build OpenWrt/uCentral images / build (yuncore_ax840) (push) Has been cancelled
Build OpenWrt/uCentral images / build (yuncore_fap640) (push) Has been cancelled
Build OpenWrt/uCentral images / build (yuncore_fap650) (push) Has been cancelled
Build OpenWrt/uCentral images / build (yuncore_fap655) (push) Has been cancelled
Build OpenWrt/uCentral images / trigger-testing (push) Has been cancelled
Build OpenWrt/uCentral images / create-x64_vm-ami (push) Has been cancelled
ipq95xx: import ath12.4-cs kernel and drivers
Signed-off-by: John Crispin <john@phrozen.org>
2024-10-20 09:25:13 +02:00

95 lines
3.7 KiB
Diff

From dedd64f027d24f93a5b1db7d5e3021ea95325f27 Mon Sep 17 00:00:00 2001
From: Rathees Kumar R Chinannan <quic_rrchinan@quicinc.com>
Date: Tue, 30 Jan 2024 14:21:08 +0530
Subject: [PATCH] wpa-supplicant: Set frequency parameter for SA query response
frame.
When sending SA query response, supplicant has to set frequency
parameter on NL80211_CMD_FRAME command to send this frame on same link
on which SA query request is received. If frequency is not set, then
this action frame will be dropped on driver.
Currently while framing SA query response, frequency value is taken from
drv->assoc_freq and drv->assoc_freq value is set to zero in case of MLD
on nl80211_connect_common function.
Fix this by obtaining the frequency from SA query request receive and pass
it to update on SA query response frame transmit.
Change-Id: I9907382c6de05af63ccafcd9d1d8245bdbb6d811
Signed-off-by: Rathees Kumar R Chinannan <quic_rrchinan@quicinc.com>
---
wpa_supplicant/events.c | 2 +-
wpa_supplicant/sme.c | 8 ++++----
wpa_supplicant/sme.h | 2 +-
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c
index a044167..40090d5 100644
--- a/wpa_supplicant/events.c
+++ b/wpa_supplicant/events.c
@@ -4749,7 +4749,7 @@ static void wpas_event_rx_mgmt_action(struct wpa_supplicant *wpa_s,
#ifdef CONFIG_SME
if (category == WLAN_ACTION_SA_QUERY) {
- sme_sa_query_rx(wpa_s, mgmt->da, mgmt->sa, payload, plen);
+ sme_sa_query_rx(wpa_s, mgmt->da, mgmt->sa, payload, plen, freq);
return;
}
#endif /* CONFIG_SME */
diff --git a/wpa_supplicant/sme.c b/wpa_supplicant/sme.c
index 42c0cdf..22d31a7 100644
--- a/wpa_supplicant/sme.c
+++ b/wpa_supplicant/sme.c
@@ -3400,7 +3400,7 @@ void sme_event_ch_switch(struct wpa_supplicant *wpa_s)
static void sme_process_sa_query_request(struct wpa_supplicant *wpa_s,
const u8 *sa, const u8 *data,
- size_t len)
+ size_t len, int freq)
{
u8 resp[2 + WLAN_SA_QUERY_TR_ID_LEN + OCV_OCI_EXTENDED_LEN];
u8 resp_len = 2 + WLAN_SA_QUERY_TR_ID_LEN;
@@ -3439,7 +3439,7 @@ static void sme_process_sa_query_request(struct wpa_supplicant *wpa_s,
}
#endif /* CONFIG_OCV */
- if (wpa_drv_send_action(wpa_s, wpa_s->assoc_freq, 0, wpa_s->bssid,
+ if (wpa_drv_send_action(wpa_s, freq, 0, wpa_s->bssid,
wpa_s->own_addr, wpa_s->bssid,
resp, resp_len, 0) < 0)
wpa_msg(wpa_s, MSG_INFO,
@@ -3482,7 +3482,7 @@ static void sme_process_sa_query_response(struct wpa_supplicant *wpa_s,
void sme_sa_query_rx(struct wpa_supplicant *wpa_s, const u8 *da, const u8 *sa,
- const u8 *data, size_t len)
+ const u8 *data, size_t len, int freq)
{
if (len < 1 + WLAN_SA_QUERY_TR_ID_LEN)
return;
@@ -3528,7 +3528,7 @@ void sme_sa_query_rx(struct wpa_supplicant *wpa_s, const u8 *da, const u8 *sa,
#endif /* CONFIG_OCV */
if (data[0] == WLAN_SA_QUERY_REQUEST)
- sme_process_sa_query_request(wpa_s, sa, data, len);
+ sme_process_sa_query_request(wpa_s, sa, data, len, freq);
else if (data[0] == WLAN_SA_QUERY_RESPONSE)
sme_process_sa_query_response(wpa_s, sa, data, len);
}
diff --git a/wpa_supplicant/sme.h b/wpa_supplicant/sme.h
index c797d2e..410686d 100644
--- a/wpa_supplicant/sme.h
+++ b/wpa_supplicant/sme.h
@@ -30,7 +30,7 @@ void sme_event_unprot_disconnect(struct wpa_supplicant *wpa_s, const u8 *sa,
const u8 *da, u16 reason_code);
void sme_event_ch_switch(struct wpa_supplicant *wpa_s);
void sme_sa_query_rx(struct wpa_supplicant *wpa_s, const u8 *da, const u8 *sa,
- const u8 *data, size_t len);
+ const u8 *data, size_t len, int freq);
void sme_state_changed(struct wpa_supplicant *wpa_s);
void sme_disassoc_while_authenticating(struct wpa_supplicant *wpa_s,
const u8 *prev_pending_bssid);
--
2.43.0