qcacmn: Add changes for PN check in REO
Setup PN check in REO for Security mode. Change-Id: I682cda20907b7f64ba18bfef9927b7f8d72d2b54
此提交包含在:
@@ -338,6 +338,46 @@ enum hal_rx_ret_buf_manager {
|
||||
_OFFSET_TO_BYTE_PTR(msdu_details_ptr, \
|
||||
RX_MSDU_DETAILS_2_RX_MSDU_DESC_INFO_RX_MSDU_DESC_INFO_DETAILS_OFFSET))
|
||||
|
||||
|
||||
#define HAL_RX_MPDU_PN_31_0_GET(_rx_mpdu_info) \
|
||||
(_HAL_MS((*_OFFSET_TO_WORD_PTR(_rx_mpdu_info, \
|
||||
RX_MPDU_INFO_4_PN_31_0_OFFSET)), \
|
||||
RX_MPDU_INFO_4_PN_31_0_MASK, \
|
||||
RX_MPDU_INFO_4_PN_31_0_LSB))
|
||||
|
||||
#define HAL_RX_MPDU_PN_63_32_GET(_rx_mpdu_info) \
|
||||
(_HAL_MS((*_OFFSET_TO_WORD_PTR(_rx_mpdu_info, \
|
||||
RX_MPDU_INFO_5_PN_63_32_OFFSET)), \
|
||||
RX_MPDU_INFO_5_PN_63_32_MASK, \
|
||||
RX_MPDU_INFO_5_PN_63_32_LSB))
|
||||
|
||||
#define HAL_RX_MPDU_PN_95_64_GET(_rx_mpdu_info) \
|
||||
(_HAL_MS((*_OFFSET_TO_WORD_PTR(_rx_mpdu_info, \
|
||||
RX_MPDU_INFO_6_PN_95_64_OFFSET)), \
|
||||
RX_MPDU_INFO_6_PN_95_64_MASK, \
|
||||
RX_MPDU_INFO_6_PN_95_64_LSB))
|
||||
|
||||
#define HAL_RX_MPDU_PN_127_96_GET(_rx_mpdu_info) \
|
||||
(_HAL_MS((*_OFFSET_TO_WORD_PTR(_rx_mpdu_info, \
|
||||
RX_MPDU_INFO_7_PN_127_96_OFFSET)), \
|
||||
RX_MPDU_INFO_7_PN_127_96_MASK, \
|
||||
RX_MPDU_INFO_7_PN_127_96_LSB))
|
||||
|
||||
#define HAL_RX_MPDU_ENCRYPT_TYPE_GET(_rx_mpdu_info) \
|
||||
(_HAL_MS((*_OFFSET_TO_WORD_PTR(_rx_mpdu_info, \
|
||||
RX_MPDU_INFO_3_ENCRYPT_TYPE_OFFSET)), \
|
||||
RX_MPDU_INFO_3_ENCRYPT_TYPE_MASK, \
|
||||
RX_MPDU_INFO_3_ENCRYPT_TYPE_LSB))
|
||||
|
||||
#define HAL_RX_MPDU_ENCRYPTION_INFO_VALID(_rx_mpdu_info) \
|
||||
(_HAL_MS((*_OFFSET_TO_WORD_PTR(_rx_mpdu_info, \
|
||||
RX_MPDU_INFO_2_FRAME_ENCRYPTION_INFO_VALID_OFFSET)), \
|
||||
RX_MPDU_INFO_2_FRAME_ENCRYPTION_INFO_VALID_MASK, \
|
||||
RX_MPDU_INFO_2_FRAME_ENCRYPTION_INFO_VALID_LSB))
|
||||
|
||||
|
||||
|
||||
|
||||
static inline void hal_rx_mpdu_desc_info_get(void *desc_addr,
|
||||
struct hal_rx_mpdu_desc_info *mpdu_desc_info)
|
||||
{
|
||||
@@ -537,6 +577,47 @@ static inline uint8_t
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* @ hal_rx_encryption_info_valid: Returns encryption type.
|
||||
*
|
||||
* @ buf: rx_tlv_hdr of the received packet
|
||||
* @ Return: encryption type
|
||||
*/
|
||||
static inline uint32_t
|
||||
hal_rx_encryption_info_valid(uint8_t *buf)
|
||||
{
|
||||
struct rx_pkt_tlvs *pkt_tlvs = (struct rx_pkt_tlvs *)buf;
|
||||
struct rx_mpdu_start *mpdu_start =
|
||||
&pkt_tlvs->mpdu_start_tlv.rx_mpdu_start;
|
||||
struct rx_mpdu_info *mpdu_info = &(mpdu_start->rx_mpdu_info_details);
|
||||
uint32_t encryption_info = HAL_RX_MPDU_ENCRYPTION_INFO_VALID(mpdu_info);
|
||||
|
||||
return encryption_info;
|
||||
}
|
||||
|
||||
/*
|
||||
* @ hal_rx_print_pn: Prints the PN of rx packet.
|
||||
*
|
||||
* @ buf: rx_tlv_hdr of the received packet
|
||||
* @ Return: void
|
||||
*/
|
||||
static inline void
|
||||
hal_rx_print_pn(uint8_t *buf)
|
||||
{
|
||||
struct rx_pkt_tlvs *pkt_tlvs = (struct rx_pkt_tlvs *)buf;
|
||||
struct rx_mpdu_start *mpdu_start =
|
||||
&pkt_tlvs->mpdu_start_tlv.rx_mpdu_start;
|
||||
struct rx_mpdu_info *mpdu_info = &(mpdu_start->rx_mpdu_info_details);
|
||||
|
||||
uint32_t pn_31_0 = HAL_RX_MPDU_PN_31_0_GET(mpdu_info);
|
||||
uint32_t pn_63_32 = HAL_RX_MPDU_PN_63_32_GET(mpdu_info);
|
||||
uint32_t pn_95_64 = HAL_RX_MPDU_PN_95_64_GET(mpdu_info);
|
||||
uint32_t pn_127_96 = HAL_RX_MPDU_PN_127_96_GET(mpdu_info);
|
||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||
"PN number pn_127_96 0x%x pn_95_64 0x%x pn_63_32 0x%x pn_31_0 0x%x \n",
|
||||
pn_127_96, pn_95_64, pn_63_32, pn_31_0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Get msdu_done bit from the RX_ATTENTION TLV
|
||||
*/
|
||||
|
新增問題並參考
封鎖使用者