/*========================================================================== FUNCTION WDA_DS_GetReplayCounter DESCRIPTION Return replay counter from BD header or RX meta info DEPENDENCIES PARAMETERS IN pRxHeader RX meta info or BD header pointer OUT RETURN VALUE Replay Counter SIDE EFFECTS ============================================================================*/ v_U64_t WDA_DS_GetReplayCounter ( v_PVOID_t pRxHeader ) { return WDA_GET_RX_REPLAY_COUNT( pRxHeader ); }
/*========================================================================== FUNCTION WDA_DS_GetReplayCounter DESCRIPTION Return replay counter from BD header or RX meta info DEPENDENCIES PARAMETERS IN pRxHeader RX meta info or BD header pointer OUT RETURN VALUE Replay Counter SIDE EFFECTS ============================================================================*/ v_U64_t WDA_DS_GetReplayCounter ( v_PVOID_t pRxHeader ) { #if defined( FEATURE_WLAN_INTEGRATED_SOC ) return WDA_GET_RX_REPLAY_COUNT( pRxHeader ); #else /* FEATURE_WLAN_INTEGRATED_SOC */ v_U8_t *pucRxBDHeader = pRxHeader; /* 48-bit replay counter is created as follows from RX BD 6 byte PMI command: Addr : AES/TKIP 0x38 : pn3/tsc3 0x39 : pn2/tsc2 0x3a : pn1/tsc1 0x3b : pn0/tsc0 0x3c : pn5/tsc5 0x3d : pn4/tsc4 */ #ifdef ANI_BIG_BYTE_ENDIAN v_U64_t ullcurrentReplayCounter = 0; /* Getting 48-bit replay counter from the RX BD */ ullcurrentReplayCounter = WLANHAL_RX_BD_GET_PMICMD_20TO23(pucRxBDHeader); ullcurrentReplayCounter <<= 16; ullcurrentReplayCounter |= (( WLANHAL_RX_BD_GET_PMICMD_24TO25(pucRxBDHeader) & 0xFFFF0000) >> 16); return ullcurrentReplayCounter; #else v_U64_t ullcurrentReplayCounter = 0; /* Getting 48-bit replay counter from the RX BD */ ullcurrentReplayCounter = (WLANHAL_RX_BD_GET_PMICMD_24TO25(pucRxBDHeader) & 0x0000FFFF); ullcurrentReplayCounter <<= 32; ullcurrentReplayCounter |= WLANHAL_RX_BD_GET_PMICMD_20TO23(pucRxBDHeader); return ullcurrentReplayCounter; #endif #endif /* FEATURE_WLAN_INTEGRATED_SOC */ }