wlan: wdi: Add mac spoofing support based on random mac OUI
This is done as per need to spoof scans. Only FW initialted
scans will use spoofed mac addr after this.
Add a way to pass first 3 bytes (OUI bytes) of mac addr from
cfg80211 and randomly generate last three bytes in driver
and send them to FW. Disable spoof scanning by set first 3 bytes
of mac addr to 00:00:00.
CRs-Fixed: 731655
Change-Id: I131be446b9dd21e3f572a3591a08926edcbd97b9
diff --git a/CORE/WDI/CP/inc/wlan_qct_wdi.h b/CORE/WDI/CP/inc/wlan_qct_wdi.h
index e7a4872..93b6f18 100644
--- a/CORE/WDI/CP/inc/wlan_qct_wdi.h
+++ b/CORE/WDI/CP/inc/wlan_qct_wdi.h
@@ -2625,6 +2625,18 @@
}WDI_AddBASessionRspParamsType;
/*---------------------------------------------------------------------------
+ WDI_SpoofMacAddrRspParamType
+---------------------------------------------------------------------------*/
+typedef struct
+{
+ /* wdi status */
+ wpt_uint32 wdiStatus;
+
+ /* Reserved Field */
+ wpt_uint32 reserved;
+
+}WDI_SpoofMacAddrRspParamType;
+/*---------------------------------------------------------------------------
WDI_AddBAReqinfoType
---------------------------------------------------------------------------*/
typedef struct
@@ -5864,6 +5876,18 @@
#endif /* WLAN_FEATURE_LINK_LAYER_STATS */
+/*---------------------------------------------------------------------------
+ WDI_SPOOF_MAC_ADDR_REQ
+---------------------------------------------------------------------------*/
+typedef struct
+{
+ /* Spoof MAC Address for FW */
+ wpt_macAddr macAddr;
+
+ /* Reserved Params/fields */
+ wpt_uint32 params;
+ wpt_uint32 reserved;
+} WDI_SpoofMacAddrInfoType;
/*----------------------------------------------------------------------------
* WDI callback types
@@ -6177,14 +6201,12 @@
pUserData: user data
-
RETURN VALUE
The result code associated with performing the operation
---------------------------------------------------------------------------*/
typedef void (*WDI_SetSTAKeyRspCb)(WDI_Status wdiStatus,
void* pUserData);
-
/*---------------------------------------------------------------------------
WDI_StartRspCb
@@ -6199,8 +6221,7 @@
wdiStatus: response status received from HAL
pUserData: user data
-
-
+
RETURN VALUE
The result code associated with performing the operation
---------------------------------------------------------------------------*/
@@ -7772,6 +7793,9 @@
typedef void (*WDI_LLStatsClearRspCb)(void *pEventData,
void *pUserData);
#endif /* WLAN_FEATURE_LINK_LAYER_STATS */
+
+typedef void (*WDI_SetSpoofMacAddrRspCb)(
+ WDI_SpoofMacAddrRspParamType* wdiRsp, void *pUserData);
/*========================================================================
* Function Declarations and Documentation
==========================================================================*/
@@ -11126,6 +11150,13 @@
WDI_GetBcnMissRateCb wdiGetBcnMissRateCb,
wpt_uint8 *bssid
);
+WDI_Status
+WDI_SetSpoofMacAddrReq
+(
+WDI_SpoofMacAddrInfoType *pWdiReq,
+ WDI_SetSpoofMacAddrRspCb setSpoofMacAddrRspCb,
+ void* pUserData
+);
#ifdef __cplusplus
}