wlan: Clean up API files

No real interface change. Align with P4 copy.

Change-Id: I707fc38c725a7e97f76cb9290f3f5e3658a696b7
CRs-fixed: 551945
diff --git a/riva/inc/wlan_hal_cfg.h b/riva/inc/wlan_hal_cfg.h
index 7cc0aa7..6d2012b 100644
--- a/riva/inc/wlan_hal_cfg.h
+++ b/riva/inc/wlan_hal_cfg.h
@@ -216,12 +216,15 @@
 #define QWLAN_HAL_CFG_MWS_COEX_CONFIG6                  163
 #define QWLAN_HAL_CFG_SAR_POWER_BACKOFF                 164
 #define QWLAN_HAL_CFG_GO_LINK_MONITOR_TIMEOUT           165
-#define QWLAN_HAL_CFG_MAX_PARAMS                        166
+#define QWLAN_HAL_CFG_BTC_STATIC_OPP_WLAN_ACTIVE_WLAN_LEN        166
+#define QWLAN_HAL_CFG_BTC_STATIC_OPP_WLAN_ACTIVE_BT_LEN          167
+#define QWLAN_HAL_CFG_BTC_SAP_STATIC_OPP_WLAN_ACTIVE_WLAN_LEN    168
+#define QWLAN_HAL_CFG_BTC_SAP_STATIC_OPP_WLAN_ACTIVE_BT_LEN      169
+#define QWLAN_HAL_CFG_MAX_PARAMS                        170
 
 
 /* Total number of Integer CFGs. This is used while allocating the memory for TLV */
-#define QWLAN_HAL_CFG_INTEGER_PARAM                      166
-
+#define QWLAN_HAL_CFG_INTEGER_PARAM                     170
 
 /*-------------------------------------------------------------------------
   Configuration Parameter min, max, defaults
@@ -332,13 +335,6 @@
 #define QWLAN_HAL_CFG_DYNAMIC_THRESHOLD_TWO_STAMAX    255
 #define QWLAN_HAL_CFG_DYNAMIC_THRESHOLD_TWO_STADEF    15
 
-/* QWLAN_HAL_CFG_FIXED_RATE
- * Follwing rates in user configuration are mapped to TPE rates
- * Mapping is defined in the gHalUserFixedRateCfgToTpeRateTable
- */
-#define QWLAN_HAL_CFG_FIXED_RATE_STAMIN                        0
-#define QWLAN_HAL_CFG_FIXED_RATE_STAMAX                        226
-#define QWLAN_HAL_CFG_FIXED_RATE_STADEF                        0
 #define QWLAN_HAL_CFG_FIXED_RATE_AUTO                          0
 #define QWLAN_HAL_CFG_FIXED_RATE_1MBPS                         1
 #define QWLAN_HAL_CFG_FIXED_RATE_2MBPS                         2
@@ -385,6 +381,14 @@
 #define QWLAN_HAL_CFG_FIXED_RATE_135MBPS_MCS6_40MHZ_SIMO_SGI   43
 #define QWLAN_HAL_CFG_FIXED_RATE_150MBPS_MCS7_40MHZ_SIMO_SGI   44
 
+/* QWLAN_HAL_CFG_FIXED_RATE
+ * Follwing rates in user configuration are mapped to TPE rates
+ * Mapping is defined in the gHalUserFixedRateCfgToTpeRateTable
+ */
+#define QWLAN_HAL_CFG_FIXED_RATE_STAMIN                        0
+#define QWLAN_HAL_CFG_FIXED_RATE_STAMAX                        226
+#define QWLAN_HAL_CFG_FIXED_RATE_STADEF                        QWLAN_HAL_CFG_FIXED_RATE_AUTO
+
 /* QWLAN_HAL_CFG_RETRYRATE_POLICY */
 #define QWLAN_HAL_CFG_RETRYRATE_POLICY_STAMIN         0
 #define QWLAN_HAL_CFG_RETRYRATE_POLICY_STAMAX         255
@@ -700,14 +704,14 @@
 #define QWLAN_HAL_CFG_WCNSS_API_VERSION_DEF  0           /* equivalent to 0.0.0.0 */
 
 /* QWLAN_HAL_CFG_AP_KEEPALIVE_TIMEOUT */
-#define QWLAN_HAL_CFG_AP_KEEPALIVE_TIMEOUT_MIN  3
-#define QWLAN_HAL_CFG_AP_KEEPALIVE_TIMEOUT_MAX  20
-#define QWLAN_HAL_CFG_AP_KEEPALIVE_TIMEOUT_DEF  5
+#define QWLAN_HAL_CFG_AP_KEEPALIVE_TIMEOUT_MIN  1
+#define QWLAN_HAL_CFG_AP_KEEPALIVE_TIMEOUT_MAX  255
+#define QWLAN_HAL_CFG_AP_KEEPALIVE_TIMEOUT_DEF  20
 
 /* QWLAN_HAL_CFG_GO_KEEPALIVE_TIMEOUT */
-#define QWLAN_HAL_CFG_GO_KEEPALIVE_TIMEOUT_MIN  3
-#define QWLAN_HAL_CFG_GO_KEEPALIVE_TIMEOUT_MAX  20
-#define QWLAN_HAL_CFG_GO_KEEPALIVE_TIMEOUT_DEF  5
+#define QWLAN_HAL_CFG_GO_KEEPALIVE_TIMEOUT_MIN  1
+#define QWLAN_HAL_CFG_GO_KEEPALIVE_TIMEOUT_MAX  255
+#define QWLAN_HAL_CFG_GO_KEEPALIVE_TIMEOUT_DEF  20
 
 /* QWLAN_HAL_CFG_ENABLE_MC_ADDR_LIST */
 #define QWLAN_HAL_CFG_ENABLE_MC_ADDR_LIST_MIN  0
@@ -806,12 +810,12 @@
 
 /* QWLAN_HAL_CFG_AP_LINK_MONITOR_TIMEOUT */
 #define QWLAN_HAL_CFG_AP_LINK_MONITOR_TIMEOUT_MIN  3
-#define QWLAN_HAL_CFG_AP_LINK_MONITOR_TIMEOUT_MAX  50
+#define QWLAN_HAL_CFG_AP_LINK_MONITOR_TIMEOUT_MAX  30
 #define QWLAN_HAL_CFG_AP_LINK_MONITOR_TIMEOUT_DEF  10
 
 /* QWLAN_HAL_CFG_GO_LINK_MONITOR_TIMEOUT */
 #define QWLAN_HAL_CFG_GO_LINK_MONITOR_TIMEOUT_MIN  3
-#define QWLAN_HAL_CFG_GO_LINK_MONITOR_TIMEOUT_MAX  50
+#define QWLAN_HAL_CFG_GO_LINK_MONITOR_TIMEOUT_MAX  30
 #define QWLAN_HAL_CFG_GO_LINK_MONITOR_TIMEOUT_DEF  10
 
 /*QWLAN_HAL_CFG_BTC_DWELL_TIME_MULTIPLIER*/
@@ -861,6 +865,22 @@
 #define QWLAN_HAL_CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_IN_SP_MAX    20
 #define QWLAN_HAL_CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_IN_SP_DEF    10
 
+#define QWLAN_HAL_CFG_BTC_STATIC_OPP_WLAN_ACTIVE_WLAN_LEN_MIN     0
+#define QWLAN_HAL_CFG_BTC_STATIC_OPP_WLAN_ACTIVE_WLAN_LEN_MAX     250000
+#define QWLAN_HAL_CFG_BTC_STATIC_OPP_WLAN_ACTIVE_WLAN_LEN_DEF     60000
+
+#define QWLAN_HAL_CFG_BTC_STATIC_OPP_WLAN_ACTIVE_BT_LEN_MIN       0
+#define QWLAN_HAL_CFG_BTC_STATIC_OPP_WLAN_ACTIVE_BT_LEN_MAX       250000
+#define QWLAN_HAL_CFG_BTC_STATIC_OPP_WLAN_ACTIVE_BT_LEN_DEF       90000
+
+#define QWLAN_HAL_CFG_BTC_SAP_STATIC_OPP_WLAN_ACTIVE_WLAN_LEN_MIN 0
+#define QWLAN_HAL_CFG_BTC_SAP_STATIC_OPP_WLAN_ACTIVE_WLAN_LEN_MAX 250000
+#define QWLAN_HAL_CFG_BTC_SAP_STATIC_OPP_WLAN_ACTIVE_WLAN_LEN_DEF 60000
+
+#define QWLAN_HAL_CFG_BTC_SAP_STATIC_OPP_WLAN_ACTIVE_BT_LEN_MIN   0
+#define QWLAN_HAL_CFG_BTC_SAP_STATIC_OPP_WLAN_ACTIVE_BT_LEN_MAX   250000
+#define QWLAN_HAL_CFG_BTC_SAP_STATIC_OPP_WLAN_ACTIVE_BT_LEN_DEF   90000
+
 /* QWLAN_HAL_CFG_ANTENNA_DIVERSITY */
 #define QWLAN_HAL_CFG_ANTENNA_DIVERSITY_DEF  0
 #define QWLAN_HAL_CFG_ANTENNA_DIVERSITY_MIN  0
@@ -875,6 +895,16 @@
 #define QWLAN_HAL_CFG_FLEXCONNECT_POWER_FACTOR_MIN  0
 #define QWLAN_HAL_CFG_FLEXCONNECT_POWER_FACTOR_MAX  9
 
+/* QWLAN_HAL_CFG_ENABLE_MCC_ADAPTIVE_RX_DRAIN_FEATURE */
+#define QWLAN_HAL_CFG_ENABLE_ADAPTIVE_RX_DRAIN_FEATURE_MIN    0
+#define QWLAN_HAL_CFG_ENABLE_ADAPTIVE_RX_DRAIN_FEATURE_MAX    1
+#define QWLAN_HAL_CFG_ENABLE_ADAPTIVE_RX_DRAIN_FEATURE_DEF    1
+
+/* QWLAN_HAL_CFG_TDLS_OFF_CHANNEL_CAPABLE */
+#define QWLAN_HAL_CFG_TDLS_OFF_CHANNEL_CAPABLE_MIN    0
+#define QWLAN_HAL_CFG_TDLS_OFF_CHANNEL_CAPABLE_MAX    1
+#define QWLAN_HAL_CFG_TDLS_OFF_CHANNEL_CAPABLE_DEF    0
+
 /* QWLAN_HAL_CFG_MWS_COEX_XXXX */
 #define QWLAN_HAL_CFG_MWS_COEX_DEF           0
 #define QWLAN_HAL_CFG_MWS_COEX_MIN           0
@@ -886,6 +916,7 @@
 #define QWLAN_HAL_CFG_SAR_POWER_BACKOFF_DEF  13
 #define QWLAN_HAL_CFG_SAR_POWER_BACKOFF_MIN  1
 #define QWLAN_HAL_CFG_SAR_POWER_BACKOFF_MAX  21
+
 #endif //__WLAN_HAL_CFG_H__
 
 
diff --git a/riva/inc/wlan_hal_msg.h b/riva/inc/wlan_hal_msg.h
index 8a5e8dd..64fe762 100644
--- a/riva/inc/wlan_hal_msg.h
+++ b/riva/inc/wlan_hal_msg.h
@@ -55,7 +55,7 @@
   All values are in the range 0..255 (ie they are 8-bit values)
  ---------------------------------------------------------------------------*/
 #define WLAN_HAL_VER_MAJOR 1
-#define WLAN_HAL_VER_MINOR 4
+#define WLAN_HAL_VER_MINOR 5
 #define WLAN_HAL_VER_VERSION 1
 #define WLAN_HAL_VER_REVISION 2
 
@@ -85,6 +85,12 @@
 //Default Beacon template size
 #define BEACON_TEMPLATE_SIZE 0x180 
 
+
+//Max Tx Data Rate samples
+#define MAX_TX_RATE_SAMPLES     10
+//Max Beacon Rssi  samples
+#define MAX_BCN_RSSI_SAMPLES    10
+
 //Param Change Bitmap sent to HAL 
 #define PARAM_BCN_INTERVAL_CHANGED                      (1 << 0)
 #define PARAM_SHORT_PREAMBLE_CHANGED                 (1 << 1)
@@ -106,18 +112,9 @@
 /*Version string max length (including NUL) */
 #define WLAN_HAL_VERSION_LENGTH  64
 
-#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
-#define CHANNEL_LIST_STATIC                   1 /* Occupied channel list remains static */
-#define CHANNEL_LIST_DYNAMIC_INIT             2 /* Occupied channel list can be learnt after init */
-#define CHANNEL_LIST_DYNAMIC_FLUSH            3 /* Occupied channel list can be learnt after flush */
-#define CHANNEL_LIST_DYNAMIC_UPDATE           4 /* Occupied channel list can be learnt after update */
 #define WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE     450
 #define WLAN_HAL_ROAM_SCAN_MAX_CHANNELS       NUM_RF_CHANNELS
 #define WLAN_HAL_ROAM_SCAN_RESERVED_BYTES     61
-#endif
-
-#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
-#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
 
 /* Message types for messages exchanged between WDI and HAL */
 typedef enum 
@@ -3929,10 +3926,17 @@
 /*---------------------------------------------------------------------------
  * FEATURE_WLAN_LPHB IND
  *--------------------------------------------------------------------------*/
-#define WIFI_LPHB_EVENT_REASON_TIMEOUT        0x01
-#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR  0x02
+#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
+#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
+
+#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
+#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
 #define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
 
+
+#define WIFI_LPHB_PROTO_UDP 0x01
+#define WIFI_LPHB_PROTO_TCP 0x02
+
 typedef PACKED_PRE struct PACKED_POST
 {
    uint8 bssIdx;
@@ -4138,6 +4142,8 @@
    tANI_U8       bssIdx;
 }  tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
 
+#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
+#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
 /*---------------------------------------------------------------------------
  * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
  *--------------------------------------------------------------------------*/
@@ -4509,7 +4515,8 @@
     tANI_U32             bRssiThres3NegCross : 1;
     tANI_U32             avgRssi             : 8;
     tANI_U32             uBssIdx             : 8;
-    tANI_U32             bReserved           : 10;
+    tANI_U32             isBTCoexCompromise  : 1;
+    tANI_U32             bReserved           : 9;
 } tHalRSSINotification, *tpHalRSSINotification;
 
 typedef PACKED_PRE struct PACKED_POST
@@ -4762,6 +4769,7 @@
     tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
 }tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
 
+
 /*---------------------------------------------------------------------------
  *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
  *--------------------------------------------------------------------------*/
@@ -4780,9 +4788,10 @@
 typedef PACKED_PRE struct PACKED_POST
 {
     tHalSetMaxTxPwrBandInfo bandInfo;  // 2_4_GHZ or 5_0_GHZ
-    tPowerdBm      power;     // In request, power == MaxTx power to be used.
+    tPowerdBm   power;  // In request, power == MaxTx power to be used.
 }tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
 
+
 typedef PACKED_PRE struct PACKED_POST
 {
     tHalMsgHeader header;
@@ -5545,50 +5554,6 @@
    tPrefNetwListParamsNew   prefNetwListParams;
 }  tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
 
-/*
-  Preferred network list response 
-*/
-typedef PACKED_PRE struct PACKED_POST
-{
-   tHalMsgHeader header;
-
-   /*status of the request - just to indicate that PNO has acknowledged 
-     the request and will start scanning*/
-   tANI_U32   status;
-}  tSetPrefNetwListResp, *tpSetPrefNetwListResp;
-
-/*
-  Preferred network indication parameters 
-*/
-typedef PACKED_PRE struct PACKED_POST {
-
-  /*Network that was found with the highest RSSI*/
-  tSirMacSSid ssId;
-  
-  /*Indicates the RSSI */
-  tANI_U8     rssi;
-
-  //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
-  tANI_U16    frameLength;
-
-} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
-
-/*
-  Preferred network found indication
-*/
-typedef PACKED_PRE struct PACKED_POST {
-
-   tHalMsgHeader header;
-   tPrefNetwFoundParams   prefNetwFoundParams;
-}  tPrefNetwFoundInd, *tpPrefNetwFoundInd;
-
-
-typedef PACKED_PRE struct PACKED_POST {
-
-  /*RSSI Threshold*/
-  tANI_U8          ucRssiThreshold;
-
-} tRssiFilterParams, * tpRssiFilterParams;
 #ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
 typedef PACKED_PRE struct PACKED_POST
 {
@@ -5637,19 +5602,65 @@
 
 typedef PACKED_PRE struct PACKED_POST
 {
-           tHalMsgHeader header;
-              tRoamCandidateListParams RoamScanOffloadNetwListParams;
+   tHalMsgHeader header;
+   tRoamCandidateListParams RoamScanOffloadNetwListParams;
 }  tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
 
 typedef PACKED_PRE struct PACKED_POST
 {
-           tHalMsgHeader header;
+   tHalMsgHeader header;
 
-              /*status of the request - just to indicate that PNO has acknowledged
-               *      the request and will start scanning*/
-              tANI_U32   status;
+  /* status of the request - just to indicate that PNO has acknowledged
+   * the request and will start scanning */
+   tANI_U32   status;
 }  tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
 #endif
+
+/*
+  Preferred network list response
+*/
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+
+   /* status of the request - just to indicate that PNO has acknowledged
+    * the request and will start scanning*/
+   tANI_U32   status;
+}  tSetPrefNetwListResp, *tpSetPrefNetwListResp;
+
+/*
+  Preferred network indication parameters
+*/
+typedef PACKED_PRE struct PACKED_POST {
+
+  /*Network that was found with the highest RSSI*/
+  tSirMacSSid ssId;
+
+  /*Indicates the RSSI */
+  tANI_U8     rssi;
+
+  //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
+  tANI_U16    frameLength;
+
+} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
+
+/*
+  Preferred network found indication
+*/
+typedef PACKED_PRE struct PACKED_POST {
+
+   tHalMsgHeader header;
+   tPrefNetwFoundParams   prefNetwFoundParams;
+}  tPrefNetwFoundInd, *tpPrefNetwFoundInd;
+
+
+typedef PACKED_PRE struct PACKED_POST {
+
+  /*RSSI Threshold*/
+  tANI_U8          ucRssiThreshold;
+
+} tRssiFilterParams, * tpRssiFilterParams;
+
 /*
   RSSI Filter request 
 */
@@ -6049,36 +6060,38 @@
  *--------------------------------------------------------------------------*/
 
 typedef enum {
-    MCC        = 0,
-    P2P        = 1,
-    DOT11AC    = 2,
-    SLM_SESSIONIZATION = 3,
-    DOT11AC_OPMODE     = 4,
-    SAP32STA = 5,
-    TDLS       = 6,
+    MCC                    = 0,
+    P2P                    = 1,
+    DOT11AC                = 2,
+    SLM_SESSIONIZATION     = 3,
+    DOT11AC_OPMODE         = 4,
+    SAP32STA               = 5,
+    TDLS                   = 6,
     P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
-    WLANACTIVE_OFFLOAD = 8,
-    BEACON_OFFLOAD     = 9,
-    SCAN_OFFLOAD       = 10,
-    ROAM_OFFLOAD       = 11,
-    BCN_MISS_OFFLOAD   = 12,
-    STA_POWERSAVE      = 13,
-    STA_ADVANCED_PWRSAVE = 14,
-    AP_UAPSD           = 15,
-    AP_DFS             = 16,
-    BLOCKACK           = 17,
-    PHY_ERR            = 18,
-    BCN_FILTER         = 19,
-    RTT                = 20,
-    RATECTRL           = 21,
-    WOW                = 22,
+    WLANACTIVE_OFFLOAD     = 8,
+    BEACON_OFFLOAD         = 9,
+    SCAN_OFFLOAD           = 10,
+    ROAM_OFFLOAD           = 11,
+    BCN_MISS_OFFLOAD       = 12,
+    STA_POWERSAVE          = 13,
+    STA_ADVANCED_PWRSAVE   = 14,
+    AP_UAPSD               = 15,
+    AP_DFS                 = 16,
+    BLOCKACK               = 17,
+    PHY_ERR                = 18,
+    BCN_FILTER             = 19,
+    RTT                    = 20,
+    RATECTRL               = 21,
+    WOW                    = 22,
     WLAN_ROAM_SCAN_OFFLOAD = 23,
-    SPECULATIVE_PS_POLL = 24,
-    SCAN_SCH            = 25,
+    SPECULATIVE_PS_POLL    = 24,
+    SCAN_SCH               = 25,
     IBSS_HEARTBEAT_OFFLOAD = 26,
-    WLAN_PERIODIC_TX_PTRN = 28,
-    ADVANCE_TDLS       = 29,
-    MAX_FEATURE_SUPPORTED = 128,
+    WLAN_SCAN_OFFLOAD      = 27,
+    WLAN_PERIODIC_TX_PTRN  = 28,
+    ADVANCE_TDLS           = 29,
+    BATCH_SCAN             = 30,
+    MAX_FEATURE_SUPPORTED  = 128,
 } placeHolderInCapBitmap;
 
 typedef PACKED_PRE struct PACKED_POST{
@@ -6097,10 +6110,9 @@
 #define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
 #define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
 #define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
-#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
-#define IS_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
-#endif
+#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
 #define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
+#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
 
 tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
 
@@ -6495,8 +6507,9 @@
 
     /*TDLS Peer U-APSD Buffer STA Support*/
     tANI_U8        TPUBufferStaSupport;
-    /*TDLS Offchannel Support*/
-    tANI_U8        tdlsOffchannelSupport;
+
+    /*TDLS off channel related params */
+    tANI_U8        tdlsOffChannelSupport;
     tANI_U8        peerCurrOperClass;
     tANI_U8        selfCurrOperClass;
     tANI_U8        validChannelsLen;
@@ -6602,156 +6615,240 @@
 }tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
 
 
-/*---------------------------------------------------------------------------
- * WLAN_HAL_LBP_LEADER_REQ
- *-------------------------------------------------------------------------*/
+/*********** Scan Offload Related Structures *************/
+#define HAL_NUM_SCAN_SSID           10
+#define HAL_NUM_SCAN_BSSID          4
 
-/* Maximum number of RMCAST sessions in each role (transmitter or  Leader) */
-#define HAL_MAX_RMCAST_SESSIONS 2
-
-/* Maximum number of leaders in blacklist or candidate leader list */
-#define HAL_NUM_MAX_LEADERS 8
-
+/*
+ * Enumetation to indicate scan type (active/passive)
+ */
 typedef enum
 {
-   WLAN_HAL_SUGGEST_LEADER,
-   WLAN_HAL_BECOME_LEADER,
-   WLAN_HAL_LEADER_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
-}tLeaderReqCmdType, tLeaderRspCmdType;
+    eSIR_PASSIVE_SCAN,
+    eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
+} tSirScanType;
 
 typedef PACKED_PRE struct PACKED_POST
 {
-   tLeaderReqCmdType cmd;
-
-   /* MAC address of MCAST Transmitter (source) */
-   tSirMacAddr mcastTransmitter;
-
-   /* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
-   tSirMacAddr mcastGroup;
-
-   /* Optional black list for cmd = WLAN_HAL_SUGGEST_LEADER */
-   tSirMacAddr blacklist[HAL_NUM_MAX_LEADERS];
-}  tHalLbpLeaderReqParams, *tpHalLbpLeaderReqParams;
-
-typedef PACKED_PRE struct PACKED_POST
-{
-   tHalMsgHeader header;
-   tHalLbpLeaderReqParams leaderReqParams;
-}  tHalLbpLeaderReqMsg, *tpHalLbpLeaderReqMsg;
+  tANI_U8      numBssid;
+  tSirMacAddr  bssid[HAL_NUM_SCAN_BSSID];
+  tANI_U8      numSsid;
+  tSirMacSSid  ssid[HAL_NUM_SCAN_SSID];
+  tANI_BOOLEAN hiddenSsid;
+  tSirMacAddr  selfMacAddr;
+  tSirBssType  bssType;
+  tSirScanType scanType;
+  tANI_U32     minChannelTime;
+  tANI_U32     maxChannelTime;
+  tANI_BOOLEAN p2pSearch;
+  tANI_U8      channelCount;
+  tANI_U8      channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
+  tANI_U16     ieFieldLen;
+  tANI_U8      ieField[1];
+}tScanOffloadReqType, *tpScanOffloadReqType;
 
 /*---------------------------------------------------------------------------
- * WLAN_HAL_LBP_LEADER_RSP
+ * WLAN_HAL_START_SCAN_OFFLOAD_REQ
  *-------------------------------------------------------------------------*/
 typedef PACKED_PRE struct PACKED_POST
 {
-   /* success or failure */
-   tANI_U32 status;
-
-   /*  Command Type */
-   tLeaderRspCmdType cmd;
-
-   /* MAC address of MCAST Transmitter (source) */
-   tSirMacAddr mcastTransmitter;
-
-   /* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
-   tSirMacAddr mcastGroup;
-
-   /* List of candidates for cmd = WLAN_HAL_SUGGEST_LEADER*/
-   tSirMacAddr leader[HAL_NUM_MAX_LEADERS];
-
-}  tHalLbpLeaderRspParams, *tpHalLbpLeaderRspParams;
-
-typedef PACKED_PRE struct PACKED_POST
-{
    tHalMsgHeader header;
-   tHalLbpLeaderRspParams leaderRspParams;
-}  tHalLbpLeaderRspMsg, *tpHalLbpLeaderRspMsg;
+   tScanOffloadReqType scanOffloadParams;
+}  tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
 
 /*---------------------------------------------------------------------------
- * WLAN_HAL_LBP_UPDATE_IND
+ * WLAN_HAL_START_SCAN_OFFLOAD_RSP
  *-------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+
+  /*status of the request - just to indicate SO has acknowledged
+   *                *      the request and will start scanning*/
+   tANI_U32   status;
+}  tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
+ *-------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+}  tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
+ *-------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+
+  /*status of the request - just to indicate SO has acknowledged
+    the request and will start scanning*/
+   tANI_U32   status;
+}  tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
+
+/*
+ * Enumetation of scan events indicated by firmware to the host
+ */
 typedef enum
 {
-   WLAN_HAL_LEADER_ACCEPTED,    //Host-->FW
-   WLAN_HAL_LEADER_CANCELED,    //Host-->FW
-   WLAN_HAL_LEADER_PICK_NEW,    //FW-->Host
-   WLAN_HAL_LEADER_IND_MAX = WLAN_HAL_MAX_ENUM_SIZE
-}tLbpUpdateIndType;
-
-typedef enum
-{
-   WLAN_HAL_LBP_LEADER_ROLE,
-   WLAN_HAL_LBP_TRANSMITTER_ROLE,
-   WLAN_HAL_LBP_ROLE_MAX = WLAN_HAL_MAX_ENUM_SIZE
-}tLbpRoleType;
+    WLAN_HAL_SCAN_EVENT_STARTED = 0x1,        /* Scan command accepted by FW */
+    WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2,      /* Scan has been completed by FW */
+    WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4,    /* FW is going to move to HOME channel */
+    WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
+    WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10,      /* scan request got dequeued */
+    WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20,     /* preempted by other high priority scan */
+    WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40,  /* scan start failed */
+    WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80,     /*scan restarted*/
+    WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
+} tScanEventType;
 
 typedef PACKED_PRE struct PACKED_POST
 {
-   tLbpUpdateIndType indication;
+    tScanEventType event;
+    tANI_U32 channel;
+    tANI_U32 scanId;
+} tScanOffloadEventInfo;
 
-   /* Role of the entity generating this indication */
-   tLbpRoleType role;
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
+ *-------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tScanOffloadEventInfo scanOffloadInd;
+}  tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
 
-   /* MAC address of MCAST Transmitter (source) */
-   tSirMacAddr mcastTransmitter;
+typedef PACKED_PRE struct PACKED_POST {
+    /** primary 20 MHz channel frequency in mhz */
+    tANI_U32 mhz;
+    /** Center frequency 1 in MHz*/
+    tANI_U32 band_center_freq1;
+    /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
+    tANI_U32 band_center_freq2;
+    /* The first 26 bits are a bit mask to indicate any channel flags,
+       (see WLAN_HAL_CHAN_FLAG*)
+       The last 6 bits indicate the mode (see tChannelPhyModeType)*/
+    tANI_U32 channel_info;
+    /** contains min power, max power, reg power and reg class id. */
+    tANI_U32 reg_info_1;
+    /** contains antennamax */
+    tANI_U32 reg_info_2;
+} tUpdateChannelParam;
 
-   /* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
-   tSirMacAddr mcastGroup;
 
-   /* MAC address of MCAST Receiver Leader */
-   tSirMacAddr mcastLeader;
+typedef enum {
+    WLAN_HAL_MODE_11A            = 0,   /* 11a Mode */
+    WLAN_HAL_MODE_11G            = 1,   /* 11b/g Mode */
+    WLAN_HAL_MODE_11B            = 2,   /* 11b Mode */
+    WLAN_HAL_MODE_11GONLY        = 3,   /* 11g only Mode */
+    WLAN_HAL_MODE_11NA_HT20      = 4,  /* 11a HT20 mode */
+    WLAN_HAL_MODE_11NG_HT20      = 5,  /* 11g HT20 mode */
+    WLAN_HAL_MODE_11NA_HT40      = 6,  /* 11a HT40 mode */
+    WLAN_HAL_MODE_11NG_HT40      = 7,  /* 11g HT40 mode */
+    WLAN_HAL_MODE_11AC_VHT20     = 8,
+    WLAN_HAL_MODE_11AC_VHT40     = 9,
+    WLAN_HAL_MODE_11AC_VHT80     = 10,
+    WLAN_HAL_MODE_11AC_VHT20_2G  = 11,
+    WLAN_HAL_MODE_11AC_VHT40_2G  = 12,
+    WLAN_HAL_MODE_11AC_VHT80_2G  = 13,
+    WLAN_HAL_MODE_UNKNOWN        = 14,
 
-   /* Candidate list for indication = WLAN_HAL_LEADER_PICK_NEW */
-   tSirMacAddr leader[HAL_NUM_MAX_LEADERS];
-}  tHalLbpUpdateIndParams, *tpHalLbpUpdateIndParams;
+} tChannelPhyModeType;
+
+#define WLAN_HAL_CHAN_FLAG_HT40_PLUS   6
+#define WLAN_HAL_CHAN_FLAG_PASSIVE     7
+#define WLAN_HAL_CHAN_ADHOC_ALLOWED    8
+#define WLAN_HAL_CHAN_AP_DISABLED      9
+#define WLAN_HAL_CHAN_FLAG_DFS         10
+#define WLAN_HAL_CHAN_FLAG_ALLOW_HT    11  /* HT is allowed on this channel */
+#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT   12  /* VHT is allowed on this channel */
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tANI_U8 numChan;
+    tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
+} tUpdateChannelReqType;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
+ *-------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+   tUpdateChannelReqType updateChannelParams;
+}  tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
+
+/*---------------------------------------------------------------------------
+ * WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
+ *-------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+   tHalMsgHeader header;
+
+  /*status of the request - just to indicate SO has acknowledged
+   *                *      the request and will start scanning*/
+   tANI_U32   status;
+}  tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
+
+
+/*---------------------------------------------------------------------------
+* WLAN_HAL_TX_FAIL_IND
+*--------------------------------------------------------------------------*/
+// Northbound indication from FW to host on weak link detection
+typedef PACKED_PRE struct PACKED_POST
+{
+   // Sequence number increases by 1 whenever the device driver
+   // sends a notification event. This is cleared as 0 when the
+   // JOIN IBSS commamd is issued
+    tANI_U16 seqNo;
+    tANI_U16 staId;
+    tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
+} tHalTXFailIndParams, *tpHalTXFailIndParams;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader header;
+    tHalTXFailIndParams txFailIndParams;
+}  tHalTXFailIndMsg, *tpHalTXFailIndMsg;
+
+/*---------------------------------------------------------------------------
+* WLAN_HAL_TX_FAIL_MONITOR_IND
+*--------------------------------------------------------------------------*/
+// Southbound message from Host to monitor the Tx failures
+typedef PACKED_PRE struct PACKED_POST
+{
+    // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
+    tANI_U8 tx_fail_count;
+} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+    tHalMsgHeader  header;
+    tTXFailMonitorInfo txFailMonitor;
+} tTXFailMonitorInd, *tpTXFailMonitorInd;
+
+/*---------------------------------------------------------------------------
+* WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND
+*--------------------------------------------------------------------------*/
+typedef PACKED_PRE struct PACKED_POST
+{
+   tANI_U8 destIpv4Addr[HAL_IPV4_ADDR_LEN];
+   tANI_U8 nextHopMacAddr[HAL_MAC_ADDR_LEN];
+} tDestIpNextHopMacPair;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+   tANI_U8 numEntries;
+   tDestIpNextHopMacPair destIpMacPair[1];
+} tWlanIpForwardTableUpdateIndParam;
 
 typedef PACKED_PRE struct PACKED_POST
 {
    tHalMsgHeader header;
-   tHalLbpUpdateIndParams leaderIndParams;
-}  tHalLbpUpdateInd, *tpHalLbpUpdateInd;
-
-typedef PACKED_PRE struct PACKED_POST
-{
-   tANI_U8  staIdx;         // Station Idx;
-   tANI_U32 txRate;         // Legacy transmit rate, in units of 500 kbit/sec,
-                            // for the most recently transmitted frame
-   tANI_U32 mcsIndex;       // mcs index for HT20 and HT40 rates
-   tANI_U32 txRateFlags;    //to differentiate between HT20 and
-                            //HT40 rates;  short and long guard interval
-   tANI_S8  rssi;           // RSSI of the last received beacon
-}tHalIbssPeerParams, *tpHalIbssPeerParams;
-
-typedef PACKED_PRE struct PACKED_POST
-{
-   tANI_U32           status;             // success or failure
-   tANI_U8            numOfPeers;         // Number of Peers for
-                                          // which stats are being reported
-   tHalIbssPeerParams ibssPeerParams[1];  // Stats of peer in IBSS
-}tHalIbssPeerInfoRspParams, *tpHalIbssPeerInfoRspParams;
-
-// WLAN_HAL_GET_IBSS_PEER_INFO_RSP
-typedef PACKED_PRE struct PACKED_POST
-{
-   tHalMsgHeader header;
-   tHalIbssPeerInfoRspParams ibssPeerInfoRspParams;
-}tHalIbssPeerInfoRsp, *tpHalIbssPeerInfoRsp;
-
-typedef PACKED_PRE struct PACKED_POST
-{
-   tANI_U8         bssIdx;           // Bss Index
-   tANI_BOOLEAN    allPeerInfoReqd;  // If set,all IBSS peers stats are reported
-   tANI_U8         staIdx;           // If allPeerInfoReqd is not set,
-                                     // only stats of peer with
-                                     // staIdx is reported
-}tHalIbssPeerInfoReqParams, *tpHalIbssPeerInfoReqParams;
-
-// WLAN_HAL_GET_IBSS_PEER_INFO_REQ
-typedef PACKED_PRE struct PACKED_POST
-{
-   tHalMsgHeader header;
-   tHalIbssPeerInfoReqParams ibssPeerInfoReqParams;
-}tHalIbssPeerInfoReq, *tpHalIbssPeerInfoReq;
+   tWlanIpForwardTableUpdateIndParam ipForwardTableParams;
+} tWlanIpForwardTableUpdateInd;
 
 /*---------------------------------------------------------------------------
  *-------------------------------------------------------------------------*/