qcacmn: Add WDS Vendor Extension ECM Framework

Add WDS tx/rx policy checks in Tx and Rx datapaths.
In Rx path, check packets against rx policy configured
In Tx Reinject path, checks are to process or drop 4-addr/3-addr packets
to peers decisively

Change-Id: I0a6c01b7555fa5d369ab2c9baf454d49808857fc
This commit is contained in:
Tallapragada Kalyan
2017-12-08 21:07:43 +05:30
committed by snandini
parent 9dee72a40c
commit 2a5fc625d2
8 changed files with 286 additions and 8 deletions

View File

@@ -58,6 +58,33 @@ cdp_set_wds_rx_policy(ol_txrx_soc_handle soc,
return;
}
/**
* @brief set the wds rx filter policy of the device
* @details
* This flag sets the wds rx policy on the vdev. Rx frames not compliant
* with the policy will be dropped.
*
* @param vdev - the data virtual device object
* @param val - the wds rx policy bitmask
* @return - void
*/
static inline void
cdp_set_wds_tx_policy_update(ol_txrx_soc_handle soc,
struct cdp_peer *peer,
int wds_tx_ucast, int wds_tx_mcast)
{
if (!soc || !soc->ops || !soc->ops->wds_ops) {
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL,
"%s invalid instance", __func__);
return;
}
if (soc->ops->wds_ops->txrx_wds_peer_tx_policy_update)
return soc->ops->wds_ops->txrx_wds_peer_tx_policy_update(
peer, wds_tx_ucast, wds_tx_mcast);
return;
}
/**
* cdp_vdev_set_wds() - Set/unset wds_enable flag in vdev
* @soc - data path soc handle