qcacld-3.0: Control GRO en/dis based on TC filter prio

The dynamic GRO enable/disable based on ingress filters
should currently is restricted only to standalone STA.
This was done to address issue where ingress filters are
added on STA interface whenever SAP is up disabling GRO
unnecessarily.

Fix is to allow dynamic GRO to work on all interfaces
and concurrency scenarios based on the priority of
the ingress filter configured to avoid unnecessary
GRO disable in STA+SAP.

Change-Id: I1742f4539353939e3a40ff4096b3f833f2029b12
CRs-Fixed: 3206815
这个提交包含在:
Yeshwanth Sriram Guntuka
2022-05-19 12:04:24 +05:30
提交者 Madan Koyyalamudi
父节点 e82fd479db
当前提交 47a80af63c
修改 9 个文件,包含 237 行新增150 行删除

查看文件

@@ -1790,15 +1790,14 @@ struct policy_mgr_cdp_cbacks {
/**
* struct policy_mgr_dp_cbacks - CDP Callbacks to be invoked
* from policy manager
* @hdd_rx_handle_concurrency: Callback to handle concurrency related
* operations for rx
* @hdd_disable_rx_ol_in_concurrency: Callback to disable LRO/GRO offloads
* @hdd_set_rx_mode_rps_cb: Callback to set RPS
* @hdd_ipa_set_mcc_mode_cb: Callback to set mcc mode for ipa module
* @hdd_v2_flow_pool_map: Callback to create vdev flow pool
* @hdd_v2_flow_pool_unmap: Callback to delete vdev flow pool
*/
struct policy_mgr_dp_cbacks {
void (*hdd_rx_handle_concurrency)(bool);
void (*hdd_disable_rx_ol_in_concurrency)(bool);
void (*hdd_set_rx_mode_rps_cb)(bool);
void (*hdd_ipa_set_mcc_mode_cb)(bool);
void (*hdd_v2_flow_pool_map)(int);

查看文件

@@ -3474,8 +3474,8 @@ void policy_mgr_incr_active_session(struct wlan_objmgr_psoc *psoc,
(policy_mgr_mode_specific_connection_count(psoc,
PM_NDI_MODE,
NULL) > 0)) {
if (pm_ctx->dp_cbacks.hdd_rx_handle_concurrency)
pm_ctx->dp_cbacks.hdd_rx_handle_concurrency(true);
if (pm_ctx->dp_cbacks.hdd_disable_rx_ol_in_concurrency)
pm_ctx->dp_cbacks.hdd_disable_rx_ol_in_concurrency(true);
};
/* Enable RPS if SAP interface has come up */
@@ -3638,8 +3638,8 @@ QDF_STATUS policy_mgr_decr_active_session(struct wlan_objmgr_psoc *psoc,
(policy_mgr_mode_specific_connection_count(psoc,
PM_NDI_MODE,
NULL) == 0))) {
if (pm_ctx->dp_cbacks.hdd_rx_handle_concurrency)
pm_ctx->dp_cbacks.hdd_rx_handle_concurrency(false);
if (pm_ctx->dp_cbacks.hdd_disable_rx_ol_in_concurrency)
pm_ctx->dp_cbacks.hdd_disable_rx_ol_in_concurrency(false);
};
/* Disable RPS if SAP interface has come up */

查看文件

@@ -806,8 +806,8 @@ QDF_STATUS policy_mgr_register_dp_cb(struct wlan_objmgr_psoc *psoc,
return QDF_STATUS_E_FAILURE;
}
pm_ctx->dp_cbacks.hdd_rx_handle_concurrency =
dp_cbacks->hdd_rx_handle_concurrency;
pm_ctx->dp_cbacks.hdd_disable_rx_ol_in_concurrency =
dp_cbacks->hdd_disable_rx_ol_in_concurrency;
pm_ctx->dp_cbacks.hdd_set_rx_mode_rps_cb =
dp_cbacks->hdd_set_rx_mode_rps_cb;
pm_ctx->dp_cbacks.hdd_ipa_set_mcc_mode_cb =