QCA vendor command to configure the TDLS behavior in the host driver
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
a18563d428
commit
14cd203fff
1 changed files with 93 additions and 0 deletions
|
@ -228,6 +228,10 @@ enum qca_radiotap_vendor_ids {
|
||||||
* moves around). To unlock the selected sector for a station
|
* moves around). To unlock the selected sector for a station
|
||||||
* pass the special value 0xFFFF in the sector index. To unlock
|
* pass the special value 0xFFFF in the sector index. To unlock
|
||||||
* all connected stations also pass a broadcast MAC address.
|
* all connected stations also pass a broadcast MAC address.
|
||||||
|
*
|
||||||
|
* @QCA_NL80211_VENDOR_SUBCMD_CONFIGURE_TDLS: Configure the TDLS behavior
|
||||||
|
* in the host driver. The different TDLS configurations are defined
|
||||||
|
* by the attributes in enum qca_wlan_vendor_attr_tdls_configuration.
|
||||||
*/
|
*/
|
||||||
enum qca_nl80211_vendor_subcmds {
|
enum qca_nl80211_vendor_subcmds {
|
||||||
QCA_NL80211_VENDOR_SUBCMD_UNSPEC = 0,
|
QCA_NL80211_VENDOR_SUBCMD_UNSPEC = 0,
|
||||||
|
@ -333,6 +337,7 @@ enum qca_nl80211_vendor_subcmds {
|
||||||
QCA_NL80211_VENDOR_SUBCMD_DMG_RF_SET_SECTOR_CFG = 140,
|
QCA_NL80211_VENDOR_SUBCMD_DMG_RF_SET_SECTOR_CFG = 140,
|
||||||
QCA_NL80211_VENDOR_SUBCMD_DMG_RF_GET_SELECTED_SECTOR = 141,
|
QCA_NL80211_VENDOR_SUBCMD_DMG_RF_GET_SELECTED_SECTOR = 141,
|
||||||
QCA_NL80211_VENDOR_SUBCMD_DMG_RF_SET_SELECTED_SECTOR = 142,
|
QCA_NL80211_VENDOR_SUBCMD_DMG_RF_SET_SELECTED_SECTOR = 142,
|
||||||
|
QCA_NL80211_VENDOR_SUBCMD_CONFIGURE_TDLS = 143,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -2114,4 +2119,92 @@ enum qca_wlan_vendor_attr_ll_stats_type
|
||||||
QCA_NL80211_VENDOR_SUBCMD_LL_STATS_TYPE_AFTER_LAST - 1,
|
QCA_NL80211_VENDOR_SUBCMD_LL_STATS_TYPE_AFTER_LAST - 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* enum qca_wlan_vendor_attr_tdls_configuration - Attributes for
|
||||||
|
* TDLS configuration to the host driver.
|
||||||
|
*
|
||||||
|
* @QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_TRIGGER_MODE: Configure the TDLS trigger
|
||||||
|
* mode in the host driver. enum qca_wlan_vendor_tdls_trigger_mode
|
||||||
|
* represents the different TDLS trigger modes.
|
||||||
|
* @QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_TX_STATS_PERIOD: Duration (u32) within
|
||||||
|
* which QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_TX_THRESHOLD number
|
||||||
|
* of packets shall meet the criteria for implicit TDLS setup.
|
||||||
|
* @QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_TX_THRESHOLD: Number (u32) of Tx/Rx packets
|
||||||
|
* within a duration QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_TX_STATS_PERIOD
|
||||||
|
* to initiate a TDLS setup.
|
||||||
|
* @QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_DISCOVERY_PERIOD: Time (u32) to initiate
|
||||||
|
* a TDLS Discovery to the peer.
|
||||||
|
* @QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_MAX_DISCOVERY_ATTEMPT: Max number (u32) of
|
||||||
|
* discovery attempts to know the TDLS capability of the peer. A peer is
|
||||||
|
* marked as TDLS not capable if there is no response for all the attempts.
|
||||||
|
* @QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_IDLE_TIMEOUT: Represents a duration (u32)
|
||||||
|
* within which QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_IDLE_PACKET_THRESHOLD
|
||||||
|
* number of TX / RX frames meet the criteria for TDLS teardown.
|
||||||
|
* @QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_IDLE_PACKET_THRESHOLD: Minimum number (u32)
|
||||||
|
* of Tx/Rx packets within a duration
|
||||||
|
* QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_IDLE_TIMEOUT to tear down a TDLS link.
|
||||||
|
* @QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_SETUP_RSSI_THRESHOLD: Threshold
|
||||||
|
* corresponding to the RSSI of the peer below which a TDLS setup is
|
||||||
|
* triggered.
|
||||||
|
* @QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_TEARDOWN_RSSI_THRESHOLD: Threshold
|
||||||
|
* corresponding to the RSSI of the peer above which a TDLS teardown is
|
||||||
|
* triggered.
|
||||||
|
*/
|
||||||
|
enum qca_wlan_vendor_attr_tdls_configuration {
|
||||||
|
QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_INVALID = 0,
|
||||||
|
QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_TRIGGER_MODE = 1,
|
||||||
|
|
||||||
|
/* Attributes configuring the TDLS Implicit Trigger */
|
||||||
|
QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_TX_STATS_PERIOD = 2,
|
||||||
|
QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_TX_THRESHOLD = 3,
|
||||||
|
QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_DISCOVERY_PERIOD = 4,
|
||||||
|
QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_MAX_DISCOVERY_ATTEMPT = 5,
|
||||||
|
QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_IDLE_TIMEOUT = 6,
|
||||||
|
QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_IDLE_PACKET_THRESHOLD = 7,
|
||||||
|
QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_SETUP_RSSI_THRESHOLD = 8,
|
||||||
|
QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_TEARDOWN_RSSI_THRESHOLD = 9,
|
||||||
|
|
||||||
|
/* keep last */
|
||||||
|
QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_AFTER_LAST,
|
||||||
|
QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_MAX =
|
||||||
|
QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_AFTER_LAST - 1
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* enum qca_wlan_vendor_tdls_trigger_mode: Represents the TDLS trigger mode in
|
||||||
|
* the driver
|
||||||
|
*
|
||||||
|
* The following are the different values for
|
||||||
|
* QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_TRIGGER_MODE.
|
||||||
|
*
|
||||||
|
* @QCA_WLAN_VENDOR_TDLS_TRIGGER_MODE_EXPLICIT: The trigger to initiate/teardown
|
||||||
|
* the TDLS connection to a respective peer comes from the user space.
|
||||||
|
* wpa_supplicant provides the commands TDLS_SETUP, TDLS_TEARDOWN,
|
||||||
|
* TDLS_DISCOVER to do this.
|
||||||
|
* @QCA_WLAN_VENDOR_TDLS_TRIGGER_MODE_IMPLICIT: Host driver triggers this TDLS
|
||||||
|
* setup/teardown to the eligible peer once the configured criteria
|
||||||
|
* (such as TX/RX threshold, RSSI) is met. The attributes
|
||||||
|
* in QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_IMPLICIT_PARAMS correspond to
|
||||||
|
* the different configuration criteria for the TDLS trigger from the
|
||||||
|
* host driver.
|
||||||
|
* @QCA_WLAN_VENDOR_TDLS_TRIGGER_MODE_EXTERNAL: Enables the driver to trigger
|
||||||
|
* the TDLS setup / teardown through the implicit mode only to the
|
||||||
|
* configured MAC addresses (wpa_supplicant, with tdls_external_control=1,
|
||||||
|
* configures the MAC address through TDLS_SETUP / TDLS_TEARDOWN commands).
|
||||||
|
* External mode works on top of the implicit mode. Thus the host driver
|
||||||
|
* is expected to configure in TDLS Implicit mode too to operate in
|
||||||
|
* External mode.
|
||||||
|
* Configuring External mode alone without Implicit mode is invalid.
|
||||||
|
*
|
||||||
|
* All the above implementations work as expected only when the host driver
|
||||||
|
* advertises the capability WPA_DRIVER_FLAGS_TDLS_EXTERNAL_SETUP - representing
|
||||||
|
* that the TDLS message exchange is not internal to the host driver, but
|
||||||
|
* depends on wpa_supplicant to do the message exchange.
|
||||||
|
*/
|
||||||
|
enum qca_wlan_vendor_tdls_trigger_mode {
|
||||||
|
QCA_WLAN_VENDOR_TDLS_TRIGGER_MODE_EXPLICIT = 1 << 0,
|
||||||
|
QCA_WLAN_VENDOR_TDLS_TRIGGER_MODE_IMPLICIT = 1 << 1,
|
||||||
|
QCA_WLAN_VENDOR_TDLS_TRIGGER_MODE_EXTERNAL = 1 << 2,
|
||||||
|
};
|
||||||
|
|
||||||
#endif /* QCA_VENDOR_H */
|
#endif /* QCA_VENDOR_H */
|
||||||
|
|
Loading…
Reference in a new issue