qcacld-3.0: Add debugfs support for offload info

Add debugfs entry to get offload info (mc addr list, arp, ns etc.,)
for STA interface.

Change-Id: I8bf4491929b5ef04ed5ce19f4b0030945f0eb0c0
CRs-Fixed: 2203786
This commit is contained in:
Rajeev Kumar Sirasanagandla
2018-03-12 12:52:59 +05:30
committed by nshrivas
parent 4c8edc0e69
commit 85f8b02175
19 changed files with 830 additions and 7 deletions

View File

@@ -79,8 +79,18 @@ QDF_STATUS pmo_tgt_enable_arp_offload_req(struct wlan_objmgr_vdev *vdev,
}
status = pmo_tx_ops.send_arp_offload_req(
vdev, arp_offload_req, ns_offload_req);
if (status != QDF_STATUS_SUCCESS)
if (status != QDF_STATUS_SUCCESS) {
pmo_err("Failed to send ARP offload");
goto out;
}
qdf_spin_lock_bh(&vdev_ctx->pmo_vdev_lock);
if (vdev_ctx->vdev_arp_req.enable)
vdev_ctx->vdev_arp_req.is_offload_applied = true;
if (vdev_ctx->vdev_ns_req.enable)
vdev_ctx->vdev_ns_req.is_offload_applied = true;
qdf_spin_unlock_bh(&vdev_ctx->pmo_vdev_lock);
out:
if (arp_offload_req)
qdf_mem_free(arp_offload_req);
@@ -147,6 +157,11 @@ QDF_STATUS pmo_tgt_disable_arp_offload_req(struct wlan_objmgr_vdev *vdev,
if (status != QDF_STATUS_SUCCESS)
pmo_err("Failed to send ARP offload");
qdf_spin_lock_bh(&vdev_ctx->pmo_vdev_lock);
vdev_ctx->vdev_arp_req.is_offload_applied = false;
vdev_ctx->vdev_ns_req.is_offload_applied = false;
qdf_spin_unlock_bh(&vdev_ctx->pmo_vdev_lock);
out:
if (arp_offload_req)
qdf_mem_free(arp_offload_req);

View File

@@ -79,8 +79,17 @@ QDF_STATUS pmo_tgt_enable_ns_offload_req(struct wlan_objmgr_vdev *vdev,
}
status = pmo_tx_ops.send_ns_offload_req(
vdev, arp_offload_req, ns_offload_req);
if (status != QDF_STATUS_SUCCESS)
if (status != QDF_STATUS_SUCCESS) {
pmo_err("Failed to send NS offload");
goto out;
}
qdf_spin_lock_bh(&vdev_ctx->pmo_vdev_lock);
if (vdev_ctx->vdev_arp_req.enable)
vdev_ctx->vdev_arp_req.is_offload_applied = true;
if (vdev_ctx->vdev_ns_req.enable)
vdev_ctx->vdev_ns_req.is_offload_applied = true;
qdf_spin_unlock_bh(&vdev_ctx->pmo_vdev_lock);
out:
if (arp_offload_req)
@@ -148,6 +157,11 @@ QDF_STATUS pmo_tgt_disable_ns_offload_req(struct wlan_objmgr_vdev *vdev,
if (status != QDF_STATUS_SUCCESS)
pmo_err("Failed to send NS offload");
qdf_spin_lock_bh(&vdev_ctx->pmo_vdev_lock);
vdev_ctx->vdev_arp_req.is_offload_applied = false;
vdev_ctx->vdev_ns_req.is_offload_applied = false;
qdf_spin_unlock_bh(&vdev_ctx->pmo_vdev_lock);
out:
if (arp_offload_req)
qdf_mem_free(arp_offload_req);

View File

@@ -128,6 +128,13 @@ QDF_STATUS pmo_ucfg_disable_arp_offload_in_fwr(struct wlan_objmgr_vdev *vdev,
return pmo_core_disable_arp_offload_in_fwr(vdev, trigger);
}
QDF_STATUS
pmo_ucfg_get_arp_offload_params(struct wlan_objmgr_vdev *vdev,
struct pmo_arp_offload_params *params)
{
return pmo_core_get_arp_offload_params(vdev, params);
}
#ifdef WLAN_NS_OFFLOAD
QDF_STATUS pmo_ucfg_cache_ns_offload_req(struct pmo_ns_req *ns_req)
{
@@ -152,6 +159,32 @@ QDF_STATUS pmo_ucfg_disable_ns_offload_in_fwr(struct wlan_objmgr_vdev *vdev,
}
#endif /* WLAN_NS_OFFLOAD */
QDF_STATUS
pmo_ucfg_get_ns_offload_params(struct wlan_objmgr_vdev *vdev,
struct pmo_ns_offload_params *params)
{
return pmo_core_get_ns_offload_params(vdev, params);
}
enum pmo_ns_addr_scope
pmo_ucfg_ns_addr_scope(uint32_t ipv6_scope)
{
switch (ipv6_scope) {
case IPV6_ADDR_SCOPE_NODELOCAL:
return PMO_NS_ADDR_SCOPE_NODELOCAL;
case IPV6_ADDR_SCOPE_LINKLOCAL:
return PMO_NS_ADDR_SCOPE_LINKLOCAL;
case IPV6_ADDR_SCOPE_SITELOCAL:
return PMO_NS_ADDR_SCOPE_SITELOCAL;
case IPV6_ADDR_SCOPE_ORGLOCAL:
return PMO_NS_ADDR_SCOPE_ORGLOCAL;
case IPV6_ADDR_SCOPE_GLOBAL:
return PMO_NS_ADDR_SCOPE_GLOBAL;
}
return PMO_NS_ADDR_SCOPE_INVALID;
}
QDF_STATUS pmo_ucfg_cache_mc_addr_list(
struct pmo_mc_addr_list_params *mc_list_config)
{
@@ -187,6 +220,14 @@ uint8_t pmo_ucfg_max_mc_addr_supported(struct wlan_objmgr_psoc *psoc)
return pmo_core_max_mc_addr_supported(psoc);
}
QDF_STATUS
pmo_ucfg_get_mc_addr_list(struct wlan_objmgr_psoc *psoc,
uint8_t vdev_id,
struct pmo_mc_addr_list *mc_list_req)
{
return pmo_core_get_mc_addr_list(psoc, vdev_id, mc_list_req);
}
QDF_STATUS pmo_ucfg_cache_gtk_offload_req(struct wlan_objmgr_vdev *vdev,
struct pmo_gtk_req *gtk_req)
{