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:

committed by
Rahul Choudhary

parent
8b495ff353
commit
bfb9c2812c
@@ -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;
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
|
@@ -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
Reference in New Issue
Block a user