qcacmn: Allow rx UDP packets during roaming before peer map is received
In VoIP cases, no or minimal packet drop is expected during roaming. Currently, data packets are dropped in host if they are received after roam sync indication from firmware and before peer map indication is received due to invalid peer. This change allows rx UDP data packets during roaming before peer map indication is received from FW if peer's auth_status received in roam_sync_indication from FW is authorised. Change-Id: Ic518b7cd0aef48a2b0f8c923a2e20838b07f3d1f CRs-Fixed: 3168603
This commit is contained in:

کامیت شده توسط
Madan Koyyalamudi

والد
5ad83e6c56
کامیت
ecaa0f1f6c
@@ -2805,6 +2805,26 @@ dp_rx_mlo_peer_map_handler(struct dp_soc *soc, uint16_t peer_id,
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef DP_RX_UDP_OVER_PEER_ROAM
|
||||
void dp_rx_reset_roaming_peer(struct dp_soc *soc, uint8_t vdev_id,
|
||||
uint8_t *peer_mac_addr)
|
||||
{
|
||||
struct dp_vdev *vdev = NULL;
|
||||
|
||||
vdev = dp_vdev_get_ref_by_id(soc, vdev_id, DP_MOD_ID_HTT);
|
||||
if (vdev) {
|
||||
if (qdf_mem_cmp(vdev->roaming_peer_mac.raw, peer_mac_addr,
|
||||
QDF_MAC_ADDR_SIZE) == 0) {
|
||||
vdev->roaming_peer_status =
|
||||
WLAN_ROAM_PEER_AUTH_STATUS_NONE;
|
||||
qdf_mem_zero(vdev->roaming_peer_mac.raw,
|
||||
QDF_MAC_ADDR_SIZE);
|
||||
}
|
||||
dp_vdev_unref_delete(soc, vdev, DP_MOD_ID_HTT);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* dp_rx_peer_map_handler() - handle peer map event from firmware
|
||||
* @soc_handle - genereic soc handle
|
||||
@@ -2929,6 +2949,8 @@ dp_rx_peer_map_handler(struct dp_soc *soc, uint16_t peer_id,
|
||||
vdev_id, ast_hash, is_wds);
|
||||
}
|
||||
|
||||
dp_rx_reset_roaming_peer(soc, vdev_id, peer_mac_addr);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
|
مرجع در شماره جدید
Block a user