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:
committed by
John W. Linville
parent
a76011e2cb
commit
109086ce0b
@@ -1422,6 +1422,9 @@ struct cfg80211_gtk_rekey_data {
|
||||
* @set_ringparam: Set tx and rx ring sizes.
|
||||
*
|
||||
* @get_ringparam: Get tx and rx ring current and maximum sizes.
|
||||
*
|
||||
* @tdls_mgmt: Transmit a TDLS management frame.
|
||||
* @tdls_oper: Perform a high-level TDLS operation (e.g. TDLS link setup).
|
||||
*/
|
||||
struct cfg80211_ops {
|
||||
int (*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow);
|
||||
@@ -1605,6 +1608,12 @@ struct cfg80211_ops {
|
||||
|
||||
int (*set_rekey_data)(struct wiphy *wiphy, struct net_device *dev,
|
||||
struct cfg80211_gtk_rekey_data *data);
|
||||
|
||||
int (*tdls_mgmt)(struct wiphy *wiphy, struct net_device *dev,
|
||||
u8 *peer, u8 action_code, u8 dialog_token,
|
||||
u16 status_code, const u8 *buf, size_t len);
|
||||
int (*tdls_oper)(struct wiphy *wiphy, struct net_device *dev,
|
||||
u8 *peer, enum nl80211_tdls_operation oper);
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -1657,6 +1666,12 @@ struct cfg80211_ops {
|
||||
* @WIPHY_FLAG_SUPPORTS_FW_ROAM: The device supports roaming feature in the
|
||||
* firmware.
|
||||
* @WIPHY_FLAG_AP_UAPSD: The device supports uapsd on AP.
|
||||
* @WIPHY_FLAG_SUPPORTS_TDLS: The device supports TDLS (802.11z) operation.
|
||||
* @WIPHY_FLAG_TDLS_EXTERNAL_SETUP: The device does not handle TDLS (802.11z)
|
||||
* link setup/discovery operations internally. Setup, discovery and
|
||||
* teardown packets should be sent through the @NL80211_CMD_TDLS_MGMT
|
||||
* command. When this flag is not set, @NL80211_CMD_TDLS_OPER should be
|
||||
* used for asking the driver/firmware to perform a TDLS operation.
|
||||
*/
|
||||
enum wiphy_flags {
|
||||
WIPHY_FLAG_CUSTOM_REGULATORY = BIT(0),
|
||||
@@ -1673,6 +1688,8 @@ enum wiphy_flags {
|
||||
WIPHY_FLAG_ENFORCE_COMBINATIONS = BIT(12),
|
||||
WIPHY_FLAG_SUPPORTS_FW_ROAM = BIT(13),
|
||||
WIPHY_FLAG_AP_UAPSD = BIT(14),
|
||||
WIPHY_FLAG_SUPPORTS_TDLS = BIT(15),
|
||||
WIPHY_FLAG_TDLS_EXTERNAL_SETUP = BIT(16),
|
||||
};
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user