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; 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 IE MeasurementReport (EID_MEAS_REPORT) // 7.3.2.22
{ {
token, 1; token, 1;
@@ -1736,7 +1751,62 @@ IE MeasurementReport (EID_MEAS_REPORT) // 7.3.2.22
OPTIE last_beacon_report_indication; OPTIE last_beacon_report_indication;
//IE vendor_specific //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;
}
};
} }
IE TSDelay (EID_TS_DELAY) // 7.3.2.32 IE TSDelay (EID_TS_DELAY) // 7.3.2.32

View File

@@ -27,7 +27,7 @@
* *
* *
* This file was automatically generated by 'framesc' * 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 * dot11f.frms
* *
@@ -4637,6 +4637,52 @@ uint32_t dot11f_get_packed_ie_neighbor_rpt(
}; /* End extern "C". */ }; /* End extern "C". */
#endif /* 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) */ /* EID 2 (0x02) */
typedef struct sDot11fIEreq_mac_addr { typedef struct sDot11fIEreq_mac_addr {
uint8_t present; uint8_t present;
@@ -5984,6 +6030,54 @@ typedef struct sDot11fIEMeasurementReport {
tDot11fIEbeacon_report_frm_body_fragment_id beacon_report_frm_body_fragment_id; tDot11fIEbeacon_report_frm_body_fragment_id beacon_report_frm_body_fragment_id;
tDot11fIElast_beacon_report_indication last_beacon_report_indication; tDot11fIElast_beacon_report_indication last_beacon_report_indication;
} Beacon; /* type = 5 */ } 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; } report;
} tDot11fIEMeasurementReport; } tDot11fIEMeasurementReport;
@@ -5992,7 +6086,7 @@ typedef struct sDot11fIEMeasurementReport {
/* N.B. These #defines do *not* include the EID & length */ /* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_MEASUREMENTREPORT_MIN_LEN (3) #define DOT11F_IE_MEASUREMENTREPORT_MIN_LEN (3)
#define DOT11F_IE_MEASUREMENTREPORT_MAX_LEN (29) #define DOT11F_IE_MEASUREMENTREPORT_MAX_LEN (58)
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {

File diff suppressed because it is too large Load Diff