SAE: Reduce queue wait time for pending Authentication frames

The queue_len * 50 ms wait time was too large with the retransmission
timeouts used in the mesh case for SAE. The maximum wait of 750 ms was
enough to prevent successful completion of authentication after having
hit the maximum queue length. While the previous commit is enough to
allow this to complete successfully in couple of retries, it looks like
a smaller wait time should be used here even if it means potentially
using more CPU.

Drop the processing wait time to queue_len * 10 ms so that the maximum
wait time is 150 ms if the queue is full.

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
This commit is contained in:
Jouni Malinen 2019-03-15 00:08:37 +02:00 committed by Jouni Malinen
parent 5e3a759cd4
commit ff5f54e159

View file

@ -1287,7 +1287,7 @@ void auth_sae_process_commit(void *eloop_ctx, void *user_ctx)
if (eloop_is_timeout_registered(auth_sae_process_commit, hapd, NULL)) if (eloop_is_timeout_registered(auth_sae_process_commit, hapd, NULL))
return; return;
queue_len = dl_list_len(&hapd->sae_commit_queue); queue_len = dl_list_len(&hapd->sae_commit_queue);
eloop_register_timeout(0, queue_len * 50000, auth_sae_process_commit, eloop_register_timeout(0, queue_len * 10000, auth_sae_process_commit,
hapd, NULL); hapd, NULL);
} }
@ -1345,7 +1345,7 @@ static void auth_sae_queue(struct hostapd_data *hapd,
queued: queued:
if (eloop_is_timeout_registered(auth_sae_process_commit, hapd, NULL)) if (eloop_is_timeout_registered(auth_sae_process_commit, hapd, NULL))
return; return;
eloop_register_timeout(0, queue_len * 50000, auth_sae_process_commit, eloop_register_timeout(0, queue_len * 10000, auth_sae_process_commit,
hapd, NULL); hapd, NULL);
} }