qcacmn: Find peer using mld_addr for MLO case

For MLO, try to find peer by comparing the MLD MAC
addresses.

Change-Id: Ib109da957d5c330385688a4e91e04cda91a51f30
CRs-Fixed: 3140866
此提交包含在:
Abishek Ganapathy
2022-02-23 10:06:07 +05:30
提交者 Madan Koyyalamudi
父節點 21fcb24a2c
當前提交 e79a7628e6
共有 6 個檔案被更改,包括 91 行新增14 行删除

查看文件

@@ -2941,6 +2941,10 @@ static void dp_htt_mlo_peer_map_handler(struct htt_soc *soc,
uint16_t mlo_peer_id;
uint8_t num_links;
struct dp_mlo_flow_override_info mlo_flow_info[DP_MLO_FLOW_INFO_MAX];
struct dp_mlo_link_info mlo_link_info[DP_MAX_MLO_LINKS];
MLO_PEER_MAP_TLV_TAG_ID tlv_type = 0xff;
uint32_t tlv_len = 0;
int i = 0;
mlo_peer_id = HTT_RX_MLO_PEER_MAP_MLO_PEER_ID_GET(*msg_word);
num_links =
@@ -2982,9 +2986,34 @@ static void dp_htt_mlo_peer_map_handler(struct htt_soc *soc,
mlo_flow_info[2].cache_set_num =
HTT_RX_MLO_PEER_MAP_CACHE_SET_NUM_AST_INDEX_GET(*(msg_word + 3));
msg_word = msg_word + 8;
while (msg_word && (i < DP_MAX_MLO_LINKS)) {
mlo_link_info[i].peer_chip_id = 0xFF;
mlo_link_info[i].vdev_id = 0xFF;
tlv_type = HTT_RX_MLO_PEER_MAP_TLV_TAG_GET(*msg_word);
tlv_len = HTT_RX_MLO_PEER_MAP_TLV_LENGTH_GET(*msg_word);
if (tlv_len == 0) {
dp_err("TLV Length is 0");
break;
}
if (tlv_type == MLO_PEER_MAP_TLV_STRUCT_SOC_VDEV_PEER_IDS) {
mlo_link_info[i].peer_chip_id =
HTT_RX_MLO_PEER_MAP_CHIP_ID_GET(
*(msg_word + 1));
mlo_link_info[i].vdev_id =
HTT_RX_MLO_PEER_MAP_VDEV_ID_GET(
*(msg_word + 1));
}
msg_word = (uint32_t *)(((uint8_t *)msg_word) + tlv_len);
i++;
}
dp_rx_mlo_peer_map_handler(soc->dp_soc, mlo_peer_id,
mlo_peer_mac_addr,
mlo_flow_info);
mlo_flow_info, mlo_link_info);
}
static void dp_htt_mlo_peer_unmap_handler(struct htt_soc *soc,