path: root/wpa_supplicant/offchannel.c
Commit message (Collapse)AuthorAgeFilesLines
* Fix sending non-Public Action frames over P2P Device interfaceLior David2016-05-201-1/+22
| | | | | | | | | | | | | | | | | | | | | | The P2P Device interface can only send Public Action frames. Non-Public Action frames must be sent over a group interface. The previous implementation sometimes tried to send non-Public Action frames such as GO Discoverability over the P2P Device interface, however, the source address of the frame was set to the group interface address so the code in offchannel.c knew to select the correct interface for the TX. The check breaks when the P2P Device and group interfaces have the same MAC address. In this case the frame will be sent over the P2P Device interface and the send will fail. Fix this problem in two places: 1. In offchannel, route non-Public Action frames to the GO interface when the above conditions are met. 2. When a TX_STATUS event arrives on such routed frame, it will arrive on the GO interface but it must be handled by the P2P Device interface since it has the relevant state logic. Signed-off-by: Lior David <qca_liord@qca.qualcomm.com>
* P2P: Add more debug prints for Action frame TX clearing stepsJouni Malinen2015-10-151-6/+23
| | | | | | | This makes it easier to analyze debug logs for issues related to multiple pending Action TX frames. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
* Fix driver-offloaded offchannel TX done processingJouni Malinen2015-02-021-4/+7
| | | | | | | | | | It was possible for a Action frame sequence completion to stop an ongoing offchannel remain-on-channel operation unexpectedly in cases where TX operation was offloaded to the driver and such an operation happened to occur during a previously started remain-on-channel (e.g., for P2P listen state). Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
* P2P: Avoid truncation of long listen operation due to offchan txJithu Jance2014-12-181-0/+9
| | | | | | | | | On receiving the cancel remain on channel event, the pending_tx is scheduled immediately and returned. This was preventing the wpas_p2p_listen_start function from execution thereby resulting in termination of the long listen operation. Signed-off-by: Jithu Jance <jithu@broadcom.com>
* offchannel: Use wpas_get_tx_interface() src parameter more consistentlyJouni Malinen2014-12-141-4/+2
| | | | | | | | | | Both the wpa_s->pending_action_src and src argument to wpas_get_tx_interface() were used somewhat randomly. Make this more consistent since these values are pointing to the same address and the implementation is easier to understand when it is obvious that there is only one address being used. Signed-off-by: Jouni Malinen <j@w1.fi>
* Add test functionality to simulate driver increased ROC durationJouni Malinen2014-10-251-2/+19
| | | | | | | | The extra_roc_dur parameter can now be used in CONFIG_TESTING_OPTIONS=y builds to simulate driver behavior where the ROC duration gets increased without user space request. Signed-off-by: Jouni Malinen <j@w1.fi>
* Fix offchannel TX not to retransmit pending frame on callbackJouni Malinen2014-06-041-5/+11
| | | | | | | | | | | | If the offchannel TX frame command was offloaded to the driver in offchannel_send_action(), we must not send another copy of the frame if a remain-on-channel event happens to be delivered between this TX command and the matching TX status event. It was possible for the duplicated frame to cause problems, e.g., with P2P invitation exchange if the same Invitation Request frame got sent twice and only the first one getting accepted by the peer. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
* P2P: Check Action frame payload match before accepted TX statusPo-Lun Lai2013-10-231-0/+15
| | | | | | | | | | | | It is possible for there to be two pending off-channel TX frames, e.g., when two devices initiate GO Negotiation at more or less the same time. This could result in the TX status report for the first frame clearing wpa_s->pending_action_tx that included the newer frame that has not yet been transmitted (i.e., is waiting to be sent out). Avoid losing that frame by confirming that the TX status payload matches the pending frame before clearing the pending frame and reporting the TX status callback. Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
* P2P: Fix invalid remain-on-channel duration for frame TXWei-Jen Lin2013-07-311-0/+2
| | | | | | | | cfg80211 does not allow the zero duration of remain-on-channel. Instead, use 20 ms as default waiting time when remain-on-channel is used to schedule offchannel transmission that does not expect a response. Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
* Move some P2P offchannel operations to offchannel.cJouni Malinen2012-12-221-2/+28
| | | | | | | | There is no need for p2p_supplicant.c to access wpa_s->pending_action_tx so move these references to offchannel.c to get a bit cleaner interface between the components. Signed-hostap: Jouni Malinen <j@w1.fi>
* Document offchannel Action frame TX functionsJouni Malinen2012-12-221-0/+63
| | | | Signed-hostap: Jouni Malinen <j@w1.fi>
* Remove the GPL notification from files contributed by AtherosJouni Malinen2012-02-111-8/+2
| | | | | | | Remove the GPL notification text from files that were initially contributed by Atheros Communications or Qualcomm Atheros. Signed-hostap: Jouni Malinen <j@w1.fi>
* Add no_cck parameter for send_action() driver_opsJouni Malinen2011-10-291-8/+12
| | | | | | | | | This can be used to apply the no-CCK rule conditionally depending on which frame is being sent. The no-CCK rule applies only for P2P management frames while SA Query and FT use cases do not have similar restrictions. Signed-hostap: Jouni Malinen <j@w1.fi>
* GAS: Use off-channel operations for requestsJouni Malinen2011-09-291-0/+310
This separates off-channel Action frame TX/RX from P2P into a generic implementation that can now be used both for P2P and GAS needs.