From: Jouni Malinen Date: Thu, 28 Feb 2013 20:15:46 +0000 (+0200) Subject: P2P: Increase GO Negotiation timeouts X-Git-Tag: aosp-kk-from-upstream~522 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8e4839cefadda21efd993bdf14e6096fa3f4f476;p=thirdparty%2Fhostap.git 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 --- diff --git a/src/p2p/p2p.c b/src/p2p/p2p.c index c174c7488..f608be019 100644 --- a/src/p2p/p2p.c +++ b/src/p2p/p2p.c @@ -2945,7 +2945,7 @@ static void p2p_go_neg_req_cb(struct p2p_data *p2p, int success) * channel. */ 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; } p2p_set_state(p2p, P2P_CONNECT); - p2p_set_timeout(p2p, 0, 250000); + p2p_set_timeout(p2p, 0, 500000); } diff --git a/src/p2p/p2p_go_neg.c b/src/p2p/p2p_go_neg.c index 957e29f28..394b3fbde 100644 --- a/src/p2p/p2p_go_neg.c +++ b/src/p2p/p2p_go_neg.c @@ -230,7 +230,7 @@ int p2p_connect_send(struct p2p_data *p2p, struct p2p_device *dev) dev->connect_reqs++; if (p2p_send_action(p2p, freq, 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, "P2P: Failed to send Action frame"); /* Use P2P find to recover and retry */ @@ -773,7 +773,7 @@ fail: P2P_PENDING_GO_NEG_RESPONSE_FAILURE; if (p2p_send_action(p2p, freq, sa, 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, "P2P: Failed to send Action frame"); }