diff options
author | Arik Nemtsov <arik@wizery.com> | 2011-09-28 07:12:50 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-09-30 15:57:05 -0400 |
commit | 109086ce0b0f94760bdb0e8e2566ff8a2d673639 (patch) | |
tree | 217a3d18f203fe1cf8652f9b33c4ade1f61594c2 /include/net/cfg80211.h | |
parent | a76011e2cbb6915f60488477311e0f269cee6496 (diff) |
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>
Diffstat (limited to 'include/net/cfg80211.h')
-rw-r--r-- | include/net/cfg80211.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 34b8f269976b..74f4f85be32f 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
@@ -1422,6 +1422,9 @@ struct cfg80211_gtk_rekey_data { | |||
1422 | * @set_ringparam: Set tx and rx ring sizes. | 1422 | * @set_ringparam: Set tx and rx ring sizes. |
1423 | * | 1423 | * |
1424 | * @get_ringparam: Get tx and rx ring current and maximum sizes. | 1424 | * @get_ringparam: Get tx and rx ring current and maximum sizes. |
1425 | * | ||
1426 | * @tdls_mgmt: Transmit a TDLS management frame. | ||
1427 | * @tdls_oper: Perform a high-level TDLS operation (e.g. TDLS link setup). | ||
1425 | */ | 1428 | */ |
1426 | struct cfg80211_ops { | 1429 | struct cfg80211_ops { |
1427 | int (*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow); | 1430 | int (*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow); |
@@ -1605,6 +1608,12 @@ struct cfg80211_ops { | |||
1605 | 1608 | ||
1606 | int (*set_rekey_data)(struct wiphy *wiphy, struct net_device *dev, | 1609 | int (*set_rekey_data)(struct wiphy *wiphy, struct net_device *dev, |
1607 | struct cfg80211_gtk_rekey_data *data); | 1610 | struct cfg80211_gtk_rekey_data *data); |
1611 | |||
1612 | int (*tdls_mgmt)(struct wiphy *wiphy, struct net_device *dev, | ||
1613 | u8 *peer, u8 action_code, u8 dialog_token, | ||
1614 | u16 status_code, const u8 *buf, size_t len); | ||
1615 | int (*tdls_oper)(struct wiphy *wiphy, struct net_device *dev, | ||
1616 | u8 *peer, enum nl80211_tdls_operation oper); | ||
1608 | }; | 1617 | }; |
1609 | 1618 | ||
1610 | /* | 1619 | /* |
@@ -1657,6 +1666,12 @@ struct cfg80211_ops { | |||
1657 | * @WIPHY_FLAG_SUPPORTS_FW_ROAM: The device supports roaming feature in the | 1666 | * @WIPHY_FLAG_SUPPORTS_FW_ROAM: The device supports roaming feature in the |
1658 | * firmware. | 1667 | * firmware. |
1659 | * @WIPHY_FLAG_AP_UAPSD: The device supports uapsd on AP. | 1668 | * @WIPHY_FLAG_AP_UAPSD: The device supports uapsd on AP. |
1669 | * @WIPHY_FLAG_SUPPORTS_TDLS: The device supports TDLS (802.11z) operation. | ||
1670 | * @WIPHY_FLAG_TDLS_EXTERNAL_SETUP: The device does not handle TDLS (802.11z) | ||
1671 | * link setup/discovery operations internally. Setup, discovery and | ||
1672 | * teardown packets should be sent through the @NL80211_CMD_TDLS_MGMT | ||
1673 | * command. When this flag is not set, @NL80211_CMD_TDLS_OPER should be | ||
1674 | * used for asking the driver/firmware to perform a TDLS operation. | ||
1660 | */ | 1675 | */ |
1661 | enum wiphy_flags { | 1676 | enum wiphy_flags { |
1662 | WIPHY_FLAG_CUSTOM_REGULATORY = BIT(0), | 1677 | WIPHY_FLAG_CUSTOM_REGULATORY = BIT(0), |
@@ -1673,6 +1688,8 @@ enum wiphy_flags { | |||
1673 | WIPHY_FLAG_ENFORCE_COMBINATIONS = BIT(12), | 1688 | WIPHY_FLAG_ENFORCE_COMBINATIONS = BIT(12), |
1674 | WIPHY_FLAG_SUPPORTS_FW_ROAM = BIT(13), | 1689 | WIPHY_FLAG_SUPPORTS_FW_ROAM = BIT(13), |
1675 | WIPHY_FLAG_AP_UAPSD = BIT(14), | 1690 | WIPHY_FLAG_AP_UAPSD = BIT(14), |
1691 | WIPHY_FLAG_SUPPORTS_TDLS = BIT(15), | ||
1692 | WIPHY_FLAG_TDLS_EXTERNAL_SETUP = BIT(16), | ||
1676 | }; | 1693 | }; |
1677 | 1694 | ||
1678 | /** | 1695 | /** |