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:
Naga
2020-09-11 17:25:30 +05:30
committed by snandini
parent aae959eec4
commit c4cd90a9c4
6 changed files with 204 additions and 1 deletions

View File

@@ -2666,4 +2666,43 @@ cdp_rx_get_pending(ol_txrx_soc_handle soc)
return soc->ol_ops->dp_rx_get_pending(soc);
}
#ifdef QCA_SUPPORT_WDS_EXTENDED
static inline uint16_t
cdp_wds_ext_get_peer_id(ol_txrx_soc_handle soc, uint8_t vdev_id, uint8_t *mac)
{
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->get_wds_ext_peer_id)
return 0;
return soc->ops->cmn_drv_ops->get_wds_ext_peer_id
(soc, vdev_id, mac);
}
static inline QDF_STATUS
cdp_wds_ext_set_peer_rx(ol_txrx_soc_handle soc, uint8_t vdev_id,
uint8_t *mac, ol_txrx_rx_fp rx)
{
if (!soc || !soc->ops) {
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
"%s: Invalid Instance", __func__);
QDF_BUG(0);
return QDF_STATUS_E_FAULT;
}
if (!soc->ops->cmn_drv_ops ||
!soc->ops->cmn_drv_ops->set_wds_ext_peer_rx)
return QDF_STATUS_E_FAULT;
return soc->ops->cmn_drv_ops->set_wds_ext_peer_rx
(soc, vdev_id, mac, rx);
}
#endif /* QCA_SUPPORT_WDS_EXTENDED */
#endif /* _CDP_TXRX_CMN_H_ */