qcacmn: Use same reo hash key for all SOCs in MLO

In case Multi chip MLO configure same hash key for
all SOCs in MLO. This change is needed to avoid
same flow traffic distributed to multiple REOs.

Change-Id: Ib6cde4ae32e58ef2d45c02d640c133458f5bfac5
CRs-Fixed: 3201978
此提交包含在:
Chaithanya Garrepalli
2022-05-20 16:02:08 +05:30
提交者 Madan Koyyalamudi
父節點 304559ad0c
當前提交 8889b96325
共有 7 個檔案被更改,包括 68 行新增6 行删除

查看文件

@@ -48,6 +48,13 @@ dp_mlo_ctxt_attach_wifi3(struct cdp_ctrl_mlo_mgr *ctrl_ctxt)
return NULL;
}
qdf_get_random_bytes(mlo_ctxt->toeplitz_hash_ipv4,
(sizeof(mlo_ctxt->toeplitz_hash_ipv4[0]) *
LRO_IPV4_SEED_ARR_SZ));
qdf_get_random_bytes(mlo_ctxt->toeplitz_hash_ipv6,
(sizeof(mlo_ctxt->toeplitz_hash_ipv6[0]) *
LRO_IPV6_SEED_ARR_SZ));
qdf_spinlock_create(&mlo_ctxt->ml_soc_list_lock);
return dp_mlo_ctx_to_cdp(mlo_ctxt);
}
@@ -516,6 +523,23 @@ dp_link_peer_hash_find_by_chip_id(struct dp_soc *soc,
qdf_export_symbol(dp_link_peer_hash_find_by_chip_id);
void dp_mlo_get_rx_hash_key(struct dp_soc *soc,
struct cdp_lro_hash_config *lro_hash)
{
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
struct dp_mlo_ctxt *ml_ctxt = be_soc->ml_ctxt;
if (!be_soc->mlo_enabled || !ml_ctxt)
return dp_get_rx_hash_key_bytes(lro_hash);
qdf_mem_copy(lro_hash->toeplitz_hash_ipv4, ml_ctxt->toeplitz_hash_ipv4,
(sizeof(lro_hash->toeplitz_hash_ipv4[0]) *
LRO_IPV4_SEED_ARR_SZ));
qdf_mem_copy(lro_hash->toeplitz_hash_ipv6, ml_ctxt->toeplitz_hash_ipv6,
(sizeof(lro_hash->toeplitz_hash_ipv6[0]) *
LRO_IPV6_SEED_ARR_SZ));
}
struct dp_soc *
dp_rx_replensih_soc_get(struct dp_soc *soc, uint8_t reo_ring_num)
{

查看文件

@@ -51,6 +51,8 @@ struct dp_mlo_ctxt {
} mld_peer_hash;
qdf_spinlock_t mld_peer_hash_lock;
uint32_t toeplitz_hash_ipv4[LRO_IPV4_SEED_ARR_SZ];
uint32_t toeplitz_hash_ipv6[LRO_IPV6_SEED_ARR_SZ];
};
/**
@@ -100,4 +102,12 @@ void dp_pdev_mlo_fill_params(struct dp_pdev *pdev,
struct dp_soc*
dp_mlo_get_soc_ref_by_chip_id(struct dp_mlo_ctxt *ml_ctxt, uint8_t chip_id);
/**
* dp_mlo_get_rx_hash_key() - Get Rx hash key from MLO context
* @soc: DP SOC
* @lro_hash: Hash params
*
*/
void dp_mlo_get_rx_hash_key(struct dp_soc *soc,
struct cdp_lro_hash_config *lro_hash);
#endif /* __DP_MLO_H */