[RFC PATCH 02/23] ctrl_iface: Add forced_addr parameter to NAN_PUBLISH and NAN_SUBSCRIBE
Peddolla Harshavardhan Reddy
peddolla.reddy at oss.qualcomm.com
Tue Mar 31 22:26:52 PDT 2026
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 d095402c1..4dfcd73ac 100644
--- a/wpa_supplicant/ctrl_iface.c
+++ b/wpa_supplicant/ctrl_iface.c
@@ -12775,6 +12775,7 @@ static int wpas_ctrl_nan_publish(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));
/* USD shall use both solicited and unsolicited transmissions */
@@ -12880,6 +12881,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;
@@ -12997,6 +13008,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;
@@ -13107,6 +13119,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