Add a vendor command for medium assessment

Introduce a vendor command for medium assessment through
QCA_NL80211_VENDOR_SUBCMD_MEDIUM_ASSESS.

Signed-off-by: Min Liu <minliu@codeaurora.org>
This commit is contained in:
Min Liu 2020-07-20 19:27:11 +08:00 committed by Jouni Malinen
parent cc9fe46b3a
commit cd708e8ff9

View file

@ -675,6 +675,10 @@ enum qca_radiotap_vendor_ids {
* @QCA_NL80211_VENDOR_SUBCMD_GETBAND: Command to get the enabled band(s) from
* the driver. The band configurations obtained are referred through
* QCA_WLAN_VENDOR_ATTR_SETBAND_MASK.
*
* @QCA_NL80211_VENDOR_SUBCMD_MEDIUM_ASSESS: Vendor subcommand/event for medium
* assessment.
* Uses attributes defined in enum qca_wlan_vendor_attr_medium_assess.
*/
enum qca_nl80211_vendor_subcmds {
QCA_NL80211_VENDOR_SUBCMD_UNSPEC = 0,
@ -857,6 +861,7 @@ enum qca_nl80211_vendor_subcmds {
QCA_NL80211_VENDOR_SUBCMD_CONFIG_TSPEC = 190,
QCA_NL80211_VENDOR_SUBCMD_CONFIG_TWT = 191,
QCA_NL80211_VENDOR_SUBCMD_GETBAND = 192,
QCA_NL80211_VENDOR_SUBCMD_MEDIUM_ASSESS = 193,
};
enum qca_wlan_vendor_attr {
@ -9572,4 +9577,97 @@ enum qca_wlan_vendor_attr_oci_override {
QCA_WLAN_VENDOR_ATTR_OCI_OVERRIDE_AFTER_LAST - 1,
};
/**
* enum qca_wlan_medium_assess_type - Type of medium assess request
*
* Values for %QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_TYPE.
*/
enum qca_wlan_medium_assess_type {
QCA_WLAN_MEDIUM_ASSESS_CCA = 0,
QCA_WLAN_MEDIUM_ASSESS_CONGESTION_REPORT = 1,
};
/**
* enum qca_wlan_vendor_attr_medium_assess - Attributes used by
* %QCA_NL80211_VENDOR_SUBCMD_MEDIUM_ASSESS vendor command.
*
* @QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_TYPE:
* u8 attribute. Mandatory in all kinds of medium assess requests/responses.
* Specify the type of medium assess request and indicate its type in response.
* Possible values are defined in enum qca_wlan_medium_assess_type.
*
* @QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_PERIOD:
* u32 attribute. Mandatory in CCA request.
* Specify the assessment period in terms of seconds. Assessment result will be
* sent as the response to the CCA request after the assessment period.
*
* @QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_TOTAL_CYCLE_COUNT:
* u32 attribute. Mandatory in response to CCA request.
* Total timer tick count of the assessment cycle.
*
* @QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_IDLE_COUNT:
* u32 attribute. Mandatory in response to CCA request.
* Timer tick count of idle time in the assessment cycle.
*
* @QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_IBSS_RX_COUNT:
* u32 attribute. Mandatory in response to CCA request.
* Timer tick count of Intra BSS traffic RX time in the assessment cycle.
*
* @QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_OBSS_RX_COUNT:
* u32 attribute. Mandatory in response to CCA request.
* Timer tick count of Overlapping BSS traffic RX time in the assessment cycle.
*
* @QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_MAX_IBSS_RSSI:
* s32 attribute. Mandatory in response to CCA request.
* Maximum RSSI of Intra BSS traffic in the assessment cycle.
*
* @QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_MIN_IBSS_RSSI:
* s32 attribute. Mandatory in response to CCA request.
* Minimum RSSI of Intra BSS traffic in the assessment cycle.
*
* @QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_CONGESTION_REPORT_ENABLE:
* u8 attribute. Mandatory in congestion report request.
* 1-enable 0-disable.
*
* @QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_CONGESTION_REPORT_THRESHOLD:
* u8 attribute. Mandatory in congestion report enable request and will be
* ignored if present in congestion report disable request. Possible values are
* 0-100. A vendor event QCA_NL80211_VENDOR_SUBCMD_MEDIUM_ASSESS with the type
* QCA_WLAN_MEDIUM_ASSESS_CONGESTION_REPORT will be sent to userspace if
* congestion percentage reaches the configured threshold.
*
* @QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_CONGESTION_REPORT_INTERVAL:
* u8 attribute. Optional in congestion report enable request and will be
* ignored if present in congestion report disable request.
* Specify the interval of congestion report event in terms of seconds. Possible
* values are 1-255. Default value 1 will be used if this attribute is omitted
* or using invalid values.
*
* @QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_CONGESTION_PERCENTAGE:
* u8 attribute. Mandatory in congestion report event.
* Indicate the actual congestion percentage. Possible values are 0-100.
*/
enum qca_wlan_vendor_attr_medium_assess {
QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_INVALID = 0,
QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_TYPE = 1,
QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_PERIOD = 2,
QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_TOTAL_CYCLE_COUNT = 3,
QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_IDLE_COUNT = 4,
QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_IBSS_RX_COUNT = 5,
QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_OBSS_RX_COUNT = 6,
QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_MAX_IBSS_RSSI = 7,
QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_MIN_IBSS_RSSI = 8,
QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_CONGESTION_REPORT_ENABLE = 9,
QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_CONGESTION_REPORT_THRESHOLD = 10,
QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_CONGESTION_REPORT_INTERVAL = 11,
QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_CONGESTION_PERCENTAGE = 12,
/* keep last */
QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_AFTER_LAST,
QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_MAX =
QCA_WLAN_VENDOR_ATTR_MEDIUM_ASSESS_AFTER_LAST - 1,
};
#endif /* QCA_VENDOR_H */