aboutsummaryrefslogtreecommitdiffstats
path: root/src/rsn_supp/tdls.c
Commit message (Collapse)AuthorAgeFilesLines
* TDLS: Add support for TDLS frame RX with bridge interfacesSubrat Dash2012-03-301-1/+3
| | | | Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
* 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>
* TDLS: Do not clear peer data too early for teardownJouni Malinen2011-10-271-5/+6
| | | | | | TPK will be needed to be able to generate FTIE MIC for the teardown message, so maintain peer data for a bit longer in case the teardown FTIE request comes back from the driver.
* TDLS: Disable link on various error casesJouni Malinen2011-10-271-0/+10
| | | | This is needed to be able to return back to AP path on error cases.
* TDLS: Disable previous link to fix renegotiationJouni Malinen2011-10-271-0/+8
|
* TDLS: Fix concurrent initialization test codeJouni Malinen2011-10-271-0/+13
| | | | | Must not use data from peer TDLS Setup Request if the concurrent initialization from us is supposed to be the one that gets completed.
* TDLS: Fix teardown on renegotiationJouni Malinen2011-10-271-1/+5
| | | | | Need to disable the link when receiving TDLS Setup Request from a peer with which a direct link has already been set up.
* TDLS: Fix long frame test for teardownJouni Malinen2011-10-271-1/+2
|
* TDLS: Make use of wpa_tdls_add_peer to avoid code duplicationArik Nemtsov2011-10-231-11/+2
| | | | | | | Use the wpa_tdls_add_peer function to allocate TDLS peer structures. Signed-off-by: Arik Nemtsov <arik@wizery.com> Cc: Kalyan C Gaddam <chakkal@iit.edu>
* TDLS: Support mgmt-frame Tx for ctrl-iface operationsArik Nemtsov2011-10-231-0/+6
| | | | | | | | Use capability information to decide whether to perform a given TDLS operation internally or through mgmt-frame Tx. Signed-off-by: Arik Nemtsov <arik@wizery.com> Cc: Kalyan C Gaddam <chakkal@iit.edu>
* TDLS: Add peer as a STA during link setupArik Nemtsov2011-10-231-2/+21
| | | | | | | | | | | | | | | | | | | Before commencing setup, add a new STA entry to the driver representing the peer. Later during setup, update the STA entry using information received from the peer. Extend sta_add() callback for adding/modifying a TDLS peer entry and connect it to the TDLS state machine. Implement this callback for the nl80211 driver and send peer information to kernel. Mark TDLS peer entries with a new flag and translate it to a corresponding nl80211 flag in the nl80211 driver. In addition, correct TDLS related documentation in the wpa_driver_ops structure. Signed-off-by: Arik Nemtsov <arik@wizery.com> Cc: Kalyan C Gaddam <chakkal@iit.edu>
* TDLS: Collect peer capabilities and supp-rates during link setupArik Nemtsov2011-10-231-21/+63
| | | | | | | | | Record the capabilities and supported rates of the TDLS peer during link setup. These are given in the IEs passed in Setup Request and Setup Response frames. Signed-off-by: Arik Nemtsov <arik@wizery.com> Cc: Kalyan C Gaddam <chakkal@iit.edu>
* TDLS: Implement low-ack event for lost TDLS peersArik Nemtsov2011-10-231-0/+16
| | | | | | | | Disable the direct connection when a TDLS peer stops responding to packets, as indicated by the "LOW ACK" event coming from a driver. Signed-off-by: Arik Nemtsov <arik@wizery.com> Cc: Kalyan C Gaddam <chakkal@iit.edu>
* TDLS: Support sending TDLS discovery requestsArik Nemtsov2011-10-231-0/+12
| | | | | | | Allow sending a TDLS discovery request as a frame through the driver. Signed-off-by: Arik Nemtsov <arik@wizery.com> Cc: Kalyan C Gaddam <chakkal@iit.edu>
* TDLS: Support sending a teardown frame from usermodeArik Nemtsov2011-10-231-10/+54
| | | | | | | | | | When a driver does not implement the TDLS_TEARDOWN operation internally, send an explicit TDLS link teardown frame to the driver. Change all teardown calls to use these calling semantics. Signed-off-by: Arik Nemtsov <arik@wizery.com> Cc: Kalyan C Gaddam <chakkal@iit.edu>
* TDLS: Process discovery requests and send discovery responsesArik Nemtsov2011-10-231-1/+87
| | | | | | | | | When a discovery request is received, add the peer to the TDLS peer cache and send a response containing minimal data. Mandatory IEs in the discovery response frame will be filled out by the driver. Signed-off-by: Arik Nemtsov <arik@wizery.com> Cc: Kalyan C Gaddam <chakkal@iit.edu>
* TDLS: Get TDLS related capabilities from driverArik Nemtsov2011-10-231-5/+21
| | | | | | | | | | | | | | Put glue code in place to propagate TDLS related driver capabilities to the TDLS state machine. If the driver doesn't support capabilities, assume TDLS is supported internally. When TDLS is explicitly not supported, disable all user facing TDLS operations. Signed-off-by: Arik Nemtsov <arik@wizery.com> Cc: Kalyan C Gaddam <chakkal@iit.edu>
* TDLS: Use a valid dialog-token in a setup requestArik Nemtsov2011-10-231-1/+1
| | | | | | | A zero dialog-token is considered invalid by IEEE Std 802.11z-2010. Signed-off-by: Arik Nemtsov <arik@wizery.com> Cc: Kalyan C Gaddam <chakkal@iit.edu>
* TDLS: Validate FTIE length before processing itJouni Malinen2011-04-131-5/+7
| | | | | | | This avoids reading past the end of the IE buffer should the FTIE be too short. In addition, one debug hexdump was using uninitialized pointer to the FTIE buffer, so fixed it to use the pointer from the parse data.
* TDLS: Disable teardown MIC validation workaroundJouni Malinen2011-04-071-7/+0
| | | | | This MIC is required to be correct if the keys are set, so reject the message if it does not have a valid MIC.
* TDLS: Allow TDLS to be disabled at runtime for testing purposesJouni Malinen2011-03-241-0/+21
| | | | | | Control interface command 'SET tdls_disabled <1/0>' can now be used to disable/enable TDLS at runtime. This is mainly for testing purposes.
* TDLS: Add tdls_testing 0x400 for ignoring AP prohibit TDLSJouni Malinen2011-03-061-0/+17
|
* TDLS: Do not allow setup to be started if AP prohibits TDLSJouni Malinen2011-03-061-0/+50
|
* TDLS: Add tdls_testing 0x200 for declining TDLS Setup ResponseJouni Malinen2011-03-061-0/+9
|
* TDLS: Allow wpa_cli tdls_setup to start renegotiationJouni Malinen2011-03-061-0/+16
| | | | | | If there is already a link the requested peer, request start of renegotiation instead of completely new link. This seems to be needed to allow some driver to accept the trigger for a new negotiation.
* TDLS: Add testing mode for disabling TPK expirationJouni Malinen2011-03-061-0/+8
| | | | | tdls_testing 0x104 can now be used to disable expiration of TPK (0x100) and to use a short lifetime when initiating link (0x4).
* TDLS: Add testing code for concurrent initiationJouni Malinen2011-03-061-0/+22
| | | | | | tdls_testing 0x80 can now be used to request wpa_supplicant to send a TDLS Setup Request frame (i.e., try to initiate TDLS setup) whenever a TDLS Setup Request frame has been received from a peer.
* TDLS: Fix higher/lower MAC address check for concurrent initJouni Malinen2011-03-061-16/+11
| | | | | The logic here was reversed: the STA with lower MAC address is the one that continues as the initiator.
* TDLS: Tear down old link when receiving TDLS Setup RequestJouni Malinen2011-03-061-2/+24
|
* TDLS: Add tdls_testing flag (bit 6) for testing long TPK lifetimeJouni Malinen2011-03-061-0/+6
|
* TDLS: Use more thorough validation of TPK handshakeJouni Malinen2011-03-061-67/+114
|
* TDLS: Replace os_memset() of all peer data with safer approachJouni Malinen2011-03-061-24/+12
| | | | | | | | | Blindly clearing all struct wpa_tdls_peer members is a risky operation since it could easily clear pointers to allocated memory, etc. information that really should not be removed. Instead of hoping that new code gets added here to restore the important variables, reverse the approach and only clear structure members one by one when needed.
* TDLS: Remove unnecessary storing of Link ID IE in peer dataJouni Malinen2011-03-061-14/+20
|
* TDLS: Fix terminology to match with IEEE 802.11zJouni Malinen2011-03-061-105/+100
|
* TDLS: Move TPK M1 sending to a separate functionJouni Malinen2011-03-061-169/+178
| | | | | Now all there TPK handshake messages are sent in similar functions and are easier to find from the source code.
* TDLS: Allow unencrypted network negotiation through wpa_supplicantJouni Malinen2011-03-061-225/+281
| | | | | | This allows the same code path to be used for both protected and unprotected configurations to limit need for duplicated code in both the driver and wpa_supplicant.
* TDLS: Clean up and fix Key Lifetime processingJouni Malinen2011-03-061-150/+115
| | | | | | | | This adds code for validating that the same Key Lifetime is used throughout TPK handshake and enables TPK lifetime expiration and renewal/teardown. These part seem to be working, but the actual handling of TDLS Setup Confirm and renewal are not fully functional yet.
* TDLS: Add new testing modes for TPK lifetime testingJouni Malinen2011-03-061-0/+24
| | | | | | | tdls_testing bits: bit 3 = use short TPK lifetime (301 seconds) bit 4 = use wrong TPK lifetime in TDLS Setup Response bit 5 = use wrong TPK lifetime in TDLS Setup Confirm
* TDLS: Clear peer entries on association/disassociationJouni Malinen2011-03-061-12/+35
| | | | | Since the TDLS links are allowed only to STAs that are in the same BSS with us, clear all peer data whenever the BSS may have changed.
* TDLS: Add a special testing feature for changing TDLS behaviorJouni Malinen2011-03-061-0/+95
| | | | | | | | | | | | | | | | These special test cases can be configured at run time with "wpa_cli tdls_testing <value>" where <value> is an integer (either as a decimal or as a hex value with 0x prefix) bitmap of special features with following bits available at this point: bit 0 = long frame (add dummy subelement to make FTIE very long) bit 1 = use alternative RSN IE (different RSN capab value and no extra replay counters) bit 2 = send incorrect BSSID in Link Identifier of TDLS Setup Request (e.g., 1 = long FTIE, 2 = different RSN IE, 3 = both of those) This is disabled by default and can be enabled for the build by adding the following line to .config: CFLAGS += -DCONFIG_TDLS_TESTING
* TDLS: Add initial support for TDLS (IEEE Std 802.11z-2010)Ganesh Prasadh2011-03-061-0/+1700