diff options
| author | Agrawal, Ashish <ashishka@codeaurora.org> | 2016-10-27 14:55:30 +0530 |
|---|---|---|
| committer | qcabuildsw <qcabuildsw@localhost> | 2016-11-01 03:02:56 -0700 |
| commit | 8da27fbe86206f2608b94cb1cfe24c85ecbf9928 (patch) | |
| tree | 0d1261710e6013e2d578c808f6afed6d60ff3235 | |
| parent | fc7f5987cbe970aacf7dc88413e2337379007e17 (diff) | |
qcacld-3.0: Vendor attribute for setting TX fail count threshold
qcacld-2.0 to qcacld-3.0 propagation
Vendor attribute for setting TX fail count threshold. This attribute
is part of QCA_NL80211_VENDOR_SUBCMD_SET_WIFI_CONFIGURATION.
Change-Id: Iba2a6d4c04809041489ff8c32aeb17c9dafbc4a5
CRs-Fixed: 1045760
| -rw-r--r-- | core/hdd/src/wlan_hdd_cfg80211.c | 16 | ||||
| -rw-r--r-- | core/hdd/src/wlan_hdd_cfg80211.h | 4 |
2 files changed, 20 insertions, 0 deletions
diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c index 58f8109a831c..e2e97b276f3d 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.c +++ b/core/hdd/src/wlan_hdd_cfg80211.c @@ -3914,6 +3914,7 @@ wlan_hdd_wifi_config_policy[QCA_WLAN_VENDOR_ATTR_CONFIG_MAX + 1] = { [QCA_WLAN_VENDOR_ATTR_CONFIG_MGMT_RETRY] = {.type = NLA_U8 }, [QCA_WLAN_VENDOR_ATTR_CONFIG_CTRL_RETRY] = {.type = NLA_U8 }, [QCA_WLAN_VENDOR_ATTR_CONFIG_PROPAGATION_DELAY] = {.type = NLA_U8 }, + [QCA_WLAN_VENDOR_ATTR_CONFIG_TX_FAIL_COUNT] = {.type = NLA_U32 }, }; /** @@ -3986,6 +3987,7 @@ __wlan_hdd_cfg80211_wifi_configuration_set(struct wiphy *wiphy, QDF_STATUS qdf_status; uint8_t retry, delay; int param_id; + uint32_t tx_fail_count; ENTER_DEV(dev); @@ -4146,6 +4148,20 @@ __wlan_hdd_cfg80211_wifi_configuration_set(struct wiphy *wiphy, delay, PDEV_CMD); } + if (tb[QCA_WLAN_VENDOR_ATTR_CONFIG_TX_FAIL_COUNT]) { + tx_fail_count = nla_get_u32( + tb[QCA_WLAN_VENDOR_ATTR_CONFIG_TX_FAIL_COUNT]); + if (tx_fail_count) { + status = sme_update_tx_fail_cnt_threshold(hdd_ctx->hHal, + adapter->sessionId, tx_fail_count); + if (QDF_STATUS_SUCCESS != status) { + hdd_info("sme_update_tx_fail_cnt_threshold (err=%d)", + status); + return -EINVAL; + } + } + } + if (vendor_ie_present && access_policy_present) { if (access_policy == QCA_ACCESS_POLICY_DENY_UNLESS_LISTED) { access_policy = diff --git a/core/hdd/src/wlan_hdd_cfg80211.h b/core/hdd/src/wlan_hdd_cfg80211.h index 5cdaad826294..4fc72be584c5 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.h +++ b/core/hdd/src/wlan_hdd_cfg80211.h @@ -2405,6 +2405,9 @@ enum qca_ignore_assoc_disallowed { * power save config to turn off/on qpower * @QCA_WLAN_VENDOR_ATTR_CONFIG_IGNORE_ASSOC_DISALLOWED: Ignore Assoc Disallowed * [MBO] + * @QCA_WLAN_VENDOR_ATTR_CONFIG_TX_FAIL_COUNT: Unsigned 32-bit value to + * configure the number of unicast TX fail packet count. + * The peer is disconnected once this threshold is reached. * @QCA_WLAN_VENDOR_ATTR_CONFIG_LAST: last config * @QCA_WLAN_VENDOR_ATTR_CONFIG_MAX: max config */ @@ -2476,6 +2479,7 @@ enum qca_wlan_vendor_config { /* Unsigned 8-bit, for setting qpower dynamically */ QCA_WLAN_VENDOR_ATTR_CONFIG_QPOWER = 25, QCA_WLAN_VENDOR_ATTR_CONFIG_IGNORE_ASSOC_DISALLOWED = 26, + QCA_WLAN_VENDOR_ATTR_CONFIG_TX_FAIL_COUNT, /* keep last */ QCA_WLAN_VENDOR_ATTR_CONFIG_LAST, QCA_WLAN_VENDOR_ATTR_CONFIG_MAX = |
