qcacld-3.0: Fix issue with 256 BA buff size setting

Change the BA buffer size attribute value to 16-bit to set
the 256 BA buffer size. Define the max supported BA buffer
size and advertise the max supported buffer size if the
user configures the value greater than supported.

Change-Id: I5efdee60517e02572386e9751706722987f44261
CRs-Fixed: 2284461
Tento commit je obsažen v:
Kiran Kumar Lokere
2018-07-24 16:56:01 -07:00
odevzdal nshrivas
rodič 2ce4b8a8a8
revize eac7fe9f27
4 změnil soubory, kde provedl 18 přidání a 3 odebrání

Zobrazit soubor

@@ -6336,7 +6336,7 @@ wlan_hdd_wifi_test_config_policy[
[QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_BA_TID] = {
.type = NLA_U8},
[QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_ADDBA_BUFF_SIZE] = {
.type = NLA_U8},
.type = NLA_U16},
[QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_ENABLE_NO_ACK] = {
.type = NLA_U8},
[QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_NO_ACK_AC] = {
@@ -7494,7 +7494,7 @@ __wlan_hdd_cfg80211_set_wifi_test_config(struct wiphy *wiphy,
if (cfg_val == QCA_WLAN_ADD_BA) {
if (tb[
QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_ADDBA_BUFF_SIZE])
buff_size = nla_get_u8(tb[
buff_size = nla_get_u16(tb[
QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_ADDBA_BUFF_SIZE]);
ret_val = sme_send_addba_req(mac_handle,
adapter->session_id,
@@ -7506,7 +7506,7 @@ __wlan_hdd_cfg80211_set_wifi_test_config(struct wiphy *wiphy,
goto send_err;
}
} else if (tb[QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_ADDBA_BUFF_SIZE]) {
buff_size = nla_get_u8(tb[
buff_size = nla_get_u16(tb[
QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_ADDBA_BUFF_SIZE]);
hdd_debug("set buff size to %d for all tids", buff_size);
ret_val = sme_set_ba_buff_size(mac_handle,

Zobrazit soubor

@@ -160,6 +160,8 @@
#define SIR_MAC_BA_AMSDU_SUPPORTED 1
#define SIR_MAC_BA_DEFAULT_BUFF_SIZE 64
#define MAX_BA_BUFF_SIZE 80
#ifdef ANI_SUPPORT_11H
#define SIR_MAC_ACTION_MEASURE_REQUEST_ID 0
#define SIR_MAC_ACTION_MEASURE_REPORT_ID 1

Zobrazit soubor

@@ -551,6 +551,7 @@ typedef struct sPESession /* Added to Support BT-AMP */
enum wmi_obss_color_collision_evt_type obss_color_collision_dec_evt;
bool is_session_obss_color_collision_det_enabled;
int8_t def_max_tx_pwr;
bool active_ba_64_session;
#ifdef WLAN_SUPPORT_TWT
uint8_t peer_twt_requestor;
uint8_t peer_twt_responder;

Zobrazit soubor

@@ -4843,6 +4843,18 @@ QDF_STATUS lim_send_addba_response_frame(tpAniSirGlobal mac_ctx,
frm.addba_param_set.buff_size = SIR_MAC_BA_DEFAULT_BUFF_SIZE;
if (mac_ctx->usr_cfg_ba_buff_size)
frm.addba_param_set.buff_size = mac_ctx->usr_cfg_ba_buff_size;
if (frm.addba_param_set.buff_size > MAX_BA_BUFF_SIZE)
frm.addba_param_set.buff_size = MAX_BA_BUFF_SIZE;
if (frm.addba_param_set.buff_size > SIR_MAC_BA_DEFAULT_BUFF_SIZE) {
if (session->active_ba_64_session) {
frm.addba_param_set.buff_size =
SIR_MAC_BA_DEFAULT_BUFF_SIZE;
}
} else if (!session->active_ba_64_session) {
session->active_ba_64_session = true;
}
if (mac_ctx->is_usr_cfg_amsdu_enabled)
frm.addba_param_set.amsdu_supp = amsdu_support;
else