P2P: Increase GO Negotiation timeouts

There may be environments in which large number of devices are operating
on the social channels. In such cases, it is possible for the Action
frame TX operation wait for quite long time before being able to get the
frame out. To avoid triggering GO Negotiation failures, increase the
timeouts for GO Neg Req (with TX ACK) and GO Neg Resp (with or without
TX ACK as long as status=0) to 500 ms.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
Jouni Malinen 2013-02-28 22:15:46 +02:00 committed by Jouni Malinen
parent 316a9e4d30
commit 8e4839cefa
2 changed files with 4 additions and 4 deletions

View file

@ -2945,7 +2945,7 @@ static void p2p_go_neg_req_cb(struct p2p_data *p2p, int success)
* channel. * channel.
*/ */
p2p_set_state(p2p, P2P_CONNECT); p2p_set_state(p2p, P2P_CONNECT);
p2p_set_timeout(p2p, 0, success ? 200000 : 100000); p2p_set_timeout(p2p, 0, success ? 500000 : 100000);
} }
@ -2961,7 +2961,7 @@ static void p2p_go_neg_resp_cb(struct p2p_data *p2p, int success)
return; return;
} }
p2p_set_state(p2p, P2P_CONNECT); p2p_set_state(p2p, P2P_CONNECT);
p2p_set_timeout(p2p, 0, 250000); p2p_set_timeout(p2p, 0, 500000);
} }

View file

@ -230,7 +230,7 @@ int p2p_connect_send(struct p2p_data *p2p, struct p2p_device *dev)
dev->connect_reqs++; dev->connect_reqs++;
if (p2p_send_action(p2p, freq, dev->info.p2p_device_addr, if (p2p_send_action(p2p, freq, dev->info.p2p_device_addr,
p2p->cfg->dev_addr, dev->info.p2p_device_addr, p2p->cfg->dev_addr, dev->info.p2p_device_addr,
wpabuf_head(req), wpabuf_len(req), 200) < 0) { wpabuf_head(req), wpabuf_len(req), 500) < 0) {
wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG, wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG,
"P2P: Failed to send Action frame"); "P2P: Failed to send Action frame");
/* Use P2P find to recover and retry */ /* Use P2P find to recover and retry */
@ -773,7 +773,7 @@ fail:
P2P_PENDING_GO_NEG_RESPONSE_FAILURE; P2P_PENDING_GO_NEG_RESPONSE_FAILURE;
if (p2p_send_action(p2p, freq, sa, p2p->cfg->dev_addr, if (p2p_send_action(p2p, freq, sa, p2p->cfg->dev_addr,
p2p->cfg->dev_addr, p2p->cfg->dev_addr,
wpabuf_head(resp), wpabuf_len(resp), 250) < 0) { wpabuf_head(resp), wpabuf_len(resp), 500) < 0) {
wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG, wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG,
"P2P: Failed to send Action frame"); "P2P: Failed to send Action frame");
} }