qcacmn: FR-64492 WDS Extended support
- Added data structure for wds ext peer - Enhanced DP peer structure to maintain wds ext peer data structure, which inturn maintain pointer to osif device. - Enhanced DP vdev structure to maintain feature configuration, which will be updated during vdev creation when feature is flag is set at control psoc. - Enhanced cdp_vdev_param_type and cdp_config_param_t to set wds ext configuration into DP vdev - Enhanced cdp_cmn_ops structure and corresponding call back definitons to get peer id, which will be saved in osif private structure and to set wds ext peer rx. - Enhanced cdp_ctrl_ops to send event to control path when 1st 4 address frame is received from backhaul. Change-Id: Ide0ea54e7b2d480ad646fb84b6e4e3108930f986 CRs-Fixed: 2773492
This commit is contained in:
@@ -410,6 +410,17 @@ static inline void dp_set_peer_isolation(struct dp_peer *peer, bool val)
|
||||
}
|
||||
#endif /* QCA_SUPPORT_PEER_ISOLATION */
|
||||
|
||||
#ifdef QCA_SUPPORT_WDS_EXTENDED
|
||||
static inline void dp_wds_ext_peer_init(struct dp_peer *peer)
|
||||
{
|
||||
peer->wds_ext.init = 0;
|
||||
}
|
||||
#else
|
||||
static inline void dp_wds_ext_peer_init(struct dp_peer *peer)
|
||||
{
|
||||
}
|
||||
#endif /* QCA_SUPPORT_WDS_EXTENDED */
|
||||
|
||||
/**
|
||||
* The lmac ID for a particular channel band is fixed.
|
||||
* 2.4GHz band uses lmac_id = 1
|
||||
@@ -2424,4 +2435,38 @@ static inline QDF_STATUS dp_soc_swlm_detach(struct dp_soc *soc)
|
||||
}
|
||||
#endif /* !WLAN_DP_FEATURE_SW_LATENCY_MGR */
|
||||
|
||||
#ifdef QCA_SUPPORT_WDS_EXTENDED
|
||||
/**
|
||||
* dp_wds_ext_get_peer_id(): function to get peer id by mac
|
||||
* This API is called from control path when wds extended
|
||||
* device is created, hence it also updates wds extended
|
||||
* peer state to up, which will be referred in rx processing.
|
||||
* @soc: Datapath soc handle
|
||||
* @vdev_id: vdev id
|
||||
* @mac: Peer mac address
|
||||
*
|
||||
* return: valid peer id on success
|
||||
* HTT_INVALID_PEER on failure
|
||||
*/
|
||||
uint16_t dp_wds_ext_get_peer_id(ol_txrx_soc_handle soc,
|
||||
uint8_t vdev_id,
|
||||
uint8_t *mac);
|
||||
|
||||
/**
|
||||
* dp_wds_ext_set_peer_state(): function to set peer state
|
||||
* @soc: Datapath soc handle
|
||||
* @vdev_id: vdev id
|
||||
* @mac: Peer mac address
|
||||
* @rx: rx function pointer
|
||||
*
|
||||
* return: QDF_STATUS_SUCCESS on success
|
||||
* QDF_STATUS_E_INVAL if peer is not found
|
||||
* QDF_STATUS_E_ALREADY if rx is already set/unset
|
||||
*/
|
||||
QDF_STATUS dp_wds_ext_set_peer_rx(ol_txrx_soc_handle soc,
|
||||
uint8_t vdev_id,
|
||||
uint8_t *mac,
|
||||
ol_txrx_rx_fp rx);
|
||||
#endif /* QCA_SUPPORT_WDS_EXTENDED */
|
||||
|
||||
#endif /* #ifndef _DP_INTERNAL_H_ */
|
||||
|
Reference in New Issue
Block a user