diff options
authorNeeraj Kumar Garg <neerajkg@broadcom.com>2011-12-18 16:01:11 (GMT)
committerJouni Malinen <j@w1.fi>2011-12-18 16:01:11 (GMT)
commitd58ed4e3062da0f3ebbe7434ddb58e1bdc26a67c (patch)
parentbfe3557a0790a036c75f5cd58a318f408a8d4ab8 (diff)
P2P: Reduce the idle time in Wait peer connect state
When waiting for go_neg frame from the peer in WAIT_PEER_CONNECT state, I have observed that sometimes it takes 20 to 30 secs for successful GO negotiation. I also found out that it is because of 1 second idle time, in WAIT_PEER_CONNECT state. While it is good to have 1 second idle time [for doing power-save or doing some other legacy STA Scan or some other useful stuff], this makes GO Negotiation process slow. We wait for 1 second idle and then listen for a random time between 100(min)-300(max) ms. Assume P1 is in WAIT_PEER_CONNECT state and P2 is the one which is now to send go_neg frame. If P2 sends GO Negotiation frame just at the boundary of 300 ms of P1 and assume that P2 takes close to 600-800 ms for one iteration of sending go_neg request (one iteration is GO Negotiation Request frame time + dwell time + listen_time), P2 needs to transmit at least 16-18 Action frames for hitting the listen time of P1. Following patch reduces the idle time to 500 ms. Alternatively we can increase the listen time interval to 500 ms just for WAIT_PEER_CONNECT state.
1 files changed, 1 insertions, 1 deletions
diff --git a/src/p2p/p2p.c b/src/p2p/p2p.c
index 665b780..c0009ce 100644
--- a/src/p2p/p2p.c
+++ b/src/p2p/p2p.c
@@ -2828,7 +2828,7 @@ static void p2p_timeout_wait_peer_connect(struct p2p_data *p2p)
* state once per second to give other uses a chance to use the radio.
p2p_set_state(p2p, P2P_WAIT_PEER_IDLE);
- p2p_set_timeout(p2p, 1, 0);
+ p2p_set_timeout(p2p, 0, 500000);