qcacmn: Fix Intra-BSS forwarding issue
Extract ast_table manipulation functions from WDS feature flag Change-Id: I029e151f608a6bb60344d817d7b7c75b86ca981b CRs-Fixed: 2110304
This commit is contained in:

committad av
snandini

förälder
0d7163dbd4
incheckning
92af713fa2
@@ -1590,8 +1590,6 @@ static void dp_wds_aging_timer_fn(void *soc_hdl)
|
|||||||
*/
|
*/
|
||||||
static void dp_soc_wds_attach(struct dp_soc *soc)
|
static void dp_soc_wds_attach(struct dp_soc *soc)
|
||||||
{
|
{
|
||||||
qdf_spinlock_create(&soc->ast_lock);
|
|
||||||
|
|
||||||
qdf_timer_init(soc->osdev, &soc->wds_aging_timer,
|
qdf_timer_init(soc->osdev, &soc->wds_aging_timer,
|
||||||
dp_wds_aging_timer_fn, (void *)soc,
|
dp_wds_aging_timer_fn, (void *)soc,
|
||||||
QDF_TIMER_TYPE_WAKE_APPS);
|
QDF_TIMER_TYPE_WAKE_APPS);
|
||||||
@@ -1609,7 +1607,6 @@ static void dp_soc_wds_detach(struct dp_soc *soc)
|
|||||||
{
|
{
|
||||||
qdf_timer_stop(&soc->wds_aging_timer);
|
qdf_timer_stop(&soc->wds_aging_timer);
|
||||||
qdf_timer_free(&soc->wds_aging_timer);
|
qdf_timer_free(&soc->wds_aging_timer);
|
||||||
qdf_spinlock_destroy(&soc->ast_lock);
|
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
static void dp_soc_wds_attach(struct dp_soc *soc)
|
static void dp_soc_wds_attach(struct dp_soc *soc)
|
||||||
@@ -1890,6 +1887,7 @@ static int dp_soc_cmn_setup(struct dp_soc *soc)
|
|||||||
goto fail1;
|
goto fail1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
qdf_spinlock_create(&soc->ast_lock);
|
||||||
dp_soc_wds_attach(soc);
|
dp_soc_wds_attach(soc);
|
||||||
|
|
||||||
/* Reset the cpu ring map if radio is NSS offloaded */
|
/* Reset the cpu ring map if radio is NSS offloaded */
|
||||||
@@ -2590,6 +2588,7 @@ static void dp_soc_detach_wifi3(void *txrx_soc)
|
|||||||
wlan_cfg_soc_detach(soc->wlan_cfg_ctx);
|
wlan_cfg_soc_detach(soc->wlan_cfg_ctx);
|
||||||
|
|
||||||
dp_soc_wds_detach(soc);
|
dp_soc_wds_detach(soc);
|
||||||
|
qdf_spinlock_destroy(&soc->ast_lock);
|
||||||
|
|
||||||
qdf_mem_free(soc);
|
qdf_mem_free(soc);
|
||||||
}
|
}
|
||||||
@@ -4981,6 +4980,9 @@ static void dp_txrx_path_stats(struct dp_soc *soc)
|
|||||||
DP_TRACE(FATAL, "intra-bss packets %u msdus ( %u bytes),",
|
DP_TRACE(FATAL, "intra-bss packets %u msdus ( %u bytes),",
|
||||||
pdev->stats.rx.intra_bss.pkts.num,
|
pdev->stats.rx.intra_bss.pkts.num,
|
||||||
pdev->stats.rx.intra_bss.pkts.bytes);
|
pdev->stats.rx.intra_bss.pkts.bytes);
|
||||||
|
DP_TRACE(FATAL, "intra-bss fails %u msdus ( %u bytes),",
|
||||||
|
pdev->stats.rx.intra_bss.fail.num,
|
||||||
|
pdev->stats.rx.intra_bss.fail.bytes);
|
||||||
DP_TRACE(FATAL, "raw packets %u msdus ( %u bytes),",
|
DP_TRACE(FATAL, "raw packets %u msdus ( %u bytes),",
|
||||||
pdev->stats.rx.raw.num,
|
pdev->stats.rx.raw.num,
|
||||||
pdev->stats.rx.raw.bytes);
|
pdev->stats.rx.raw.bytes);
|
||||||
|
@@ -190,7 +190,6 @@ void dp_peer_find_hash_add(struct dp_soc *soc, struct dp_peer *peer)
|
|||||||
qdf_spin_unlock_bh(&soc->peer_ref_mutex);
|
qdf_spin_unlock_bh(&soc->peer_ref_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef FEATURE_WDS
|
|
||||||
/*
|
/*
|
||||||
* dp_peer_ast_hash_attach() - Allocate and initialize AST Hash Table
|
* dp_peer_ast_hash_attach() - Allocate and initialize AST Hash Table
|
||||||
* @soc: SoC handle
|
* @soc: SoC handle
|
||||||
@@ -487,20 +486,6 @@ void dp_peer_del_ast(struct dp_soc *soc,
|
|||||||
dp_peer_ast_hash_remove(soc, ast_entry);
|
dp_peer_ast_hash_remove(soc, ast_entry);
|
||||||
qdf_mem_free(ast_entry);
|
qdf_mem_free(ast_entry);
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
static int dp_peer_ast_hash_attach(struct dp_soc *soc)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
static void dp_peer_ast_hash_detach(struct dp_soc *soc)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
static inline void dp_peer_map_ast(struct dp_soc *soc, struct dp_peer *peer,
|
|
||||||
uint8_t *mac_addr, uint16_t hw_peer_id, uint8_t vdev_id)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if ATH_SUPPORT_WRAP
|
#if ATH_SUPPORT_WRAP
|
||||||
static struct dp_peer *dp_peer_find_hash_find(struct dp_soc *soc,
|
static struct dp_peer *dp_peer_find_hash_find(struct dp_soc *soc,
|
||||||
|
@@ -55,29 +55,12 @@ uint8_t dp_get_peer_mac_addr_frm_id(struct cdp_soc_t *soc_handle,
|
|||||||
uint16_t peer_id, uint8_t *peer_mac);
|
uint16_t peer_id, uint8_t *peer_mac);
|
||||||
|
|
||||||
|
|
||||||
#ifdef FEATURE_WDS
|
|
||||||
int dp_peer_add_ast(struct dp_soc *soc, struct dp_peer *peer,
|
int dp_peer_add_ast(struct dp_soc *soc, struct dp_peer *peer,
|
||||||
uint8_t *mac_addr, uint8_t is_self);
|
uint8_t *mac_addr, uint8_t is_self);
|
||||||
void dp_peer_del_ast(struct dp_soc *soc,
|
void dp_peer_del_ast(struct dp_soc *soc,
|
||||||
struct dp_ast_entry *ast_entry);
|
struct dp_ast_entry *ast_entry);
|
||||||
struct dp_ast_entry *dp_peer_ast_hash_find(struct dp_soc *soc,
|
struct dp_ast_entry *dp_peer_ast_hash_find(struct dp_soc *soc,
|
||||||
uint8_t *ast_mac_addr, int mac_addr_is_aligned);
|
uint8_t *ast_mac_addr, int mac_addr_is_aligned);
|
||||||
#else
|
|
||||||
static inline int dp_peer_add_ast(struct dp_soc *soc, struct dp_peer *peer,
|
|
||||||
uint8_t *mac_addr, uint8_t is_self)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
static inline void dp_peer_del_ast(struct dp_soc *soc,
|
|
||||||
struct dp_ast_entry *ast_entry)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
static inline struct dp_ast_entry *dp_peer_ast_hash_find(struct dp_soc *soc,
|
|
||||||
uint8_t *ast_mac_addr, int mac_addr_is_aligned)
|
|
||||||
{
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* dp_get_vdev_from_soc_vdev_id_wifi3() -
|
* dp_get_vdev_from_soc_vdev_id_wifi3() -
|
||||||
|
Referens i nytt ärende
Block a user