[PATCH] Fix scan retry after a failure

Kalle Valo kalle.valo
Sun Oct 10 23:44:36 PDT 2010


Jouni Malinen <j at w1.fi> writes:

> On Wed, Oct 06, 2010 at 03:46:46PM +0300, Kalle Valo wrote:
>> With broadcom's "wl" driver the first scan always fails. (Apparently it also
>> doesn't send scan results ready signals, but let's forget it for now.) With
>> connman's five minute scan interval it meant that it would take five minutes
>> from boot until a wireless connection was established.
>> 
>> The reason is that currently wpasupplicant doesn't handle scan retries
>> and it goes directly to INACTIVE state:
>> 
>> 14:23:09 wpa_supplicant[1046]: Scan timeout - try to get results
>> 14:23:09 wpa_supplicant[1046]: Failed to get scan results
>> 14:23:09 wpa_supplicant[1046]: Failed to get scan results - try scanning again
>> 14:23:09 wpa_supplicant[1046]: State: SCANNING -> INACTIVE
>> 
>> Instead of going to INACTIVE set wpa_s->scan_req to make it explicit
>> that this is a requested scan and fix check in wpa_supplicant_req_new_scan().
>
> I would be fine with this for the case where the initial scan is
> failing. However, I'm not sure I would really like to see this hitting
> for other possible error cases, i.e., I don't want this to have a
> possibility of hitting a look where a new scan is requested one second
> after failure to get scan results regardless of the current state..

Makes sense. I'll try to come up with something and send v2.

>> @@ -893,6 +894,7 @@ static void wpa_supplicant_event_scan_results(struct wpa_supplicant *wpa_s,
>>  			return;
>>  		wpa_printf(MSG_DEBUG, "Failed to get scan results - try "
>>  			   "scanning again");
>> +		wpa_s->scan_req = 2;
>>  		wpa_supplicant_req_new_scan(wpa_s, 1, 0);
>>  		return;
>>  	}
>
> This, I would hope to be done only if the failure happened on the
> initial scan attempt and in that case, wpa_s->scan_req = 1 may be better
> option here since that matches with the value used in the initial scan.

Ok, I'll change it.

Thanks for the review.

-- 
Kalle Valo



More information about the Hostap mailing list