qcacld-3.0: Add support for set multicast filter command

Add support for WMI_SET_MULTIPLE_MCAST_FILTER_CMDID command
that can add/delete multiple mcast filters.

CRs-Fixed: 2096595
Change-Id: I3dc93c603a5a6676d97b5911a716277c7bef0ef8
This commit is contained in:
Poddar, Siddarth
2017-09-28 17:13:25 +05:30
committed by Nandini Suresh
parent a0fae8a30d
commit f7c49e73b7
8 changed files with 263 additions and 5 deletions

View File

@@ -80,4 +80,78 @@ out:
return status;
}
bool pmo_tgt_get_multiple_mc_filter_support(struct wlan_objmgr_vdev *vdev)
{
struct wlan_pmo_tx_ops pmo_tx_ops;
struct wlan_objmgr_psoc *psoc;
PMO_ENTER();
psoc = pmo_vdev_get_psoc(vdev);
pmo_tx_ops = GET_PMO_TX_OPS_FROM_PSOC(psoc);
if (!pmo_tx_ops.get_multiple_mc_filter_support) {
pmo_err("get_multiple_mc_filter_support is null");
return QDF_STATUS_E_NULL_VALUE;
}
return pmo_tx_ops.get_multiple_mc_filter_support(psoc);
}
QDF_STATUS pmo_tgt_set_multiple_mc_filter_req(struct wlan_objmgr_vdev *vdev,
struct pmo_mc_addr_list *mc_list)
{
QDF_STATUS status;
struct wlan_objmgr_psoc *psoc;
struct wlan_pmo_tx_ops pmo_tx_ops;
PMO_ENTER();
psoc = pmo_vdev_get_psoc(vdev);
pmo_tx_ops = GET_PMO_TX_OPS_FROM_PSOC(psoc);
if (!pmo_tx_ops.send_set_multiple_mc_filter_req) {
pmo_err("send_set_multiple_mc_filter_req is null");
status = QDF_STATUS_E_NULL_VALUE;
goto out;
}
status = pmo_tx_ops.send_set_multiple_mc_filter_req(
vdev, mc_list);
if (status != QDF_STATUS_SUCCESS)
pmo_err("Failed to add/clear multiple mc filter");
out:
PMO_EXIT();
return status;
}
QDF_STATUS pmo_tgt_clear_multiple_mc_filter_req(struct wlan_objmgr_vdev *vdev,
struct pmo_mc_addr_list *mc_list)
{
QDF_STATUS status;
struct wlan_objmgr_psoc *psoc;
struct wlan_pmo_tx_ops pmo_tx_ops;
PMO_ENTER();
psoc = pmo_vdev_get_psoc(vdev);
pmo_tx_ops = GET_PMO_TX_OPS_FROM_PSOC(psoc);
if (!pmo_tx_ops.send_clear_multiple_mc_filter_req) {
pmo_err("send_clear_multiple_mc_filter_req is null");
status = QDF_STATUS_E_NULL_VALUE;
goto out;
}
status = pmo_tx_ops.send_clear_multiple_mc_filter_req(
vdev, mc_list);
if (status != QDF_STATUS_SUCCESS)
pmo_err("Failed to add/clear multiple mc filter");
out:
PMO_EXIT();
return status;
}