[PATCH v3 04/46] ctrl_iface: Add forced_addr parameter to NAN_PUBLISH and NAN_SUBSCRIBE
Kavita Kavita
kavita.kavita at oss.qualcomm.com
Wed May 13 02:59:28 PDT 2026
From: Peddolla Harshavardhan Reddy <peddolla.reddy at oss.qualcomm.com>
The NAN_PUBLISH and NAN_SUBSCRIBE control interface commands had no way
to specify a per-service transmitter address for NAN Service Discovery
Frames. Add a forced_addr parameter to both commands to allow the caller
to pass the desired transmitter address into the NAN Discovery Engine.
Signed-off-by: Peddolla Harshavardhan Reddy <peddolla.reddy at oss.qualcomm.com>
---
wpa_supplicant/ctrl_iface.c | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/wpa_supplicant/ctrl_iface.c b/wpa_supplicant/ctrl_iface.c
index 14b4cd9d2..d31acbef4 100644
--- a/wpa_supplicant/ctrl_iface.c
+++ b/wpa_supplicant/ctrl_iface.c
@@ -12795,6 +12795,7 @@ static int wpas_ctrl_nan_publish(struct wpa_supplicant *wpa_s, char *cmd,
int *cipher_list = NULL;
u8 nd_pmk[PMK_LEN];
bool p2p = false;
+ u8 forced_addr[ETH_ALEN];
os_memset(¶ms, 0, sizeof(params));
/* USD shall use both solicited and unsolicited transmissions */
@@ -12946,6 +12947,16 @@ static int wpas_ctrl_nan_publish(struct wpa_supplicant *wpa_s, char *cmd,
continue;
}
+ if (os_strncmp(token, "forced_addr=", 12) == 0) {
+ if (hwaddr_aton(token + 12, forced_addr)) {
+ wpa_printf(MSG_INFO,
+ "CTRL: Invalid forced_addr");
+ goto fail;
+ }
+ params.forced_addr = forced_addr;
+ continue;
+ }
+
wpa_printf(MSG_INFO, "CTRL: Invalid NAN_PUBLISH parameter: %s",
token);
goto fail;
@@ -13074,6 +13085,7 @@ static int wpas_ctrl_nan_subscribe(struct wpa_supplicant *wpa_s, char *cmd,
enum nan_service_protocol_type srv_proto_type = 0;
int *freq_list = NULL;
bool p2p = false;
+ u8 forced_addr[ETH_ALEN];
os_memset(¶ms, 0, sizeof(params));
params.freq = NAN_USD_DEFAULT_FREQ;
@@ -13189,6 +13201,16 @@ static int wpas_ctrl_nan_subscribe(struct wpa_supplicant *wpa_s, char *cmd,
continue;
}
+ if (os_strncmp(token, "forced_addr=", 12) == 0) {
+ if (hwaddr_aton(token + 12, forced_addr)) {
+ wpa_printf(MSG_INFO,
+ "CTRL: Invalid forced_addr");
+ goto fail;
+ }
+ params.forced_addr = forced_addr;
+ continue;
+ }
+
wpa_printf(MSG_INFO,
"CTRL: Invalid NAN_SUBSCRIBE parameter: %s",
token);
--
2.34.1
More information about the Hostap
mailing list