qcacmn: Assign bss peer in peer map event

Assign num_mpdu to mpdu_tried_mcast for mcast stats updation
Defer bss peer assigning till peer map event arrives
Do not set delete_in_progress for bss Peer

Change-Id: I0881ea3c8804990c336d97cb7b239a991ec64fa9
This commit is contained in:
Anish Nataraj
2018-03-02 22:31:45 +05:30
committed by nshrivas
parent eb61d7e09f
commit 0dae67614e
3 changed files with 21 additions and 0 deletions

View File

@@ -1693,6 +1693,7 @@ static void dp_process_ppdu_stats_user_common_tlv(
ppdu_user_desc->is_mcast = true; ppdu_user_desc->is_mcast = true;
ppdu_user_desc->mpdu_tried_mcast = ppdu_user_desc->mpdu_tried_mcast =
HTT_PPDU_STATS_USER_COMMON_TLV_MPDUS_TRIED_GET(*tag_buf); HTT_PPDU_STATS_USER_COMMON_TLV_MPDUS_TRIED_GET(*tag_buf);
ppdu_user_desc->num_mpdu = ppdu_user_desc->mpdu_tried_mcast;
} else { } else {
ppdu_user_desc->mpdu_tried_ucast = ppdu_user_desc->mpdu_tried_ucast =
HTT_PPDU_STATS_USER_COMMON_TLV_MPDUS_TRIED_GET(*tag_buf); HTT_PPDU_STATS_USER_COMMON_TLV_MPDUS_TRIED_GET(*tag_buf);

View File

@@ -972,6 +972,18 @@ dp_rx_peer_map_handler(void *soc_handle, uint16_t peer_id, uint16_t hw_peer_id,
peer = dp_peer_find_add_id(soc, peer_mac_addr, peer_id, peer = dp_peer_find_add_id(soc, peer_mac_addr, peer_id,
hw_peer_id, vdev_id); hw_peer_id, vdev_id);
qdf_assert_always(peer->vdev);
/*
* For every peer MAp message search and set if bss_peer
*/
if (!(qdf_mem_cmp(peer->mac_addr.raw, peer->vdev->mac_addr.raw,
DP_MAC_ADDR_LEN))) {
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO_HIGH,
"vdev bss_peer!!!!");
peer->bss_peer = 1;
peer->vdev->vap_bss_peer = peer;
}
dp_peer_map_ast(soc, peer, peer_mac_addr, dp_peer_map_ast(soc, peer, peer_mac_addr,
hw_peer_id, vdev_id); hw_peer_id, vdev_id);
} }

View File

@@ -42,6 +42,14 @@ dp_peer_find_by_id(struct dp_soc *soc,
peer = (peer_id >= soc->max_peers) ? NULL : peer = (peer_id >= soc->max_peers) ? NULL :
soc->peer_id_to_obj_map[peer_id]; soc->peer_id_to_obj_map[peer_id];
/**
* For bss peer, peer is not really deleted
* but reference count is decremented in firmware
* and hence ignore delete in progress for bss peer
*/
if (peer && !peer->bss_peer && peer->delete_in_progress)
return NULL;
return peer; return peer;
} }