nl80211: support sending TDLS commands/frames
Add support for sending high-level TDLS commands and TDLS frames via NL80211_CMD_TDLS_OPER and NL80211_CMD_TDLS_MGMT, respectively. Add appropriate cfg80211 callbacks for lower level drivers. Add wiphy capability flags for TDLS support and advertise them via nl80211. Signed-off-by: Arik Nemtsov <arik@wizery.com> Cc: Kalyan C Gaddam <chakkal@iit.edu> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
a76011e2cb
commit
109086ce0b
3 changed files with 139 additions and 1 deletions
|
@ -506,6 +506,9 @@
|
|||
* @NL80211_CMD_PMKSA_CANDIDATE: This is used as an event to inform userspace
|
||||
* of PMKSA caching dandidates.
|
||||
*
|
||||
* @NL80211_CMD_TDLS_OPER: Perform a high-level TDLS command (e.g. link setup).
|
||||
* @NL80211_CMD_TDLS_MGMT: Send a TDLS management frame.
|
||||
*
|
||||
* @NL80211_CMD_MAX: highest used command number
|
||||
* @__NL80211_CMD_AFTER_LAST: internal use
|
||||
*/
|
||||
|
@ -632,6 +635,9 @@ enum nl80211_commands {
|
|||
|
||||
NL80211_CMD_PMKSA_CANDIDATE,
|
||||
|
||||
NL80211_CMD_TDLS_OPER,
|
||||
NL80211_CMD_TDLS_MGMT,
|
||||
|
||||
/* add new commands above here */
|
||||
|
||||
/* used to define NL80211_CMD_MAX below */
|
||||
|
@ -1089,6 +1095,20 @@ enum nl80211_commands {
|
|||
* This attribute is used with %NL80211_CMD_TRIGGER_SCAN and
|
||||
* %NL80211_CMD_FRAME commands.
|
||||
*
|
||||
* @NL80211_ATTR_TDLS_ACTION: Low level TDLS action code (e.g. link setup
|
||||
* request, link setup confirm, link teardown, etc.). Values are
|
||||
* described in the TDLS (802.11z) specification.
|
||||
* @NL80211_ATTR_TDLS_DIALOG_TOKEN: Non-zero token for uniquely identifying a
|
||||
* TDLS conversation between two devices.
|
||||
* @NL80211_ATTR_TDLS_OPERATION: High level TDLS operation; see
|
||||
* &enum nl80211_tdls_operation, represented as a u8.
|
||||
* @NL80211_ATTR_TDLS_SUPPORT: A flag indicating the device can operate
|
||||
* as a TDLS peer sta.
|
||||
* @NL80211_ATTR_TDLS_EXTERNAL_SETUP: The TDLS discovery/setup and teardown
|
||||
* procedures should be performed by sending TDLS packets via
|
||||
* %NL80211_CMD_TDLS_MGMT. Otherwise %NL80211_CMD_TDLS_OPER should be
|
||||
* used for asking the driver to perform a TDLS operation.
|
||||
*
|
||||
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
||||
* @__NL80211_ATTR_AFTER_LAST: internal use
|
||||
*/
|
||||
|
@ -1311,6 +1331,12 @@ enum nl80211_attrs {
|
|||
|
||||
NL80211_ATTR_TX_NO_CCK_RATE,
|
||||
|
||||
NL80211_ATTR_TDLS_ACTION,
|
||||
NL80211_ATTR_TDLS_DIALOG_TOKEN,
|
||||
NL80211_ATTR_TDLS_OPERATION,
|
||||
NL80211_ATTR_TDLS_SUPPORT,
|
||||
NL80211_ATTR_TDLS_EXTERNAL_SETUP,
|
||||
|
||||
/* add attributes here, update the policy in nl80211.c */
|
||||
|
||||
__NL80211_ATTR_AFTER_LAST,
|
||||
|
@ -2604,4 +2630,20 @@ enum nl80211_pmksa_candidate_attr {
|
|||
MAX_NL80211_PMKSA_CANDIDATE = NUM_NL80211_PMKSA_CANDIDATE - 1
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nl80211_tdls_operation - values for %NL80211_ATTR_TDLS_OPERATION
|
||||
* @NL80211_TDLS_DISCOVERY_REQ: Send a TDLS discovery request
|
||||
* @NL80211_TDLS_SETUP: Setup TDLS link
|
||||
* @NL80211_TDLS_TEARDOWN: Teardown a TDLS link which is already established
|
||||
* @NL80211_TDLS_ENABLE_LINK: Enable TDLS link
|
||||
* @NL80211_TDLS_DISABLE_LINK: Disable TDLS link
|
||||
*/
|
||||
enum nl80211_tdls_operation {
|
||||
NL80211_TDLS_DISCOVERY_REQ,
|
||||
NL80211_TDLS_SETUP,
|
||||
NL80211_TDLS_TEARDOWN,
|
||||
NL80211_TDLS_ENABLE_LINK,
|
||||
NL80211_TDLS_DISABLE_LINK,
|
||||
};
|
||||
|
||||
#endif /* __LINUX_NL80211_H */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue