*
* The attributes used with this command are defined in
* enum qca_wlan_vendor_attr_coex_stats.
+ *
+ * @QCA_NL80211_VENDOR_SUBCMD_ATF_OFFLOAD_OPS: This vendor subcommand is used to
+ * configure airtime fairness. The attributes used with this subcommand
+ * are defined in enum qca_wlan_vendor_attr_atf_offload_ops.
*/
enum qca_nl80211_vendor_subcmds {
QCA_NL80211_VENDOR_SUBCMD_UNSPEC = 0,
QCA_NL80211_VENDOR_SUBCMD_DAR = 265,
QCA_NL80211_VENDOR_SUBCMD_FEATURE_CONFIG = 266,
QCA_NL80211_VENDOR_SUBCMD_GET_COEX_STATS = 267,
+ QCA_NL80211_VENDOR_SUBCMD_ATF_OFFLOAD_OPS = 268,
};
/* Compatibility defines for previously used subcmd names.
QCA_WLAN_VENDOR_ATTR_FEATURE_CONFIG_AFTER_LAST - 1,
};
+/**
+ * enum qca_wlan_vendor_attr_atf_offload_ops - Defines attributes to be used
+ * with vendor subcmd QCA_NL80211_VENDOR_SUBCMD_ATF_OFFLOAD_OPS.
+ *
+ * QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_RADIO_INDEX: Mandatory u32 attribute.
+ * An attribute that represents the index of the radio for which ATF
+ * configuration is received. Radio index is fetched from
+ * NL80211_WIPHY_RADIO_ATTR_INDEX, which is part of the
+ * NL80211_ATTR_WIPHY_RADIOS.
+ *
+ * QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_ENABLED: u8 attribute.
+ * An attribute used to enable or disable ATF offload.
+ * 0 - Disable.
+ * 1 - Enable.
+ * Note: The ATF offload must be enabled first by setting this to 1.
+ * Only if this attribute is enabled, the remaining ATF configuration
+ * attributes will be applied. If ATF offload is disabled (value 0),
+ * all other configuration attributes will be ignored.
+ *
+ * QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_GROUP_CONFIG: Nested attribute.
+ * This attribute is used to send SSID group configuration information.
+ * Each SSID group must contain at least one SSID, and each group can have
+ * its own distinct configuration.
+ * The configuration for each SSID group is provided as a nested attribute.
+ * These nested attributes are defined in
+ * enum qca_wlan_vendor_attr_atf_offload_ssid_group_config.
+
+ * QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_WMM_AC_CONFIG: Nested attribute.
+ * This attribute is used to send configuration for each WMM Access
+ * Category (AC) within an SSID group. The attributes defined in
+ * enum qca_wlan_vendor_attr_atf_offload_wmm_ac_config are nested in
+ * this attribute.
+ *
+ * QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_PEER_CONFIG: Nested attribute.
+ * Indicates the airtime configuration of each peer associated to the radio.
+ * The attributes defined in enum qca_wlan_vendor_attr_atf_offload_peer_config
+ * are nested in this attribute.
+ *
+ * QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_STATS_ENABLED: u8 attribute
+ * Indicates whether ATF offload statistics are enabled or disabled.
+ * 0 - Disable.
+ * 1 - Enable.
+ *
+ * QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_STRICT_SCHEDULING_ENABLED: u8 attribute.
+ * Indicates the ATF strict scheduling to be enabled or disabled.
+ * 0 - Disable.
+ * 1 - Enable.
+ *
+ * QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_VO_DEDICATED_TIME_CONFIG: u16 attribute.
+ * An attribute used to dedicate time slot for Voice (VO) within every
+ * one second window. The value is between 0 to 1000 milliseconds.
+ *
+ * QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_VI_DEDICATED_TIME_CONFIG: u16 attribute.
+ * An attribute used to dedicate time slot for Video (VI) within every one
+ * second window. The value is between 0 to 1000 milliseconds.
+ *
+ * QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_SCHED_POLICY: Nested attribute
+ * representing the ATF scheduling policy of the interface. This attribute is
+ * applicable for an SSID, allowing the firmware to apply the scheduling policy
+ * directly at the interface level. The attributes defined in enum
+ * qca_wlan_vendor_attr_atf_offload_ssid_scheduling_policy are nested in this
+ * attribute.
+ */
+enum qca_wlan_vendor_attr_atf_offload_ops {
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_INVALID = 0,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_RADIO_INDEX = 1,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_ENABLED = 2,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_GROUP_CONFIG = 3,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_WMM_AC_CONFIG = 4,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_PEER_CONFIG = 5,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_STATS_ENABLED = 6,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_STRICT_SCHEDULING_ENABLED = 7,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_VO_DEDICATED_TIME_CONFIG = 8,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_VI_DEDICATED_TIME_CONFIG = 9,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_SCHED_POLICY = 10,
+
+ /* keep last */
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_AFTER_LAST,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_MAX =
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_AFTER_LAST - 1
+};
+
+/**
+ * enum qca_wlan_vendor_attr_atf_offload_ssid_group_config -
+ * Defines attributes to be used with vendor attribute
+ * QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_GROUP_CONFIG.
+ *
+ * @QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_GROUP_INDEX: Mandatory
+ * u8 attribute. Indicates the unique index of the SSID group.
+ * These indexes are assigned based on the order in which the SSID
+ * groups are configured.
+ *
+ * @QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_GROUP_AIRTIME_CONFIGURED:
+ * Mandatory u16 attribute. Indicates the percentage of airtime configured by
+ * the user for the SSID group. The value is represented as a fixed-point
+ * integer with one digit after the decimal point.
+ *
+ * @QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_GROUP_POLICY: Mandatory
+ * u8 attribute. Indicates the scheduling policy of the SSID group.
+ * Attribute value range is 0 to 2.
+ * 0 - Fair scheduling, the SSID group can contribute its
+ * unused airtime with other SSID groups and can also borrow from them.
+ * 1 - Strict scheduling, the SSID group can contribute
+ * its unused airtime with other SSID groups but cannot be borrowed.
+ * 2 - Fair with upper bound, the SSID group can only contribute
+ * its unused airtime, but cannot borrow airtime from other SSID groups.
+ *
+ * @QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_GROUP_UNCONFIGURED_PEERS:
+ * Mandatory u16 attribute. Indicates the number of peers that are associated
+ * but do not have airtime configured by user.
+ *
+ * @QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_GROUP_CONFIGURED_PEERS:
+ * Mandatory u16 attribute. Indicates the number of peers that are associated
+ * and have airtime configured by user. Note: The total number of associated
+ * peers to the SSID group is the sum of configured and unconfigured peers.
+ *
+ * @QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_GROUP_UNCONFIGURED_PEERS_AIRTIME:
+ * Mandatory u16 attribute. Indicates the percentage of total airtime allocated
+ * for unconfigured peers within the SSID group. The value is represented as
+ * a fixed-point integer with one digit after the decimal point.
+ */
+enum qca_wlan_vendor_attr_atf_offload_ssid_group_config {
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_GROUP_INVALID = 0,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_GROUP_INDEX = 1,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_GROUP_AIRTIME_CONFIGURED = 2,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_GROUP_POLICY = 3,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_GROUP_UNCONFIGURED_PEERS = 4,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_GROUP_CONFIGURED_PEERS = 5,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_GROUP_UNCONFIGURED_PEERS_AIRTIME = 6,
+
+ /* keep last */
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_GROUP_LAST,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_GROUP_MAX =
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_GROUP_LAST - 1,
+};
+
+/**
+ * enum qca_wlan_vendor_attr_atf_offload_wmm_ac_config -
+ * Defines attributes to be used with vendor attribute
+ * QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_WMM_AC_CONFIG.
+ *
+ * @QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_WMM_AC_GROUP_INDEX: Mandatory u8 attribute.
+ * Indicates the unique index of the SSID group. These indexes are assigned
+ * based on the order in which the SSID groups are configured.
+ *
+ * @QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_WMM_AC_BE_AIRTIME: Mandatory u16 attribute.
+ * Indicates the airtime percentage configured for the Best Effort (BE) WMM
+ * Access Category of SSID group. The value is represented as a fixed-point
+ * integer with one digit after the decimal point.
+ *
+ * @QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_WMM_AC_BK_AIRTIME: Mandatory u16 attribute.
+ * Indicates the airtime percentage configured for the Background (BK) WMM
+ * Access Category of SSID group. The value is represented as a fixed-point
+ * integer with one digit after the decimal point.
+ *
+ * @QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_WMM_AC_VI_AIRTIME: Mandatory u16 attribute.
+ * Indicates the airtime percentage configured for the Video (VI) WMM Access
+ * Category of SSID group. The value is represented as a fixed-point integer
+ * with one digit after the decimal point.
+ *
+ * @QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_WMM_AC_VO_AIRTIME: Mandatory u16 attribute.
+ * Indicates the airtime percentage configured for the Voice (VO) WMM Access
+ * Category of SSID group. The value is represented as a fixed-point integer
+ * with one digit after the decimal point.
+ */
+enum qca_wlan_vendor_attr_atf_offload_wmm_ac_config {
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_NUM_WMM_AC_INVALID = 0,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_WMM_AC_GROUP_INDEX = 1,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_WMM_AC_BE_AIRTIME = 2,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_WMM_AC_BK_AIRTIME = 3,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_WMM_AC_VI_AIRTIME = 4,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_WMM_AC_VO_AIRTIME = 5,
+
+ /* keep last */
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_NUM_WMM_AC_LAST,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_NUM_WMM_AC_MAX =
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_NUM_WMM_AC_LAST - 1,
+};
+
+/**
+ * enum qca_wlan_vendor_attr_atf_offload_peer_config - Defines
+ * attributes to be used with vendor attribute
+ * QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_PEER_CONFIG.
+ *
+ * @QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_PEER_CONFIG_FULL_UPDATE: Mandatory NLA_FLAG
+ * attribute. When included, the configuration update applies to all currently
+ * connected peers. If not include, the update applies only to newly connected
+ * peers.
+ *
+ * @QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_PEER_CONFIG_MORE: Mandatory NLA_FLAG
+ * attribute. Indicates that the current
+ * QCA_NL80211_VENDOR_SUBCMD_ATF_OFFLOAD_OPS command does not include
+ * configuration data for all connected peers. When this flag is included,
+ * it signals that additional command(s) will follow, each carrying the
+ * remaining peer configurations using the
+ * QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_PEER_CONFIG attribute.
+ *
+ * @QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_PEER_CONFIG_PAYLOAD: Mandatory nested
+ * attribute. Indicates each peer's configuration associated with the radio.
+ * The attributes defined in enum qca_wlan_vendor_attr_atf_offload_peer are
+ * nested in this attribute.
+ */
+enum qca_wlan_vendor_attr_atf_offload_peer_config {
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_PEER_CONFIG_INVALID = 0,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_PEER_CONFIG_FULL_UPDATE = 1,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_PEER_CONFIG_MORE = 2,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_PEER_CONFIG_PAYLOAD = 3,
+
+ /* keep last */
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_PEER_CONFIG_LAST,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_PEER_CONFIG_MAX =
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_PEER_CONFIG_LAST - 1,
+};
+
+/**
+ * enum qca_wlan_vendor_attr_atf_offload_peer - Defines
+ * attributes to be used with vendor attribute
+ * QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_PEER_PAYLOAD.
+ *
+ * @QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_PEER_MAC: MAC address mandatory attribute.
+ * Indicates the MAC address of the peer or link peer in case of MLO.
+ *
+ * @QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_PEER_AIRTIME: Mandatory u16 attribute.
+ * Indicates the percentage of airtime configured for the peer. The airtime
+ * assigned to a peer is relative to the SSID group's total airtime allocation.
+ * The value is represented as a fixed-point integer with one digit after the
+ * decimal point.
+ *
+ * @QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_PEER_GROUP_INDEX: Mandatory u8 attribute.
+ * Indicates the index of the SSID group to which the peer belongs.
+ *
+ * @QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_PEER_CONFIGURED: Mandatory NLA_FLAG
+ * attribute. This flag is included if the peer has explicitly configured
+ * airtime by user.
+ */
+enum qca_wlan_vendor_attr_atf_offload_peer {
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_PEER_INVALID = 0,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_PEER_MAC = 1,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_PEER_AIRTIME = 2,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_PEER_GROUP_INDEX = 3,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_PEER_CONFIGURED = 4,
+
+ /* keep last */
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_PEER_MAX,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_PEER_LAST =
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_PEER_MAX - 1,
+};
+
+/**
+ * enum qca_wlan_vendor_attr_atf_offload_ssid_scheduling_policy -
+ * Defines attributes to be used with vendor attribute
+ * QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_SCHED_POLICY.
+ *
+ * @QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_SCHED_LINK_ID: u8 attribute.
+ * Mandatory attribute when interface is configured in Multi Link Operation
+ * (MLO). This attribute must not be included in non-MLO scenarios. This is the
+ * link ID of the interface in the MLO case. Possible values are 0 to 14.
+ *
+ * @QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_SCHEDULING: Mandatory u8 attribute.
+ * An attribute used to define the scheduling policy.
+ * The accepted values for the attribute are
+ * 0 - fair, 1 - strict, 2 - fair with upper bound.
+ */
+enum qca_wlan_vendor_attr_atf_offload_ssid_scheduling_policy {
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_SCHED_INVALID = 0,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_SCHED_LINK_ID = 1,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_SCHEDULING = 2,
+
+ /* keep last */
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_SCHED_LAST,
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_SCHED_MAX =
+ QCA_WLAN_VENDOR_ATTR_ATF_OFFLOAD_SSID_SCHED_LAST - 1,
+};
+
#endif /* QCA_VENDOR_H */