qcacld-3.0: Add support to send Measurement Report for STA stats

Add support to send Measurement Report in response of STA statistics
Measurement Request.

Change-Id: I4671129a5352f2f96ae21606a8af671859013113
CRs-Fixed: 3583989
This commit is contained in:
Sheenam Monga
2023-08-07 00:31:21 -07:00
committed by Rahul Choudhary
parent 8b495ff353
commit bfb9c2812c
3 changed files with 2590 additions and 1848 deletions

View File

@@ -1666,6 +1666,21 @@ IE last_beacon_report_indication (EID_BCN_REPORT_LAST_BEACON_REPORT_INDICATION)
last_fragment, 1;
}
const EID_REPORTING_REASON = 1;
IE reporting_reason (EID_REPORTING_REASON)
{
{
failed_count: 1;
fcs_error: 1;
multiple_retry: 1;
frame_duplicate: 1;
rts_failure: 1;
ack_failure: 1;
retry: 1;
reserved: 1;
}
}
IE MeasurementReport (EID_MEAS_REPORT) // 7.3.2.22
{
token, 1;
@@ -1736,6 +1751,61 @@ IE MeasurementReport (EID_MEAS_REPORT) // 7.3.2.22
OPTIE last_beacon_report_indication;
//IE vendor_specific
}
sta_stats (type IS 7)
{
meas_duration, 2;
group_id, 1;
UNION statsgroupdata (DISCRIMINATOR group_id)
{
dot11_counter_stats (group_id IS 0)
{
transmitted_fragment_count, 4;
group_transmitted_frame_count, 4;
failed_count, 4;
received_fragment_count, 4;
group_received_frame_count, 4;
fcs_error_count, 4;
transmitted_frame_count, 4;
}
dot11_mac_stats (group_id IS 1)
{
retry_count, 4;
multiple_retry_count, 4;
frame_duplicate_count, 4;
rts_success_count, 4;
rts_failure_count, 4;
ack_failure_count, 4;
}
dot11_qos_counter (group_id IS 2)
{
qos_transmitted_fragment_count, 4;
qos_failed_count, 4;
qos_retry_count, 4;
qos_multiple_retry_count, 4;
qos_frame_duplicate_count, 4;
qos_rts_success_count, 4;
qos_rts_failure_count, 4;
qos_ack_failure_count, 4;
qos_received_fragment_count, 4;
qos_transmitted_frame_count, 4;
qos_discarded_frame_count, 4;
qos_mpdus_received_count, 4;
qos_retries_received_count, 4;
}
dot11_bss_average_access_delay (group_id IS 10)
{
ap_average_access_delay, 2;
average_access_delay_besteffort, 2;
average_access_delay_background, 2;
average_access_delay_video, 2;
average_access_delay_voice, 2;
station_count, 2;
channel_utilization, 2;
}
};
OPTIE reporting_reason;
}
};
}

View File

@@ -27,7 +27,7 @@
*
*
* This file was automatically generated by 'framesc'
* Tue May 30 09:55:35 2023 from the following file(s):
* Tue Aug 8 05:29:17 2023 from the following file(s):
*
* dot11f.frms
*
@@ -4637,6 +4637,52 @@ uint32_t dot11f_get_packed_ie_neighbor_rpt(
}; /* End extern "C". */
#endif /* C++ */
/* EID 1 (0x01) */
typedef struct sDot11fIEreporting_reason {
uint8_t present;
uint8_t failed_count:1;
uint8_t fcs_error:1;
uint8_t multiple_retry:1;
uint8_t frame_duplicate:1;
uint8_t rts_failure:1;
uint8_t ack_failure:1;
uint8_t retry:1;
uint8_t reserved:1;
} tDot11fIEreporting_reason;
#define DOT11F_EID_REPORTING_REASON (1)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_REPORTING_REASON_MIN_LEN (1)
#define DOT11F_IE_REPORTING_REASON_MAX_LEN (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_reporting_reason(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEreporting_reason*,
bool);
uint32_t dot11f_pack_ie_reporting_reason(
tpAniSirGlobal,
tDot11fIEreporting_reason *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_reporting_reason(
tpAniSirGlobal,
tDot11fIEreporting_reason *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 2 (0x02) */
typedef struct sDot11fIEreq_mac_addr {
uint8_t present;
@@ -5984,6 +6030,54 @@ typedef struct sDot11fIEMeasurementReport {
tDot11fIEbeacon_report_frm_body_fragment_id beacon_report_frm_body_fragment_id;
tDot11fIElast_beacon_report_indication last_beacon_report_indication;
} Beacon; /* type = 5 */
struct {
uint16_t meas_duration;
uint8_t group_id;
union {
struct {
uint32_t transmitted_fragment_count;
uint32_t group_transmitted_frame_count;
uint32_t failed_count;
uint32_t received_fragment_count;
uint32_t group_received_frame_count;
uint32_t fcs_error_count;
uint32_t transmitted_frame_count;
} dot11_counter_stats; /* group_id = 0 */
struct {
uint32_t retry_count;
uint32_t multiple_retry_count;
uint32_t frame_duplicate_count;
uint32_t rts_success_count;
uint32_t rts_failure_count;
uint32_t ack_failure_count;
} dot11_mac_stats; /* group_id = 1 */
struct {
uint32_t qos_transmitted_fragment_count;
uint32_t qos_failed_count;
uint32_t qos_retry_count;
uint32_t qos_multiple_retry_count;
uint32_t qos_frame_duplicate_count;
uint32_t qos_rts_success_count;
uint32_t qos_rts_failure_count;
uint32_t qos_ack_failure_count;
uint32_t qos_received_fragment_count;
uint32_t qos_transmitted_frame_count;
uint32_t qos_discarded_frame_count;
uint32_t qos_mpdus_received_count;
uint32_t qos_retries_received_count;
} dot11_qos_counter; /* group_id = 2 */
struct {
uint16_t ap_average_access_delay;
uint16_t average_access_delay_besteffort;
uint16_t average_access_delay_background;
uint16_t average_access_delay_video;
uint16_t average_access_delay_voice;
uint16_t station_count;
uint16_t channel_utilization;
} dot11_bss_average_access_delay; /* group_id = 10 */
} statsgroupdata;
tDot11fIEreporting_reason reporting_reason;
} sta_stats; /* type = 7 */
} report;
} tDot11fIEMeasurementReport;
@@ -5992,7 +6086,7 @@ typedef struct sDot11fIEMeasurementReport {
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_MEASUREMENTREPORT_MIN_LEN (3)
#define DOT11F_IE_MEASUREMENTREPORT_MAX_LEN (29)
#define DOT11F_IE_MEASUREMENTREPORT_MAX_LEN (58)
#ifdef __cplusplus
extern "C" {

File diff suppressed because it is too large Load Diff