diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-07-07 05:27:13 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-07-07 05:27:13 +0000 |
commit | 693fb48207e455b39851e1b0fca0ea7c14565ae6 (patch) | |
tree | 4e98e1bb7d717a5500d429909f896f5f3f05f032 | |
parent | a6104224f49072ee01085e9eeb94dc3071839ec4 (diff) | |
parent | 4df3f65361d1a52051c892f5039ab267cd9d4e73 (diff) | |
download | wlan-aml_tz5_341510010.tar.gz |
Snap for 10453563 from 4df3f65361d1a52051c892f5039ab267cd9d4e73 to mainline-tzdata5-releaseaml_tz5_341510050aml_tz5_341510010aml_tz5_341510010
Change-Id: I6635d686f7f0de30caacf93d0fe4eeb63a23562f
-rwxr-xr-x | synadhd/wifi_hal/gscan.cpp | 2 | ||||
-rwxr-xr-x | synadhd/wifi_hal/nan.cpp | 10 | ||||
-rw-r--r-- | synadhd/wifi_hal/rtt.cpp | 116 | ||||
-rwxr-xr-x | synadhd/wifi_hal/wifi_hal.cpp | 4 | ||||
-rwxr-xr-x | synadhd/wifi_hal/wifi_logger.cpp | 8 |
5 files changed, 95 insertions, 45 deletions
diff --git a/synadhd/wifi_hal/gscan.cpp b/synadhd/wifi_hal/gscan.cpp index 995c989..16772ff 100755 --- a/synadhd/wifi_hal/gscan.cpp +++ b/synadhd/wifi_hal/gscan.cpp @@ -209,7 +209,7 @@ class GetCapabilitiesCommand : public WifiCommand } virtual int create() { - ALOGV("Creating message to get scan capablities; iface = %d", mIfaceInfo->id); + ALOGV("Creating message to get scan capabilities; iface = %d", mIfaceInfo->id); int ret = mMsg.create(GOOGLE_OUI, mRequesttype); if (ret < 0) { diff --git a/synadhd/wifi_hal/nan.cpp b/synadhd/wifi_hal/nan.cpp index 88d0655..8536564 100755 --- a/synadhd/wifi_hal/nan.cpp +++ b/synadhd/wifi_hal/nan.cpp @@ -305,7 +305,7 @@ typedef enum { NAN_REQUEST_CONFIG = 8, NAN_REQUEST_TCA = 9, NAN_REQUEST_EVENT_CHECK = 10, - NAN_REQUEST_GET_CAPABILTIES = 11, + NAN_REQUEST_GET_CAPABILITIES = 11, NAN_DATA_PATH_IFACE_CREATE = 12, NAN_DATA_PATH_IFACE_DELETE = 13, NAN_DATA_PATH_INIT_REQUEST = 14, @@ -634,7 +634,7 @@ class NanDiscEnginePrimitive : public WifiCommand } else if (mType == NAN_REQUEST_TRANSMIT_FOLLOWUP) { return createTransmitFollowupRequest(request, (NanTransmitFollowupRequest *)mParams); - } else if (mType == NAN_REQUEST_GET_CAPABILTIES) { + } else if (mType == NAN_REQUEST_GET_CAPABILITIES) { return getCapabilitiesRequest(request); } else { ALOGE("%s Unknown Nan request\n", __func__); @@ -3678,7 +3678,7 @@ static const char *NanCmdToString(int cmd) C2S(NAN_REQUEST_CONFIG) C2S(NAN_REQUEST_TCA) C2S(NAN_REQUEST_EVENT_CHECK) - C2S(NAN_REQUEST_GET_CAPABILTIES) + C2S(NAN_REQUEST_GET_CAPABILITIES) C2S(NAN_DATA_PATH_IFACE_CREATE) C2S(NAN_DATA_PATH_IFACE_DELETE) C2S(NAN_DATA_PATH_INIT_REQUEST) @@ -4550,9 +4550,9 @@ wifi_error nan_get_capabilities(transaction_id id, wifi_interface_handle iface) { wifi_error ret = WIFI_SUCCESS; wifi_handle handle = getWifiHandle(iface); - ALOGI("Get Nan Capabilties, id=%d, halHandle=%p\n", id, handle); + ALOGI("Get Nan Capabilities, id=%d, halHandle=%p\n", id, handle); - NanRequestType cmdType = NAN_REQUEST_GET_CAPABILTIES; + NanRequestType cmdType = NAN_REQUEST_GET_CAPABILITIES; NanDiscEnginePrimitive *cmd = new NanDiscEnginePrimitive(iface, id, NULL, cmdType); NULL_CHECK_RETURN(cmd, "memory allocation failure", WIFI_ERROR_OUT_OF_MEMORY); diff --git a/synadhd/wifi_hal/rtt.cpp b/synadhd/wifi_hal/rtt.cpp index 6bb0a49..510714b 100644 --- a/synadhd/wifi_hal/rtt.cpp +++ b/synadhd/wifi_hal/rtt.cpp @@ -48,7 +48,7 @@ #include "cpp_bindings.h" using namespace android; -#define RTT_RESULT_SIZE (sizeof(wifi_rtt_result)); +#define RTT_RESULT_V2_SIZE (sizeof(wifi_rtt_result_v2)); typedef enum { RTT_SUBCMD_SET_CONFIG = ANDROID_NL80211_SUBCMD_RTT_RANGE_START, @@ -81,7 +81,8 @@ typedef enum { RTT_ATTRIBUTE_RESULTS_PER_TARGET = 31, RTT_ATTRIBUTE_RESULT_CNT = 32, RTT_ATTRIBUTE_RESULT = 33, - RTT_ATTRIBUTE_RESUTL_DETAIL = 34, + RTT_ATTRIBUTE_RESULT_DETAIL = 34, + RTT_ATTRIBUTE_RESULT_EXTRA = 35, /* Add any new RTT_ATTRIBUTE prior to RTT_ATTRIBUTE_MAX */ RTT_ATTRIBUTE_MAX } RTT_ATTRIBUTE; @@ -97,6 +98,12 @@ struct dot11_rm_ie { u8 type; } __attribute__ ((packed)); typedef struct dot11_rm_ie dot11_rm_ie_t; + +typedef struct rtt_result_extra { + wifi_channel frequency; + wifi_rtt_bw packet_bw; +} rtt_result_extra_t; + #define DOT11_HDR_LEN 2 #define DOT11_RM_IE_LEN 5 #define DOT11_MNG_MEASURE_REQUEST_ID 38 /* 11H MeasurementRequest */ @@ -107,7 +114,7 @@ typedef struct dot11_rm_ie dot11_rm_ie_t; static const strmap_entry_t err_info[] = { {RTT_STATUS_SUCCESS, String8("Success")}, {RTT_STATUS_FAILURE, String8("Failure")}, - {RTT_STATUS_FAIL_NO_RSP, String8("No reponse")}, + {RTT_STATUS_FAIL_NO_RSP, String8("No response")}, {RTT_STATUS_FAIL_INVALID_TS, String8("Invalid Timestamp")}, {RTT_STATUS_FAIL_PROTOCOL, String8("Protocol error")}, {RTT_STATUS_FAIL_REJECTED, String8("Rejected")}, @@ -148,7 +155,7 @@ public: } virtual int create() { - ALOGD("Creating message to get scan capablities; iface = %d", mIfaceInfo->id); + ALOGD("Creating message to get scan capabilities; iface = %d", mIfaceInfo->id); int ret = mMsg.create(GOOGLE_OUI, RTT_SUBCMD_GETCAPABILITY); if (ret < 0) { @@ -321,7 +328,7 @@ class RttCommand : public WifiCommand int currDtlIdx; int totalCnt; static const int MAX_RESULTS = 1024; - wifi_rtt_result *rttResults[MAX_RESULTS]; + wifi_rtt_result_v2 *rttResults_v2[MAX_RESULTS]; wifi_rtt_config *rttParams; wifi_rtt_event_handler rttHandler; public: @@ -330,7 +337,7 @@ public: : WifiCommand("RttCommand", iface, id), numRttParams(num_rtt_config), rttParams(rtt_config), rttHandler(handler) { - memset(rttResults, 0, sizeof(rttResults)); + memset(rttResults_v2, 0, sizeof(rttResults_v2)); currentIdx = 0; mCompleted = 0; totalCnt = 0; @@ -345,9 +352,9 @@ public: totalCnt = 0; currDtlIdx = 0; numRttParams = 0; - memset(rttResults, 0, sizeof(rttResults)); - rttParams = NULL; - rttHandler.on_rtt_results = NULL; + memset(rttResults_v2, 0, sizeof(rttResults_v2)); + rttParams = NULL; + rttHandler.on_rtt_results_v2 = NULL; } int createSetupRequest(WifiRequest& request) { @@ -542,6 +549,7 @@ public: ALOGI("Got an RTT event"); nlattr *vendor_data = event.get_attribute(NL80211_ATTR_VENDOR_DATA); int len = event.get_vendor_data_len(); + int nextidx = 0; if (vendor_data == NULL || len == 0) { ALOGI("No rtt results found"); return NL_STOP; @@ -556,7 +564,7 @@ public: for (nl_iterator it2(it.get()); it2.has_next(); it2.next()) { if (it2.get_type() == RTT_ATTRIBUTE_TARGET_MAC) { memcpy(bssid, it2.get_data(), sizeof(mac_addr)); - ALOGI("retrived target mac : %02x:%02x:%02x:%02x:%02x:%02x\n", + ALOGI("retrieved target mac : %02x:%02x:%02x:%02x:%02x:%02x\n", bssid[0], bssid[1], bssid[2], @@ -566,15 +574,41 @@ public: } else if (it2.get_type() == RTT_ATTRIBUTE_RESULT_CNT) { result_cnt = it2.get_u32(); ALOGI("retrieved result_cnt : %d\n", result_cnt); + } else if (it2.get_type() == RTT_ATTRIBUTE_RESULT_EXTRA) { + if (rttResults_v2[currentIdx] == NULL) { + mCompleted = 1; + ALOGE("failed to allocate the rttResults_v2\n"); + break; + } + rtt_result_extra_t *rtt_result_extra = + (rtt_result_extra_t *)malloc(it2.get_len()); + if (rtt_result_extra == NULL) { + mCompleted = 1; + ALOGE("failed to allocate the rtt_result_extra\n"); + break; + } + /* Update RTT frequency & packet_bw */ + memcpy(rtt_result_extra, it2.get_data(), it2.get_len()); + rttResults_v2[currentIdx]->frequency = rtt_result_extra->frequency; + rttResults_v2[currentIdx]->packet_bw = rtt_result_extra->packet_bw; + free(rtt_result_extra); + ALOGI("retrieved currentIdx %d rtt_result_v2 :\n" + "\tfrequency : %d, packet_bw : %d\n", + currentIdx, rttResults_v2[currentIdx]->frequency, + rttResults_v2[currentIdx]->packet_bw); } else if (it2.get_type() == RTT_ATTRIBUTE_RESULT) { + currentIdx = nextidx; + int result_v2_len = sizeof(wifi_rtt_result_v2) + + it2.get_len() - sizeof(wifi_rtt_result); int result_len = it2.get_len(); - rttResults[currentIdx] = (wifi_rtt_result *)malloc(it2.get_len()); - wifi_rtt_result *rtt_result = rttResults[currentIdx]; - if (rtt_result == NULL) { + rttResults_v2[currentIdx] = (wifi_rtt_result_v2 *)malloc(result_v2_len); + wifi_rtt_result_v2 *rtt_result_v2 = rttResults_v2[currentIdx]; + if (rtt_result_v2 == NULL) { mCompleted = 1; - ALOGE("failed to allocate the wifi_rtt_result\n"); + ALOGE("failed to allocate the wifi_rtt_result_v2\n"); break; } + wifi_rtt_result *rtt_result = &rtt_result_v2->rtt_result; memcpy(rtt_result, it2.get_data(), it2.get_len()); result_len -= sizeof(wifi_rtt_result); if (result_len > 0) { @@ -588,7 +622,8 @@ public: result_len -= (ele_1->len + DOT11_HDR_LEN); /* get a next rm ie */ if (result_len > 0) { - ele_2 = (dot11_rm_ie_t *)((char *)ele_1 + (ele_1->len + DOT11_HDR_LEN)); + ele_2 = (dot11_rm_ie_t *)((char *)ele_1 + + (ele_1->len + DOT11_HDR_LEN)); if ((ele_2->id == DOT11_MNG_MEASURE_REPORT_ID) && (ele_2->type == DOT11_MEASURE_TYPE_CIVICLOC)) { rtt_result->LCR = (wifi_information_element *)ele_2; @@ -599,7 +634,8 @@ public: result_len -= (ele_1->len + DOT11_HDR_LEN); /* get a next rm ie */ if (result_len > 0) { - ele_2 = (dot11_rm_ie_t *)((char *)ele_1 + (ele_1->len + DOT11_HDR_LEN)); + ele_2 = (dot11_rm_ie_t *)((char *)ele_1 + + (ele_1->len + DOT11_HDR_LEN)); if ((ele_2->id == DOT11_MNG_MEASURE_REPORT_ID) && (ele_2->type == DOT11_MEASURE_TYPE_LCI)) { rtt_result->LCI = (wifi_information_element *)ele_2; @@ -609,31 +645,45 @@ public: } } totalCnt++; - ALOGI("retrived rtt_result : \n\tburst_num :%d, measurement_number : %d, success_number : %d\n" - "\tnumber_per_burst_peer : %d, status : %s, retry_after_duration : %d s\n" - "\trssi : %d dbm, rx_rate : %d Kbps, rtt : %lu ns, rtt_sd : %lu\n" - "\tdistance : %d cm, burst_duration : %d ms, negotiated_burst_num : %d\n", - rtt_result->burst_num, rtt_result->measurement_number, - rtt_result->success_number, rtt_result->number_per_burst_peer, - get_err_info(rtt_result->status), rtt_result->retry_after_duration, - rtt_result->rssi, rtt_result->rx_rate.bitrate * 100, - (unsigned long)rtt_result->rtt/1000, (unsigned long)rtt_result->rtt_sd, - rtt_result->distance_mm / 10, - rtt_result->burst_duration, rtt_result->negotiated_burst_num); - currentIdx++; + + /* Fill out rtt_result_v2 */ + rtt_result_v2->frequency = UNSPECIFIED; + rtt_result_v2->packet_bw = WIFI_RTT_BW_UNSPECIFIED; + + ALOGI("retrieved currentIdx %d rtt_result : \n\tburst_num :%d," + " measurement_number : %d, success_number : %d\n" + "\tnumber_per_burst_peer : %d, status : %s, " + "retry_after_duration : %d s\n \trssi : %d dbm," + " rx_rate : %d Kbps, rtt : %lu ns, rtt_sd : %lu\n" + "\tdistance : %d cm, burst_duration : %d ms," + " negotiated_burst_num : %d\n", + currentIdx, rtt_result_v2->rtt_result.burst_num, + rtt_result_v2->rtt_result.measurement_number, + rtt_result_v2->rtt_result.success_number, + rtt_result_v2->rtt_result.number_per_burst_peer, + get_err_info(rtt_result_v2->rtt_result.status), + rtt_result_v2->rtt_result.retry_after_duration, + rtt_result_v2->rtt_result.rssi, + rtt_result_v2->rtt_result.rx_rate.bitrate * 100, + (unsigned long)rtt_result_v2->rtt_result.rtt / 1000, + (unsigned long)rtt_result_v2->rtt_result.rtt_sd, + rtt_result_v2->rtt_result.distance_mm / 10, + rtt_result_v2->rtt_result.burst_duration, + rtt_result_v2->rtt_result.negotiated_burst_num); + nextidx = currentIdx; + nextidx++; } } } - } if (mCompleted) { unregisterVendorHandler(GOOGLE_OUI, RTT_EVENT_COMPLETE); - if (*rttHandler.on_rtt_results) { - (*rttHandler.on_rtt_results)(id(), totalCnt, rttResults); + if (*rttHandler.on_rtt_results_v2) { + (*rttHandler.on_rtt_results_v2)(id(), totalCnt, rttResults_v2); } for (int i = 0; i < currentIdx; i++) { - free(rttResults[i]); - rttResults[i] = NULL; + free(rttResults_v2[i]); + rttResults_v2[i] = NULL; } totalCnt = currentIdx = 0; WifiCommand *cmd = wifi_unregister_cmd(wifiHandle(), id()); diff --git a/synadhd/wifi_hal/wifi_hal.cpp b/synadhd/wifi_hal/wifi_hal.cpp index c7f31d4..239a0c1 100755 --- a/synadhd/wifi_hal/wifi_hal.cpp +++ b/synadhd/wifi_hal/wifi_hal.cpp @@ -887,7 +887,7 @@ public: virtual int handleResponse(WifiEvent& reply) { - // ALOGI("handling reponse in %s", __func__); + // ALOGI("handling response in %s", __func__); struct nlattr **tb = reply.attributes(); struct nlattr *mcgrp = NULL; @@ -2902,7 +2902,7 @@ public: nlattr *data = mMsg.attr_start(NL80211_ATTR_VENDOR_DATA); ret = mMsg.put_u32(ANDR_WIFI_ATTRIBUTE_DTIM_MULTIPLIER, multiplier); if (ret < 0) { - ALOGE("Failed to set dtim mutiplier %d\n", multiplier); + ALOGE("Failed to set dtim multiplier %d\n", multiplier); return ret; } diff --git a/synadhd/wifi_hal/wifi_logger.cpp b/synadhd/wifi_hal/wifi_logger.cpp index c1a6f26..0338270 100755 --- a/synadhd/wifi_hal/wifi_logger.cpp +++ b/synadhd/wifi_hal/wifi_logger.cpp @@ -2365,14 +2365,14 @@ public: ALOGI("Id = %0x, subcmd = %d, len = %d", id, subcmd, len); if (mReqType == TX_PACKET_FATE) { - ALOGI("Response recieved for get TX pkt fate command\n"); + ALOGI("Response received for get TX pkt fate command\n"); } else if (mReqType == RX_PACKET_FATE) { - ALOGI("Response recieved for get RX pkt fate command\n"); + ALOGI("Response received for get RX pkt fate command\n"); } else if (mReqType == PACKET_MONITOR_START) { - ALOGI("Response recieved for monitor pkt fate command\n"); + ALOGI("Response received for monitor pkt fate command\n"); return NL_OK; } else { - ALOGE("Response recieved for unknown pkt fate command\n"); + ALOGE("Response received for unknown pkt fate command\n"); return NL_SKIP; } |