Add QCA vendor MCC channel quota command and event
Add QCA_NL80211_VENDOR_SUBCMD_MCC_QUOTA. When two or more interfaces are active on the same band and two different home channels (MCC), the target may allocate quota of "on channel" time for each home channel. The target will indicate the quota information to application layer with this event. Application may do TX bitrate control based on the information. The user may also set the MCC quota for an interface by using this command. Signed-off-by: Liangwei Dong <quic_liangwei@quicinc.com> Signed-off-by: Madhvapathi Sriram <quic_msriram@quicinc.com>
This commit is contained in:
parent
1d1e3184b9
commit
ac1e3a7f0e
1 changed files with 88 additions and 0 deletions
|
@ -767,6 +767,27 @@ enum qca_radiotap_vendor_ids {
|
|||
* rate mask config for a list of PHY types. Userspace shall provide an
|
||||
* array of the vendor attributes defined in
|
||||
* enum qca_wlan_vendor_attr_ratemask_params.
|
||||
*
|
||||
* @QCA_NL80211_VENDOR_SUBCMD_MCC_QUOTA: Multi-channel Concurrency (MCC) occurs
|
||||
* when two interfaces are active on the same band, using two different
|
||||
* home channels, and only supported by a single radio. In this scenario
|
||||
* the device must split the use of the radio between the two interfaces.
|
||||
* The percentage of time allocated to a given interface is the quota.
|
||||
* Depending on the configuration, the quota can either be fixed or
|
||||
* dynamic.
|
||||
*
|
||||
* When used as an event, the device will report the quota type, and for
|
||||
* all interfaces operating in MCC it will report the current quota.
|
||||
* When used as a command, the device can be configured for a specific
|
||||
* quota type, and in the case of a fixed quota, the quota to apply to one
|
||||
* of the interfaces.
|
||||
*
|
||||
* Applications can use the event to do TX bitrate control based on the
|
||||
* information, and can use the command to explicitly set the quota to
|
||||
* enhance performance in specific scenarios.
|
||||
*
|
||||
* The attributes used with this command are defined in
|
||||
* enum qca_wlan_vendor_attr_mcc_quota.
|
||||
*/
|
||||
enum qca_nl80211_vendor_subcmds {
|
||||
QCA_NL80211_VENDOR_SUBCMD_UNSPEC = 0,
|
||||
|
@ -961,6 +982,7 @@ enum qca_nl80211_vendor_subcmds {
|
|||
QCA_NL80211_VENDOR_SUBCMD_SET_MONITOR_MODE = 202,
|
||||
QCA_NL80211_VENDOR_SUBCMD_ROAM_EVENTS = 203,
|
||||
QCA_NL80211_VENDOR_SUBCMD_RATEMASK_CONFIG = 204,
|
||||
QCA_NL80211_VENDOR_SUBCMD_MCC_QUOTA = 205,
|
||||
};
|
||||
|
||||
enum qca_wlan_vendor_attr {
|
||||
|
@ -11582,6 +11604,72 @@ enum qca_wlan_vendor_attr_radar_history {
|
|||
QCA_WLAN_VENDOR_ATTR_RADAR_HISTORY_LAST - 1,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum qca_wlan_vendor_mcc_quota_type: MCC channel time quota type
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_MCC_QUOTA_TYPE_CLEAR: In the event, it indicates that the
|
||||
* target exited MCC state and cleared the quota information. In the
|
||||
* command it clears MCC quota setting and restores adaptive scheduling.
|
||||
* @QCA_WLAN_VENDOR_MCC_QUOTA_TYPE_FIXED: Channel time quota is fixed and
|
||||
* will not be changed.
|
||||
* @QCA_WLAN_VENDOR_MCC_QUOTA_TYPE_DYNAMIC: Channel time quota is dynamic
|
||||
* and the target may change the quota based on the data activity.
|
||||
*/
|
||||
enum qca_wlan_vendor_mcc_quota_type {
|
||||
QCA_WLAN_VENDOR_MCC_QUOTA_TYPE_CLEAR = 0,
|
||||
QCA_WLAN_VENDOR_MCC_QUOTA_TYPE_FIXED = 1,
|
||||
QCA_WLAN_VENDOR_MCC_QUOTA_TYPE_DYNAMIC = 2,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum qca_wlan_vendor_attr_mcc_quota: Used by the vendor event
|
||||
* QCA_NL80211_VENDOR_SUBCMD_MCC_QUOTA to indicate MCC channel
|
||||
* quota information or as a command to set the required MCC quota for an
|
||||
* interface.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_MCC_QUOTA_TYPE: u32 attribute.
|
||||
* The type is defined in enum qca_wlan_vendor_mcc_quota_type.
|
||||
* In a command this specifies the MCC quota type to be set for the interface.
|
||||
* In an event this provides the current quota type in force.
|
||||
* This is required in a command and an event.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_MCC_QUOTA_ENTRIES: Nested attribute to carry
|
||||
* the list of channel quota entries.
|
||||
* In an event each entry contains the frequency and respective time quota for
|
||||
* all the MCC interfaces.
|
||||
* In a command it specifies the interface index and respective time quota.
|
||||
* In a command only one entry (ifindex, quota pair) may be specified.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_MCC_QUOTA_CHAN_FREQ: u32 attribute.
|
||||
* Channel frequency in MHz. This is present only in an event.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_MCC_QUOTA_CHAN_TIME_PERCENTAGE: u32 attribute.
|
||||
* Channel time quota expressed as percentage.
|
||||
* This is present in an event and a command.
|
||||
* In an command, the user shall specify the quota to be allocated for the
|
||||
* interface represented by %QCA_WLAN_VENDOR_ATTR_MCC_QUOTA_IFINDEX.
|
||||
* In an event this provides the existing quota for the channel.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_MCC_QUOTA_IFINDEX: u32 attribute.
|
||||
* Specifies the interface index (netdev) for which the corresponding
|
||||
* configurations are applied. This is required in a command only. Only one
|
||||
* interface index may be specified. If not specified, the configuration is
|
||||
* rejected.
|
||||
*/
|
||||
enum qca_wlan_vendor_attr_mcc_quota {
|
||||
QCA_WLAN_VENDOR_ATTR_MCC_QUOTA_INVALID = 0,
|
||||
QCA_WLAN_VENDOR_ATTR_MCC_QUOTA_TYPE = 1,
|
||||
QCA_WLAN_VENDOR_ATTR_MCC_QUOTA_ENTRIES = 2,
|
||||
QCA_WLAN_VENDOR_ATTR_MCC_QUOTA_CHAN_FREQ = 3,
|
||||
QCA_WLAN_VENDOR_ATTR_MCC_QUOTA_CHAN_TIME_PERCENTAGE = 4,
|
||||
QCA_WLAN_VENDOR_ATTR_MCC_QUOTA_IFINDEX = 5,
|
||||
|
||||
/* keep last */
|
||||
QCA_WLAN_VENDOR_ATTR_MCC_QUOTA_LAST,
|
||||
QCA_WLAN_VENDOR_ATTR_MCC_QUOTA_MAX =
|
||||
QCA_WLAN_VENDOR_ATTR_MCC_QUOTA_LAST - 1,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum qca_wlan_vendor_attr_mdns_offload - Attributes used by
|
||||
* %QCA_NL80211_VENDOR_SUBCMD_MDNS_OFFLOAD vendor command.
|
||||
|
|
Loading…
Reference in a new issue