summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-07-07 05:27:13 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-07-07 05:27:13 +0000
commit693fb48207e455b39851e1b0fca0ea7c14565ae6 (patch)
tree4e98e1bb7d717a5500d429909f896f5f3f05f032
parenta6104224f49072ee01085e9eeb94dc3071839ec4 (diff)
parent4df3f65361d1a52051c892f5039ab267cd9d4e73 (diff)
downloadwlan-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-xsynadhd/wifi_hal/gscan.cpp2
-rwxr-xr-xsynadhd/wifi_hal/nan.cpp10
-rw-r--r--synadhd/wifi_hal/rtt.cpp116
-rwxr-xr-xsynadhd/wifi_hal/wifi_hal.cpp4
-rwxr-xr-xsynadhd/wifi_hal/wifi_logger.cpp8
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;
}