wlan: Add cfg.ini entry to make number of buffers advertised for ADDBA negotiation configurable

Change-Id: I8d56b5111da0a3981f719beec10df62305c15639
CR-Fixed: 415219
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h
index ae2434b..18a6291 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg.h
@@ -1371,6 +1371,12 @@
 #define CFG_MC_ADDR_LIST_ENABLE_MAX           ( 1 )
 #define CFG_MC_ADDR_LIST_ENABLE_DEFAULT       ( 0 )
 
+/* Set number of buffers to be advertised during ADDBA negotiation*/
+#define CFG_NUM_BUFF_ADVERT_NAME              "gNumBuffAdvert"
+#define CFG_NUM_BUFF_ADVERT_MIN               ( 0 )
+#define CFG_NUM_BUFF_ADVERT_MAX               ( 128 )
+#define CFG_NUM_BUFF_ADVERT_DEFAULT           ( 40 )
+
 /*--------------------------------------------------------------------------- 
   Type declarations
   -------------------------------------------------------------------------*/ 
@@ -1675,6 +1681,7 @@
    v_BOOL_t                    enableFirstScan2GOnly;
    v_BOOL_t                    skipDfsChnlInP2pSearch;
    v_BOOL_t                    ignoreDynamicDtimInP2pMode;
+   v_U32_t                     numBuffAdvert;
 } hdd_config_t;
 /*--------------------------------------------------------------------------- 
   Function declarations and documenation
diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c
index 96f16d7..5b5b8ca 100644
--- a/CORE/HDD/src/wlan_hdd_cfg.c
+++ b/CORE/HDD/src/wlan_hdd_cfg.c
@@ -1671,6 +1671,12 @@
               CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_MIN, 
               CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_MAX ),
 
+REG_VARIABLE( CFG_NUM_BUFF_ADVERT_NAME, WLAN_PARAM_Integer,
+              hdd_config_t,numBuffAdvert , 
+              VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK, 
+              CFG_NUM_BUFF_ADVERT_DEFAULT, 
+              CFG_NUM_BUFF_ADVERT_MIN, 
+              CFG_NUM_BUFF_ADVERT_MAX ),
 };
 
 /*
@@ -3038,6 +3044,13 @@
    }
 #endif
 
+     if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_NUM_BUFF_ADVERT,pConfig->numBuffAdvert, 
+        NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
+     {
+        fStatus = FALSE;
+        hddLog(LOGE, "Could not pass on WNI_CFG_NUM_BUFF_ADVERT to CCM\n");
+     }
+
    return fStatus;
 }
 
diff --git a/CORE/MAC/inc/wniCfgAp.h b/CORE/MAC/inc/wniCfgAp.h
index a7b11f5..178ba8d 100644
--- a/CORE/MAC/inc/wniCfgAp.h
+++ b/CORE/MAC/inc/wniCfgAp.h
@@ -245,95 +245,97 @@
 #define WNI_CFG_VHT_160MHZ_UTILIZATION    200
 #define WNI_CFG_MAX_AMSDU_LENGTH    201
 #define WNI_CFG_MPDU_DENSITY    202
-#define WNI_CFG_MAX_RX_AMPDU_FACTOR    203
-#define WNI_CFG_SHORT_GI_20MHZ    204
-#define WNI_CFG_SHORT_GI_40MHZ    205
-#define WNI_CFG_RIFS_ENABLED    206
-#define WNI_CFG_MAX_PS_POLL    207
-#define WNI_CFG_NUM_BEACON_PER_RSSI_AVERAGE    208
-#define WNI_CFG_RSSI_FILTER_PERIOD    209
-#define WNI_CFG_FT_RSSI_FILTER_PERIOD    210
-#define WNI_CFG_MIN_RSSI_THRESHOLD    211
-#define WNI_CFG_NTH_BEACON_FILTER    212
-#define WNI_CFG_BROADCAST_FRAME_FILTER_ENABLE    213
-#define WNI_CFG_SCAN_IN_POWERSAVE    214
-#define WNI_CFG_IGNORE_DTIM    215
-#define WNI_CFG_WOWLAN_UCAST_PATTERN_FILTER_ENABLE    216
-#define WNI_CFG_WOWLAN_CHANNEL_SWITCH_ENABLE    217
-#define WNI_CFG_WOWLAN_DEAUTH_ENABLE    218
-#define WNI_CFG_WOWLAN_DISASSOC_ENABLE    219
-#define WNI_CFG_WOWLAN_MAX_MISSED_BEACON    220
-#define WNI_CFG_WOWLAN_MAX_SLEEP_PERIOD    221
-#define WNI_CFG_BA_TIMEOUT    222
-#define WNI_CFG_BA_THRESHOLD_HIGH    223
-#define WNI_CFG_MAX_BA_BUFFERS    224
-#define WNI_CFG_MAX_BA_SESSIONS    225
-#define WNI_CFG_BA_AUTO_SETUP    226
-#define WNI_CFG_ADDBA_REQ_DECLINE    227
-#define WNI_CFG_BG_SCAN_CHANNEL_LIST    228
-#define WNI_CFG_MAX_MEDIUM_TIME    229
-#define WNI_CFG_MAX_MPDUS_IN_AMPDU    230
-#define WNI_CFG_IBSS_AUTO_BSSID    231
-#define WNI_CFG_PROBE_REQ_ADDNIE_FLAG    232
-#define WNI_CFG_PROBE_REQ_ADDNIE_DATA    233
-#define WNI_CFG_PROBE_RSP_ADDNIE_FLAG    234
-#define WNI_CFG_PROBE_RSP_ADDNIE_DATA1    235
-#define WNI_CFG_PROBE_RSP_ADDNIE_DATA2    236
-#define WNI_CFG_PROBE_RSP_ADDNIE_DATA3    237
-#define WNI_CFG_ASSOC_RSP_ADDNIE_FLAG    238
-#define WNI_CFG_ASSOC_RSP_ADDNIE_DATA    239
-#define WNI_CFG_PROBE_REQ_ADDNP2PIE_FLAG    240
-#define WNI_CFG_PROBE_REQ_ADDNP2PIE_DATA    241
-#define WNI_CFG_PROBE_RSP_BCN_ADDNIE_FLAG    242
-#define WNI_CFG_PROBE_RSP_BCN_ADDNIE_DATA    243
-#define WNI_CFG_WPS_ENABLE    244
-#define WNI_CFG_WPS_STATE    245
-#define WNI_CFG_WPS_PROBE_REQ_FLAG    246
-#define WNI_CFG_WPS_VERSION    247
-#define WNI_CFG_WPS_REQUEST_TYPE    248
-#define WNI_CFG_WPS_CFG_METHOD    249
-#define WNI_CFG_WPS_UUID    250
-#define WNI_CFG_WPS_PRIMARY_DEVICE_CATEGORY    251
-#define WNI_CFG_WPS_PIMARY_DEVICE_OUI    252
-#define WNI_CFG_WPS_DEVICE_SUB_CATEGORY    253
-#define WNI_CFG_WPS_ASSOCIATION_STATE    254
-#define WNI_CFG_WPS_CONFIGURATION_ERROR    255
-#define WNI_CFG_WPS_DEVICE_PASSWORD_ID    256
-#define WNI_CFG_WPS_ASSOC_METHOD    257
-#define WNI_CFG_LOW_GAIN_OVERRIDE    258
-#define WNI_CFG_ENABLE_PHY_AGC_LISTEN_MODE    259
-#define WNI_CFG_RPE_POLLING_THRESHOLD    260
-#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC0_REG    261
-#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC1_REG    262
-#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC2_REG    263
-#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC3_REG    264
-#define WNI_CFG_NO_OF_ONCHIP_REORDER_SESSIONS    265
-#define WNI_CFG_SINGLE_TID_RC    266
-#define WNI_CFG_RRM_ENABLED    267
-#define WNI_CFG_RRM_OPERATING_CHAN_MAX    268
-#define WNI_CFG_RRM_NON_OPERATING_CHAN_MAX    269
-#define WNI_CFG_TX_PWR_CTRL_ENABLE    270
-#define WNI_CFG_MCAST_BCAST_FILTER_SETTING    271
-#define WNI_CFG_BTC_DHCP_BT_SLOTS_TO_BLOCK    272
-#define WNI_CFG_DYNAMIC_PS_POLL_VALUE    273
-#define WNI_CFG_PS_NULLDATA_AP_RESP_TIMEOUT    274
-#define WNI_CFG_TELE_BCN_WAKEUP_EN    275
-#define WNI_CFG_TELE_BCN_TRANS_LI    276
-#define WNI_CFG_TELE_BCN_TRANS_LI_IDLE_BCNS    277
-#define WNI_CFG_TELE_BCN_MAX_LI    278
-#define WNI_CFG_TELE_BCN_MAX_LI_IDLE_BCNS    279
-#define WNI_CFG_BTC_A2DP_DHCP_BT_SUB_INTERVALS    280
-#define WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD    281
-#define WNI_CFG_ASSOC_STA_LIMIT    282
-#define WNI_CFG_SAP_CHANNEL_SELECT_START_CHANNEL    283
-#define WNI_CFG_SAP_CHANNEL_SELECT_END_CHANNEL    284
-#define WNI_CFG_SAP_CHANNEL_SELECT_OPERATING_BAND    285
-#define WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD    286
-#define WNI_CFG_ENABLE_CLOSE_LOOP    287
-#define WNI_CFG_ENABLE_LTE_COEX    288
-#define WNI_CFG_AP_KEEP_ALIVE_TIMEOUT    289
-#define WNI_CFG_GO_KEEP_ALIVE_TIMEOUT    290
-#define WNI_CFG_ENABLE_MC_ADDR_LIST    291
+#define WNI_CFG_NUM_BUFF_ADVERT    203
+#define WNI_CFG_MAX_RX_AMPDU_FACTOR    204
+#define WNI_CFG_SHORT_GI_20MHZ    205
+#define WNI_CFG_SHORT_GI_40MHZ    206
+#define WNI_CFG_RIFS_ENABLED    207
+#define WNI_CFG_MAX_PS_POLL    208
+#define WNI_CFG_NUM_BEACON_PER_RSSI_AVERAGE    209
+#define WNI_CFG_RSSI_FILTER_PERIOD    210
+#define WNI_CFG_FT_RSSI_FILTER_PERIOD    211
+#define WNI_CFG_MIN_RSSI_THRESHOLD    212
+#define WNI_CFG_NTH_BEACON_FILTER    213
+#define WNI_CFG_BROADCAST_FRAME_FILTER_ENABLE    214
+#define WNI_CFG_SCAN_IN_POWERSAVE    215
+#define WNI_CFG_IGNORE_DTIM    216
+#define WNI_CFG_WOWLAN_UCAST_PATTERN_FILTER_ENABLE    217
+#define WNI_CFG_WOWLAN_CHANNEL_SWITCH_ENABLE    218
+#define WNI_CFG_WOWLAN_DEAUTH_ENABLE    219
+#define WNI_CFG_WOWLAN_DISASSOC_ENABLE    220
+#define WNI_CFG_WOWLAN_MAX_MISSED_BEACON    221
+#define WNI_CFG_WOWLAN_MAX_SLEEP_PERIOD    222
+#define WNI_CFG_BA_TIMEOUT    223
+#define WNI_CFG_BA_THRESHOLD_HIGH    224
+#define WNI_CFG_MAX_BA_BUFFERS    225
+#define WNI_CFG_MAX_BA_SESSIONS    226
+#define WNI_CFG_BA_AUTO_SETUP    227
+#define WNI_CFG_ADDBA_REQ_DECLINE    228
+#define WNI_CFG_BG_SCAN_CHANNEL_LIST    229
+#define WNI_CFG_MAX_MEDIUM_TIME    230
+#define WNI_CFG_MAX_MPDUS_IN_AMPDU    231
+#define WNI_CFG_IBSS_AUTO_BSSID    232
+#define WNI_CFG_PROBE_REQ_ADDNIE_FLAG    233
+#define WNI_CFG_PROBE_REQ_ADDNIE_DATA    234
+#define WNI_CFG_PROBE_RSP_ADDNIE_FLAG    235
+#define WNI_CFG_PROBE_RSP_ADDNIE_DATA1    236
+#define WNI_CFG_PROBE_RSP_ADDNIE_DATA2    237
+#define WNI_CFG_PROBE_RSP_ADDNIE_DATA3    238
+#define WNI_CFG_ASSOC_RSP_ADDNIE_FLAG    239
+#define WNI_CFG_ASSOC_RSP_ADDNIE_DATA    240
+#define WNI_CFG_PROBE_REQ_ADDNP2PIE_FLAG    241
+#define WNI_CFG_PROBE_REQ_ADDNP2PIE_DATA    242
+#define WNI_CFG_PROBE_RSP_BCN_ADDNIE_FLAG    243
+#define WNI_CFG_PROBE_RSP_BCN_ADDNIE_DATA    244
+#define WNI_CFG_WPS_ENABLE    245
+#define WNI_CFG_WPS_STATE    246
+#define WNI_CFG_WPS_PROBE_REQ_FLAG    247
+#define WNI_CFG_WPS_VERSION    248
+#define WNI_CFG_WPS_REQUEST_TYPE    249
+#define WNI_CFG_WPS_CFG_METHOD    250
+#define WNI_CFG_WPS_UUID    251
+#define WNI_CFG_WPS_PRIMARY_DEVICE_CATEGORY    252
+#define WNI_CFG_WPS_PIMARY_DEVICE_OUI    253
+#define WNI_CFG_WPS_DEVICE_SUB_CATEGORY    254
+#define WNI_CFG_WPS_ASSOCIATION_STATE    255
+#define WNI_CFG_WPS_CONFIGURATION_ERROR    256
+#define WNI_CFG_WPS_DEVICE_PASSWORD_ID    257
+#define WNI_CFG_WPS_ASSOC_METHOD    258
+#define WNI_CFG_LOW_GAIN_OVERRIDE    259
+#define WNI_CFG_ENABLE_PHY_AGC_LISTEN_MODE    260
+#define WNI_CFG_RPE_POLLING_THRESHOLD    261
+#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC0_REG    262
+#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC1_REG    263
+#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC2_REG    264
+#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC3_REG    265
+#define WNI_CFG_NO_OF_ONCHIP_REORDER_SESSIONS    266
+#define WNI_CFG_SINGLE_TID_RC    267
+#define WNI_CFG_RRM_ENABLED    268
+#define WNI_CFG_RRM_OPERATING_CHAN_MAX    269
+#define WNI_CFG_RRM_NON_OPERATING_CHAN_MAX    270
+#define WNI_CFG_TX_PWR_CTRL_ENABLE    271
+#define WNI_CFG_MCAST_BCAST_FILTER_SETTING    272
+#define WNI_CFG_BTC_DHCP_BT_SLOTS_TO_BLOCK    273
+#define WNI_CFG_DYNAMIC_PS_POLL_VALUE    274
+#define WNI_CFG_PS_NULLDATA_AP_RESP_TIMEOUT    275
+#define WNI_CFG_TELE_BCN_WAKEUP_EN    276
+#define WNI_CFG_TELE_BCN_TRANS_LI    277
+#define WNI_CFG_TELE_BCN_TRANS_LI_IDLE_BCNS    278
+#define WNI_CFG_TELE_BCN_MAX_LI    279
+#define WNI_CFG_TELE_BCN_MAX_LI_IDLE_BCNS    280
+#define WNI_CFG_BTC_A2DP_DHCP_BT_SUB_INTERVALS    281
+#define WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD    282
+#define WNI_CFG_ASSOC_STA_LIMIT    283
+#define WNI_CFG_SAP_CHANNEL_SELECT_START_CHANNEL    284
+#define WNI_CFG_SAP_CHANNEL_SELECT_END_CHANNEL    285
+#define WNI_CFG_SAP_CHANNEL_SELECT_OPERATING_BAND    286
+#define WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD    287
+#define WNI_CFG_ENABLE_CLOSE_LOOP    288
+#define WNI_CFG_ENABLE_LTE_COEX    289
+#define WNI_CFG_AP_KEEP_ALIVE_TIMEOUT    290
+#define WNI_CFG_GO_KEEP_ALIVE_TIMEOUT    291
+#define WNI_CFG_ENABLE_MC_ADDR_LIST    292
+#define WNI_CFG_ENABLE_UC_FILTER    293
 
 /*
  * String parameter lengths 
@@ -1813,6 +1815,14 @@
 #define WNI_CFG_MPDU_DENSITY_APMAX    7
 #define WNI_CFG_MPDU_DENSITY_APDEF    0
 
+#define WNI_CFG_NUM_BUFF_ADVERT_STAMIN    0
+#define WNI_CFG_NUM_BUFF_ADVERT_STAMAX    128
+#define WNI_CFG_NUM_BUFF_ADVERT_STADEF    45
+
+#define WNI_CFG_NUM_BUFF_ADVERT_APMIN    0
+#define WNI_CFG_NUM_BUFF_ADVERT_APMAX    128
+#define WNI_CFG_NUM_BUFF_ADVERT_APDEF    45
+
 #define WNI_CFG_MAX_RX_AMPDU_FACTOR_STAMIN    0
 #define WNI_CFG_MAX_RX_AMPDU_FACTOR_STAMAX    3
 #define WNI_CFG_MAX_RX_AMPDU_FACTOR_STADEF    3
@@ -2408,10 +2418,18 @@
 #define WNI_CFG_ENABLE_MC_ADDR_LIST_APMAX    1
 #define WNI_CFG_ENABLE_MC_ADDR_LIST_APDEF    0
 
-#define CFG_PARAM_MAX_NUM         292
-#define CFG_AP_IBUF_MAX_SIZE      231
+#define WNI_CFG_ENABLE_UC_FILTER_STAMIN    0
+#define WNI_CFG_ENABLE_UC_FILTER_STAMAX    1
+#define WNI_CFG_ENABLE_UC_FILTER_STADEF    0
+
+#define WNI_CFG_ENABLE_UC_FILTER_APMIN    0
+#define WNI_CFG_ENABLE_UC_FILTER_APMAX    1
+#define WNI_CFG_ENABLE_UC_FILTER_APDEF    0
+
+#define CFG_PARAM_MAX_NUM         294
+#define CFG_AP_IBUF_MAX_SIZE      233
 #define CFG_AP_SBUF_MAX_SIZE      3422
-#define CFG_STA_IBUF_MAX_SIZE     226
+#define CFG_STA_IBUF_MAX_SIZE     228
 #define CFG_STA_SBUF_MAX_SIZE     3388
 #define CFG_SEM_MAX_NUM           19
 
diff --git a/CORE/MAC/inc/wniCfgSta.h b/CORE/MAC/inc/wniCfgSta.h
index 5a5aed2..a34444f 100644
--- a/CORE/MAC/inc/wniCfgSta.h
+++ b/CORE/MAC/inc/wniCfgSta.h
@@ -239,95 +239,97 @@
 #define WNI_CFG_VHT_160MHZ_UTILIZATION    200
 #define WNI_CFG_MAX_AMSDU_LENGTH    201
 #define WNI_CFG_MPDU_DENSITY    202
-#define WNI_CFG_MAX_RX_AMPDU_FACTOR    203
-#define WNI_CFG_SHORT_GI_20MHZ    204
-#define WNI_CFG_SHORT_GI_40MHZ    205
-#define WNI_CFG_RIFS_ENABLED    206
-#define WNI_CFG_MAX_PS_POLL    207
-#define WNI_CFG_NUM_BEACON_PER_RSSI_AVERAGE    208
-#define WNI_CFG_RSSI_FILTER_PERIOD    209
-#define WNI_CFG_FT_RSSI_FILTER_PERIOD    210
-#define WNI_CFG_MIN_RSSI_THRESHOLD    211
-#define WNI_CFG_NTH_BEACON_FILTER    212
-#define WNI_CFG_BROADCAST_FRAME_FILTER_ENABLE    213
-#define WNI_CFG_SCAN_IN_POWERSAVE    214
-#define WNI_CFG_IGNORE_DTIM    215
-#define WNI_CFG_WOWLAN_UCAST_PATTERN_FILTER_ENABLE    216
-#define WNI_CFG_WOWLAN_CHANNEL_SWITCH_ENABLE    217
-#define WNI_CFG_WOWLAN_DEAUTH_ENABLE    218
-#define WNI_CFG_WOWLAN_DISASSOC_ENABLE    219
-#define WNI_CFG_WOWLAN_MAX_MISSED_BEACON    220
-#define WNI_CFG_WOWLAN_MAX_SLEEP_PERIOD    221
-#define WNI_CFG_BA_TIMEOUT    222
-#define WNI_CFG_BA_THRESHOLD_HIGH    223
-#define WNI_CFG_MAX_BA_BUFFERS    224
-#define WNI_CFG_MAX_BA_SESSIONS    225
-#define WNI_CFG_BA_AUTO_SETUP    226
-#define WNI_CFG_ADDBA_REQ_DECLINE    227
-#define WNI_CFG_BG_SCAN_CHANNEL_LIST    228
-#define WNI_CFG_MAX_MEDIUM_TIME    229
-#define WNI_CFG_MAX_MPDUS_IN_AMPDU    230
-#define WNI_CFG_IBSS_AUTO_BSSID    231
-#define WNI_CFG_PROBE_REQ_ADDNIE_FLAG    232
-#define WNI_CFG_PROBE_REQ_ADDNIE_DATA    233
-#define WNI_CFG_PROBE_RSP_ADDNIE_FLAG    234
-#define WNI_CFG_PROBE_RSP_ADDNIE_DATA1    235
-#define WNI_CFG_PROBE_RSP_ADDNIE_DATA2    236
-#define WNI_CFG_PROBE_RSP_ADDNIE_DATA3    237
-#define WNI_CFG_ASSOC_RSP_ADDNIE_FLAG    238
-#define WNI_CFG_ASSOC_RSP_ADDNIE_DATA    239
-#define WNI_CFG_PROBE_REQ_ADDNP2PIE_FLAG    240
-#define WNI_CFG_PROBE_REQ_ADDNP2PIE_DATA    241
-#define WNI_CFG_PROBE_RSP_BCN_ADDNIE_FLAG    242
-#define WNI_CFG_PROBE_RSP_BCN_ADDNIE_DATA    243
-#define WNI_CFG_WPS_ENABLE    244
-#define WNI_CFG_WPS_STATE    245
-#define WNI_CFG_WPS_PROBE_REQ_FLAG    246
-#define WNI_CFG_WPS_VERSION    247
-#define WNI_CFG_WPS_REQUEST_TYPE    248
-#define WNI_CFG_WPS_CFG_METHOD    249
-#define WNI_CFG_WPS_UUID    250
-#define WNI_CFG_WPS_PRIMARY_DEVICE_CATEGORY    251
-#define WNI_CFG_WPS_PIMARY_DEVICE_OUI    252
-#define WNI_CFG_WPS_DEVICE_SUB_CATEGORY    253
-#define WNI_CFG_WPS_ASSOCIATION_STATE    254
-#define WNI_CFG_WPS_CONFIGURATION_ERROR    255
-#define WNI_CFG_WPS_DEVICE_PASSWORD_ID    256
-#define WNI_CFG_WPS_ASSOC_METHOD    257
-#define WNI_CFG_LOW_GAIN_OVERRIDE    258
-#define WNI_CFG_ENABLE_PHY_AGC_LISTEN_MODE    259
-#define WNI_CFG_RPE_POLLING_THRESHOLD    260
-#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC0_REG    261
-#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC1_REG    262
-#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC2_REG    263
-#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC3_REG    264
-#define WNI_CFG_NO_OF_ONCHIP_REORDER_SESSIONS    265
-#define WNI_CFG_SINGLE_TID_RC    266
-#define WNI_CFG_RRM_ENABLED    267
-#define WNI_CFG_RRM_OPERATING_CHAN_MAX    268
-#define WNI_CFG_RRM_NON_OPERATING_CHAN_MAX    269
-#define WNI_CFG_TX_PWR_CTRL_ENABLE    270
-#define WNI_CFG_MCAST_BCAST_FILTER_SETTING    271
-#define WNI_CFG_BTC_DHCP_BT_SLOTS_TO_BLOCK    272
-#define WNI_CFG_DYNAMIC_PS_POLL_VALUE    273
-#define WNI_CFG_PS_NULLDATA_AP_RESP_TIMEOUT    274
-#define WNI_CFG_TELE_BCN_WAKEUP_EN    275
-#define WNI_CFG_TELE_BCN_TRANS_LI    276
-#define WNI_CFG_TELE_BCN_TRANS_LI_IDLE_BCNS    277
-#define WNI_CFG_TELE_BCN_MAX_LI    278
-#define WNI_CFG_TELE_BCN_MAX_LI_IDLE_BCNS    279
-#define WNI_CFG_BTC_A2DP_DHCP_BT_SUB_INTERVALS    280
-#define WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD    281
-#define WNI_CFG_ASSOC_STA_LIMIT    282
-#define WNI_CFG_SAP_CHANNEL_SELECT_START_CHANNEL    283
-#define WNI_CFG_SAP_CHANNEL_SELECT_END_CHANNEL    284
-#define WNI_CFG_SAP_CHANNEL_SELECT_OPERATING_BAND    285
-#define WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD    286
-#define WNI_CFG_ENABLE_CLOSE_LOOP    287
-#define WNI_CFG_ENABLE_LTE_COEX    288
-#define WNI_CFG_AP_KEEP_ALIVE_TIMEOUT    289
-#define WNI_CFG_GO_KEEP_ALIVE_TIMEOUT    290
-#define WNI_CFG_ENABLE_MC_ADDR_LIST    291
+#define WNI_CFG_NUM_BUFF_ADVERT    203
+#define WNI_CFG_MAX_RX_AMPDU_FACTOR    204
+#define WNI_CFG_SHORT_GI_20MHZ    205
+#define WNI_CFG_SHORT_GI_40MHZ    206
+#define WNI_CFG_RIFS_ENABLED    207
+#define WNI_CFG_MAX_PS_POLL    208
+#define WNI_CFG_NUM_BEACON_PER_RSSI_AVERAGE    209
+#define WNI_CFG_RSSI_FILTER_PERIOD    210
+#define WNI_CFG_FT_RSSI_FILTER_PERIOD    211
+#define WNI_CFG_MIN_RSSI_THRESHOLD    212
+#define WNI_CFG_NTH_BEACON_FILTER    213
+#define WNI_CFG_BROADCAST_FRAME_FILTER_ENABLE    214
+#define WNI_CFG_SCAN_IN_POWERSAVE    215
+#define WNI_CFG_IGNORE_DTIM    216
+#define WNI_CFG_WOWLAN_UCAST_PATTERN_FILTER_ENABLE    217
+#define WNI_CFG_WOWLAN_CHANNEL_SWITCH_ENABLE    218
+#define WNI_CFG_WOWLAN_DEAUTH_ENABLE    219
+#define WNI_CFG_WOWLAN_DISASSOC_ENABLE    220
+#define WNI_CFG_WOWLAN_MAX_MISSED_BEACON    221
+#define WNI_CFG_WOWLAN_MAX_SLEEP_PERIOD    222
+#define WNI_CFG_BA_TIMEOUT    223
+#define WNI_CFG_BA_THRESHOLD_HIGH    224
+#define WNI_CFG_MAX_BA_BUFFERS    225
+#define WNI_CFG_MAX_BA_SESSIONS    226
+#define WNI_CFG_BA_AUTO_SETUP    227
+#define WNI_CFG_ADDBA_REQ_DECLINE    228
+#define WNI_CFG_BG_SCAN_CHANNEL_LIST    229
+#define WNI_CFG_MAX_MEDIUM_TIME    230
+#define WNI_CFG_MAX_MPDUS_IN_AMPDU    231
+#define WNI_CFG_IBSS_AUTO_BSSID    232
+#define WNI_CFG_PROBE_REQ_ADDNIE_FLAG    233
+#define WNI_CFG_PROBE_REQ_ADDNIE_DATA    234
+#define WNI_CFG_PROBE_RSP_ADDNIE_FLAG    235
+#define WNI_CFG_PROBE_RSP_ADDNIE_DATA1    236
+#define WNI_CFG_PROBE_RSP_ADDNIE_DATA2    237
+#define WNI_CFG_PROBE_RSP_ADDNIE_DATA3    238
+#define WNI_CFG_ASSOC_RSP_ADDNIE_FLAG    239
+#define WNI_CFG_ASSOC_RSP_ADDNIE_DATA    240
+#define WNI_CFG_PROBE_REQ_ADDNP2PIE_FLAG    241
+#define WNI_CFG_PROBE_REQ_ADDNP2PIE_DATA    242
+#define WNI_CFG_PROBE_RSP_BCN_ADDNIE_FLAG    243
+#define WNI_CFG_PROBE_RSP_BCN_ADDNIE_DATA    244
+#define WNI_CFG_WPS_ENABLE    245
+#define WNI_CFG_WPS_STATE    246
+#define WNI_CFG_WPS_PROBE_REQ_FLAG    247
+#define WNI_CFG_WPS_VERSION    248
+#define WNI_CFG_WPS_REQUEST_TYPE    249
+#define WNI_CFG_WPS_CFG_METHOD    250
+#define WNI_CFG_WPS_UUID    251
+#define WNI_CFG_WPS_PRIMARY_DEVICE_CATEGORY    252
+#define WNI_CFG_WPS_PIMARY_DEVICE_OUI    253
+#define WNI_CFG_WPS_DEVICE_SUB_CATEGORY    254
+#define WNI_CFG_WPS_ASSOCIATION_STATE    255
+#define WNI_CFG_WPS_CONFIGURATION_ERROR    256
+#define WNI_CFG_WPS_DEVICE_PASSWORD_ID    257
+#define WNI_CFG_WPS_ASSOC_METHOD    258
+#define WNI_CFG_LOW_GAIN_OVERRIDE    259
+#define WNI_CFG_ENABLE_PHY_AGC_LISTEN_MODE    260
+#define WNI_CFG_RPE_POLLING_THRESHOLD    261
+#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC0_REG    262
+#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC1_REG    263
+#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC2_REG    264
+#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC3_REG    265
+#define WNI_CFG_NO_OF_ONCHIP_REORDER_SESSIONS    266
+#define WNI_CFG_SINGLE_TID_RC    267
+#define WNI_CFG_RRM_ENABLED    268
+#define WNI_CFG_RRM_OPERATING_CHAN_MAX    269
+#define WNI_CFG_RRM_NON_OPERATING_CHAN_MAX    270
+#define WNI_CFG_TX_PWR_CTRL_ENABLE    271
+#define WNI_CFG_MCAST_BCAST_FILTER_SETTING    272
+#define WNI_CFG_BTC_DHCP_BT_SLOTS_TO_BLOCK    273
+#define WNI_CFG_DYNAMIC_PS_POLL_VALUE    274
+#define WNI_CFG_PS_NULLDATA_AP_RESP_TIMEOUT    275
+#define WNI_CFG_TELE_BCN_WAKEUP_EN    276
+#define WNI_CFG_TELE_BCN_TRANS_LI    277
+#define WNI_CFG_TELE_BCN_TRANS_LI_IDLE_BCNS    278
+#define WNI_CFG_TELE_BCN_MAX_LI    279
+#define WNI_CFG_TELE_BCN_MAX_LI_IDLE_BCNS    280
+#define WNI_CFG_BTC_A2DP_DHCP_BT_SUB_INTERVALS    281
+#define WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD    282
+#define WNI_CFG_ASSOC_STA_LIMIT    283
+#define WNI_CFG_SAP_CHANNEL_SELECT_START_CHANNEL    284
+#define WNI_CFG_SAP_CHANNEL_SELECT_END_CHANNEL    285
+#define WNI_CFG_SAP_CHANNEL_SELECT_OPERATING_BAND    286
+#define WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD    287
+#define WNI_CFG_ENABLE_CLOSE_LOOP    288
+#define WNI_CFG_ENABLE_LTE_COEX    289
+#define WNI_CFG_AP_KEEP_ALIVE_TIMEOUT    290
+#define WNI_CFG_GO_KEEP_ALIVE_TIMEOUT    291
+#define WNI_CFG_ENABLE_MC_ADDR_LIST    292
+#define WNI_CFG_ENABLE_UC_FILTER    293
 
 /*
  * String parameter lengths 
@@ -1230,6 +1232,10 @@
 #define WNI_CFG_MPDU_DENSITY_STAMAX    7
 #define WNI_CFG_MPDU_DENSITY_STADEF    0
 
+#define WNI_CFG_NUM_BUFF_ADVERT_STAMIN    0
+#define WNI_CFG_NUM_BUFF_ADVERT_STAMAX    128
+#define WNI_CFG_NUM_BUFF_ADVERT_STADEF    45
+
 #define WNI_CFG_MAX_RX_AMPDU_FACTOR_STAMIN    0
 #define WNI_CFG_MAX_RX_AMPDU_FACTOR_STAMAX    3
 #define WNI_CFG_MAX_RX_AMPDU_FACTOR_STADEF    3
@@ -1565,8 +1571,12 @@
 #define WNI_CFG_ENABLE_MC_ADDR_LIST_STAMAX    1
 #define WNI_CFG_ENABLE_MC_ADDR_LIST_STADEF    0
 
-#define CFG_PARAM_MAX_NUM        292
-#define CFG_STA_IBUF_MAX_SIZE    226
+#define WNI_CFG_ENABLE_UC_FILTER_STAMIN    0
+#define WNI_CFG_ENABLE_UC_FILTER_STAMAX    1
+#define WNI_CFG_ENABLE_UC_FILTER_STADEF    0
+
+#define CFG_PARAM_MAX_NUM        294
+#define CFG_STA_IBUF_MAX_SIZE    228
 #define CFG_STA_SBUF_MAX_SIZE    3388
 #define CFG_SEM_MAX_NUM          19
 
diff --git a/CORE/MAC/src/cfg/cfgParamName.c b/CORE/MAC/src/cfg/cfgParamName.c
index 7b3d5a3..9786d2b 100644
--- a/CORE/MAC/src/cfg/cfgParamName.c
+++ b/CORE/MAC/src/cfg/cfgParamName.c
@@ -236,6 +236,7 @@
     (unsigned char *)"VHT_160MHZ_UTILIZATION",
     (unsigned char *)"MAX_AMSDU_LENGTH",
     (unsigned char *)"MPDU_DENSITY",
+    (unsigned char *)"NUM_BUFF_ADVERT",
     (unsigned char *)"MAX_RX_AMPDU_FACTOR",
     (unsigned char *)"SHORT_GI_20MHZ",
     (unsigned char *)"SHORT_GI_40MHZ",
diff --git a/CORE/MAC/src/cfg/cfgUtil/cfg.txt b/CORE/MAC/src/cfg/cfgUtil/cfg.txt
index fa337c7..09fd22a 100644
--- a/CORE/MAC/src/cfg/cfgUtil/cfg.txt
+++ b/CORE/MAC/src/cfg/cfgUtil/cfg.txt
@@ -3125,6 +3125,17 @@
 LIM
 0    7    0
 
+*
+* NUM BUFFERS ADVERTISED
+* Defines number of buffers advertised in ADDBA
+*
+WNI_CFG_NUM_BUFF_ADVERT  I    4    7
+V    RW    NP    
+LIM
+0    128    45
+V    RW    NP    
+LIM
+0    128    45
 
 *
 * Maximum Rx AMPDU Factor
diff --git a/CORE/MAC/src/pe/lim/limProcessActionFrame.c b/CORE/MAC/src/pe/lim/limProcessActionFrame.c
index f9a99b3..a125450 100644
--- a/CORE/MAC/src/pe/lim/limProcessActionFrame.c
+++ b/CORE/MAC/src/pe/lim/limProcessActionFrame.c
@@ -1324,7 +1324,7 @@
     tpDphHashNode pSta;
     tSirMacStatusCodes status = eSIR_MAC_SUCCESS_STATUS;
     tANI_U16 aid;
-    tANI_U32 frameLen, nStatus;
+    tANI_U32 frameLen, nStatus,val;
     tANI_U8 *pBody;
     tANI_U8 delBAFlag =0;
 
@@ -1420,6 +1420,17 @@
   // Change the Block Ack state of this STA to wait for
   // ADDBA Rsp from HAL
   LIM_SET_STA_BA_STATE(pSta, frmAddBAReq.AddBAParameterSet.tid, eLIM_BA_STATE_WT_ADD_RSP);
+    
+  if (wlan_cfgGetInt(pMac, WNI_CFG_NUM_BUFF_ADVERT , &val) != eSIR_SUCCESS)
+    {
+        limLog(pMac, LOGP, FL("Unable to get WNI_CFG_NUM_BUFF_ADVERT  \n"));
+        return ;
+    }
+        
+        frmAddBAReq.AddBAParameterSet.bufferSize=
+            VOS_MIN(val,frmAddBAReq.AddBAParameterSet.bufferSize);
+        limLog( pMac, LOGE, FL( "ADDBAREQ NUMBUFF %d  \n" ),
+                        frmAddBAReq.AddBAParameterSet.bufferSize);
 
   if( eSIR_SUCCESS != limPostMsgAddBAReq( pMac,
         pSta,
diff --git a/firmware_bin/WCNSS_cfg.dat b/firmware_bin/WCNSS_cfg.dat
index 1169eab..7b27eab 100644
--- a/firmware_bin/WCNSS_cfg.dat
+++ b/firmware_bin/WCNSS_cfg.dat
Binary files differ