qcacmn: Fix Intra-BSS forwarding issue

Extract ast_table manipulation functions from WDS feature flag

Change-Id: I029e151f608a6bb60344d817d7b7c75b86ca981b
CRs-Fixed: 2110304
这个提交包含在:
Yun Park
2017-09-13 16:33:35 -07:00
提交者 snandini
父节点 0d7163dbd4
当前提交 92af713fa2
修改 3 个文件,包含 5 行新增35 行删除

查看文件

@@ -1590,8 +1590,6 @@ static void dp_wds_aging_timer_fn(void *soc_hdl)
*/
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,
dp_wds_aging_timer_fn, (void *)soc,
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_free(&soc->wds_aging_timer);
qdf_spinlock_destroy(&soc->ast_lock);
}
#else
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;
}
qdf_spinlock_create(&soc->ast_lock);
dp_soc_wds_attach(soc);
/* 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);
dp_soc_wds_detach(soc);
qdf_spinlock_destroy(&soc->ast_lock);
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),",
pdev->stats.rx.intra_bss.pkts.num,
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),",
pdev->stats.rx.raw.num,
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);
}
#ifdef FEATURE_WDS
/*
* dp_peer_ast_hash_attach() - Allocate and initialize AST Hash Table
* @soc: SoC handle
@@ -487,20 +486,6 @@ void dp_peer_del_ast(struct dp_soc *soc,
dp_peer_ast_hash_remove(soc, 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
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);
#ifdef FEATURE_WDS
int dp_peer_add_ast(struct dp_soc *soc, struct dp_peer *peer,
uint8_t *mac_addr, uint8_t is_self);
void dp_peer_del_ast(struct dp_soc *soc,
struct dp_ast_entry *ast_entry);
struct dp_ast_entry *dp_peer_ast_hash_find(struct dp_soc *soc,
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() -