qcacmn: Add NDP frame supporting for monitor mode of Lithium
NDP is a preamble only PPDU, which do not have payload information from RXDMA destination ring. The detailed TLV sequence is: * RSSI legcy * LSIG_A * HE_SIGA_SU * RSSI_HT * GENERATED_CBF_DETAILS * PKT_END CRs-Fixed: 2296348 Change-Id: I19f253c65969b59947bd9a21cf3912b16eb21324
This commit is contained in:
@@ -515,7 +515,7 @@ hal_rx_status_get_tlv_info(void *rx_tlv_hdr, struct hal_rx_ppdu_info *ppdu_info,
|
||||
uint16_t he_ltf = 0;
|
||||
void *rx_tlv;
|
||||
bool unhandled = false;
|
||||
|
||||
bool is_no_payload_ppdu = false;
|
||||
|
||||
tlv_tag = HAL_RX_GET_USER_TLV32_TYPE(rx_tlv_hdr);
|
||||
user_id = HAL_RX_GET_USER_TLV32_USERID(rx_tlv_hdr);
|
||||
@@ -637,7 +637,12 @@ hal_rx_status_get_tlv_info(void *rx_tlv_hdr, struct hal_rx_ppdu_info *ppdu_info,
|
||||
break;
|
||||
|
||||
case WIFIRX_PPDU_END_STATUS_DONE_E:
|
||||
return HAL_TLV_STATUS_PPDU_DONE;
|
||||
{
|
||||
if (is_no_payload_ppdu)
|
||||
return HAL_TLV_STATUS_PPDU_NON_STD_DONE;
|
||||
else
|
||||
return HAL_TLV_STATUS_PPDU_DONE;
|
||||
}
|
||||
|
||||
case WIFIDUMMY_E:
|
||||
return HAL_TLV_STATUS_BUF_DONE;
|
||||
@@ -1305,6 +1310,12 @@ hal_rx_status_get_tlv_info(void *rx_tlv_hdr, struct hal_rx_ppdu_info *ppdu_info,
|
||||
hal_rx_proc_phyrx_other_receive_info_tlv(hal, rx_tlv_hdr,
|
||||
ppdu_info);
|
||||
break;
|
||||
case WIFIPHYRX_GENERATED_CBF_DETAILS_E:
|
||||
{
|
||||
/* This is a NDP frame, set no payload flag to true */
|
||||
is_no_payload_ppdu = true;
|
||||
break;
|
||||
}
|
||||
case WIFIRX_HEADER_E:
|
||||
ppdu_info->msdu_info.first_msdu_payload = rx_tlv;
|
||||
ppdu_info->msdu_info.payload_len = tlv_len;
|
||||
|
Reference in New Issue
Block a user