diff options
author | Ajit Vaishya <ajitv@codeaurora.org> | 2019-06-11 17:38:10 +0530 |
---|---|---|
committer | Hsiu-Chang Chen <hsiuchangchen@google.com> | 2021-11-05 12:09:59 +0800 |
commit | ef79d4cb49b7eb7f21f50a744018b088e6a0f7cb (patch) | |
tree | 2884f194843399e3cb4a85eb8c43985b6a905443 | |
parent | dfc0b2eaa4dbacdb8ea298986de9ef46888dbb40 (diff) | |
download | wlan-android12-qpr3-s4-release.tar.gz |
Wifi-Hal: Validate TX rate code before parsing itandroid-12.1.0_r9android-12.1.0_r8android-12.1.0_r7android-12.1.0_r22android-12.1.0_r21android-12.1.0_r20android-12.1.0_r19android-12.1.0_r11android-12.1.0_r10android12L-devandroid12-qpr3-s7-releaseandroid12-qpr3-s6-releaseandroid12-qpr3-s5-releaseandroid12-qpr3-s4-releaseandroid12-qpr3-s3-releaseandroid12-qpr3-s2-releaseandroid12-qpr3-s1-releaseandroid12-qpr3-release
Validate the per packet TX rate codes and calculate
transmit rate only for valid rate codes.
Bug: 201226143
Test: Regression tests
Change-Id: I287d19d97970523b0d695e7dcbd606a49fa23f7c
CRs-Fixed: 2469251
-rw-r--r-- | qcwcn/wifi_hal/pkt_stats.h | 1 | ||||
-rw-r--r-- | qcwcn/wifi_hal/wifilogger_diag.cpp | 3 |
2 files changed, 3 insertions, 1 deletions
diff --git a/qcwcn/wifi_hal/pkt_stats.h b/qcwcn/wifi_hal/pkt_stats.h index 7cc64b8..d4348cd 100644 --- a/qcwcn/wifi_hal/pkt_stats.h +++ b/qcwcn/wifi_hal/pkt_stats.h @@ -49,6 +49,7 @@ #define PKTLOG_TYPE_MAX 12 #define BW_OFFSET 8 #define INVALID_RSSI 255 +#define INVALID_RATE_CODE 0xff /* Based on pkt log V2, this type of event will triggered */ #define PKTLOG_TYPE_PKT_SW_EVENT 10 diff --git a/qcwcn/wifi_hal/wifilogger_diag.cpp b/qcwcn/wifi_hal/wifilogger_diag.cpp index 436a42b..bdc9c7f 100644 --- a/qcwcn/wifi_hal/wifilogger_diag.cpp +++ b/qcwcn/wifi_hal/wifilogger_diag.cpp @@ -2338,7 +2338,8 @@ static wifi_error parse_stats_sw_event(hal_info *info, node_pkt_t.qos_ctrl = *((u8*)(node_pkt_data + QOS_CTRL_OFFSET)); rb_pkt_stats->tid = node_pkt_t.qos_ctrl & 0xF; rb_pkt_stats->MCS = get_tx_mcs_v1(node_pkt_data); - rb_pkt_stats->last_transmit_rate = get_rate_v1(rb_pkt_stats->MCS); + if ((rb_pkt_stats->MCS & INVALID_RATE_CODE) != INVALID_RATE_CODE) + rb_pkt_stats->last_transmit_rate = get_rate_v1(rb_pkt_stats->MCS); node_pkt_t.bmap_failed = *((u64*)(node_pkt_data + BMAP_FAILED_OFFSET)); node_pkt_t.bmap_enqueued = *((u64*)(node_pkt_data + BMAP_ENQUEUED_OFFSET)); |