qcacmn: DBDC repeater mode changes in AST

Add new ast_get_type API for DBDC repeater feature.
Add other changes required in WDS and MEC handling
required for DBDC repeater feature to function properly.

Apply sta kickout logic to handle roaming cases
only within same radio. For roaming across radios, DP should
rely on control path.

Change-Id: If9b35720082dd87de40827843a14238e818bc454
This commit is contained in:
Pamidipati, Vijay
2018-05-12 11:10:37 +05:30
committed by nshrivas
szülő 52c6b73468
commit 3756b7603e
8 fájl változott, egészen pontosan 181 új sor hozzáadva és 54 régi sor törölve

Fájl megtekintése

@@ -472,6 +472,31 @@ static inline uint8_t cdp_peer_ast_get_next_hop
ast_handle);
}
/**
* cdp_peer_ast_get_type() - Return type (Static, WDS, MEC) of AST entry
* @soc: DP SoC handle
* @ast_handle: Opaque handle to AST entry
*
* Return: AST entry type (Static/WDS/MEC)
*/
static inline enum cdp_txrx_ast_entry_type cdp_peer_ast_get_type
(ol_txrx_soc_handle soc, void *ast_handle)
{
if (!soc || !soc->ops) {
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
"%s: Invalid Instance:", __func__);
QDF_BUG(0);
return 0;
}
if (!soc->ops->cmn_drv_ops ||
!soc->ops->cmn_drv_ops->txrx_peer_ast_get_type)
return 0;
return soc->ops->cmn_drv_ops->txrx_peer_ast_get_type(soc, ast_handle);
}
static inline void cdp_peer_ast_set_type
(ol_txrx_soc_handle soc, void *ast_handle,
enum cdp_txrx_ast_entry_type type)

Fájl megtekintése

@@ -304,6 +304,7 @@ enum ol_txrx_peer_state {
enum cdp_txrx_ast_entry_type {
CDP_TXRX_AST_TYPE_NONE, /* static ast entry for connected peer */
CDP_TXRX_AST_TYPE_STATIC, /* static ast entry for connected peer */
CDP_TXRX_AST_TYPE_SELF, /* static ast entry for self peer (STA mode) */
CDP_TXRX_AST_TYPE_WDS, /* WDS peer ast entry type*/
CDP_TXRX_AST_TYPE_MEC, /* Multicast echo ast entry type */
CDP_TXRX_AST_TYPE_WDS_HM, /* HM WDS entry */

Fájl megtekintése

@@ -120,6 +120,9 @@ struct cdp_cmn_ops {
(ol_txrx_soc_handle soc, void *ast_hdl,
enum cdp_txrx_ast_entry_type type);
enum cdp_txrx_ast_entry_type (*txrx_peer_ast_get_type)
(ol_txrx_soc_handle soc, void *ast_hdl);
void (*txrx_peer_delete)(void *peer, uint32_t bitmap);
int (*txrx_set_monitor_mode)(struct cdp_vdev *vdev,