|
@@ -623,6 +623,17 @@
|
|
|
*
|
|
|
* The attributes used with this command are defined in
|
|
|
* enum qca_wlan_vendor_attr_sar_capability.
|
|
|
+ *
|
|
|
+ * @QCA_NL80211_VENDOR_SUBCMD_SR: Subcommand used to implement Spatial Reuse
|
|
|
+ * (SR) feature. This command is used by userspace to configure SR
|
|
|
+ * parameters to the driver and to get the SR related parameters and
|
|
|
+ * statistics with synchronous responses from the driver.
|
|
|
+ * The driver also uses this command to send asynchronous events to
|
|
|
+ * userspace to indicate suspend/resume of SR feature and changes
|
|
|
+ * in SR parameters.
|
|
|
+ *
|
|
|
+ * The attributes used with this command are defined in
|
|
|
+ * enum qca_wlan_vendor_attr_sr.
|
|
|
*/
|
|
|
|
|
|
enum qca_nl80211_vendor_subcmds {
|
|
@@ -872,6 +883,7 @@ enum qca_nl80211_vendor_subcmds {
|
|
|
QCA_NL80211_VENDOR_SUBCMD_COAP_OFFLOAD = 217,
|
|
|
QCA_NL80211_VENDOR_SUBCMD_SCS_RULE_CONFIG = 218,
|
|
|
QCA_NL80211_VENDOR_SUBCMD_GET_SAR_CAPABILITY = 219,
|
|
|
+ QCA_NL80211_VENDOR_SUBCMD_SR = 220,
|
|
|
};
|
|
|
|
|
|
enum qca_wlan_vendor_tos {
|
|
@@ -14159,4 +14171,256 @@ enum qca_wlan_vendor_attr_sar_capability {
|
|
|
QCA_WLAN_VENDOR_ATTR_SAR_CAPABILITY_AFTER_LAST - 1,
|
|
|
};
|
|
|
|
|
|
+/**
|
|
|
+ * enum qca_wlan_vendor_attr_sr_stats - Attributes for Spatial Reuse statistics.
|
|
|
+ * These statistics are sent from the driver in a response when userspace
|
|
|
+ * queries to get the statistics using the operation
|
|
|
+ * %QCA_WLAN_SR_OPERATION_GET_STATS. These statistics are reset
|
|
|
+ * by the driver when the SR feature is enabled, when the driver receives
|
|
|
+ * %QCA_WLAN_SR_OPERATION_CLEAR_STATS operation, or when disconnected.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_SR_STATS_NON_SRG_TX_OPPORTUNITIES_COUNT: u32 attribute.
|
|
|
+ * Mandatory only when non-SRG is supported by the AP and optional otherwise.
|
|
|
+ * This represents the number of non-SRG TX opportunities.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_SR_STATS_NON_SRG_TX_PPDU_TRIED_COUNT: u32 attribute.
|
|
|
+ * Mandatory only when non-SRG is supported by the AP and optional otherwise.
|
|
|
+ * This represents the number of non-SRG PPDUs tried to transmit.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_SR_STATS_NON_SRG_TX_PPDU_SUCCESS_COUNT: u32 attribute.
|
|
|
+ * Mandatory only when non-SRG is supported by the AP and optional otherwise.
|
|
|
+ * This represents the number of non-SRG PPDUs successfully transmitted.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_SR_STATS_SRG_TX_OPPORTUNITIES_COUNT: u32 attribute.
|
|
|
+ * Mandatory only when SRG is supported by the AP and optional otherwise.
|
|
|
+ * This represents the number of SRG TX opportunities.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_SR_STATS_SRG_TX_PPDU_TRIED_COUNT: u32 attribute.
|
|
|
+ * Mandatory only when SRG is supported by the AP and optional otherwise.
|
|
|
+ * This represents the number of SRG PPDUs tried to transmit.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_SR_STATS_SRG_TX_PPDU_SUCCESS_COUNT: u32 attribute.
|
|
|
+ * Mandatory only when SRG is supported by the AP and optional otherwise.
|
|
|
+ * This represents the number of SRG PPDUs successfully transmitted.
|
|
|
+ */
|
|
|
+enum qca_wlan_vendor_attr_sr_stats {
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_STATS_INVALID = 0,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_STATS_NON_SRG_TX_OPPORTUNITIES_COUNT = 1,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_STATS_NON_SRG_TX_PPDU_TRIED_COUNT = 2,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_STATS_NON_SRG_TX_PPDU_SUCCESS_COUNT = 3,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_STATS_SRG_TX_OPPORTUNITIES_COUNT = 4,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_STATS_SRG_TX_PPDU_TRIED_COUNT = 5,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_STATS_SRG_TX_PPDU_SUCCESS_COUNT = 6,
|
|
|
+
|
|
|
+ /* Keep last */
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_STATS_AFTER_LAST,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_STATS_MAX =
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_STATS_AFTER_LAST - 1,
|
|
|
+};
|
|
|
+
|
|
|
+/**
|
|
|
+ * enum qca_wlan_sr_reason_code - Defines the different reason codes used in
|
|
|
+ * Spatial Reuse feature.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_SR_REASON_CODE_ROAMING: The SR feature is disabled/enabled due to
|
|
|
+ * roaming to an AP that doesn't support/supports SR feature, respectively.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_SR_REASON_CODE_CONCURRENCY: The SR feature is disabled/enabled due
|
|
|
+ * to change in concurrent interfaces that are supported by the driver.
|
|
|
+ */
|
|
|
+enum qca_wlan_sr_reason_code {
|
|
|
+ QCA_WLAN_SR_REASON_CODE_ROAMING = 0,
|
|
|
+ QCA_WLAN_SR_REASON_CODE_CONCURRENCY = 1,
|
|
|
+};
|
|
|
+
|
|
|
+/**
|
|
|
+ * enum qca_wlan_sr_operation - Defines the different types of SR operations.
|
|
|
+ * The values are used inside attribute %QCA_WLAN_VENDOR_ATTR_SR_OPERATION.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_SR_OPERATION_SR_ENABLE: Userspace sends this operation to the
|
|
|
+ * driver to enable the Spatial Reuse feature. Attributes
|
|
|
+ * %QCA_WLAN_VENDOR_ATTR_SR_PARAMS_SRG_PD_THRESHOLD and
|
|
|
+ * %QCA_WLAN_VENDOR_ATTR_SR_PARAMS_NON_SRG_PD_THRESHOLD are used with this
|
|
|
+ * operation.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_SR_OPERATION_SR_DISABLE: Userspace sends this operation to the
|
|
|
+ * driver to disable the Spatial Reuse feature.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_SR_OPERATION_SR_SUSPEND: The driver uses this operation in an
|
|
|
+ * asynchronous event sent to userspace when the SR feature is disabled.
|
|
|
+ * The disable reason is encoded in QCA_WLAN_VENDOR_ATTR_SR_PARAMS_REASON_CODE
|
|
|
+ * and sent along with the asynchronous event.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_SR_OPERATION_SR_RESUME: The driver uses this operation in an
|
|
|
+ * asynchronous event when the SR feature is enabled again after the SR feature
|
|
|
+ * was suspended by the driver earlier. The enable reason is
|
|
|
+ * encoded in QCA_WLAN_VENDOR_ATTR_SR_PARAMS_REASON_CODE. Attributes used are
|
|
|
+ * %QCA_WLAN_VENDOR_ATTR_SR_PARAMS_SRG_PD_THRESHOLD and
|
|
|
+ * %QCA_WLAN_VENDOR_ATTR_SR_PARAMS_NON_SRG_PD_THRESHOLD.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_SR_OPERATION_PSR_AND_NON_SRG_OBSS_PD_PROHIBIT: This operation is
|
|
|
+ * used to prohibit PSR-based spatial reuse and non-SRG OBSS PD-based spatial
|
|
|
+ * reuse transmissions. Userspace sends this operation to the driver.
|
|
|
+ * The driver/firmware upon receiving this operation shall prohibit PSR-based
|
|
|
+ * spatial reuse and non-SRG OBSS PD-based spatial reuse transmissions.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_SR_OPERATION_PSR_AND_NON_SRG_OBSS_PD_ALLOW: This operation is
|
|
|
+ * used to allow PSR-based spatial reuse and non-SRG OBSS PD-based spatial
|
|
|
+ * reuse transmissions. Userspace sends this operation to the driver.
|
|
|
+ * The driver/firmware upon receiving this operation shall allow PSR-based
|
|
|
+ * spatial reuse and non-SRG OBSS PD-based spatial reuse transmissions.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_SR_OPERATION_GET_STATS: Userspace sends this operation to the
|
|
|
+ * driver to get the SR statistics and the driver sends a synchronous response
|
|
|
+ * with the attributes defined in enum qca_wlan_vendor_attr_sr_stats using the
|
|
|
+ * nested attribute %QCA_WLAN_VENDOR_ATTR_SR_STATS.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_SR_OPERATION_CLEAR_STATS: Userspace sends this operation to the
|
|
|
+ * driver to clear the SR statistics and upon receiving this operation
|
|
|
+ * the driver/firmware shall clear the SR statistics.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_SR_OPERATION_GET_PARAMS: Userspace sends this operation to the
|
|
|
+ * driver to get the SR parameters and the driver sends the synchronous response
|
|
|
+ * with the following required attributes:
|
|
|
+ * %QCA_WLAN_VENDOR_ATTR_SR_PARAMS_SRG_OBSS_PD_MIN_OFFSET,
|
|
|
+ * %QCA_WLAN_VENDOR_ATTR_SR_PARAMS_SRG_OBSS_PD_MAX_OFFSET,
|
|
|
+ * %QCA_WLAN_VENDOR_ATTR_SR_PARAMS_NON_SRG_OBSS_PD_MAX_OFFSET,
|
|
|
+ * %QCA_WLAN_VENDOR_ATTR_SR_PARAMS_HESIGA_VAL15_ENABLE,
|
|
|
+ * %QCA_WLAN_VENDOR_ATTR_SR_PARAMS_NON_SRG_OBSS_PD_DISALLOW.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_SR_OPERATION_UPDATE_PARAMS: The driver uses this operation in an
|
|
|
+ * asynchronous event to userspace to update any changes in SR parameters.
|
|
|
+ * The following attributes are used with this operation:
|
|
|
+ * %QCA_WLAN_VENDOR_ATTR_SR_PARAMS_SRG_OBSS_PD_MIN_OFFSET,
|
|
|
+ * %QCA_WLAN_VENDOR_ATTR_SR_PARAMS_SRG_OBSS_PD_MAX_OFFSET,
|
|
|
+ * %QCA_WLAN_VENDOR_ATTR_SR_PARAMS_NON_SRG_OBSS_PD_MAX_OFFSET,
|
|
|
+ * %QCA_WLAN_VENDOR_ATTR_SR_PARAMS_HESIGA_VAL15_ENABLE,
|
|
|
+ * %QCA_WLAN_VENDOR_ATTR_SR_PARAMS_NON_SRG_OBSS_PD_DISALLOW.
|
|
|
+ */
|
|
|
+enum qca_wlan_sr_operation {
|
|
|
+ QCA_WLAN_SR_OPERATION_SR_ENABLE = 0,
|
|
|
+ QCA_WLAN_SR_OPERATION_SR_DISABLE = 1,
|
|
|
+ QCA_WLAN_SR_OPERATION_SR_SUSPEND = 2,
|
|
|
+ QCA_WLAN_SR_OPERATION_SR_RESUME = 3,
|
|
|
+ QCA_WLAN_SR_OPERATION_PSR_AND_NON_SRG_OBSS_PD_PROHIBIT = 4,
|
|
|
+ QCA_WLAN_SR_OPERATION_PSR_AND_NON_SRG_OBSS_PD_ALLOW = 5,
|
|
|
+ QCA_WLAN_SR_OPERATION_GET_STATS = 6,
|
|
|
+ QCA_WLAN_SR_OPERATION_CLEAR_STATS = 7,
|
|
|
+ QCA_WLAN_SR_OPERATION_GET_PARAMS = 8,
|
|
|
+ QCA_WLAN_SR_OPERATION_UPDATE_PARAMS = 9,
|
|
|
+};
|
|
|
+
|
|
|
+/**
|
|
|
+ * enum qca_wlan_vendor_attr_sr_params - Defines attributes for SR configuration
|
|
|
+ * parameters used by attribute %QCA_WLAN_VENDOR_ATTR_SR_PARAMS.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_SR_PARAMS_HESIGA_VAL15_ENABLE: Flag attribute.
|
|
|
+ * This attribute is optionally set in response to
|
|
|
+ * %QCA_WLAN_SR_OPERATION_GET_PARAMS and in request when operation is set to
|
|
|
+ * %QCA_WLAN_SR_OPERATION_PSR_AND_NON_SRG_OBSS_PD_PROHIBIT. Refer IEEE Std
|
|
|
+ * 802.11ax-2021 Figure 9-788r-SR Control field format to understand more
|
|
|
+ * about HESIGA_Spatial_reuse_value15_allowed.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_SR_PARAMS_NON_SRG_OBSS_PD_DISALLOW: Flag attribute.
|
|
|
+ * This attribute is used in response to %QCA_WLAN_SR_OPERATION_GET_PARAMS
|
|
|
+ * operation. This indicates whether non-SRG OBSS PD SR transmissions are
|
|
|
+ * allowed or not at non-AP STAs that are associated with the AP. If present
|
|
|
+ * non-SRG OBSS PD SR transmissions are not allowed else are allowed.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_SR_PARAMS_SRG_OBSS_PD_MIN_OFFSET: Optional u8
|
|
|
+ * attribute. This attribute is used in response to
|
|
|
+ * %QCA_WLAN_SR_OPERATION_GET_PARAMS operation. This indicates the SRG OBSS PD
|
|
|
+ * Min Offset field which contains an unsigned integer that is added to -82 dBm
|
|
|
+ * to generate the value of the SRG OBSS PD Min parameter.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_SR_PARAMS_SRG_OBSS_PD_MAX_OFFSET: Optional u8
|
|
|
+ * attribute. This attribute is used in response to
|
|
|
+ * %QCA_WLAN_SR_OPERATION_GET_PARAMS operation. This indicates the SRG OBSS PD
|
|
|
+ * Max Offset field which contains an unsigned integer that is added to -82 dBm
|
|
|
+ * to generate the value of the SRG OBSS PD Max parameter.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_SR_PARAMS_NON_SRG_OBSS_PD_MAX_OFFSET: Optional u8
|
|
|
+ * attribute. This attribute is used in response to
|
|
|
+ * %QCA_WLAN_SR_OPERATION_GET_PARAMS operation. This indicates the Non-SRG OBSS
|
|
|
+ * PD Max Offset field which contains an unsigned integer that is added to -82
|
|
|
+ * dBm to generate the value of the Non-SRG OBSS PD Max parameter.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_SR_PARAMS_SRG_PD_THRESHOLD: s32 attribute (in dBm).
|
|
|
+ * Userspace optionally sends this attribute with
|
|
|
+ * %QCA_WLAN_SR_OPERATION_SR_ENABLE operation to the driver to specify the
|
|
|
+ * preferred SRG PD threshold. The driver shall send this attribute to
|
|
|
+ * userspace in SR resume event to indicate the PD threshold being used for SR.
|
|
|
+ * When there is change in SRG PD threshold (for example, due to roaming, etc.)
|
|
|
+ * the driver shall indicate the userspace the newly configured SRG PD threshold
|
|
|
+ * using an asynchronous event.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_SR_PARAMS_NON_SRG_PD_THRESHOLD: s32 attribute (in dBm).
|
|
|
+ * Userspace optionally sends this attribute with
|
|
|
+ * %QCA_WLAN_SR_OPERATION_SR_ENABLE operation to the driver to specify the
|
|
|
+ * preferred non-SRG PD threshold. The driver shall send this attribute to
|
|
|
+ * userspace in SR resume event to indicate the PD threshold being used for SR.
|
|
|
+ * When there is change in non-SRG PD threshold (for example, due to roaming,
|
|
|
+ * etc.) the driver shall indicate the userspace the newly configured non-SRG PD
|
|
|
+ * threshold using an asynchronous event.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_SR_PARAMS_REASON_CODE: u32 attribute. The possible
|
|
|
+ * values are defined in enum qca_wlan_sr_reason_code. This
|
|
|
+ * attribute is used with %QCA_WLAN_SR_OPERATION_SR_RESUME and
|
|
|
+ * %QCA_WLAN_SR_OPERATION_SR_SUSPEND operations.
|
|
|
+ */
|
|
|
+enum qca_wlan_vendor_attr_sr_params {
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_PARAMS_INVALID = 0,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_PARAMS_HESIGA_VAL15_ENABLE = 1,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_PARAMS_NON_SRG_OBSS_PD_DISALLOW = 2,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_PARAMS_SRG_OBSS_PD_MIN_OFFSET = 3,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_PARAMS_SRG_OBSS_PD_MAX_OFFSET = 4,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_PARAMS_NON_SRG_OBSS_PD_MAX_OFFSET = 5,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_PARAMS_SRG_PD_THRESHOLD = 6,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_PARAMS_NON_SRG_PD_THRESHOLD = 7,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_PARAMS_REASON_CODE = 8,
|
|
|
+
|
|
|
+ /* keep last */
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_PARAMS_AFTER_LAST,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_PARAMS_MAX =
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_PARAMS_AFTER_LAST - 1,
|
|
|
+};
|
|
|
+
|
|
|
+/**
|
|
|
+ * enum qca_wlan_vendor_attr_sr - Defines the attributes used by the vendor
|
|
|
+ * command QCA_NL80211_VENDOR_SUBCMD_SR.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_SR_OPERATION: Mandatory u8 attribute for all requests
|
|
|
+ * from userspace to the driver. Possible values are defined in enum
|
|
|
+ * qca_wlan_sr_operation.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_SR_PARAMS: Nested attribute, contains the SR
|
|
|
+ * configuration parameters. The possible attributes inside this attribute are
|
|
|
+ * defined in enum qca_wlan_vendor_attr_sr_params.
|
|
|
+ * This attribute is used when QCA_WLAN_VENDOR_ATTR_SR_OPERATION is set to
|
|
|
+ * %QCA_WLAN_SR_OPERATION_SR_ENABLE in requests from userspace to the driver and
|
|
|
+ * also in response from the driver to userspace when the response is sent for
|
|
|
+ * %QCA_WLAN_SR_OPERATION_GET_PARAMS.
|
|
|
+ * The driver uses this attribute in asynchronous events in which the operation
|
|
|
+ * is set to %QCA_WLAN_SR_OPERATION_SR_RESUME,
|
|
|
+ * %QCA_WLAN_SR_OPERATION_SR_SUSPEND or %QCA_WLAN_SR_OPERATION_UPDATE_PARAMS.
|
|
|
+ *
|
|
|
+ * @QCA_WLAN_VENDOR_ATTR_SR_STATS: Nested attribute, contains the SR
|
|
|
+ * statistics. These attributes used inside this are defined in enum
|
|
|
+ * qca_wlan_vendor_attr_sr_stats.
|
|
|
+ * This attribute is used in response from the driver to a command in which
|
|
|
+ * %QCA_WLAN_VENDOR_ATTR_SR_OPERATION is set to
|
|
|
+ * %QCA_WLAN_SR_OPERATION_GET_STATS.
|
|
|
+ */
|
|
|
+enum qca_wlan_vendor_attr_sr {
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_INVALID = 0,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_OPERATION = 1,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_PARAMS = 2,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_STATS = 3,
|
|
|
+
|
|
|
+ /* Keep last */
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_AFTER_LAST,
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_MAX =
|
|
|
+ QCA_WLAN_VENDOR_ATTR_SR_AFTER_LAST - 1,
|
|
|
+};
|
|
|
+
|
|
|
#endif
|