WifiHal: Fix NDP incorrect error returns
NDP Confirm was not returning the error code from FW in WifiHal.
NDP initiator request/responses initial fw response, NDP End
initial response also are not translating the error returned
from the FW.
Bug: 62339353
Change-Id: I98590d50f9a4d9fca016d33939cae65c97359914
CRs-Fixed: 2079318
diff --git a/qcwcn/wifi_hal/nan_i.h b/qcwcn/wifi_hal/nan_i.h
index 7e7f2f9..5938919 100644
--- a/qcwcn/wifi_hal/nan_i.h
+++ b/qcwcn/wifi_hal/nan_i.h
@@ -1190,6 +1190,7 @@
NDP_I_MGMT_FRAME_CONFIRM_FAILED = 9011,
NDP_I_END_FAILED = 9012,
NDP_I_MGMT_FRAME_END_REQUEST_FAILED = 9013,
+ NDP_I_MGMT_FRAME_SECURITY_INSTALL_FAILED = 9014,
/* 9500 onwards vendor specific error codes */
NDP_I_VENDOR_SPECIFIC_ERROR = 9500
diff --git a/qcwcn/wifi_hal/nan_ind.cpp b/qcwcn/wifi_hal/nan_ind.cpp
index a57f228..2f3d0e6 100644
--- a/qcwcn/wifi_hal/nan_ind.cpp
+++ b/qcwcn/wifi_hal/nan_ind.cpp
@@ -1070,6 +1070,7 @@
NanDataPathConfirmInd *event)
{
u32 len = 0;
+ NanInternalStatusType drv_reason_code;
if (event == NULL || tb_vendor == NULL) {
ALOGE("%s: Invalid input argument event:%p tb_vendor:%p",
@@ -1101,6 +1102,20 @@
} else {
ALOGD("%s: NDP App Info not present", __FUNCTION__);
}
+ drv_reason_code = (NanInternalStatusType)nla_get_u32(tb_vendor[QCA_WLAN_VENDOR_ATTR_NDP_DRV_RETURN_VALUE]);
+ ALOGD("%s: Drv reason code %d", __FUNCTION__, drv_reason_code);
+ switch (drv_reason_code) {
+ case NDP_I_MGMT_FRAME_REQUEST_FAILED:
+ case NDP_I_MGMT_FRAME_RESPONSE_FAILED:
+ case NDP_I_MGMT_FRAME_CONFIRM_FAILED:
+ case NDP_I_MGMT_FRAME_SECURITY_INSTALL_FAILED:
+ event->reason_code = NAN_STATUS_PROTOCOL_FAILURE;
+ break;
+ default:
+ event->reason_code = (NanStatusType)drv_reason_code;
+ break;
+ }
+ ALOGD("%s: Reason code %d", __FUNCTION__, event->reason_code);
return WIFI_SUCCESS;
}