qcacmn: tx monitor populate block ack information from tlv
tx monitor populate block ack information from tlv Change-Id: I500015e888a0984188bcee821262dee072dea7f9 CRs-Fixed: 3205304
此提交包含在:
@@ -1482,6 +1482,68 @@ hal_txmon_status_parse_tlv_generic_be(void *data_ppdu_info,
|
||||
/* user tlv */
|
||||
status = HAL_MON_RX_FRAME_BITMAP_ACK;
|
||||
SHOW_DEFINED(WIFIRX_FRAME_BITMAP_ACK_E);
|
||||
TXMON_HAL(ppdu_info, cur_usr_idx) = user_id;
|
||||
TXMON_STATUS_INFO(tx_status_info, no_bitmap_avail) =
|
||||
HAL_TX_DESC_GET_64(tx_tlv,
|
||||
RX_FRAME_BITMAP_ACK,
|
||||
NO_BITMAP_AVAILABLE);
|
||||
|
||||
TXMON_STATUS_INFO(tx_status_info, explicit_ack) =
|
||||
HAL_TX_DESC_GET_64(tx_tlv,
|
||||
RX_FRAME_BITMAP_ACK,
|
||||
EXPLICIT_ACK);
|
||||
/*
|
||||
* get mac address, since address is received frame
|
||||
* change the order and store it
|
||||
*/
|
||||
*(uint32_t *)&tx_status_info->addr2[0] =
|
||||
HAL_TX_DESC_GET_64(tx_tlv,
|
||||
RX_FRAME_BITMAP_ACK,
|
||||
ADDR1_31_0);
|
||||
*(uint32_t *)&tx_status_info->addr2[4] =
|
||||
HAL_TX_DESC_GET_64(tx_tlv,
|
||||
RX_FRAME_BITMAP_ACK,
|
||||
ADDR1_47_32);
|
||||
*(uint32_t *)&tx_status_info->addr1[0] =
|
||||
HAL_TX_DESC_GET_64(tx_tlv,
|
||||
RX_FRAME_BITMAP_ACK,
|
||||
ADDR2_15_0);
|
||||
*(uint32_t *)&tx_status_info->addr1[2] =
|
||||
HAL_TX_DESC_GET_64(tx_tlv,
|
||||
RX_FRAME_BITMAP_ACK,
|
||||
ADDR2_47_16);
|
||||
|
||||
TXMON_STATUS_INFO(tx_status_info, explicit_ack_type) =
|
||||
HAL_TX_DESC_GET_64(tx_tlv, RX_FRAME_BITMAP_ACK,
|
||||
EXPLICT_ACK_TYPE);
|
||||
|
||||
TXMON_HAL_USER(ppdu_info, user_id, tid) =
|
||||
HAL_TX_DESC_GET_64(tx_tlv,
|
||||
RX_FRAME_BITMAP_ACK,
|
||||
BA_TID);
|
||||
TXMON_HAL_USER(ppdu_info, user_id, aid) =
|
||||
HAL_TX_DESC_GET_64(tx_tlv,
|
||||
RX_FRAME_BITMAP_ACK,
|
||||
STA_FULL_AID);
|
||||
TXMON_HAL_USER(ppdu_info, user_id, start_seq) =
|
||||
HAL_TX_DESC_GET_64(tx_tlv,
|
||||
RX_FRAME_BITMAP_ACK,
|
||||
BA_TS_SEQ);
|
||||
TXMON_HAL_USER(ppdu_info, user_id, ba_control) =
|
||||
HAL_TX_DESC_GET_64(tx_tlv,
|
||||
RX_FRAME_BITMAP_ACK,
|
||||
BA_TS_CTRL);
|
||||
TXMON_HAL_USER(ppdu_info, user_id, ba_bitmap_sz) =
|
||||
HAL_TX_DESC_GET_64(tx_tlv,
|
||||
RX_FRAME_BITMAP_ACK,
|
||||
BA_BITMAP_SIZE);
|
||||
|
||||
/* ba bitmap */
|
||||
qdf_mem_copy(TXMON_HAL_USER(ppdu_info, user_id, ba_bitmap),
|
||||
&HAL_SET_FLD_OFFSET_64(tx_tlv,
|
||||
RX_FRAME_BITMAP_ACK,
|
||||
BA_TS_BITMAP_31_0, 0), 32);
|
||||
|
||||
break;
|
||||
}
|
||||
case WIFIRX_FRAME_1K_BITMAP_ACK_E:
|
||||
@@ -1489,6 +1551,53 @@ hal_txmon_status_parse_tlv_generic_be(void *data_ppdu_info,
|
||||
/* user tlv */
|
||||
status = HAL_MON_RX_FRAME_BITMAP_BLOCK_ACK_1K;
|
||||
SHOW_DEFINED(WIFIRX_FRAME_1K_BITMAP_ACK_E);
|
||||
TXMON_HAL(ppdu_info, cur_usr_idx) = user_id;
|
||||
TXMON_HAL_USER(ppdu_info, user_id, ba_bitmap_sz) =
|
||||
(4 + HAL_TX_DESC_GET_64(tx_tlv, RX_FRAME_1K_BITMAP_ACK,
|
||||
BA_BITMAP_SIZE));
|
||||
TXMON_HAL_USER(ppdu_info, user_id, tid) =
|
||||
HAL_TX_DESC_GET_64(tx_tlv,
|
||||
RX_FRAME_1K_BITMAP_ACK,
|
||||
BA_TID);
|
||||
TXMON_HAL_USER(ppdu_info, user_id, aid) =
|
||||
HAL_TX_DESC_GET_64(tx_tlv,
|
||||
RX_FRAME_1K_BITMAP_ACK,
|
||||
STA_FULL_AID);
|
||||
/* get mac address */
|
||||
*(uint32_t *)&tx_status_info->addr1[0] =
|
||||
HAL_TX_DESC_GET_64(tx_tlv,
|
||||
RX_FRAME_1K_BITMAP_ACK,
|
||||
ADDR1_31_0);
|
||||
*(uint32_t *)&tx_status_info->addr1[4] =
|
||||
HAL_TX_DESC_GET_64(tx_tlv,
|
||||
RX_FRAME_1K_BITMAP_ACK,
|
||||
ADDR1_47_32);
|
||||
*(uint32_t *)&tx_status_info->addr2[0] =
|
||||
HAL_TX_DESC_GET_64(tx_tlv,
|
||||
RX_FRAME_1K_BITMAP_ACK,
|
||||
ADDR2_15_0);
|
||||
*(uint32_t *)&tx_status_info->addr2[2] =
|
||||
HAL_TX_DESC_GET_64(tx_tlv,
|
||||
RX_FRAME_1K_BITMAP_ACK,
|
||||
ADDR2_47_16);
|
||||
|
||||
TXMON_HAL_USER(ppdu_info, user_id, start_seq) =
|
||||
HAL_TX_DESC_GET_64(tx_tlv,
|
||||
RX_FRAME_1K_BITMAP_ACK,
|
||||
BA_TS_SEQ);
|
||||
TXMON_HAL_USER(ppdu_info, user_id, ba_control) =
|
||||
HAL_TX_DESC_GET_64(tx_tlv,
|
||||
RX_FRAME_1K_BITMAP_ACK,
|
||||
BA_TS_CTRL);
|
||||
/* memcpy ba bitmap */
|
||||
qdf_mem_copy(TXMON_HAL_USER(ppdu_info, user_id, ba_bitmap),
|
||||
tx_tlv +
|
||||
HAL_TX_DESC_OFFSET_GET_64(tx_tlv,
|
||||
RX_FRAME_1K_BITMAP_ACK,
|
||||
BA_TS_BITMAP_31_0, 0),
|
||||
4 << TXMON_HAL_USER(ppdu_info,
|
||||
user_id, ba_bitmap_sz));
|
||||
|
||||
break;
|
||||
}
|
||||
case WIFIRESPONSE_START_STATUS_E:
|
||||
|
新增問題並參考
封鎖使用者