History

cfg80211: Pass TDLS peer capability information in tdls_mgmt

While framing the TDLS Setup Confirmation frame, the driver needs to know if the TDLS peer is VHT/HT/WMM capable and thus shall construct the VHT/HT operation / WMM parameter elements accordingly. Supplicant determines if the TDLS peer is VHT/HT/WMM capable based on the presence of the respective IEs in the received TDLS Setup Response frame. The host driver should not need to parse the received TDLS Response frame and thus, should be able to rely on the supplicant to indicate the capability of the peer through additional flags while transmitting the TDLS Setup Confirmation frame through tdls_mgmt operations.

Sunil Dutt Undekari committed 12 years ago

Commit df942e71 parent bf5f4837 files · +47 −13Browse files

Showing the changes to include/uapi/linux (1 of 7 files). Show all

Unified · Split

include/uapi/linux/nl80211.h+21−0
@@ -1575,6 +1575,9 @@ enum nl80211_commands { · 1574 unmodified lines
15751575 * advertise values that cannot always be met. In such cases, an attempt
15761576 * to add a new station entry with @NL80211_CMD_NEW_STATION may fail.
15771577 *
1578+ * @NL80211_ATTR_TDLS_PEER_CAPABILITY: flags for TDLS peer capabilities, u32.
1579+ * As specified in the &enum nl80211_tdls_peer_capability.
1580+ *
15781581 * @NL80211_ATTR_MAX: highest attribute number currently defined
15791582 * @__NL80211_ATTR_AFTER_LAST: internal use
15801583 */
@@ -1908,6 +1911,8 @@ enum nl80211_attrs { · 327 unmodified lines
19081911
19091912 NL80211_ATTR_MAX_AP_ASSOC_STA,
19101913
1914+ NL80211_ATTR_TDLS_PEER_CAPABILITY,
1915+
19111916 /* add attributes here, update the policy in nl80211.c */
19121917
19131918 __NL80211_ATTR_AFTER_LAST,
@@ -4074,4 +4079,20 @@ struct nl80211_vendor_cmd_info { · 2160 unmodified lines
40744079 __u32 subcmd;
40754080 };
40764081
4082+/**
4083+ * enum nl80211_tdls_peer_capability - TDLS peer flags.
4084+ *
4085+ * Used by tdls_mgmt() to determine which conditional elements need
4086+ * to be added to TDLS Setup frames.
4087+ *
4088+ * @NL80211_TDLS_PEER_HT: TDLS peer is HT capable.
4089+ * @NL80211_TDLS_PEER_VHT: TDLS peer is VHT capable.
4090+ * @NL80211_TDLS_PEER_WMM: TDLS peer is WMM capable.
4091+ */
4092+enum nl80211_tdls_peer_capability {
4093+ NL80211_TDLS_PEER_HT = 1<<0,
4094+ NL80211_TDLS_PEER_VHT = 1<<1,
4095+ NL80211_TDLS_PEER_WMM = 1<<2,
4096+};
4097+
40774098 #endif /* __LINUX_NL80211_H */