P2P: Allow GO BSSID to be specified for P2P_GROUP_ADD commands
This allows the control interface to be used similarly to the way D-Bus interface was extended to force a specific GO BSSID for optimizing scanning. Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
This commit is contained in:
parent
0430756e65
commit
c31600ce12
1 changed files with 11 additions and 3 deletions
|
@ -7113,7 +7113,8 @@ static int p2p_ctrl_invite(struct wpa_supplicant *wpa_s, char *cmd)
|
||||||
static int p2p_ctrl_group_add_persistent(struct wpa_supplicant *wpa_s,
|
static int p2p_ctrl_group_add_persistent(struct wpa_supplicant *wpa_s,
|
||||||
int id, int freq, int vht_center_freq2,
|
int id, int freq, int vht_center_freq2,
|
||||||
int ht40, int vht, int vht_chwidth,
|
int ht40, int vht, int vht_chwidth,
|
||||||
int he, int edmg, bool allow_6ghz)
|
int he, int edmg, bool allow_6ghz,
|
||||||
|
const u8 *go_bssid)
|
||||||
{
|
{
|
||||||
struct wpa_ssid *ssid;
|
struct wpa_ssid *ssid;
|
||||||
|
|
||||||
|
@ -7128,7 +7129,8 @@ static int p2p_ctrl_group_add_persistent(struct wpa_supplicant *wpa_s,
|
||||||
return wpas_p2p_group_add_persistent(wpa_s, ssid, 0, freq,
|
return wpas_p2p_group_add_persistent(wpa_s, ssid, 0, freq,
|
||||||
vht_center_freq2, 0, ht40, vht,
|
vht_center_freq2, 0, ht40, vht,
|
||||||
vht_chwidth, he, edmg,
|
vht_chwidth, he, edmg,
|
||||||
NULL, 0, 0, allow_6ghz, 0, NULL);
|
NULL, 0, 0, allow_6ghz, 0,
|
||||||
|
go_bssid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -7142,6 +7144,7 @@ static int p2p_ctrl_group_add(struct wpa_supplicant *wpa_s, char *cmd)
|
||||||
int edmg = wpa_s->conf->p2p_go_edmg;
|
int edmg = wpa_s->conf->p2p_go_edmg;
|
||||||
int max_oper_chwidth, chwidth = 0, freq2 = 0;
|
int max_oper_chwidth, chwidth = 0, freq2 = 0;
|
||||||
char *token, *context = NULL;
|
char *token, *context = NULL;
|
||||||
|
u8 go_bssid_buf[ETH_ALEN], *go_bssid = NULL;
|
||||||
#ifdef CONFIG_ACS
|
#ifdef CONFIG_ACS
|
||||||
int acs = 0;
|
int acs = 0;
|
||||||
#endif /* CONFIG_ACS */
|
#endif /* CONFIG_ACS */
|
||||||
|
@ -7170,6 +7173,10 @@ static int p2p_ctrl_group_add(struct wpa_supplicant *wpa_s, char *cmd)
|
||||||
persistent = 1;
|
persistent = 1;
|
||||||
} else if (os_strcmp(token, "allow_6ghz") == 0) {
|
} else if (os_strcmp(token, "allow_6ghz") == 0) {
|
||||||
allow_6ghz = true;
|
allow_6ghz = true;
|
||||||
|
} else if (os_strncmp(token, "go_bssid=", 9) == 0) {
|
||||||
|
if (hwaddr_aton(token + 9, go_bssid_buf))
|
||||||
|
return -1;
|
||||||
|
go_bssid = go_bssid_buf;
|
||||||
} else {
|
} else {
|
||||||
wpa_printf(MSG_DEBUG,
|
wpa_printf(MSG_DEBUG,
|
||||||
"CTRL: Invalid P2P_GROUP_ADD parameter: '%s'",
|
"CTRL: Invalid P2P_GROUP_ADD parameter: '%s'",
|
||||||
|
@ -7213,7 +7220,8 @@ static int p2p_ctrl_group_add(struct wpa_supplicant *wpa_s, char *cmd)
|
||||||
return p2p_ctrl_group_add_persistent(wpa_s, group_id,
|
return p2p_ctrl_group_add_persistent(wpa_s, group_id,
|
||||||
freq, freq2, ht40, vht,
|
freq, freq2, ht40, vht,
|
||||||
max_oper_chwidth, he,
|
max_oper_chwidth, he,
|
||||||
edmg, allow_6ghz);
|
edmg, allow_6ghz,
|
||||||
|
go_bssid);
|
||||||
|
|
||||||
return wpas_p2p_group_add(wpa_s, persistent, freq, freq2, ht40, vht,
|
return wpas_p2p_group_add(wpa_s, persistent, freq, freq2, ht40, vht,
|
||||||
max_oper_chwidth, he, edmg, allow_6ghz);
|
max_oper_chwidth, he, edmg, allow_6ghz);
|
||||||
|
|
Loading…
Reference in a new issue