[RFC PATCH 28/34] Update PR device mac address on mac randomization
Peddolla Harshavardhan Reddy
peddolla at qti.qualcomm.com
Thu May 15 00:17:51 PDT 2025
Signed-off-by: Peddolla Harshavardhan Reddy <peddolla at qti.qualcomm.com>
---
src/common/proximity_ranging.c | 7 +++++++
src/common/proximity_ranging.h | 1 +
wpa_supplicant/pr_supplicant.c | 6 ++++++
wpa_supplicant/pr_supplicant.h | 4 ++++
wpa_supplicant/wpa_supplicant.c | 1 +
5 files changed, 19 insertions(+)
diff --git a/src/common/proximity_ranging.c b/src/common/proximity_ranging.c
index 16544c6ae..a07fcf10f 100644
--- a/src/common/proximity_ranging.c
+++ b/src/common/proximity_ranging.c
@@ -138,6 +138,13 @@ void pr_deinit(struct pr_data *pr)
}
+void pr_set_dev_addr(struct pr_data *pr, const u8 *addr)
+{
+ if (pr && addr)
+ os_memcpy(pr->cfg->dev_addr, addr, ETH_ALEN);
+}
+
+
void pr_clear_dev_iks(struct pr_data *pr)
{
struct pr_device *dev;
diff --git a/src/common/proximity_ranging.h b/src/common/proximity_ranging.h
index 93ec99960..c99020dd6 100644
--- a/src/common/proximity_ranging.h
+++ b/src/common/proximity_ranging.h
@@ -416,6 +416,7 @@ struct operation_mode {
struct pr_data * pr_init(const struct pr_config *cfg);
void pr_deinit(struct pr_data *pr);
+void pr_set_dev_addr(struct pr_data *pr, const u8 *addr);
void pr_clear_dev_iks(struct pr_data *pr);
void pr_add_dev_ik(struct pr_data *pr, const u8 *dik, const char *password,
const u8 *pmk, bool own);
diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c
index ab5ac853d..1f7a6ba68 100644
--- a/wpa_supplicant/pr_supplicant.c
+++ b/wpa_supplicant/pr_supplicant.c
@@ -245,6 +245,12 @@ void wpas_pr_deinit(struct wpa_supplicant *wpa_s)
}
+void wpas_pr_update_dev_addr(struct wpa_supplicant *wpa_s)
+{
+ pr_set_dev_addr(wpa_s->global->pr, wpa_s->own_addr);
+}
+
+
void wpas_pr_clear_dev_iks(struct wpa_supplicant *wpa_s)
{
struct pr_data *pr = wpa_s->global->pr;
diff --git a/wpa_supplicant/pr_supplicant.h b/wpa_supplicant/pr_supplicant.h
index 22df69050..209c3ba5c 100644
--- a/wpa_supplicant/pr_supplicant.h
+++ b/wpa_supplicant/pr_supplicant.h
@@ -15,6 +15,7 @@
int wpas_pr_init(struct wpa_global *global, struct wpa_supplicant *wpa_s);
void wpas_pr_deinit(struct wpa_supplicant *wpa_s);
+void wpas_pr_update_dev_addr(struct wpa_supplicant *wpa_s);
void wpas_pr_clear_dev_iks(struct wpa_supplicant *wpa_s);
void wpas_pr_set_dev_ik(struct wpa_supplicant *wpa_s, const u8 *dik,
const char *password, const u8 *pmk, bool own);
@@ -42,6 +43,9 @@ static inline void wpas_pr_deinit(struct wpa_supplicant *wpa_s)
{
}
+static inline void wpas_pr_update_dev_addr(struct wpa_supplicant *wpa_s)
+{
+}
static inline void wpas_pr_clear_dev_iks(struct wpa_supplicant *wpa_s)
{
diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c
index af9f94d47..fa2fda46f 100644
--- a/wpa_supplicant/wpa_supplicant.c
+++ b/wpa_supplicant/wpa_supplicant.c
@@ -2630,6 +2630,7 @@ int wpas_update_random_addr(struct wpa_supplicant *wpa_s,
}
wpas_p2p_update_dev_addr(wpa_s);
+ wpas_pr_update_dev_addr(wpa_s);
wpa_msg(wpa_s, MSG_DEBUG, "Using random MAC address " MACSTR,
MAC2STR(addr));
--
2.34.1
More information about the Hostap
mailing list