qcacmn: AST entry create and update support for IPA

To support WDS feature in IPA driver, WLAN needs
to update the ast entry for any new rx packet, and for
end-nodes connected via repeater to root.

CRs-Fixed: 3226348
Change-Id: I7383b12f18e7c70ec06499d66130667eca033131
这个提交包含在:
Devender Kumar
2022-06-27 15:43:49 +05:30
提交者 Madan Koyyalamudi
父节点 3035192763
当前提交 277054124d
修改 10 个文件,包含 278 行新增18 行删除

查看文件

@@ -2109,7 +2109,6 @@ void dp_peer_ast_set_type(struct dp_soc *soc,
{
ast_entry->type = type;
}
#else
QDF_STATUS dp_peer_add_ast(struct dp_soc *soc,
struct dp_peer *peer,
@@ -2186,7 +2185,6 @@ int dp_peer_update_ast(struct dp_soc *soc, struct dp_peer *peer,
{
return 1;
}
#endif
void dp_peer_ast_send_wds_del(struct dp_soc *soc,
@@ -2954,6 +2952,36 @@ dp_rx_peer_map_handler(struct dp_soc *soc, uint16_t peer_id,
return err;
}
#ifdef IPA_OFFLOAD
/**
* dp_rx_peer_unmap_event() - Peer unmap event
* @soc_handle - genereic soc handle
* @peer_id - peer_id from firmware
* @vdev_id - vdev ID
* @mac_addr - mac address of the peer or wds entry
*
* Return: none
*/
static inline void
dp_rx_peer_unmap_event(struct dp_soc *soc, uint16_t peer_id,
uint8_t vdev_id, uint8_t *mac_addr)
{
if (soc->cdp_soc.ol_ops->peer_unmap_event) {
soc->cdp_soc.ol_ops->peer_unmap_event(soc->ctrl_psoc,
peer_id, vdev_id, mac_addr);
}
}
#else
static inline void
dp_rx_peer_unmap_event(struct dp_soc *soc, uint16_t peer_id,
uint8_t vdev_id, uint8_t *mac_addr)
{
if (soc->cdp_soc.ol_ops->peer_unmap_event) {
soc->cdp_soc.ol_ops->peer_unmap_event(soc->ctrl_psoc,
peer_id, vdev_id);
}
}
#endif
/**
* dp_rx_peer_unmap_handler() - handle peer unmap event from firmware
* @soc_handle - genereic soc handle
@@ -3032,10 +3060,7 @@ dp_rx_peer_unmap_handler(struct dp_soc *soc, uint16_t peer_id,
if (!soc->ast_offload_support)
dp_peer_reset_flowq_map(peer);
if (soc->cdp_soc.ol_ops->peer_unmap_event) {
soc->cdp_soc.ol_ops->peer_unmap_event(soc->ctrl_psoc,
peer_id, vdev_id);
}
dp_rx_peer_unmap_event(soc, peer_id, vdev_id, peer->mac_addr.raw);
vdev = peer->vdev;
dp_update_vdev_stats_on_peer_unmap(vdev, peer);