P2P: Add more debug prints for frequency selection
This prints out get_shared_radio_freqs() results and related information from P2P operations to make debug logs more helpful for figuring out issues related to multi-channel concurrency. Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
4dd3f86834
commit
217cf4991d
3 changed files with 29 additions and 3 deletions
|
@ -124,7 +124,7 @@ static int wpas_p2p_stop_find_oper(struct wpa_supplicant *wpa_s);
|
||||||
static int wpas_p2p_num_unused_channels(struct wpa_supplicant *wpa_s)
|
static int wpas_p2p_num_unused_channels(struct wpa_supplicant *wpa_s)
|
||||||
{
|
{
|
||||||
int *freqs;
|
int *freqs;
|
||||||
int num;
|
int num, unused;
|
||||||
|
|
||||||
freqs = os_calloc(wpa_s->num_multichan_concurrent, sizeof(int));
|
freqs = os_calloc(wpa_s->num_multichan_concurrent, sizeof(int));
|
||||||
if (!freqs)
|
if (!freqs)
|
||||||
|
@ -134,7 +134,9 @@ static int wpas_p2p_num_unused_channels(struct wpa_supplicant *wpa_s)
|
||||||
wpa_s->num_multichan_concurrent);
|
wpa_s->num_multichan_concurrent);
|
||||||
os_free(freqs);
|
os_free(freqs);
|
||||||
|
|
||||||
return wpa_s->num_multichan_concurrent - num;
|
unused = wpa_s->num_multichan_concurrent - num;
|
||||||
|
wpa_dbg(wpa_s, MSG_DEBUG, "P2P: num_unused_channels: %d", unused);
|
||||||
|
return unused;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -164,6 +166,8 @@ static int wpas_p2p_valid_oper_freqs(struct wpa_supplicant *wpa_s,
|
||||||
|
|
||||||
os_free(freqs);
|
os_free(freqs);
|
||||||
|
|
||||||
|
dump_freq_array(wpa_s, "valid for P2P", p2p_freqs, j);
|
||||||
|
|
||||||
return j;
|
return j;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4009,6 +4009,18 @@ int wpas_wpa_is_in_progress(struct wpa_supplicant *wpa_s, int include_current)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void dump_freq_array(struct wpa_supplicant *wpa_s, const char *title,
|
||||||
|
int *freq_array, unsigned int len)
|
||||||
|
{
|
||||||
|
unsigned int i;
|
||||||
|
|
||||||
|
wpa_dbg(wpa_s, MSG_DEBUG, "Shared frequencies (len=%u): %s",
|
||||||
|
len, title);
|
||||||
|
for (i = 0; i < len; i++)
|
||||||
|
wpa_dbg(wpa_s, MSG_DEBUG, "freq[%u]: %d", i, freq_array[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Find the operating frequencies of any of the virtual interfaces that
|
* Find the operating frequencies of any of the virtual interfaces that
|
||||||
* are using the same radio as the current interface.
|
* are using the same radio as the current interface.
|
||||||
|
@ -4022,6 +4034,8 @@ int get_shared_radio_freqs(struct wpa_supplicant *wpa_s,
|
||||||
int freq;
|
int freq;
|
||||||
unsigned int idx = 0, i;
|
unsigned int idx = 0, i;
|
||||||
|
|
||||||
|
wpa_dbg(wpa_s, MSG_DEBUG,
|
||||||
|
"Determining shared radio frequencies (max len %u)", len);
|
||||||
os_memset(freq_array, 0, sizeof(int) * len);
|
os_memset(freq_array, 0, sizeof(int) * len);
|
||||||
|
|
||||||
/* First add the frequency of the local interface */
|
/* First add the frequency of the local interface */
|
||||||
|
@ -4039,12 +4053,16 @@ int get_shared_radio_freqs(struct wpa_supplicant *wpa_s,
|
||||||
if (freq > 0 && idx < len &&
|
if (freq > 0 && idx < len &&
|
||||||
(idx == 0 || freq_array[0] != freq))
|
(idx == 0 || freq_array[0] != freq))
|
||||||
freq_array[idx++] = freq;
|
freq_array[idx++] = freq;
|
||||||
|
dump_freq_array(wpa_s, "No get_radio_name", freq_array, idx);
|
||||||
return idx;
|
return idx;
|
||||||
}
|
}
|
||||||
|
|
||||||
rn = wpa_s->driver->get_radio_name(wpa_s->drv_priv);
|
rn = wpa_s->driver->get_radio_name(wpa_s->drv_priv);
|
||||||
if (rn == NULL || rn[0] == '\0')
|
if (rn == NULL || rn[0] == '\0') {
|
||||||
|
dump_freq_array(wpa_s, "get_radio_name failed",
|
||||||
|
freq_array, idx);
|
||||||
return idx;
|
return idx;
|
||||||
|
}
|
||||||
|
|
||||||
for (ifs = wpa_s->global->ifaces; ifs && idx < len;
|
for (ifs = wpa_s->global->ifaces; ifs && idx < len;
|
||||||
ifs = ifs->next) {
|
ifs = ifs->next) {
|
||||||
|
@ -4074,5 +4092,7 @@ int get_shared_radio_freqs(struct wpa_supplicant *wpa_s,
|
||||||
if (i == idx)
|
if (i == idx)
|
||||||
freq_array[idx++] = freq;
|
freq_array[idx++] = freq;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dump_freq_array(wpa_s, "completed iteration", freq_array, idx);
|
||||||
return idx;
|
return idx;
|
||||||
}
|
}
|
||||||
|
|
|
@ -863,6 +863,8 @@ int wpas_network_disabled(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid);
|
||||||
|
|
||||||
int wpas_init_ext_pw(struct wpa_supplicant *wpa_s);
|
int wpas_init_ext_pw(struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
void dump_freq_array(struct wpa_supplicant *wpa_s, const char *title,
|
||||||
|
int *freq_array, unsigned int len);
|
||||||
int get_shared_radio_freqs(struct wpa_supplicant *wpa_s,
|
int get_shared_radio_freqs(struct wpa_supplicant *wpa_s,
|
||||||
int *freq_array, unsigned int len);
|
int *freq_array, unsigned int len);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue