[NEUS7920-477] [9610]wlbt: Driver changes for Fapi updates.
authorHimani Gupta <himani.g2@samsung.com>
Wed, 20 Mar 2019 06:08:27 +0000 (11:38 +0530)
committerKim Gunho <gunho.kim@samsung.com>
Fri, 28 Jun 2019 14:46:11 +0000 (23:46 +0900)
Driver changes to handle latest fapi(7) changes
& FTM changes to add two new field in rtt
results.

Change-Id: I6695a498beb2f448e6f6151ddca49eca740670ee
SCSC-Bug-Id: SSB-46474
Signed-off-by: Himani Gupta <himani.g2@samsung.com>
drivers/net/wireless/scsc/cfg80211_ops.c
drivers/net/wireless/scsc/fapi.h
drivers/net/wireless/scsc/mgt.c
drivers/net/wireless/scsc/mlme.c
drivers/net/wireless/scsc/mlme.h
drivers/net/wireless/scsc/mlme_nan.c
drivers/net/wireless/scsc/nl80211_vendor.c
drivers/net/wireless/scsc/nl80211_vendor.h
drivers/net/wireless/scsc/nl80211_vendor_nan.c
drivers/net/wireless/scsc/rx.c
drivers/net/wireless/scsc/sap_mlme.c

index e4771fd4644b843764cc44a3b78de49d9f495dac..51128af07c4c413d7ff0c8440ff9bcf657810641 100755 (executable)
@@ -504,7 +504,7 @@ int slsi_scan(struct wiphy *wiphy, struct net_device *dev,
                if (!ndev_vif->drv_in_p2p_procedure) {
                        if (delayed_work_pending(&ndev_vif->unsync.unset_channel_expiry_work)) {
                                cancel_delayed_work(&ndev_vif->unsync.unset_channel_expiry_work);
-                               slsi_mlme_spare_signal_1(sdev, dev);
+                               slsi_mlme_unset_channel_req(sdev, dev);
                                ndev_vif->driver_channel = 0;
                                }
                }
@@ -2728,7 +2728,8 @@ static int slsi_wlan_mgmt_tx(struct slsi_dev *sdev, struct net_device *dev,
                /* vif is active*/
                if (ieee80211_is_auth(mgmt->frame_control)) {
                        SLSI_NET_DBG1(dev, SLSI_CFG80211, "Transmit on the current frequency\n");
-                       r = slsi_mlme_send_frame_mgmt(sdev, dev, buf, len, FAPI_DATAUNITDESCRIPTOR_IEEE802_11_FRAME, FAPI_MESSAGETYPE_IEEE80211_MGMT_NOT_ACTION, host_tag, 0, wait * 1000, 0);
+                       r = slsi_mlme_send_frame_mgmt(sdev, dev, buf, len, FAPI_DATAUNITDESCRIPTOR_IEEE802_11_FRAME,
+                                                     FAPI_MESSAGETYPE_IEEE80211_MGMT, host_tag, 0, wait * 1000, 0);
                        if (r)
                                return r;
                } else if (ndev_vif->vif_type == FAPI_VIFTYPE_UNSYNCHRONISED) {
index e167d8d70fa0356a0e181878b57a9f96e84614d8..ffc57d9c07845ae7b5cee0111975be1396baae36 100644 (file)
@@ -1,6 +1,6 @@
 /****************************************************************************
  *
- * Copyright (c) 2014 - 2018 Samsung Electronics Co., Ltd. All rights reserved
+ * Copyright (c) 2014 - 2019 Samsung Electronics Co., Ltd. All rights reserved
  *
  ****************************************************************************/
 
@@ -51,10 +51,10 @@ static inline struct slsi_skb_cb *slsi_skb_cb_init(struct sk_buff *skb)
 #define FAPI_SAP_TYPE_DEBUG 0x8000
 #define FAPI_SAP_TYPE_TEST  0x9000
 
-#define FAPI_DEBUG_SAP_ENG_VERSION               0x0000
-#define FAPI_CONTROL_SAP_ENG_VERSION             0x0000
-#define FAPI_DATA_SAP_ENG_VERSION                0x0000
-#define FAPI_TEST_SAP_ENG_VERSION                0x0006
+#define FAPI_DEBUG_SAP_ENG_VERSION               0x0001
+#define FAPI_DATA_SAP_ENG_VERSION                0x0001
+#define FAPI_CONTROL_SAP_ENG_VERSION             0x0006
+#define FAPI_TEST_SAP_ENG_VERSION                0x000e
 #define FAPI_DEBUG_SAP_VERSION                   0x0d03
 #define FAPI_CONTROL_SAP_VERSION                 0x0e00
 #define FAPI_TEST_SAP_VERSION                    0x0e00
@@ -63,8 +63,15 @@ static inline struct slsi_skb_cb *slsi_skb_cb_init(struct sk_buff *skb)
 #define FAPI_ACLPOLICY_BLACKLIST   0x0000
 #define FAPI_ACLPOLICY_WHITELIST   0x0001
 
+#define FAPI_ACTION_STOP    0x0000
+#define FAPI_ACTION_START   0x0001
+
+#define FAPI_APFFILTERMODE_SUSPEND   0x0001
+#define FAPI_APFFILTERMODE_ACTIVE    0x0002
+
 #define FAPI_AUTHENTICATIONTYPE_OPEN_SYSTEM   0x0000
 #define FAPI_AUTHENTICATIONTYPE_SHARED_KEY    0x0001
+#define FAPI_AUTHENTICATIONTYPE_SAE           0x0003
 #define FAPI_AUTHENTICATIONTYPE_LEAP          0x0080
 
 #define FAPI_BANDWIDTH_20_MHZ    0x0
@@ -298,6 +305,7 @@ static inline struct slsi_skb_cb *slsi_skb_cb_init(struct sk_buff *skb)
 #define FAPI_DATARATE_CTR_DUPLICATE              0xe005
 #define FAPI_DATARATE_CTR_ERROR                  0xe006
 #define FAPI_DATARATE_CTR_LDPC                   0xe007
+#define FAPI_DATARATE_CTR_BEAMFORMED             0xe008
 
 #define FAPI_DATAUNITDESCRIPTOR_IEEE802_11_FRAME   0x0000
 #define FAPI_DATAUNITDESCRIPTOR_IEEE802_3_FRAME    0x0001
@@ -316,9 +324,15 @@ static inline struct slsi_skb_cb *slsi_skb_cb_init(struct sk_buff *skb)
 #define FAPI_DEVICESTATE_CW_RUNNING     3
 #define FAPI_DEVICESTATE_BIST_RUNNING   4
 
+#define FAPI_DFSREGULATORY_UNKNOWN   0x0000
+#define FAPI_DFSREGULATORY_FCC       0x0001
+#define FAPI_DFSREGULATORY_ETSI      0x0002
+#define FAPI_DFSREGULATORY_JAPAN     0x0003
+#define FAPI_DFSREGULATORY_GLOBAL    0x0004
+#define FAPI_DFSREGULATORY_CHINA     0x0006
+
 #define FAPI_DIRECTION_TRANSMIT   0x0000
 #define FAPI_DIRECTION_RECEIVE    0x0001
-#define FAPI_DIRECTION_ANY        0x0003
 
 #define FAPI_ENDPOINT_HOSTIO   0x0001
 #define FAPI_ENDPOINT_DPLP     0x0002
@@ -400,10 +414,11 @@ static inline struct slsi_skb_cb *slsi_skb_cb_init(struct sk_buff *skb)
 #define FAPI_HIDDENSSID_HIDDEN_ZERO_LENGTH   0x0001
 #define FAPI_HIDDENSSID_HIDDEN_ZERO_DATA     0x0002
 
-#define FAPI_HOSTSTATE_LCD_ACTIVE        0x0001
-#define FAPI_HOSTSTATE_CELLULAR_ACTIVE   0x0002
-#define FAPI_HOSTSTATE_SAR_ACTIVE        0x0004
-#define FAPI_HOSTSTATE_GRIP_ACTIVE       0x0008
+#define FAPI_HOSTSTATE_LCD_ACTIVE           0x0001
+#define FAPI_HOSTSTATE_CELLULAR_ACTIVE      0x0002
+#define FAPI_HOSTSTATE_SAR_ACTIVE           0x0004
+#define FAPI_HOSTSTATE_GRIP_ACTIVE          0x0040
+#define FAPI_HOSTSTATE_LOW_LATENCY_ACTIVE   0x0080
 
 #define FAPI_HT_NON_HT_RATE   0x1
 #define FAPI_HT_HT_RATE       0x2
@@ -413,7 +428,8 @@ static inline struct slsi_skb_cb *slsi_skb_cb_init(struct sk_buff *skb)
 #define FAPI_KEYTYPE_PAIRWISE        0x0001
 #define FAPI_KEYTYPE_WEP             0x0002
 #define FAPI_KEYTYPE_IGTK            0x0003
-#define FAPI_KEYTYPE_FIRST_ILLEGAL   0x0004
+#define FAPI_KEYTYPE_PMK             0x0004
+#define FAPI_KEYTYPE_FIRST_ILLEGAL   0x0005
 
 #define FAPI_MESSAGETYPE_EAP_MESSAGE          0x0001
 #define FAPI_MESSAGETYPE_EAPOL_KEY_M123       0x0002
@@ -422,10 +438,9 @@ static inline struct slsi_skb_cb *slsi_skb_cb_init(struct sk_buff *skb)
 #define FAPI_MESSAGETYPE_DHCP                 0x0005
 #define FAPI_MESSAGETYPE_NEIGHBOR_DISCOVERY   0x0006
 #define FAPI_MESSAGETYPE_WAI_MESSAGE          0x0007
-#define FAPI_MESSAGETYPE_PERIODIC_OFFLOAD     0x0008
+#define FAPI_MESSAGETYPE_ANY_OTHER            0x0008
 #define FAPI_MESSAGETYPE_IEEE80211_ACTION     0x0010
-/* TBD: Auto generate to add this */
-#define FAPI_MESSAGETYPE_IEEE80211_MGMT_NOT_ACTION 0x0011
+#define FAPI_MESSAGETYPE_IEEE80211_MGMT       0x0011
 
 #define FAPI_MODE_SOURCE     0x0001
 #define FAPI_MODE_SINK       0x0002
@@ -435,7 +450,6 @@ static inline struct slsi_skb_cb *slsi_skb_cb_init(struct sk_buff *skb)
 #define FAPI_NANAVAILABILITYDURATION_32MS   0x01
 #define FAPI_NANAVAILABILITYDURATION_64MS   0x02
 
-#define FAPI_NANOPERATIONCONTROL_CLUSTER_SDF            0x0001
 #define FAPI_NANOPERATIONCONTROL_MAC_ADDRESS_EVENT      0x0002
 #define FAPI_NANOPERATIONCONTROL_START_CLUSTER_EVENT    0x0004
 #define FAPI_NANOPERATIONCONTROL_JOINED_CLUSTER_EVENT   0x0008
@@ -444,7 +458,16 @@ static inline struct slsi_skb_cb *slsi_skb_cb_init(struct sk_buff *skb)
 #define FAPI_NANSDFCONTROL_SUBSCRIBE_END_EVENT                0x0002
 #define FAPI_NANSDFCONTROL_MATCH_EXPIRED_EVENT                0x0004
 #define FAPI_NANSDFCONTROL_RECEIVED_FOLLOWUP_EVENT            0x0008
-#define FAPI_NANSDFCONTROL_DISABLE_RESPONSES_AFTER_FOLLOWUP   0x0010
+#define FAPI_NANSDFCONTROL_DISABLE_FOLLOWUP_TRANSMIT_STATUS   0x0010
+
+#define FAPI_NSSTYPE_NSS_ONE_STREAM      0x0000
+#define FAPI_NSSTYPE_NSS_TWO_STREAMS     0x0001
+#define FAPI_NSSTYPE_NSS_THREE_STREAMS   0x0002
+#define FAPI_NSSTYPE_NSS_FOUR_STREAMS    0x0003
+#define FAPI_NSSTYPE_NSS_FIVE_STREAMS    0x0004
+#define FAPI_NSSTYPE_NSS_SIX_STREAMS     0x0005
+#define FAPI_NSSTYPE_NSS_SEVEN_STREAMS   0x0006
+#define FAPI_NSSTYPE_NSS_EIGHT_STREAMS   0x0007
 
 #define FAPI_PACKETFILTERMODE_OPT_OUT         0x01
 #define FAPI_PACKETFILTERMODE_OPT_IN          0x02
@@ -500,50 +523,53 @@ static inline struct slsi_skb_cb *slsi_skb_cb_init(struct sk_buff *skb)
 #define FAPI_RADIOBITMAP_RADIO_0   0x0001
 #define FAPI_RADIOBITMAP_RADIO_1   0x0002
 
-#define FAPI_REASONCODE_RESERVED                                        0x0000
-#define FAPI_REASONCODE_UNSPECIFIED_REASON                              0x0001
-#define FAPI_REASONCODE_DEAUTHENTICATED_INVALID_AUTHENTICATION          0x0002
-#define FAPI_REASONCODE_DEAUTHENTICATED_LEAVING_ESS                     0x0003
-#define FAPI_REASONCODE_DEAUTHENTICATED_INACTIVITY                      0x0004
-#define FAPI_REASONCODE_DEAUTHENTICATED_NO_MORE_STATIONS                0x0005
-#define FAPI_REASONCODE_DEAUTHENTICATED_INVALID_CLASS_2_FRAME           0x0006
-#define FAPI_REASONCODE_DEAUTHENTICATED_INVALID_CLASS_3_FRAME           0x0007
-#define FAPI_REASONCODE_DEAUTHENTICATED_UNACCEPTABLE_POWER_CAPABILITY   0x000a
-#define FAPI_REASONCODE_DEAUTHENTICATED_4_WAY_HANDSHAKE_TIMEOUT         0x000f
-#define FAPI_REASONCODE_DEAUTHENTICATED_GROUP_HANDSHAKE_TIMEOUT         0x0010
-#define FAPI_REASONCODE_DEAUTHENTICATED_HANDSHAKE_ELEMENT_MISMATCH      0x0011
-#define FAPI_REASONCODE_DEAUTHENTICATED_REASON_INVALID_RSNE             0x0014
-#define FAPI_REASONCODE_DEAUTHENTICATED_802_1_X_AUTH_FAILED             0x0017
-#define FAPI_REASONCODE_TDLS_PEER_UNREACHABLE                           0x0019
-#define FAPI_REASONCODE_TDLS_TEARDOWN_UNSPECIFIED_REASON                0x001a
-#define FAPI_REASONCODE_QOS_UNSPECIFIED_REASON                          0x0020
-#define FAPI_REASONCODE_QOS_EXCESSIVE_NOT_ACK                           0x0022
-#define FAPI_REASONCODE_QOS_TXOP_LIMIT_EXCEEDED                         0x0023
-#define FAPI_REASONCODE_QSTA_LEAVING                                    0x0024
-#define FAPI_REASONCODE_END                                             0x0025
-#define FAPI_REASONCODE_UNKNOWN                                         0x0026
-#define FAPI_REASONCODE_TIMEOUT                                         0x0027
-#define FAPI_REASONCODE_KEEP_ALIVE_FAILURE                              0x0028
-#define FAPI_REASONCODE_START                                           0x0029
-#define FAPI_REASONCODE_SYNCHRONISATION_LOSS                            0x8003
-#define FAPI_REASONCODE_SECURITY_REQUIRED                               0x8004
-#define FAPI_REASONCODE_ROAMING_FAILURE_LINK_LOSS_NO_CANDIDATE          0x8005
-#define FAPI_REASONCODE_HOTSPOT_MAX_CLIENT_REACHED                      0x8006
-#define FAPI_REASONCODE_NAN_SERVICE_TERMINATED_TIMEOUT                  0x9001
-#define FAPI_REASONCODE_NAN_SERVICE_TERMINATED_USER_REQUEST             0x9002
-#define FAPI_REASONCODE_NAN_SERVICE_TERMINATED_COUNT_REACHED            0x9003
-#define FAPI_REASONCODE_NAN_SERVICE_TERMINATED_DISCOVERY_SHUTDOWN       0x9004
-#define FAPI_REASONCODE_NAN_SERVICE_TERMINATED_POST_DISCOVERY_EXPIRED   0x9005
-#define FAPI_REASONCODE_NAN_TRANSMIT_FOLLOWUP_SUCCESS                   0x9006
-#define FAPI_REASONCODE_NAN_TRANSMIT_FOLLOWUP_FAILURE                   0x9007
-
-#define FAPI_REPORTMODE_BUFFER_FULL         0x0001
+#define FAPI_REASONCODE_RESERVED                                     0x0000
+#define FAPI_REASONCODE_UNSPECIFIED_REASON                           0x0001
+#define FAPI_REASONCODE_DEAUTHENTICATED_INVALID_AUTHENTICATION       0x0002
+#define FAPI_REASONCODE_DEAUTHENTICATED_LEAVING                      0x0003
+#define FAPI_REASONCODE_DEAUTHENTICATED_NO_MORE_STATIONS             0x0005
+#define FAPI_REASONCODE_DEAUTHENTICATED_INVALID_CLASS_2_FRAME        0x0006
+#define FAPI_REASONCODE_DEAUTHENTICATED_INVALID_CLASS_3_FRAME        0x0007
+#define FAPI_REASONCODE_DEAUTHENTICATED_REASON_INVALID_IE            0x000d
+#define FAPI_REASONCODE_DEAUTHENTICATED_4_WAY_HANDSHAKE_TIMEOUT      0x000f
+#define FAPI_REASONCODE_DEAUTHENTICATED_GROUP_HANDSHAKE_TIMEOUT      0x0010
+#define FAPI_REASONCODE_DEAUTHENTICATED_HANDSHAKE_ELEMENT_MISMATCH   0x0011
+#define FAPI_REASONCODE_DEAUTHENTICATED_REASON_INVALID_RSNE          0x0014
+#define FAPI_REASONCODE_DEAUTHENTICATED_802_1_X_AUTH_FAILED          0x0017
+#define FAPI_REASONCODE_TDLS_PEER_UNREACHABLE                        0x0019
+#define FAPI_REASONCODE_TDLS_TEARDOWN_UNSPECIFIED_REASON             0x001a
+#define FAPI_REASONCODE_QOS_UNSPECIFIED_REASON                       0x0020
+#define FAPI_REASONCODE_QOS_EXCESSIVE_NOT_ACK                        0x0022
+#define FAPI_REASONCODE_QOS_TXOP_LIMIT_EXCEEDED                      0x0023
+#define FAPI_REASONCODE_QSTA_LEAVING                                 0x0024
+#define FAPI_REASONCODE_END                                          0x0025
+#define FAPI_REASONCODE_UNKNOWN                                      0x0026
+#define FAPI_REASONCODE_TIMEOUT                                      0x0027
+#define FAPI_REASONCODE_KEEP_ALIVE_FAILURE                           0x0028
+#define FAPI_REASONCODE_START                                        0x0029
+#define FAPI_REASONCODE_DEAUTHENTICATED_REASON_INVALID_PMKID         0x0031
+#define FAPI_REASONCODE_INVALID_PMKID                                0x0049
+#define FAPI_REASONCODE_SYNCHRONISATION_LOSS                         0x8003
+#define FAPI_REASONCODE_SECURITY_REQUIRED                            0x8004
+#define FAPI_REASONCODE_ROAMING_FAILURE_LINK_LOSS_NO_CANDIDATE       0x8005
+#define FAPI_REASONCODE_HOTSPOT_MAX_CLIENT_REACHED                   0x8006
+#define FAPI_REASONCODE_CHANNEL_SWITCH_FAILURE                       0x8007
+#define FAPI_REASONCODE_REPORTING_ABORTED_SCANNING                   0x8008
+#define FAPI_REASONCODE_REPORTING_ABORTED_ROAMING                    0x8009
+#define FAPI_REASONCODE_NAN_SERVICE_TERMINATED_TIMEOUT               0x9001
+#define FAPI_REASONCODE_NAN_SERVICE_TERMINATED_USER_REQUEST          0x9002
+#define FAPI_REASONCODE_NAN_SERVICE_TERMINATED_COUNT_REACHED         0x9003
+#define FAPI_REASONCODE_NAN_SERVICE_TERMINATED_DISCOVERY_SHUTDOWN    0x9004
+#define FAPI_REASONCODE_NAN_TRANSMIT_FOLLOWUP_SUCCESS                0x9006
+#define FAPI_REASONCODE_NAN_TRANSMIT_FOLLOWUP_FAILURE                0x9007
+#define FAPI_REASONCODE_NDP_ACCEPTED                                 0x9008
+#define FAPI_REASONCODE_NDP_REJECTED                                 0x9009
+
+#define FAPI_REPORTMODE_RESERVED            0x0001
 #define FAPI_REPORTMODE_END_OF_SCAN_CYCLE   0x0002
 #define FAPI_REPORTMODE_REAL_TIME           0x0004
 #define FAPI_REPORTMODE_NO_BATCH            0x0008
 
-#define FAPI_REQUESTTYPE_SMAPPER_RX_CONFIG   0x0000
-
 #define FAPI_RESULTCODE_SUCCESS                             0x0000
 #define FAPI_RESULTCODE_UNSPECIFIED_FAILURE                 0x0001
 #define FAPI_RESULTCODE_INVALID_PARAMETERS                  0x0026
@@ -551,43 +577,43 @@ static inline struct slsi_skb_cb *slsi_skb_cb_init(struct sk_buff *skb)
 #define FAPI_RESULTCODE_NOT_ALLOWED                         0x0030
 #define FAPI_RESULTCODE_NOT_PRESENT                         0x0031
 #define FAPI_RESULTCODE_TRANSMISSION_FAILURE                0x004f
-#define FAPI_RESULTCODE_TIMEOUT                             0x8000
 #define FAPI_RESULTCODE_TOO_MANY_SIMULTANEOUS_REQUESTS      0x8001
 #define FAPI_RESULTCODE_BSS_ALREADY_STARTED_OR_JOINED       0x8002
 #define FAPI_RESULTCODE_NOT_SUPPORTED                       0x8003
 #define FAPI_RESULTCODE_INVALID_STATE                       0x8004
 #define FAPI_RESULTCODE_INSUFFICIENT_RESOURCE               0x8006
-#define FAPI_RESULTCODE_MISSING_INFORMATION_ELEMENT         0x8007
 #define FAPI_RESULTCODE_INVALID_VIRTUAL_INTERFACE_INDEX     0x800a
 #define FAPI_RESULTCODE_HOST_REQUEST_SUCCESS                0x800b
 #define FAPI_RESULTCODE_HOST_REQUEST_FAILED                 0x800c
-#define FAPI_RESULTCODE_COMEBACK_TIME_RUNNING               0x800d
 #define FAPI_RESULTCODE_INVALID_FREQUENCY                   0x800e
 #define FAPI_RESULTCODE_PROBE_TIMEOUT                       0x800f
 #define FAPI_RESULTCODE_AUTH_TIMEOUT                        0x8010
 #define FAPI_RESULTCODE_ASSOC_TIMEOUT                       0x8011
 #define FAPI_RESULTCODE_ASSOC_ABORT                         0x8012
-/*Will remove it once we get latest fapi.xml */
-#define FAPI_RESULTCODE_AUTH_NO_ACK                  0x8013
-#define FAPI_RESULTCODE_ASSOC_NO_ACK                 0x8014
-/*--------------------------------------------------*/
+#define FAPI_RESULTCODE_AUTH_NO_ACK                         0x8013
+#define FAPI_RESULTCODE_ASSOC_NO_ACK                        0x8014
+#define FAPI_RESULTCODE_AUTH_FAILED_CODE                    0x8100
+#define FAPI_RESULTCODE_ASSOC_FAILED_CODE                   0x8200
 #define FAPI_RESULTCODE_INVALID_TLV_VALUE                   0x9000
 #define FAPI_RESULTCODE_NAN_PROTOCOL_FAILURE                0x9001
 #define FAPI_RESULTCODE_NAN_INVALID_PUBLISH_SUBSCRIBE_ID    0x9002
 #define FAPI_RESULTCODE_NAN_INVALID_REQUESTOR_INSTANCE_ID   0x9003
+#define FAPI_RESULTCODE_UNSUPPORTED_CONCURRENCY             0x9004
+#define FAPI_RESULTCODE_NAN_INVALID_NDP_ID                  0x9005
+#define FAPI_RESULTCODE_NAN_INVALID_PEER_ID                 0x9006
+#define FAPI_RESULTCODE_NAN_NO_OTA_ACK                      0x9007
+#define FAPI_RESULTCODE_NAN_INVALID_AVAILABILITY            0x9008
+#define FAPI_RESULTCODE_NAN_IMMUTABLE_UNACCEPTABLE          0x9009
+#define FAPI_RESULTCODE_NAN_REJECTED_SECURITY_POLICY        0x900a
+#define FAPI_RESULTCODE_NDP_REJECTED                        0x900b
+#define FAPI_RESULTCODE_NDL_UNACCEPTABLE                    0x900c
+#define FAPI_RESULTCODE_NDL_FAILED_SCHEDULE                 0x900d
 
 #define FAPI_RTTBANDWIDTH_20MHZ    0x0004
 #define FAPI_RTTBANDWIDTH_40MHZ    0x0008
 #define FAPI_RTTBANDWIDTH_80MHZ    0x0010
 #define FAPI_RTTBANDWIDTH_160MHZ   0x0020
 
-#define FAPI_RTTPEERTYPE_UNKNOWN      0x0000
-#define FAPI_RTTPEERTYPE_AP           0x0001
-#define FAPI_RTTPEERTYPE_STA          0x0002
-#define FAPI_RTTPEERTYPE_P2P_GO       0x0003
-#define FAPI_RTTPEERTYPE_P2P_CLIENT   0x0004
-#define FAPI_RTTPEERTYPE_NAN_DEVICE   0x0005
-
 #define FAPI_RTTPREAMBLE_LEGACY   0x0001
 #define FAPI_RTTPREAMBLE_HT       0x0002
 #define FAPI_RTTPREAMBLE_VHT      0x0004
@@ -600,7 +626,7 @@ static inline struct slsi_skb_cb *slsi_skb_cb_init(struct sk_buff *skb)
 #define FAPI_RTTSTATUS_FAIL_TIMEOUT                  0x0005
 #define FAPI_RTTSTATUS_FAIL_INCORRECT_CHANNEL        0x0006
 #define FAPI_RTTSTATUS_FAIL_FTM_NOT_SUPPORTED        0x0007
-#define FAPI_RTTSTATUS_MEASUREMENT_ABORTED           0x0008
+#define FAPI_RTTSTATUS_FAIL_MEASUREMENT_ABORTED      0x0008
 #define FAPI_RTTSTATUS_FAIL_INVALID_TIME_STAMP       0x0009
 #define FAPI_RTTSTATUS_FAIL_NO_FTM_RECEIVED          0x000a
 #define FAPI_RTTSTATUS_FAIL_BURST_NOT_SCHEDULED      0x000b
@@ -611,11 +637,20 @@ static inline struct slsi_skb_cb *slsi_skb_cb_init(struct sk_buff *skb)
 #define FAPI_RTTTYPE_ONE_SIDED   0x0001
 #define FAPI_RTTTYPE_TWO_SIDED   0x0002
 
-#define FAPI_RXSTARTFLAGS_NONE           0x0000
-#define FAPI_RXSTARTFLAGS_SCAN_CHANNEL   0x0001
-#define FAPI_RXSTARTFLAGS_FILTERING      0x0002
-#define FAPI_RXSTARTFLAGS_ACK            0x0008
-#define FAPI_RXSTARTFLAGS_LP_MODE        0x0010
+#define FAPI_RULEFLAG_NO_IR        0x0001
+#define FAPI_RULEFLAG_DFS          0x0002
+#define FAPI_RULEFLAG_NO_OFDM      0x0004
+#define FAPI_RULEFLAG_NO_INDOOR    0x0008
+#define FAPI_RULEFLAG_NO_OUTDOOR   0x0010
+
+#define FAPI_RXSTARTFLAGS_NONE                   0x0000
+#define FAPI_RXSTARTFLAGS_SCAN_CHANNEL           0x0001
+#define FAPI_RXSTARTFLAGS_FILTERING              0x0002
+#define FAPI_RXSTARTFLAGS_BEAMFORMING            0x0004
+#define FAPI_RXSTARTFLAGS_ACK                    0x0008
+#define FAPI_RXSTARTFLAGS_LP_MODE                0x0010
+#define FAPI_RXSTARTFLAGS_CHAN_RSSI              0x0020
+#define FAPI_RXSTARTFLAGS_DISABLE_EXTERNAL_LNA   0x0040
 
 #define FAPI_SCANPOLICY_PASSIVE      0x01
 #define FAPI_SCANPOLICY_TEST_MODE    0x02
@@ -643,7 +678,8 @@ static inline struct slsi_skb_cb *slsi_skb_cb_init(struct sk_buff *skb)
 #define FAPI_SCANTYPE_HARD_ALL_ROAMING_SCAN         0x0010
 #define FAPI_SCANTYPE_OBSS_SCAN_INTERNAL            0x0011
 #define FAPI_SCANTYPE_NAN_SCAN                      0x0012
-#define FAPI_SCANTYPE_FIRST_ILLEGAL                 0x0013
+#define FAPI_SCANTYPE_FTM_NEIGHBOUR_SCAN            0x0013
+#define FAPI_SCANTYPE_FIRST_ILLEGAL                 0x0014
 
 #define FAPI_STATSSTOPBITMAP_STATS_RADIO              0x0001
 #define FAPI_STATSSTOPBITMAP_STATS_RADIO_CCA          0x0002
@@ -654,9 +690,10 @@ static inline struct slsi_skb_cb *slsi_skb_cb_init(struct sk_buff *skb)
 #define FAPI_STATSSTOPBITMAP_STATS_IFACE_AC           0x0040
 #define FAPI_STATSSTOPBITMAP_STATS_IFACE_CONTENSION   0x0080
 
-#define FAPI_TDLSACTION_DISCOVERY        0x0000
-#define FAPI_TDLSACTION_SETUP            0x0001
-#define FAPI_TDLSACTION_TEARDOWN         0x0002
+#define FAPI_TDLSACTION_DISCOVERY   0x0000
+#define FAPI_TDLSACTION_SETUP       0x0001
+#define FAPI_TDLSACTION_TEARDOWN    0x0002
+/*todo*/
 #define FAPI_TDLSACTION_CHANNEL_SWITCH   0x0003
 
 #define FAPI_TDLSEVENT_CONNECTED      0x0001
@@ -678,20 +715,23 @@ static inline struct slsi_skb_cb *slsi_skb_cb_init(struct sk_buff *skb)
 #define FAPI_TXREADFLAGS_FRAME_COUNTING   0x0001
 #define FAPI_TXREADFLAGS_THERMAL_CUTOUT   0x0002
 
-#define FAPI_TXSETPARAMSFLAGS_NONE                  0x0000
-#define FAPI_TXSETPARAMSFLAGS_ACK                   0x0001
-#define FAPI_TXSETPARAMSFLAGS_DUPLICATE_80          0x0002
-#define FAPI_TXSETPARAMSFLAGS_DUPLICATE_40          0x0004
-#define FAPI_TXSETPARAMSFLAGS_DEAFEN_RX             0x0008
-#define FAPI_TXSETPARAMSFLAGS_CS                    0x0010
-#define FAPI_TXSETPARAMSFLAGS_SCAN_CHANNEL          0x0020
-#define FAPI_TXSETPARAMSFLAGS_SHORT_PREAMBLE        0x0040
-#define FAPI_TXSETPARAMSFLAGS_DISABLE_SCRAMBLER     0x0080
-#define FAPI_TXSETPARAMSFLAGS_LDPC                  0x0100
-#define FAPI_TXSETPARAMSFLAGS_STBC                  0x0200
-#define FAPI_TXSETPARAMSFLAGS_DISABLE_SPREADER      0x0400
-#define FAPI_TXSETPARAMSFLAGS_GREENFIELD_PREAMBLE   0x0800
-#define FAPI_TXSETPARAMSFLAGS_IBSS_FRAMES           0x2000
+#define FAPI_TXSETPARAMSFLAGS_NONE                   0x0000
+#define FAPI_TXSETPARAMSFLAGS_ACK                    0x0001
+#define FAPI_TXSETPARAMSFLAGS_DUPLICATE_80           0x0002
+#define FAPI_TXSETPARAMSFLAGS_DUPLICATE_40           0x0004
+#define FAPI_TXSETPARAMSFLAGS_DEAFEN_RX              0x0008
+#define FAPI_TXSETPARAMSFLAGS_CS                     0x0010
+#define FAPI_TXSETPARAMSFLAGS_SCAN_CHANNEL           0x0020
+#define FAPI_TXSETPARAMSFLAGS_SHORT_PREAMBLE         0x0040
+#define FAPI_TXSETPARAMSFLAGS_DISABLE_SCRAMBLER      0x0080
+#define FAPI_TXSETPARAMSFLAGS_LDPC                   0x0100
+#define FAPI_TXSETPARAMSFLAGS_STBC                   0x0200
+#define FAPI_TXSETPARAMSFLAGS_DISABLE_SPREADER       0x0400
+#define FAPI_TXSETPARAMSFLAGS_GREENFIELD_PREAMBLE    0x0800
+#define FAPI_TXSETPARAMSFLAGS_RX_LOW_POWER           0x1000
+#define FAPI_TXSETPARAMSFLAGS_IBSS_FRAMES            0x2000
+#define FAPI_TXSETPARAMSFLAGS_BEAMFORMING            0x4000
+#define FAPI_TXSETPARAMSFLAGS_DISABLE_EXTERNAL_LNA   0x8000
 
 #define FAPI_TYPEOFAIRPOWER_EIRP   0x00
 #define FAPI_TYPEOFAIRPOWER_TPO    0x01
@@ -704,15 +744,38 @@ static inline struct slsi_skb_cb *slsi_skb_cb_init(struct sk_buff *skb)
 #define FAPI_VIFRANGE_VIF_INDEX_MAX   0x0008
 
 #define FAPI_VIFTYPE_UNSYNCHRONISED   0x0000
-#define FAPI_VIFTYPE_SCAN             0x0001
 #define FAPI_VIFTYPE_STATION          0x0002
 #define FAPI_VIFTYPE_AP               0x0003
 #define FAPI_VIFTYPE_WLANLITE         0x0004
 #define FAPI_VIFTYPE_NAN              0x0005
 #define FAPI_VIFTYPE_DISCOVERY        0x0006
-#define FAPI_VIFTYPE_OFFCHANNEL       0x0007
-#define FAPI_VIFTYPE_RANGE            0x0008
+#define FAPI_VIFTYPE_PRECONNECT       0x0007
+#define FAPI_VIFTYPE_NANDATAPATH      0x0008
 #define FAPI_VIFTYPE_MONITOR          0x0010
+#define FAPI_VIFTYPE_SCAN             0x0020
+#define FAPI_VIFTYPE_OFFCHANNEL       0x0021
+#define FAPI_VIFTYPE_RANGE            0x0022
+
+#define FAPI_WIFILOGGINGPARAMS_BEACON_PERIOD              0xf000
+#define FAPI_WIFILOGGINGPARAMS_BLACKOUT_ID                0xf001
+#define FAPI_WIFILOGGINGPARAMS_BLACKOUT_SOURCE            0xf002
+#define FAPI_WIFILOGGINGPARAMS_BLACKOUT_TYPE              0xf003
+#define FAPI_WIFILOGGINGPARAMS_BLOCKACK_PARAMETER_SET     0xf004
+#define FAPI_WIFILOGGINGPARAMS_DIRECTION                  0xf005
+#define FAPI_WIFILOGGINGPARAMS_DUTY_CYCLE                 0xf006
+#define FAPI_WIFILOGGINGPARAMS_EAPOL_KEY_TYPE             0xf007
+#define FAPI_WIFILOGGINGPARAMS_FRAME                      0xf008
+#define FAPI_WIFILOGGINGPARAMS_LOCAL_DURATION             0xf009
+#define FAPI_WIFILOGGINGPARAMS_PERIOD                     0xf00a
+#define FAPI_WIFILOGGINGPARAMS_REASON                     0xf00b
+#define FAPI_WIFILOGGINGPARAMS_REPORT_MODE                0xf00c
+#define FAPI_WIFILOGGINGPARAMS_RETRY_COUNT                0xf00d
+#define FAPI_WIFILOGGINGPARAMS_SCAN_TYPE                  0xf00e
+#define FAPI_WIFILOGGINGPARAMS_SECONDARY_CHANNEL_OFFSET   0xf00f
+#define FAPI_WIFILOGGINGPARAMS_SEQUENCE_NUMBER            0xf010
+#define FAPI_WIFILOGGINGPARAMS_SNIFF_ACL                  0xf011
+#define FAPI_WIFILOGGINGPARAMS_TEMPORAL_KEYS_REQUIRED     0xf012
+#define FAPI_WIFILOGGINGPARAMS_VIF_ID                     0xf013
 
 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_20MHZ_PRIMARYCHANNELPOSITION_P0               0x0000
 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_20MHZ_PRIMARYCHANNELPOSITION_P1               0x0001
@@ -743,23 +806,33 @@ static inline struct slsi_skb_cb *slsi_skb_cb_init(struct sk_buff *skb)
 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_80MHZ_PRIMARYCHANNELPOSITION_NOT_APPLICABLE   0x0208
 
 #define MA_UNITDATA_REQ                       0x1000
-#define MA_CONTROL_REQ                        0x1001
-#define MA_SPARE_SIGNAL_1_REQ                 0x1002
-#define MA_SPARE_SIGNAL_2_REQ                 0x1003
-#define MA_SPARE_SIGNAL_3_REQ                 0x1004
+#define MA_SPARE_1_REQ                        0x1002
+#define MA_SPARE_2_REQ                        0x1003
+#define MA_SPARE_3_REQ                        0x1004
+#define MA_SPARE_SIGNAL_1_REQ                 0x1005
+#define MA_SPARE_SIGNAL_2_REQ                 0x1006
+#define MA_SPARE_SIGNAL_3_REQ                 0x1007
 #define MA_UNITDATA_CFM                       0x1100
-#define MA_CONTROL_CFM                        0x1101
-#define MA_SPARE_SIGNAL_1_CFM                 0x1102
-#define MA_SPARE_SIGNAL_2_CFM                 0x1103
-#define MA_SPARE_SIGNAL_3_CFM                 0x1104
-#define MA_SPARE_SIGNAL_1_RES                 0x1200
-#define MA_SPARE_SIGNAL_2_RES                 0x1201
-#define MA_SPARE_SIGNAL_3_RES                 0x1202
+#define MA_SPARE_1_CFM                        0x1102
+#define MA_SPARE_2_CFM                        0x1103
+#define MA_SPARE_3_CFM                        0x1104
+#define MA_SPARE_SIGNAL_1_CFM                 0x1105
+#define MA_SPARE_SIGNAL_2_CFM                 0x1106
+#define MA_SPARE_SIGNAL_3_CFM                 0x1107
+#define MA_SPARE_1_RES                        0x1200
+#define MA_SPARE_2_RES                        0x1201
+#define MA_SPARE_3_RES                        0x1202
+#define MA_SPARE_SIGNAL_1_RES                 0x1203
+#define MA_SPARE_SIGNAL_2_RES                 0x1204
+#define MA_SPARE_SIGNAL_3_RES                 0x1205
 #define MA_UNITDATA_IND                       0x1300
 #define MA_BLOCKACK_IND                       0x1301
-#define MA_SPARE_SIGNAL_1_IND                 0x1302
-#define MA_SPARE_SIGNAL_2_IND                 0x1303
-#define MA_SPARE_SIGNAL_3_IND                 0x1304
+#define MA_SPARE_1_IND                        0x1302
+#define MA_SPARE_2_IND                        0x1303
+#define MA_SPARE_3_IND                        0x1304
+#define MA_SPARE_SIGNAL_1_IND                 0x1305
+#define MA_SPARE_SIGNAL_2_IND                 0x1306
+#define MA_SPARE_SIGNAL_3_IND                 0x1307
 #define MLME_GET_REQ                          0x2001
 #define MLME_SET_REQ                          0x2002
 #define MLME_POWERMGT_REQ                     0x2003
@@ -792,7 +865,6 @@ static inline struct slsi_skb_cb *slsi_skb_cb_init(struct sk_buff *skb)
 #define MLME_MONITOR_RSSI_REQ                 0x2023
 #define MLME_START_LINK_STATISTICS_REQ        0x2024
 #define MLME_STOP_LINK_STATISTICS_REQ         0x2025
-#define MLME_SET_BSSID_HOTLIST_REQ            0x2026
 #define MLME_SET_PNO_LIST_REQ                 0x2027
 #define MLME_HOST_STATE_REQ                   0x2028
 #define MLME_ADD_RANGE_REQ                    0x2029
@@ -804,9 +876,24 @@ static inline struct slsi_skb_cb *slsi_skb_cb_init(struct sk_buff *skb)
 #define MLME_NAN_PUBLISH_REQ                  0x202f
 #define MLME_NAN_SUBSCRIBE_REQ                0x2030
 #define MLME_NAN_FOLLOWUP_REQ                 0x2031
-#define MLME_SPARE_SIGNAL_1_REQ               0x2032
-#define MLME_SPARE_SIGNAL_2_REQ               0x2033
-#define MLME_SPARE_SIGNAL_3_REQ               0x2034
+#define MLME_UNSET_CHANNEL_REQ                0x2032
+#define MLME_SET_COUNTRY_REQ                  0x2033
+#define MLME_FORWARD_BEACON_REQ               0x2034
+#define MLME_NDP_SETUP_REQ                    0x2035
+#define MLME_NDP_SETUP_RESPONSE_REQ           0x2036
+#define MLME_NDP_TERMINATE_REQ                0x2037
+#define MLME_NAN_ADD_RANGE_REQ                0x2038
+#define MLME_NAN_DEL_RANGE_REQ                0x2039
+#define MLME_SPARE_4_REQ                      0x203a
+#define MLME_SPARE_5_REQ                      0x203b
+#define MLME_SPARE_6_REQ                      0x203c
+#define MLME_INSTALL_APF_REQ                  0x203d
+#define MLME_READ_APF_REQ                     0x203e
+#define MLME_SET_NSS_REQ                      0x203f
+#define MLME_ARP_DETECT_REQ                   0x2040
+#define MLME_SPARE_SIGNAL_1_REQ               0x2041
+#define MLME_SPARE_SIGNAL_2_REQ               0x2042
+#define MLME_SPARE_SIGNAL_3_REQ               0x2043
 #define MLME_GET_CFM                          0x2101
 #define MLME_SET_CFM                          0x2102
 #define MLME_POWERMGT_CFM                     0x2103
@@ -839,7 +926,6 @@ static inline struct slsi_skb_cb *slsi_skb_cb_init(struct sk_buff *skb)
 #define MLME_MONITOR_RSSI_CFM                 0x2123
 #define MLME_START_LINK_STATISTICS_CFM        0x2124
 #define MLME_STOP_LINK_STATISTICS_CFM         0x2125
-#define MLME_SET_BSSID_HOTLIST_CFM            0x2126
 #define MLME_SET_PNO_LIST_CFM                 0x2127
 #define MLME_HOST_STATE_CFM                   0x2128
 #define MLME_ADD_RANGE_CFM                    0x2129
@@ -851,17 +937,36 @@ static inline struct slsi_skb_cb *slsi_skb_cb_init(struct sk_buff *skb)
 #define MLME_NAN_PUBLISH_CFM                  0x212f
 #define MLME_NAN_SUBSCRIBE_CFM                0x2130
 #define MLME_NAN_FOLLOWUP_CFM                 0x2131
-#define MLME_SPARE_SIGNAL_1_CFM               0x2132
-#define MLME_SPARE_SIGNAL_2_CFM               0x2133
-#define MLME_SPARE_SIGNAL_3_CFM               0x2134
+#define MLME_UNSET_CHANNEL_CFM                0x2132
+#define MLME_SET_COUNTRY_CFM                  0x2133
+#define MLME_FORWARD_BEACON_CFM               0x2134
+#define MLME_NDP_SETUP_CFM                    0x2135
+#define MLME_NDP_SETUP_RESPONSE_CFM           0x2136
+#define MLME_NDP_TERMINATE_CFM                0x2137
+#define MLME_NAN_ADD_RANGE_CFM                0x2138
+#define MLME_NAN_DEL_RANGE_CFM                0x2139
+#define MLME_SPARE_4_CFM                      0x213a
+#define MLME_SPARE_5_CFM                      0x213b
+#define MLME_SPARE_6_CFM                      0x213c
+#define MLME_INSTALL_APF_CFM                  0x213d
+#define MLME_READ_APF_CFM                     0x213e
+#define MLME_SET_NSS_CFM                      0x213f
+#define MLME_ARP_DETECT_CFM                   0x2140
+#define MLME_SPARE_SIGNAL_1_CFM               0x2141
+#define MLME_SPARE_SIGNAL_2_CFM               0x2142
+#define MLME_SPARE_SIGNAL_3_CFM               0x2143
 #define MLME_CONNECT_RES                      0x2200
 #define MLME_CONNECTED_RES                    0x2201
 #define MLME_REASSOCIATE_RES                  0x2202
 #define MLME_ROAMED_RES                       0x2203
 #define MLME_TDLS_PEER_RES                    0x2204
-#define MLME_SPARE_SIGNAL_1_RES               0x2205
-#define MLME_SPARE_SIGNAL_2_RES               0x2206
-#define MLME_SPARE_SIGNAL_3_RES               0x2207
+#define MLME_SYNCHRONISED_RES                 0x2205
+#define MLME_SPARE_2_RES                      0x2206
+#define MLME_SPARE_3_RES                      0x2207
+#define MLME_SPARE_4_RES                      0x2208
+#define MLME_SPARE_SIGNAL_1_RES               0x2209
+#define MLME_SPARE_SIGNAL_2_RES               0x220a
+#define MLME_SPARE_SIGNAL_3_RES               0x220b
 #define MLME_SCAN_IND                         0x2300
 #define MLME_SCAN_DONE_IND                    0x2301
 #define MLME_LISTEN_END_IND                   0x2302
@@ -877,8 +982,6 @@ static inline struct slsi_skb_cb *slsi_skb_cb_init(struct sk_buff *skb)
 #define MLME_FRAME_TRANSMISSION_IND           0x230c
 #define MLME_RECEIVED_FRAME_IND               0x230d
 #define MLME_TDLS_PEER_IND                    0x230f
-#define MLME_AP_LOSS_IND                      0x2310
-#define MLME_SIGNIFICANT_CHANGE_IND           0x2311
 #define MLME_RSSI_REPORT_IND                  0x2312
 #define MLME_AC_PRIORITY_UPDATE_IND           0x2313
 #define MLME_RANGE_IND                        0x2314
@@ -888,23 +991,46 @@ static inline struct slsi_skb_cb *slsi_skb_cb_init(struct sk_buff *skb)
 #define MLME_NAN_SERVICE_IND                  0x2318
 #define MLME_NAN_FOLLOWUP_IND                 0x2319
 #define MLME_CHANNEL_SWITCHED_IND             0x231a
-#define MLME_SPARE_SIGNAL_1_IND               0x231b
-#define MLME_SPARE_SIGNAL_2_IND               0x231c
-#define MLME_SPARE_SIGNAL_3_IND               0x231d
-#define DEBUG_SPARE_SIGNAL_1_REQ              0x8000
-#define DEBUG_SPARE_SIGNAL_2_REQ              0x8001
-#define DEBUG_SPARE_SIGNAL_3_REQ              0x8002
-#define DEBUG_SPARE_SIGNAL_1_CFM              0x8100
-#define DEBUG_SPARE_SIGNAL_2_CFM              0x8101
-#define DEBUG_SPARE_SIGNAL_3_CFM              0x8102
-#define DEBUG_SPARE_SIGNAL_1_RES              0x8200
-#define DEBUG_SPARE_SIGNAL_2_RES              0x8201
-#define DEBUG_SPARE_SIGNAL_3_RES              0x8202
+#define MLME_SYNCHRONISED_IND                 0x231b
+#define MLME_BEACON_REPORTING_EVENT_IND       0x231c
+#define MLME_SPARE_3_IND                      0x231d
+#define MLME_SPARE_4_IND                      0x231e
+#define MLME_NDP_SETUP_IND                    0x231f
+#define MLME_NDP_REQUESTED_IND                0x2320
+#define MLME_NDP_SETUP_RESPONSE_IND           0x2321
+#define MLME_NDP_TERMINATED_IND               0x2322
+#define MLME_NAN_ADD_RANGE_IND                0x2323
+#define MLME_SPARE_5_IND                      0x2324
+#define MLME_SPARE_SIGNAL_1_IND               0x2325
+#define MLME_SPARE_SIGNAL_2_IND               0x2326
+#define MLME_SPARE_SIGNAL_3_IND               0x2327
+#define DEBUG_SPARE_1_REQ                     0x8000
+#define DEBUG_SPARE_2_REQ                     0x8001
+#define DEBUG_SPARE_3_REQ                     0x8002
+#define DEBUG_SPARE_SIGNAL_1_REQ              0x8003
+#define DEBUG_SPARE_SIGNAL_2_REQ              0x8004
+#define DEBUG_SPARE_SIGNAL_3_REQ              0x8005
+#define DEBUG_SPARE_1_CFM                     0x8100
+#define DEBUG_SPARE_2_CFM                     0x8101
+#define DEBUG_SPARE_3_CFM                     0x8102
+#define DEBUG_SPARE_SIGNAL_1_CFM              0x8103
+#define DEBUG_SPARE_SIGNAL_2_CFM              0x8104
+#define DEBUG_SPARE_SIGNAL_3_CFM              0x8105
+#define DEBUG_SPARE_1_RES                     0x8200
+#define DEBUG_SPARE_2_RES                     0x8201
+#define DEBUG_SPARE_3_RES                     0x8202
+#define DEBUG_SPARE_SIGNAL_1_RES              0x8203
+#define DEBUG_SPARE_SIGNAL_2_RES              0x8204
+#define DEBUG_SPARE_SIGNAL_3_RES              0x8205
 #define DEBUG_WORD12IND                       0x8301
 #define DEBUG_FAULT_IND                       0x8302
-#define DEBUG_SPARE_SIGNAL_1_IND              0x8303
-#define DEBUG_SPARE_SIGNAL_2_IND              0x8304
-#define DEBUG_SPARE_SIGNAL_3_IND              0x8305
+#define DEBUG_WORDS_IND                       0x8303
+#define DEBUG_SPARE_2_IND                     0x8304
+#define DEBUG_SPARE_3_IND                     0x8305
+#define DEBUG_SPARE_4_IND                     0x8306
+#define DEBUG_SPARE_SIGNAL_1_IND              0x8307
+#define DEBUG_SPARE_SIGNAL_2_IND              0x8308
+#define DEBUG_SPARE_SIGNAL_3_IND              0x8309
 #define TEST_BLOCK_REQUESTS_REQ               0x9000
 #define TEST_PANIC_REQ                        0x9001
 #define TEST_SUSPEND_REQ                      0x9002
@@ -936,9 +1062,12 @@ static inline struct slsi_skb_cb *slsi_skb_cb_init(struct sk_buff *skb)
 #define TEST_HIP_TESTER_SET_PARAMS_REQ        0x901d
 #define TEST_HIP_TESTER_REPORT_REQ            0x901e
 #define TEST_BIST_GET_TX_GAIN_REQ             0x901f
-#define TEST_SPARE_SIGNAL_1_REQ               0x9020
-#define TEST_SPARE_SIGNAL_2_REQ               0x9021
-#define TEST_SPARE_SIGNAL_3_REQ               0x9022
+#define TEST_SPARE_1_REQ                      0x9020
+#define TEST_SPARE_2_REQ                      0x9021
+#define TEST_SPARE_3_REQ                      0x9022
+#define TEST_SPARE_SIGNAL_1_REQ               0x9023
+#define TEST_SPARE_SIGNAL_2_REQ               0x9024
+#define TEST_SPARE_SIGNAL_3_REQ               0x9025
 #define RADIO_LOGGING_CFM                     0x9100
 #define WLANLITE_CW_START_CFM                 0x9101
 #define WLANLITE_TX_SET_PARAMS_CFM            0x9102
@@ -961,20 +1090,29 @@ static inline struct slsi_skb_cb *slsi_skb_cb_init(struct sk_buff *skb)
 #define TEST_HIP_TESTER_STOP_CFM              0x9114
 #define TEST_HIP_TESTER_SET_PARAMS_CFM        0x9115
 #define TEST_BIST_GET_TX_GAIN_CFM             0x9116
-#define TEST_SPARE_SIGNAL_1_CFM               0x9117
-#define TEST_SPARE_SIGNAL_2_CFM               0x9118
-#define TEST_SPARE_SIGNAL_3_CFM               0x9119
-#define TEST_SPARE_SIGNAL_1_RES               0x9200
-#define TEST_SPARE_SIGNAL_2_RES               0x9201
-#define TEST_SPARE_SIGNAL_3_RES               0x9202
+#define TEST_SPARE_1_CFM                      0x9117
+#define TEST_SPARE_2_CFM                      0x9118
+#define TEST_SPARE_3_CFM                      0x9119
+#define TEST_SPARE_SIGNAL_1_CFM               0x911a
+#define TEST_SPARE_SIGNAL_2_CFM               0x911b
+#define TEST_SPARE_SIGNAL_3_CFM               0x911c
+#define TEST_SPARE_1_RES                      0x9200
+#define TEST_SPARE_2_RES                      0x9201
+#define TEST_SPARE_3_RES                      0x9202
+#define TEST_SPARE_SIGNAL_1_RES               0x9203
+#define TEST_SPARE_SIGNAL_2_RES               0x9204
+#define TEST_SPARE_SIGNAL_3_RES               0x9205
 #define RADIO_LOGGING_IND                     0x9300
 #define DEBUG_GENERIC_IND                     0x9301
 #define DEBUG_PKT_SINK_REPORT_IND             0x9302
 #define DEBUG_PKT_GEN_REPORT_IND              0x9303
 #define TEST_HIP_TESTER_REPORT_IND            0x9304
-#define TEST_SPARE_SIGNAL_1_IND               0x9305
-#define TEST_SPARE_SIGNAL_2_IND               0x9306
-#define TEST_SPARE_SIGNAL_3_IND               0x9307
+#define TEST_SPARE_1_IND                      0x9305
+#define TEST_SPARE_2_IND                      0x9306
+#define TEST_SPARE_3_IND                      0x9307
+#define TEST_SPARE_SIGNAL_1_IND               0x9308
+#define TEST_SPARE_SIGNAL_2_IND               0x9309
+#define TEST_SPARE_SIGNAL_3_IND               0x930a
 
 struct fapi_signal_header {
        __le16 id;
@@ -1012,12 +1150,25 @@ struct fapi_signal {
                } __packed ma_unitdata_req;
                struct {
                        __le16 vif;
-                       __le16 control_request_type;
                        __le32 spare_1;
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed ma_control_req;
+               } __packed ma_spare_1_req;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed ma_spare_2_req;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed ma_spare_3_req;
                struct {
                        __le16 vif;
                        __le32 spare_1;
@@ -1057,7 +1208,23 @@ struct fapi_signal {
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed ma_control_cfm;
+               } __packed ma_spare_1_cfm;
+               struct {
+                       __le16 vif;
+                       __le16 result_code;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed ma_spare_2_cfm;
+               struct {
+                       __le16 vif;
+                       __le16 result_code;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed ma_spare_3_cfm;
                struct {
                        __le16 vif;
                        __le16 result_code;
@@ -1082,6 +1249,27 @@ struct fapi_signal {
                        __le32 spare_3;
                        u8     dr[0];
                } __packed ma_spare_signal_3_cfm;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed ma_spare_1_res;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed ma_spare_2_res;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed ma_spare_3_res;
                struct {
                        __le16 vif;
                        __le32 spare_1;
@@ -1128,6 +1316,27 @@ struct fapi_signal {
                        __le32 spare_3;
                        u8     dr[0];
                } __packed ma_blockack_ind;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed ma_spare_1_ind;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed ma_spare_2_ind;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed ma_spare_3_ind;
                struct {
                        __le16 vif;
                        __le32 spare_1;
@@ -1439,13 +1648,6 @@ struct fapi_signal {
                        __le32 spare_3;
                        u8     dr[0];
                } __packed mlme_stop_link_statistics_req;
-               struct {
-                       __le16 vif;
-                       __le32 spare_1;
-                       __le32 spare_2;
-                       __le32 spare_3;
-                       u8     dr[0];
-               } __packed mlme_set_bssid_hotlist_req;
                struct {
                        __le16 vif;
                        __le32 spare_1;
@@ -1464,6 +1666,7 @@ struct fapi_signal {
                struct {
                        __le16 vif;
                        __le16 rtt_id;
+                       u8     device_address[ETH_ALEN];
                        __le32 spare_1;
                        __le32 spare_2;
                        __le32 spare_3;
@@ -1499,8 +1702,8 @@ struct fapi_signal {
                } __packed mlme_set_ctwindow_req;
                struct {
                        __le16 vif;
-                       __le16 cluster_low;
-                       __le16 cluster_high;
+                       __le16 operatein5gband;
+                       __le16 hopcountmax;
                        __le16 nan_operation_control_flags;
                        __le32 spare_1;
                        __le32 spare_2;
@@ -1536,13 +1739,132 @@ struct fapi_signal {
                struct {
                        __le16 vif;
                        __le16 publish_subscribe_id;
-                       __le16 requestor_instance_id;
+                       __le16 peer_id;
                        __le16 nan_sdf_flags;
                        __le32 spare_1;
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
                } __packed mlme_nan_followup_req;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_unset_channel_req;
+               struct {
+                       __le16 vif;
+                       __le16 country_code;
+                       __le16 dfs_regulatory_domain;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_set_country_req;
+               struct {
+                       __le16 vif;
+                       __le16 wips_action;
+                       __le16 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_forward_beacon_req;
+               struct {
+                       __le16 vif;
+                       __le16 instance_id;
+                       __le16 peer_id;
+                       u8     local_ndp_interface_address[ETH_ALEN];
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_ndp_setup_req;
+               struct {
+                       __le16 vif;
+                       __le16 instance_id;
+                       __le16 reason_code;
+                       u8     local_ndp_interface_address[ETH_ALEN];
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_ndp_setup_response_req;
+               struct {
+                       __le16 vif;
+                       __le16 instance_id;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_ndp_terminate_req;
+               struct {
+                       __le16 vif;
+                       __le16 rtt_id;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_nan_add_range_req;
+               struct {
+                       __le16 vif;
+                       __le16 rtt_id;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_nan_del_range_req;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_spare_4_req;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_spare_5_req;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_spare_6_req;
+               struct {
+                       __le16 vif;
+                       __le16 filter_mode;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_install_apf_req;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_read_apf_req;
+               struct {
+                       __le16 vif;
+                       __le16 rx_nss;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_set_nss_req;
+               struct {
+                       __le16 vif;
+                       __le16 arp_detect_action;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_arp_detect_req;
                struct {
                        __le16 vif;
                        __le32 spare_1;
@@ -1822,14 +2144,6 @@ struct fapi_signal {
                        __le32 spare_3;
                        u8     dr[0];
                } __packed mlme_stop_link_statistics_cfm;
-               struct {
-                       __le16 vif;
-                       __le16 result_code;
-                       __le32 spare_1;
-                       __le32 spare_2;
-                       __le32 spare_3;
-                       u8     dr[0];
-               } __packed mlme_set_bssid_hotlist_cfm;
                struct {
                        __le16 vif;
                        __le16 result_code;
@@ -1927,7 +2241,7 @@ struct fapi_signal {
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_spare_signal_1_cfm;
+               } __packed mlme_unset_channel_cfm;
                struct {
                        __le16 vif;
                        __le16 result_code;
@@ -1935,7 +2249,7 @@ struct fapi_signal {
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_spare_signal_2_cfm;
+               } __packed mlme_set_country_cfm;
                struct {
                        __le16 vif;
                        __le16 result_code;
@@ -1943,95 +2257,97 @@ struct fapi_signal {
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_spare_signal_3_cfm;
+               } __packed mlme_forward_beacon_cfm;
                struct {
                        __le16 vif;
+                       __le16 result_code;
                        __le32 spare_1;
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_connect_res;
+               } __packed mlme_ndp_setup_cfm;
                struct {
                        __le16 vif;
-                       __le16 peer_index;
+                       __le16 result_code;
                        __le32 spare_1;
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_connected_res;
+               } __packed mlme_ndp_setup_response_cfm;
                struct {
                        __le16 vif;
+                       __le16 result_code;
                        __le32 spare_1;
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_reassociate_res;
+               } __packed mlme_ndp_terminate_cfm;
                struct {
                        __le16 vif;
+                       __le16 result_code;
+                       __le16 rtt_id;
                        __le32 spare_1;
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_roamed_res;
+               } __packed mlme_nan_add_range_cfm;
                struct {
                        __le16 vif;
-                       __le16 peer_index;
-                       __le16 tdls_event;
+                       __le16 result_code;
+                       __le16 rtt_id;
                        __le32 spare_1;
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_tdls_peer_res;
+               } __packed mlme_nan_del_range_cfm;
                struct {
                        __le16 vif;
+                       __le16 result_code;
                        __le32 spare_1;
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_spare_signal_1_res;
+               } __packed mlme_spare_4_cfm;
                struct {
+                       __le16 result_code;
                        __le16 vif;
                        __le32 spare_1;
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_spare_signal_2_res;
+               } __packed mlme_spare_5_cfm;
                struct {
+                       __le16 result_code;
                        __le16 vif;
                        __le32 spare_1;
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_spare_signal_3_res;
+               } __packed mlme_spare_6_cfm;
                struct {
                        __le16 vif;
-                       __le16 channel_frequency;
-                       __le16 rssi;
-                       __le16 scan_id;
-                       __le16 hotlisted_ap;
-                       __le16 preferrednetwork_ap;
-                       __le16 anqp_elements_length;
-                       __le16 network_block_id;
+                       __le16 result_code;
                        __le32 spare_1;
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_scan_ind;
+               } __packed mlme_install_apf_cfm;
                struct {
                        __le16 vif;
-                       __le16 scan_id;
+                       __le16 result_code;
                        __le32 spare_1;
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_scan_done_ind;
+               } __packed mlme_read_apf_cfm;
                struct {
                        __le16 vif;
+                       __le16 result_code;
                        __le32 spare_1;
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_listen_end_ind;
+               } __packed mlme_set_nss_cfm;
                struct {
                        __le16 vif;
                        __le16 result_code;
@@ -2039,15 +2355,15 @@ struct fapi_signal {
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_connect_ind;
+               } __packed mlme_arp_detect_cfm;
                struct {
                        __le16 vif;
-                       __le16 peer_index;
+                       __le16 result_code;
                        __le32 spare_1;
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_connected_ind;
+               } __packed mlme_spare_signal_1_cfm;
                struct {
                        __le16 vif;
                        __le16 result_code;
@@ -2055,7 +2371,7 @@ struct fapi_signal {
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_reassociate_ind;
+               } __packed mlme_spare_signal_2_cfm;
                struct {
                        __le16 vif;
                        __le16 result_code;
@@ -2063,98 +2379,229 @@ struct fapi_signal {
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_roam_ind;
+               } __packed mlme_spare_signal_3_cfm;
                struct {
                        __le16 vif;
-                       __le16 temporal_keys_required;
                        __le32 spare_1;
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_roamed_ind;
+               } __packed mlme_connect_res;
                struct {
                        __le16 vif;
-                       u8     peer_sta_address[ETH_ALEN];
+                       __le16 peer_index;
                        __le32 spare_1;
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_disconnect_ind;
+               } __packed mlme_connected_res;
                struct {
                        __le16 vif;
-                       u8     peer_sta_address[ETH_ALEN];
-                       __le16 reason_code;
                        __le32 spare_1;
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_disconnected_ind;
+               } __packed mlme_reassociate_res;
                struct {
                        __le16 vif;
-                       __le16 procedure_type;
-                       __le16 peer_index;
                        __le32 spare_1;
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_procedure_started_ind;
+               } __packed mlme_roamed_res;
                struct {
                        __le16 vif;
-                       u8     peer_sta_address[ETH_ALEN];
-                       __le16 key_type;
-                       __le16 key_id;
-                       __le16 key_sequence_number[8];
+                       __le16 peer_index;
+                       __le16 tdls_event;
                        __le32 spare_1;
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_mic_failure_ind;
+               } __packed mlme_tdls_peer_res;
                struct {
                        __le16 vif;
-                       __le16 host_tag;
-                       __le16 transmission_status;
-                       __le32 spare_1;
-                       __le32 spare_2;
+                       __le16 result_code;
+                       u8     bssid[ETH_ALEN];
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_frame_transmission_ind;
+               } __packed mlme_synchronised_res;
                struct {
                        __le16 vif;
-                       __le16 data_unit_descriptor;
-                       __le16 channel_frequency;
                        __le32 spare_1;
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_received_frame_ind;
+               } __packed mlme_spare_2_res;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_spare_3_res;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_spare_4_res;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_spare_signal_1_res;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_spare_signal_2_res;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_spare_signal_3_res;
+               struct {
+                       __le16 vif;
+                       __le16 channel_frequency;
+                       __le16 rssi;
+                       __le16 scan_id;
+                       __le16 hotlisted_ap;
+                       __le16 preferrednetwork_ap;
+                       __le16 anqp_elements_length;
+                       __le16 network_block_id;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_scan_ind;
+               struct {
+                       __le16 vif;
+                       __le16 scan_id;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_scan_done_ind;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_listen_end_ind;
+               struct {
+                       __le16 vif;
+                       __le16 result_code;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_connect_ind;
                struct {
                        __le16 vif;
-                       u8     peer_sta_address[ETH_ALEN];
                        __le16 peer_index;
-                       __le16 tdls_event;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_connected_ind;
+               struct {
+                       __le16 vif;
+                       __le16 result_code;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_reassociate_ind;
+               struct {
+                       __le16 vif;
+                       __le16 result_code;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_roam_ind;
+               struct {
+                       __le16 vif;
+                       __le16 temporal_keys_required;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_roamed_ind;
+               struct {
+                       __le16 vif;
+                       u8     peer_sta_address[ETH_ALEN];
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_disconnect_ind;
+               struct {
+                       __le16 vif;
+                       u8     peer_sta_address[ETH_ALEN];
                        __le16 reason_code;
                        __le32 spare_1;
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_tdls_peer_ind;
+               } __packed mlme_disconnected_ind;
                struct {
                        __le16 vif;
-                       __le16 entries;
+                       __le16 procedure_type;
+                       __le16 peer_index;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_procedure_started_ind;
+               struct {
+                       __le16 vif;
+                       u8     peer_sta_address[ETH_ALEN];
+                       __le16 key_type;
+                       __le16 key_id;
+                       __le16 key_sequence_number[8];
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_mic_failure_ind;
+               struct {
+                       __le16 vif;
+                       __le16 host_tag;
+                       __le16 transmission_status;
                        __le32 spare_1;
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_ap_loss_ind;
+               } __packed mlme_frame_transmission_ind;
                struct {
                        __le16 vif;
-                       __le16 number_of_results;
-                       __le16 number_of_rssi_entries;
+                       __le16 data_unit_descriptor;
+                       __le16 channel_frequency;
                        __le32 spare_1;
                        __le32 spare_2;
                        __le32 spare_3;
                        u8     dr[0];
-               } __packed mlme_significant_change_ind;
+               } __packed mlme_received_frame_ind;
+               struct {
+                       __le16 vif;
+                       u8     peer_sta_address[ETH_ALEN];
+                       __le16 peer_index;
+                       __le16 tdls_event;
+                       __le16 reason_code;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_tdls_peer_ind;
                struct {
                        __le16 vif;
                        u8     bssid[ETH_ALEN];
@@ -2212,7 +2659,7 @@ struct fapi_signal {
                struct {
                        __le16 vif;
                        __le16 publish_subscribe_id;
-                       __le16 requestor_instance_id;
+                       __le16 peer_id;
                        __le32 spare_1;
                        __le32 spare_2;
                        __le32 spare_3;
@@ -2221,7 +2668,7 @@ struct fapi_signal {
                struct {
                        __le16 vif;
                        __le16 publish_subscribe_id;
-                       __le16 requestor_instance_id;
+                       __le16 peer_id;
                        __le32 spare_1;
                        __le32 spare_2;
                        __le32 spare_3;
@@ -2236,6 +2683,90 @@ struct fapi_signal {
                        __le32 spare_3;
                        u8     dr[0];
                } __packed mlme_channel_switched_ind;
+               struct {
+                       __le16 vif;
+                       __le16 rssi;
+                       __le16 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_synchronised_ind;
+               struct {
+                       __le16 vif;
+                       __le16 abort_reason;
+                       __le16 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_beacon_reporting_event_ind;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_spare_3_ind;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_spare_4_ind;
+               struct {
+                       __le16 vif;
+                       __le16 instance_id;
+                       u8     peer_ndp_interface_address[ETH_ALEN];
+                       __le16 result_code;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_ndp_setup_ind;
+               struct {
+                       __le16 vif;
+                       __le16 instance_id;
+                       __le16 publish_subscribe_id;
+                       u8     peer_ndp_interface_address[ETH_ALEN];
+                       __le16 security_required;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_ndp_requested_ind;
+               struct {
+                       __le16 vif;
+                       __le16 instance_id;
+                       u8     peer_ndp_interface_address[ETH_ALEN];
+                       __le16 result_code;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_ndp_setup_response_ind;
+               struct {
+                       __le16 vif;
+                       __le16 instance_id;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_ndp_terminated_ind;
+               struct {
+                       __le16 vif;
+                       __le16 rtt_id;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_nan_add_range_ind;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed mlme_spare_5_ind;
                struct {
                        __le16 vif;
                        __le32 spare_1;
@@ -2257,6 +2788,27 @@ struct fapi_signal {
                        __le32 spare_3;
                        u8     dr[0];
                } __packed mlme_spare_signal_3_ind;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed debug_spare_1_req;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed debug_spare_2_req;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed debug_spare_3_req;
                struct {
                        __le16 vif;
                        __le32 spare_1;
@@ -2278,6 +2830,30 @@ struct fapi_signal {
                        __le32 spare_3;
                        u8     dr[0];
                } __packed debug_spare_signal_3_req;
+               struct {
+                       __le16 vif;
+                       __le16 result_code;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed debug_spare_1_cfm;
+               struct {
+                       __le16 vif;
+                       __le16 result_code;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed debug_spare_2_cfm;
+               struct {
+                       __le16 vif;
+                       __le16 result_code;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed debug_spare_3_cfm;
                struct {
                        __le16 vif;
                        __le16 result_code;
@@ -2302,6 +2878,27 @@ struct fapi_signal {
                        __le32 spare_3;
                        u8     dr[0];
                } __packed debug_spare_signal_3_cfm;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed debug_spare_1_res;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed debug_spare_2_res;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed debug_spare_3_res;
                struct {
                        __le16 vif;
                        __le32 spare_1;
@@ -2348,6 +2945,38 @@ struct fapi_signal {
                        __le32 spare_3;
                        u8     dr[0];
                } __packed debug_fault_ind;
+               struct {
+                       __le16 vif;
+                       __le16 module_id;
+                       __le16 module_sub_id;
+                       __le32 timestamp;
+                       __le16 sequence_number;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed debug_words_ind;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed debug_spare_2_ind;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed debug_spare_3_ind;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed debug_spare_4_ind;
                struct {
                        __le16 vif;
                        __le32 spare_1;
@@ -2437,10 +3066,10 @@ struct fapi_signal {
                        __le16 length;
                        __le32 interval;
                        __le16 flags;
-                       __le16 channel_description_index;
+                       __le16 aid;
                        __le16 distance_to_band_edge_half_mhz;
-                       __le16 band_oob_rule_selector;
-                       __le16 pa_voltage;
+                       __le16 regulatory_domain;
+                       __le16 spare_0;
                        __le32 spare_1;
                        __le32 spare_2;
                        __le32 spare_3;
@@ -2476,8 +3105,8 @@ struct fapi_signal {
                        __le16 channel_information;
                        __le16 flags;
                        u8     mac_addr[ETH_ALEN];
-                       __le32 reserved1;
-                       __le32 reserved2;
+                       u8     bssid[ETH_ALEN];
+                       __le16 aid;
                        __le16 num_mpdus_per_ampdu;
                        __le32 spare_1;
                        __le32 spare_2;
@@ -2648,6 +3277,27 @@ struct fapi_signal {
                        __le32 spare_3;
                        u8     dr[0];
                } __packed test_bist_get_tx_gain_req;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed test_spare_1_req;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed test_spare_2_req;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed test_spare_3_req;
                struct {
                        __le16 vif;
                        __le32 spare_1;
@@ -2741,10 +3391,14 @@ struct fapi_signal {
                        __le16 result_code;
                        __le32 freq_offset_cur;
                        __le32 freq_offset_avg;
-                       __le32 rssi_cur;
-                       __le32 rssi_avg;
-                       __le32 snr_cur;
-                       __le32 snr_avg;
+                       __le16 rssi_cur;
+                       __le16 rssi_avg;
+                       __le16 rssi_min;
+                       __le16 rssi_max;
+                       __le16 snr_cur;
+                       __le16 snr_avg;
+                       __le16 snr_min;
+                       __le16 snr_max;
                        __le32 interval;
                        __le32 spare_1;
                        __le32 spare_2;
@@ -2857,6 +3511,30 @@ struct fapi_signal {
                        __le32 spare_3;
                        u8     dr[0];
                } __packed test_bist_get_tx_gain_cfm;
+               struct {
+                       __le16 vif;
+                       __le16 result_code;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed test_spare_1_cfm;
+               struct {
+                       __le16 vif;
+                       __le16 result_code;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed test_spare_2_cfm;
+               struct {
+                       __le16 vif;
+                       __le16 result_code;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed test_spare_3_cfm;
                struct {
                        __le16 vif;
                        __le16 result_code;
@@ -2881,6 +3559,27 @@ struct fapi_signal {
                        __le32 spare_3;
                        u8     dr[0];
                } __packed test_spare_signal_3_cfm;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed test_spare_1_res;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed test_spare_2_res;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed test_spare_3_res;
                struct {
                        __le16 vif;
                        __le32 spare_1;
@@ -2968,6 +3667,27 @@ struct fapi_signal {
                        __le32 spare_3;
                        u8     dr[0];
                } __packed test_hip_tester_report_ind;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed test_spare_1_ind;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed test_spare_2_ind;
+               struct {
+                       __le16 vif;
+                       __le32 spare_1;
+                       __le32 spare_2;
+                       __le32 spare_3;
+                       u8     dr[0];
+               } __packed test_spare_3_ind;
                struct {
                        __le16 vif;
                        __le32 spare_1;
@@ -2994,7 +3714,7 @@ struct fapi_signal {
 
 static inline struct sk_buff *fapi_alloc_f(size_t sig_size, size_t data_size, u16 id, u16 vif, const char *file, int line)
 {
-       struct sk_buff                *skb = slsi_alloc_skb_headroom_f(sig_size + data_size, GFP_ATOMIC, file, line);
+       struct sk_buff                *skb = slsi_alloc_skb_f(sig_size + data_size, GFP_ATOMIC, file, line);
        struct fapi_vif_signal_header *header;
 
        WARN_ON(sig_size < sizeof(struct fapi_signal_header));
@@ -3018,6 +3738,7 @@ static inline struct sk_buff *fapi_alloc_f(size_t sig_size, size_t data_size, u1
 #define fapi_get_buff(mp_skb, mp_name) (((struct fapi_signal *)(mp_skb)->data)->mp_name)
 #define fapi_get_u16(mp_skb, mp_name) le16_to_cpu(((struct fapi_signal *)(mp_skb)->data)->mp_name)
 #define fapi_get_u32(mp_skb, mp_name) le32_to_cpu(((struct fapi_signal *)(mp_skb)->data)->mp_name)
+/*todo*/
 #define fapi_get_u64(mp_skb, mp_name) le64_to_cpu(((struct fapi_signal *)(mp_skb)->data)->mp_name)
 #define fapi_set_u16(mp_skb, mp_name, mp_value) (((struct fapi_signal *)(mp_skb)->data)->mp_name = cpu_to_le16(mp_value))
 #define fapi_set_u32(mp_skb, mp_name, mp_value) (((struct fapi_signal *)(mp_skb)->data)->mp_name = cpu_to_le32(mp_value))
@@ -3116,7 +3837,10 @@ static inline u16 fapi_get_expected_size(struct sk_buff *skb)
 {
        static const u16 fapi_ma_req_size_table[] = {
                fapi_sig_size(ma_unitdata_req),
-               fapi_sig_size(ma_control_req),
+               0,
+               fapi_sig_size(ma_spare_1_req),
+               fapi_sig_size(ma_spare_2_req),
+               fapi_sig_size(ma_spare_3_req),
                fapi_sig_size(ma_spare_signal_1_req),
                fapi_sig_size(ma_spare_signal_2_req),
                fapi_sig_size(ma_spare_signal_3_req),
@@ -3160,7 +3884,7 @@ static inline u16 fapi_get_expected_size(struct sk_buff *skb)
                fapi_sig_size(mlme_monitor_rssi_req),
                fapi_sig_size(mlme_start_link_statistics_req),
                fapi_sig_size(mlme_stop_link_statistics_req),
-               fapi_sig_size(mlme_set_bssid_hotlist_req),
+               0,
                fapi_sig_size(mlme_set_pno_list_req),
                fapi_sig_size(mlme_host_state_req),
                fapi_sig_size(mlme_add_range_req),
@@ -3172,12 +3896,30 @@ static inline u16 fapi_get_expected_size(struct sk_buff *skb)
                fapi_sig_size(mlme_nan_publish_req),
                fapi_sig_size(mlme_nan_subscribe_req),
                fapi_sig_size(mlme_nan_followup_req),
+               fapi_sig_size(mlme_unset_channel_req),
+               fapi_sig_size(mlme_set_country_req),
+               fapi_sig_size(mlme_forward_beacon_req),
+               fapi_sig_size(mlme_ndp_setup_req),
+               fapi_sig_size(mlme_ndp_setup_response_req),
+               fapi_sig_size(mlme_ndp_terminate_req),
+               fapi_sig_size(mlme_nan_add_range_req),
+               fapi_sig_size(mlme_nan_del_range_req),
+               fapi_sig_size(mlme_spare_4_req),
+               fapi_sig_size(mlme_spare_5_req),
+               fapi_sig_size(mlme_spare_6_req),
+               fapi_sig_size(mlme_install_apf_req),
+               fapi_sig_size(mlme_read_apf_req),
+               fapi_sig_size(mlme_set_nss_req),
+               fapi_sig_size(mlme_arp_detect_req),
                fapi_sig_size(mlme_spare_signal_1_req),
                fapi_sig_size(mlme_spare_signal_2_req),
                fapi_sig_size(mlme_spare_signal_3_req),
        };
 
        static const u16 fapi_debug_req_size_table[] = {
+               fapi_sig_size(debug_spare_1_req),
+               fapi_sig_size(debug_spare_2_req),
+               fapi_sig_size(debug_spare_3_req),
                fapi_sig_size(debug_spare_signal_1_req),
                fapi_sig_size(debug_spare_signal_2_req),
                fapi_sig_size(debug_spare_signal_3_req),
@@ -3216,6 +3958,9 @@ static inline u16 fapi_get_expected_size(struct sk_buff *skb)
                fapi_sig_size(test_hip_tester_set_params_req),
                fapi_sig_size(test_hip_tester_report_req),
                fapi_sig_size(test_bist_get_tx_gain_req),
+               fapi_sig_size(test_spare_1_req),
+               fapi_sig_size(test_spare_2_req),
+               fapi_sig_size(test_spare_3_req),
                fapi_sig_size(test_spare_signal_1_req),
                fapi_sig_size(test_spare_signal_2_req),
                fapi_sig_size(test_spare_signal_3_req),
@@ -3223,7 +3968,10 @@ static inline u16 fapi_get_expected_size(struct sk_buff *skb)
 
        static const u16 fapi_ma_cfm_size_table[] = {
                fapi_sig_size(ma_unitdata_cfm),
-               fapi_sig_size(ma_control_cfm),
+               0,
+               fapi_sig_size(ma_spare_1_cfm),
+               fapi_sig_size(ma_spare_2_cfm),
+               fapi_sig_size(ma_spare_3_cfm),
                fapi_sig_size(ma_spare_signal_1_cfm),
                fapi_sig_size(ma_spare_signal_2_cfm),
                fapi_sig_size(ma_spare_signal_3_cfm),
@@ -3267,7 +4015,7 @@ static inline u16 fapi_get_expected_size(struct sk_buff *skb)
                fapi_sig_size(mlme_monitor_rssi_cfm),
                fapi_sig_size(mlme_start_link_statistics_cfm),
                fapi_sig_size(mlme_stop_link_statistics_cfm),
-               fapi_sig_size(mlme_set_bssid_hotlist_cfm),
+               0,
                fapi_sig_size(mlme_set_pno_list_cfm),
                fapi_sig_size(mlme_host_state_cfm),
                fapi_sig_size(mlme_add_range_cfm),
@@ -3279,12 +4027,30 @@ static inline u16 fapi_get_expected_size(struct sk_buff *skb)
                fapi_sig_size(mlme_nan_publish_cfm),
                fapi_sig_size(mlme_nan_subscribe_cfm),
                fapi_sig_size(mlme_nan_followup_cfm),
+               fapi_sig_size(mlme_unset_channel_cfm),
+               fapi_sig_size(mlme_set_country_cfm),
+               fapi_sig_size(mlme_forward_beacon_cfm),
+               fapi_sig_size(mlme_ndp_setup_cfm),
+               fapi_sig_size(mlme_ndp_setup_response_cfm),
+               fapi_sig_size(mlme_ndp_terminate_cfm),
+               fapi_sig_size(mlme_nan_add_range_cfm),
+               fapi_sig_size(mlme_nan_del_range_cfm),
+               fapi_sig_size(mlme_spare_4_cfm),
+               fapi_sig_size(mlme_spare_5_cfm),
+               fapi_sig_size(mlme_spare_6_cfm),
+               fapi_sig_size(mlme_install_apf_cfm),
+               fapi_sig_size(mlme_read_apf_cfm),
+               fapi_sig_size(mlme_set_nss_cfm),
+               fapi_sig_size(mlme_arp_detect_cfm),
                fapi_sig_size(mlme_spare_signal_1_cfm),
                fapi_sig_size(mlme_spare_signal_2_cfm),
                fapi_sig_size(mlme_spare_signal_3_cfm),
        };
 
        static const u16 fapi_debug_cfm_size_table[] = {
+               fapi_sig_size(debug_spare_1_cfm),
+               fapi_sig_size(debug_spare_2_cfm),
+               fapi_sig_size(debug_spare_3_cfm),
                fapi_sig_size(debug_spare_signal_1_cfm),
                fapi_sig_size(debug_spare_signal_2_cfm),
                fapi_sig_size(debug_spare_signal_3_cfm),
@@ -3314,6 +4080,9 @@ static inline u16 fapi_get_expected_size(struct sk_buff *skb)
                fapi_sig_size(test_hip_tester_stop_cfm),
                fapi_sig_size(test_hip_tester_set_params_cfm),
                fapi_sig_size(test_bist_get_tx_gain_cfm),
+               fapi_sig_size(test_spare_1_cfm),
+               fapi_sig_size(test_spare_2_cfm),
+               fapi_sig_size(test_spare_3_cfm),
                fapi_sig_size(test_spare_signal_1_cfm),
                fapi_sig_size(test_spare_signal_2_cfm),
                fapi_sig_size(test_spare_signal_3_cfm),
@@ -3322,6 +4091,9 @@ static inline u16 fapi_get_expected_size(struct sk_buff *skb)
        static const u16 fapi_ma_ind_size_table[] = {
                fapi_sig_size(ma_unitdata_ind),
                fapi_sig_size(ma_blockack_ind),
+               fapi_sig_size(ma_spare_1_ind),
+               fapi_sig_size(ma_spare_2_ind),
+               fapi_sig_size(ma_spare_3_ind),
                fapi_sig_size(ma_spare_signal_1_ind),
                fapi_sig_size(ma_spare_signal_2_ind),
                fapi_sig_size(ma_spare_signal_3_ind),
@@ -3344,8 +4116,8 @@ static inline u16 fapi_get_expected_size(struct sk_buff *skb)
                fapi_sig_size(mlme_received_frame_ind),
                0,
                fapi_sig_size(mlme_tdls_peer_ind),
-               fapi_sig_size(mlme_ap_loss_ind),
-               fapi_sig_size(mlme_significant_change_ind),
+               0,
+               0,
                fapi_sig_size(mlme_rssi_report_ind),
                fapi_sig_size(mlme_ac_priority_update_ind),
                fapi_sig_size(mlme_range_ind),
@@ -3355,6 +4127,16 @@ static inline u16 fapi_get_expected_size(struct sk_buff *skb)
                fapi_sig_size(mlme_nan_service_ind),
                fapi_sig_size(mlme_nan_followup_ind),
                fapi_sig_size(mlme_channel_switched_ind),
+               fapi_sig_size(mlme_synchronised_ind),
+               fapi_sig_size(mlme_beacon_reporting_event_ind),
+               fapi_sig_size(mlme_spare_3_ind),
+               fapi_sig_size(mlme_spare_4_ind),
+               fapi_sig_size(mlme_ndp_setup_ind),
+               fapi_sig_size(mlme_ndp_requested_ind),
+               fapi_sig_size(mlme_ndp_setup_response_ind),
+               fapi_sig_size(mlme_ndp_terminated_ind),
+               fapi_sig_size(mlme_nan_add_range_ind),
+               fapi_sig_size(mlme_spare_5_ind),
                fapi_sig_size(mlme_spare_signal_1_ind),
                fapi_sig_size(mlme_spare_signal_2_ind),
                fapi_sig_size(mlme_spare_signal_3_ind),
@@ -3363,6 +4145,10 @@ static inline u16 fapi_get_expected_size(struct sk_buff *skb)
        static const u16 fapi_debug_ind_size_table[] = {
                fapi_sig_size(debug_word12_ind),
                fapi_sig_size(debug_fault_ind),
+               fapi_sig_size(debug_words_ind),
+               fapi_sig_size(debug_spare_2_ind),
+               fapi_sig_size(debug_spare_3_ind),
+               fapi_sig_size(debug_spare_4_ind),
                fapi_sig_size(debug_spare_signal_1_ind),
                fapi_sig_size(debug_spare_signal_2_ind),
                fapi_sig_size(debug_spare_signal_3_ind),
@@ -3374,6 +4160,9 @@ static inline u16 fapi_get_expected_size(struct sk_buff *skb)
                fapi_sig_size(debug_pkt_sink_report_ind),
                fapi_sig_size(debug_pkt_gen_report_ind),
                fapi_sig_size(test_hip_tester_report_ind),
+               fapi_sig_size(test_spare_1_ind),
+               fapi_sig_size(test_spare_2_ind),
+               fapi_sig_size(test_spare_3_ind),
                fapi_sig_size(test_spare_signal_1_ind),
                fapi_sig_size(test_spare_signal_2_ind),
                fapi_sig_size(test_spare_signal_3_ind),
@@ -3385,24 +4174,37 @@ static inline u16 fapi_get_expected_size(struct sk_buff *skb)
                fapi_sig_size(mlme_reassociate_res),
                fapi_sig_size(mlme_roamed_res),
                fapi_sig_size(mlme_tdls_peer_res),
+               fapi_sig_size(mlme_synchronised_res),
+               fapi_sig_size(mlme_spare_2_res),
+               fapi_sig_size(mlme_spare_3_res),
+               fapi_sig_size(mlme_spare_4_res),
                fapi_sig_size(mlme_spare_signal_1_res),
                fapi_sig_size(mlme_spare_signal_2_res),
                fapi_sig_size(mlme_spare_signal_3_res),
        };
 
        static const u16 fapi_ma_res_size_table[] = {
+               fapi_sig_size(ma_spare_1_res),
+               fapi_sig_size(ma_spare_2_res),
+               fapi_sig_size(ma_spare_3_res),
                fapi_sig_size(ma_spare_signal_1_res),
                fapi_sig_size(ma_spare_signal_2_res),
                fapi_sig_size(ma_spare_signal_3_res),
        };
 
        static const u16 fapi_debug_res_size_table[] = {
+               fapi_sig_size(debug_spare_1_res),
+               fapi_sig_size(debug_spare_2_res),
+               fapi_sig_size(debug_spare_3_res),
                fapi_sig_size(debug_spare_signal_1_res),
                fapi_sig_size(debug_spare_signal_2_res),
                fapi_sig_size(debug_spare_signal_3_res),
        };
 
        static const u16 fapi_test_res_size_table[] = {
+               fapi_sig_size(test_spare_1_res),
+               fapi_sig_size(test_spare_2_res),
+               fapi_sig_size(test_spare_3_res),
                fapi_sig_size(test_spare_signal_1_res),
                fapi_sig_size(test_spare_signal_2_res),
                fapi_sig_size(test_spare_signal_3_res),
index cfb5296b5646062ee7a40724e8d51db099f90b7c..b4686df6e802349fe9518c540948d07bff3830f5 100755 (executable)
@@ -3672,7 +3672,7 @@ static void slsi_p2p_unset_channel_expiry_work(struct work_struct *work)
 
                        /* Send Unset Channel */
                        if (ndev_vif->driver_channel != 0) {
-                               slsi_mlme_spare_signal_1(sdev, dev);
+                       slsi_mlme_unset_channel_req(sdev, dev);
                                ndev_vif->driver_channel = 0;
                        }
                }
index 4ff895dbf4a81ee67b9cd8d168e0a3185ec31feb..b82b5889dd9b607ed4496f69d101d82d2588be13 100755 (executable)
 #define SLSI_SCAN_CHANNEL_DESCRIPTOR_SIZE      3
 #define SLSI_CHANN_INFO_HT_SCB  0x0100
 
-#ifdef CONFIG_SCSC_WLAN_GSCAN_ENABLE
-#define SLSI_FW_MAX_BSSID_PER_TRACKING_IE   (20)
-#define SLSI_FW_BSSID_DESCRIPTOR_BSS_SIZE   (10)
-#endif
-
 #define SLSI_NOA_CONFIG_REQUEST_ID          (1)
 #define SLSI_MLME_ARP_DROP_FREE_SLOTS_COUNT 16
 
@@ -931,28 +926,28 @@ int slsi_mlme_set_channel(struct slsi_dev *sdev, struct net_device *dev, struct
        return r;
 }
 
-int slsi_mlme_spare_signal_1(struct slsi_dev *sdev, struct net_device *dev)
+int slsi_mlme_unset_channel_req(struct slsi_dev *sdev, struct net_device *dev)
 {
        struct netdev_vif *ndev_vif = netdev_priv(dev);
        struct sk_buff    *req;
        struct sk_buff    *cfm;
        int                  r = 0;
 
-       SLSI_NET_DBG3(dev, SLSI_MLME, "slsi_mlme_spare_signal_1\n");
+       SLSI_NET_DBG3(dev, SLSI_MLME, "slsi_mlme_unset_channel_req\n");
 
-       req = fapi_alloc(mlme_spare_signal_1_req, MLME_SPARE_SIGNAL_1_REQ, ndev_vif->ifnum, 0);
+       req = fapi_alloc(mlme_unset_channel_req, MLME_UNSET_CHANNEL_REQ, ndev_vif->ifnum, 0);
 
        if (!req)
                return -ENOMEM;
 
-       cfm = slsi_mlme_req_cfm(sdev, dev, req, MLME_SPARE_SIGNAL_1_CFM);
+       cfm = slsi_mlme_req_cfm(sdev, dev, req, MLME_UNSET_CHANNEL_CFM);
 
        if (!cfm)
                return -EIO;
 
-       if (fapi_get_u16(cfm, u.mlme_set_channel_cfm.result_code) != FAPI_RESULTCODE_SUCCESS) {
-               SLSI_NET_ERR(dev, "mlme_spare_channel_cfm(result:0x%04x) ERROR\n",
-                            fapi_get_u16(cfm, u.mlme_set_channel_cfm.result_code));
+       if (fapi_get_u16(cfm, u.mlme_unset_channel_cfm.result_code) != FAPI_RESULTCODE_SUCCESS) {
+               SLSI_NET_ERR(dev, "mlme_unset_channel_cfm(result:0x%04x) ERROR\n",
+                            fapi_get_u16(cfm, u.mlme_unset_channel_cfm.result_code));
                r = -EINVAL;
        }
 
@@ -1013,81 +1008,6 @@ static bool slsi_scan_cfm_validate(struct slsi_dev *sdev, struct net_device *dev
 }
 
 #ifdef CONFIG_SCSC_WLAN_GSCAN_ENABLE
-int slsi_mlme_set_bssid_hotlist_req(struct slsi_dev *sdev, struct net_device *dev, struct slsi_nl_hotlist_param *nl_hotlist_param)
-{
-       struct sk_buff *req;
-       struct sk_buff *cfm;
-       int            i;
-       int            num_desc;
-       int            alloc_data_size;
-       int            remaining_ap;
-       u8             bssid_desc[] = { 0xdd,             /* Element ID */
-                                       0x00,             /* Length */
-                                       0x00, 0x16, 0x32, /* Samsung OUI */
-                                       0x01,             /* OUI Type: Scan Parameters */
-                                       0x05,             /* OUI Subtype: BSSID Descriptor */
-                                       0x00,             /* AP Lost Threshold */
-       };
-
-       if (nl_hotlist_param) {
-               /* One BSSID descriptor can contain SLSI_GSCAN_MAX_BSSID_PER_IE AP information */
-               num_desc =  (nl_hotlist_param->num_bssid / SLSI_GSCAN_MAX_BSSID_PER_IE);
-               if (nl_hotlist_param->num_bssid % SLSI_GSCAN_MAX_BSSID_PER_IE)
-                       num_desc++;
-
-               alloc_data_size = (num_desc * sizeof(bssid_desc)) + (nl_hotlist_param->num_bssid * SLSI_FW_BSSID_DESCRIPTOR_BSS_SIZE);
-               req = fapi_alloc(mlme_set_bssid_hotlist_req, MLME_SET_BSSID_HOTLIST_REQ, 0, alloc_data_size);
-               if (!req) {
-                       SLSI_NET_ERR(dev, "Failed to allocate memory\n");
-                       return -ENOMEM;
-               }
-
-               remaining_ap = nl_hotlist_param->num_bssid;
-               bssid_desc[7] = nl_hotlist_param->lost_ap_sample_size;
-               for (i = 0; i < nl_hotlist_param->num_bssid; i++) {
-                       if ((i % SLSI_GSCAN_MAX_BSSID_PER_IE) == 0) {
-                               if (remaining_ap > SLSI_GSCAN_MAX_BSSID_PER_IE) {
-                                       bssid_desc[1] = sizeof(bssid_desc) - 2 + (SLSI_GSCAN_MAX_BSSID_PER_IE * SLSI_FW_BSSID_DESCRIPTOR_BSS_SIZE); /* Length */
-                                       remaining_ap -= SLSI_GSCAN_MAX_BSSID_PER_IE;
-                               } else {
-                                       bssid_desc[1] = sizeof(bssid_desc) - 2 + (remaining_ap * SLSI_FW_BSSID_DESCRIPTOR_BSS_SIZE); /* Length */
-                               }
-
-                               fapi_append_data(req, bssid_desc, sizeof(bssid_desc));
-                       }
-
-                       fapi_append_data(req, (u8 *)&nl_hotlist_param->ap[i].bssid[0], ETH_ALEN);
-
-                       nl_hotlist_param->ap[i].low = cpu_to_le16(nl_hotlist_param->ap[i].low);
-                       fapi_append_data(req, (u8 *)&nl_hotlist_param->ap[i].low, 2);
-
-                       nl_hotlist_param->ap[i].high = cpu_to_le16(nl_hotlist_param->ap[i].high);
-                       fapi_append_data(req, (u8 *)&nl_hotlist_param->ap[i].high, 2);
-               }
-       } else {
-               req = fapi_alloc(mlme_set_bssid_hotlist_req, MLME_SET_BSSID_HOTLIST_REQ, 0, 0);
-               if (!req) {
-                       SLSI_NET_ERR(dev, "Failed to allocate memory\n");
-                       return -ENOMEM;
-               }
-       }
-
-       cfm = slsi_mlme_req_cfm(sdev, NULL, req, MLME_SET_BSSID_HOTLIST_CFM);
-       if (!cfm)
-               return -EIO;
-
-       SLSI_DBG2(sdev, SLSI_GSCAN, "mlme_set_bssid_hotlist_cfm(datalen:%u)\n", fapi_get_datalen(cfm));
-       if (fapi_get_u16(cfm, u.mlme_set_bssid_hotlist_cfm.result_code) != FAPI_RESULTCODE_SUCCESS) {
-               SLSI_NET_ERR(dev, "mlme_set_bssid_hotlist_cfm(result:0x%04x) ERROR\n",
-                            fapi_get_u16(cfm, u.mlme_set_bssid_hotlist_cfm.result_code));
-               slsi_kfree_skb(cfm);
-               return -EINVAL;
-       }
-
-       slsi_kfree_skb(cfm);
-       return 0;
-}
-
 int slsi_mlme_append_gscan_channel_list(struct slsi_dev             *sdev,
                                        struct net_device           *dev,
                                        struct sk_buff              *req,
@@ -2919,21 +2839,20 @@ int slsi_mlme_synchronised_response(struct slsi_dev *sdev, struct net_device *de
        struct sk_buff    *req;
        struct sk_buff    *cfm;
        if (ndev_vif->activated) {
-               SLSI_NET_DBG3(dev, SLSI_MLME, "MLME_SPARE_SIGNAL_1_RES\n");
+               SLSI_NET_DBG3(dev, SLSI_MLME, "MLME_SYNCHRONISED_RES\n");
 
-               req = fapi_alloc(mlme_spare_signal_1_res, MLME_SPARE_SIGNAL_1_RES, ndev_vif->ifnum, 0);
+               req = fapi_alloc(mlme_synchronised_res, MLME_SYNCHRONISED_RES, ndev_vif->ifnum, 0);
                if (!req)
                        return -ENOMEM;
 
-               fapi_set_low16_u32(req, u.mlme_spare_signal_1_res.spare_1, params->status);
-               fapi_set_high16_u32(req, u.mlme_spare_signal_1_res.spare_1, *(u16 *)(&params->bssid[0]));
-               fapi_set_u32(req, u.mlme_spare_signal_1_res.spare_2, *(u32 *)(&params->bssid[2]));
+               fapi_set_u16(req, u.mlme_synchronised_res.result_code, params->status);
+               fapi_set_memcpy(req, u.mlme_synchronised_res.bssid, params->bssid);
 
                SLSI_NET_DBG2(dev, SLSI_MLME, "mlme_synchronised_response(vif:%d) status:%d\n",
                              ndev_vif->ifnum, params->status);
                cfm = slsi_mlme_req_no_cfm(sdev, dev, req);
                if (cfm)
-                       SLSI_NET_ERR(dev, "Received cfm for MLME_SPARE_SIGNAL_1_RES\n");
+                       SLSI_NET_ERR(dev, "Received cfm for MLME_SYNCHRONISED_RES\n");
        } else
                SLSI_NET_DBG1(dev, SLSI_MLME, "vif is not active");
 
@@ -3729,153 +3648,14 @@ void slsi_mlme_reassociate_resp(struct slsi_dev *sdev, struct net_device *dev)
        WARN_ON(cfm);
 }
 
-#ifdef CONFIG_SCSC_WLAN_GSCAN_ENABLE
-int slsi_mlme_gscan_append_tracking_channels(struct slsi_dev   *sdev,
-                                            struct net_device *dev,
-                                            struct sk_buff    *skb,
-                                            struct slsi_gscan *gscan)
-{
-       u32 n_channels = 0;
-       int len = 0;
-
-       if (gscan->nl_bucket.band == WIFI_BAND_UNSPECIFIED)
-               n_channels = gscan->nl_bucket.num_channels;
-       else
-               n_channels = 1;
-
-       SLSI_DBG3(sdev, SLSI_GSCAN, "num chan: %d", n_channels);
-       if (skb) {
-               int r = slsi_mlme_append_gscan_channel_list(sdev, dev, skb, &gscan->nl_bucket);
-
-               if (r) {
-                       SLSI_ERR(sdev, "Error appending channel list [%d]\n", r);
-                       return r;
-               }
-       } else {
-               len = SLSI_SCAN_PRIVATE_IE_CHANNEL_LIST_HEADER_LEN + (n_channels * SLSI_SCAN_CHANNEL_DESCRIPTOR_SIZE);
-       }
-       return len;
-}
-
-int slsi_mlme_significant_change_set(struct slsi_dev *sdev, struct net_device *dev,
-                                    struct slsi_nl_significant_change_params *significant_param_ptr)
-{
-       struct sk_buff    *req;
-       struct sk_buff    *rx;
-       int               r = 0;
-       size_t            alloc_data_size;
-       u32               i, j;
-       u32               num_bssid_descriptor_ies;
-       struct slsi_gscan *gscan = sdev->gscan;
-
-       u8                scan_timing_ie[] = {
-               0xdd,                           /* Element ID: Vendor Specific */
-               0x11,                           /* Length */
-               0x00, 0x16, 0x32,               /* OUI: Samsung Electronics Co. */
-               0x01,                           /* OUI Type: Scan parameters */
-               0x01,                           /* OUI Subtype: Scan timing */
-               0x00, 0x00, 0x00, 0x00,         /* Min_Period:  filled later in the function */
-               0x00, 0x00, 0x00, 0x00,         /* Max_Period:  filled later in the function */
-               0x00,                           /* Exponent */
-               0x00,                           /* Step count */
-               0x00, 0x00                      /* Skip first period: false */
-       };
-
-       u8                change_tracking_ie[] = {  /* wifi change tracking ie*/
-               0xdd, 0x07,                         /* VENDOR_SPECIFIC, LEN */
-               0x00, 0x16, 0x32,                   /* OUI */
-               0x01, 0x06,                         /* OUI Type, OUI sub-type */
-               0x00,                               /* The number of samples needed for averaging RSSI */
-               0x00                                /* Min num of APs breaching low_RSSI_Threshold that are needed before informing the host */
-       };
-
-       u8                bssid_descriptor_ie[] = {                 /* Bssid descriptor list ie*/
-               0xdd, 6 + (SLSI_FW_MAX_BSSID_PER_TRACKING_IE * SLSI_FW_BSSID_DESCRIPTOR_BSS_SIZE), /* VENDOR_SPECIFIC, LEN(update later) */
-               0x00, 0x16, 0x32,                                   /* OUI */
-               0x01, 0x05,                                         /* OUI Type, OUI sub-type */
-               0x00,                                               /* ap lost threshold */
-       };
-
-       if (slsi_is_test_mode_enabled()) {
-               SLSI_NET_INFO(dev, "Skip sending signal, WlanLite FW does not support MLME_ADD_SCAN.request\n");
-               return -EOPNOTSUPP;
-       }
-
-       if (WARN_ON(!(dev->dev_addr)))
-               return -EINVAL;
-
-       change_tracking_ie[7] = (u8)significant_param_ptr->rssi_sample_size;
-       change_tracking_ie[8] = (u8)significant_param_ptr->min_breaching;
-       num_bssid_descriptor_ies = significant_param_ptr->num_bssid / SLSI_FW_MAX_BSSID_PER_TRACKING_IE;
-       if (significant_param_ptr->num_bssid % SLSI_FW_MAX_BSSID_PER_TRACKING_IE)
-               num_bssid_descriptor_ies++;
-
-       alloc_data_size = sizeof(scan_timing_ie) + sizeof(change_tracking_ie)
-                         + sizeof(bssid_descriptor_ie) * num_bssid_descriptor_ies
-                         + SLSI_FW_BSSID_DESCRIPTOR_BSS_SIZE * significant_param_ptr->num_bssid
-                         + slsi_mlme_gscan_append_tracking_channels(sdev, dev, NULL, gscan);
-
-       req = fapi_alloc(mlme_add_scan_req, MLME_ADD_SCAN_REQ, 0, alloc_data_size);
-       if (!req)
-               return -ENOMEM;
-
-       fapi_set_u16(req, u.mlme_add_scan_req.scan_id, gscan->bucket[0]->scan_id);
-       fapi_set_u16(req, u.mlme_add_scan_req.scan_type, FAPI_SCANTYPE_GSCAN);
-       fapi_set_memcpy(req, u.mlme_add_scan_req.device_address, dev->dev_addr);
-       fapi_set_u16(req, u.mlme_add_scan_req.report_mode_bitmap, FAPI_REPORTMODE_REAL_TIME);
-
-       r = slsi_mlme_gscan_append_tracking_channels(sdev, dev, req, gscan);
-       if (r != 0) {
-               slsi_kfree_skb(req);
-               return r;
-       }
-
-       SLSI_U32_TO_BUFF_LE((gscan->nl_bucket.period * 1000), &scan_timing_ie[7]);
-       fapi_append_data(req, scan_timing_ie, sizeof(scan_timing_ie));
-       fapi_append_data(req, change_tracking_ie, sizeof(change_tracking_ie));
-
-       bssid_descriptor_ie[7] = significant_param_ptr->lost_ap_sample_size;
-       for (i = 0; i < num_bssid_descriptor_ies; i++) {
-               u8 bss_num = significant_param_ptr->num_bssid - (i * SLSI_FW_MAX_BSSID_PER_TRACKING_IE);
-
-               if (bss_num < SLSI_FW_MAX_BSSID_PER_TRACKING_IE)
-                       bssid_descriptor_ie[1] = 6 + (SLSI_FW_BSSID_DESCRIPTOR_BSS_SIZE * bss_num);
-               else
-                       bss_num = SLSI_FW_MAX_BSSID_PER_TRACKING_IE;
-
-               fapi_append_data(req, bssid_descriptor_ie, sizeof(bssid_descriptor_ie));
-               for (j = i * SLSI_FW_MAX_BSSID_PER_TRACKING_IE; j < (i * SLSI_FW_MAX_BSSID_PER_TRACKING_IE + bss_num); j++) {
-                       fapi_append_data(req, significant_param_ptr->ap[j].bssid, ETH_ALEN);
-                       fapi_append_data(req, (u8 *)&significant_param_ptr->ap[j].low, 2);
-                       fapi_append_data(req, (u8 *)&significant_param_ptr->ap[j].high, 2);
-               }
-       }
-
-       /* Use the Global sig_wait not the Interface specific for Scan Req */
-       rx = slsi_mlme_req_cfm(sdev, NULL, req, MLME_ADD_SCAN_CFM);
-       if (!rx) {
-               gscan->bucket[0]->for_change_tracking = false;
-               return -EIO;
-       } else if (fapi_get_u16(rx, u.mlme_add_scan_cfm.result_code) != FAPI_RESULTCODE_SUCCESS) {
-               gscan->bucket[0]->for_change_tracking = false;
-               SLSI_NET_ERR(dev, "mlme_add_scan_cfm(ERROR:0x%04x)", fapi_get_u16(rx, u.mlme_add_scan_cfm.result_code));
-               r = -EINVAL;
-       } else {
-               gscan->bucket[0]->for_change_tracking = true;
-       }
-       slsi_kfree_skb(rx);
-
-       return r;
-}
-
 int slsi_mlme_add_range_req(struct slsi_dev *sdev, u8 count,
-                           struct slsi_rtt_config *nl_rtt_params, u16 rtt_id, u16 vif_idx)
+                           struct slsi_rtt_config *nl_rtt_params, u16 rtt_id, u16 vif_idx, u8 *source_addr)
 {
        struct sk_buff *req;
        struct sk_buff *rx;
        int            r = 0, i;
        size_t         alloc_data_size = 0;
-       u8             fapi_ie_generic[] = { 0xdd, 0x24, 0x00, 0x16, 0x32, 0x0a, 0x01 };
+       u8             fapi_ie_generic[] = { 0xdd, 0x1c, 0x00, 0x16, 0x32, 0x0a, 0x01 };
        /* calculate data size */
        alloc_data_size += count * (fapi_ie_generic[1] + 2);
 
@@ -3884,17 +3664,17 @@ int slsi_mlme_add_range_req(struct slsi_dev *sdev, u8 count,
                SLSI_ERR(sdev, "failed to alloc %zd\n", alloc_data_size);
                return -ENOMEM;
        }
-       SLSI_DBG2(sdev, SLSI_MLME, "count-->%d allocated data size: %d\n", count, alloc_data_size);
+       SLSI_DBG2(sdev, SLSI_MLME, "count:%d allocated data size: %d, source_addr:%pM\n",
+                 count, alloc_data_size, source_addr);
        /*fill the data */
        fapi_set_u16(req, u.mlme_add_range_req.vif, vif_idx);
        fapi_set_u16(req, u.mlme_add_range_req.rtt_id, rtt_id);
+       fapi_set_memcpy(req, u.mlme_add_range_req.device_address, source_addr);
        for (i = 0; i < count; i++) {
                fapi_append_data(req, fapi_ie_generic, sizeof(fapi_ie_generic));
-               fapi_append_data(req, nl_rtt_params[i].source_addr, ETH_ALEN);
                fapi_append_data(req, nl_rtt_params[i].peer_addr, ETH_ALEN);
                fapi_append_data(req, (u8 *)&nl_rtt_params[i].type, 2);
                fapi_append_data(req, (u8 *)&nl_rtt_params[i].channel_freq, 2);
-               fapi_append_data(req, (u8 *)&nl_rtt_params[i].channel_info, 2);
                fapi_append_data(req, (u8 *)&nl_rtt_params[i].burst_period, 1);
                fapi_append_data(req, (u8 *)&nl_rtt_params[i].num_burst, 1);
                fapi_append_data(req, (u8 *)&nl_rtt_params[i].num_frames_per_burst, 1);
@@ -3974,6 +3754,7 @@ int slsi_mlme_del_range_req(struct slsi_dev *sdev, struct net_device *dev, u16 c
        return r;
 }
 
+#ifdef CONFIG_SCSC_WLAN_GSCAN_ENABLE
 #define SLSI_FAPI_EPNO_NETWORK_MIN_SIZE (3)
 int slsi_mlme_set_pno_list(struct slsi_dev *sdev, int count,
                           struct slsi_epno_param *epno_param, struct slsi_epno_hs2_param *epno_hs2_param)
index fd2ed107168f2c0ea3c8408c2e2c3199f8ddd2e4..ea79a4309027863ebca142ca871c883da79fd27a 100755 (executable)
@@ -153,7 +153,7 @@ void slsi_mlme_del_vif(struct slsi_dev *sdev, struct net_device *dev);
 int slsi_mlme_set_channel(struct slsi_dev *sdev, struct net_device *dev, struct ieee80211_channel *chan, u16 duration, u16 interval, u16 count);
 void slsi_ap_obss_scan_done_ind(struct net_device *dev, struct netdev_vif *ndev_vif);
 
-int slsi_mlme_spare_signal_1(struct slsi_dev *sdev, struct net_device *dev);
+int slsi_mlme_unset_channel_req(struct slsi_dev *sdev, struct net_device *dev);
 
 u16 slsi_compute_chann_info(struct slsi_dev *sdev, u16 width, u16 center_freq0, u16 channel_freq);
 /**
@@ -238,7 +238,6 @@ int slsi_mlme_set_traffic_parameters(struct slsi_dev *sdev, struct net_device *d
 int slsi_mlme_del_traffic_parameters(struct slsi_dev *sdev, struct net_device *dev, u16 user_priority);
 
 #ifdef CONFIG_SCSC_WLAN_GSCAN_ENABLE
-int slsi_mlme_significant_change_set(struct slsi_dev *sdev, struct net_device *dev, struct slsi_nl_significant_change_params *significant_param_ptr);
 int slsi_mlme_set_pno_list(struct slsi_dev *sdev, int count,
                           struct slsi_epno_param *epno_param, struct slsi_epno_hs2_param *epno_hs2_param);
 int slsi_mlme_start_link_stats_req(struct slsi_dev *sdev, u16 mpdu_size_threshold, bool aggressive_statis_enabled);
index 579cec35dada041aea025053f40e6519a6cffe0a..fbe13d1f1ff7a438dc01872d59cb8728d98527df 100755 (executable)
@@ -163,13 +163,14 @@ int slsi_mlme_nan_enable(struct slsi_dev *sdev, struct net_device *dev, struct s
                return -ENOMEM;
        }
 
-       if (hal_req->config_cluster_attribute_val)
-               nan_oper_ctrl |= FAPI_NANOPERATIONCONTROL_CLUSTER_SDF;
+       /* if (hal_req->config_cluster_attribute_val)
+        * nan_oper_ctrl |= FAPI_NANOPERATIONCONTROL_CLUSTER_SDF;
+        */
        nan_oper_ctrl |= FAPI_NANOPERATIONCONTROL_MAC_ADDRESS_EVENT | FAPI_NANOPERATIONCONTROL_START_CLUSTER_EVENT |
                        FAPI_NANOPERATIONCONTROL_JOINED_CLUSTER_EVENT;
 
-       fapi_set_u16(req, u.mlme_nan_start_req.cluster_low, hal_req->cluster_low);
-       fapi_set_u16(req, u.mlme_nan_start_req.cluster_high, hal_req->cluster_high);
+       //fapi_set_u16(req, u.mlme_nan_start_req.cluster_low, hal_req->cluster_low);
+       //fapi_set_u16(req, u.mlme_nan_start_req.cluster_high, hal_req->cluster_high);
        fapi_set_u16(req, u.mlme_nan_start_req.nan_operation_control_flags, nan_oper_ctrl);
 
        slsi_mlme_nan_enable_fapi_data(req, hal_req);
@@ -480,11 +481,13 @@ int slsi_mlme_nan_tx_followup(struct slsi_dev *sdev, struct net_device *dev,
        /* Set/Enable corresponding bits to disable responses after followUp.
         * BIT0 - Disable followUp response from FW.
         */
-       if (hal_req->recv_indication_cfg & BIT(0))
-               nan_sdf_flags |= FAPI_NANSDFCONTROL_DISABLE_RESPONSES_AFTER_FOLLOWUP;
+       /* if (hal_req->recv_indication_cfg & BIT(0))
+        *  nan_sdf_flags |= FAPI_NANSDFCONTROL_DISABLE_RESPONSES_AFTER_FOLLOWUP;
+        */
 
        fapi_set_u16(req, u.mlme_nan_followup_req.publish_subscribe_id, hal_req->publish_subscribe_id);
-       fapi_set_u16(req, u.mlme_nan_followup_req.requestor_instance_id, hal_req->requestor_instance_id);
+       fapi_set_u16(req, u.mlme_nan_followup_req.peer_id, hal_req->requestor_instance_id);
+       /*fapi_set_u16(req, u.mlme_nan_followup_req.requestor_instance_id, hal_req->requestor_instance_id);*/
        fapi_set_u16(req, u.mlme_nan_subscribe_req.nan_sdf_flags, nan_sdf_flags);
 
        slsi_mlme_nan_followup_fapi_data(req, hal_req);
@@ -589,8 +592,9 @@ int slsi_mlme_nan_set_config(struct slsi_dev *sdev, struct net_device *dev, stru
                return -ENOMEM;
        }
 
-       if (hal_req->config_cluster_attribute_val)
-               nan_oper_ctrl |= FAPI_NANOPERATIONCONTROL_CLUSTER_SDF;
+       /* if (hal_req->config_cluster_attribute_val)
+        *  nan_oper_ctrl |= FAPI_NANOPERATIONCONTROL_CLUSTER_SDF;
+        */
        nan_oper_ctrl |= FAPI_NANOPERATIONCONTROL_MAC_ADDRESS_EVENT | FAPI_NANOPERATIONCONTROL_START_CLUSTER_EVENT |
                        FAPI_NANOPERATIONCONTROL_JOINED_CLUSTER_EVENT;
        fapi_set_u16(req, u.mlme_nan_config_req.nan_operation_control_flags, nan_oper_ctrl);
index e22ec11c274da942beb7db6b99e5ace1b94b5940..cffff20108a80ab2c0b74aab4641003b22238032 100755 (executable)
@@ -61,18 +61,12 @@ static char *mem_dump_buffer;
 char *slsi_print_event_name(int event_id)
 {
        switch (event_id) {
-       case SLSI_NL80211_SIGNIFICANT_CHANGE_EVENT:
-               return "SIGNIFICANT_CHANGE_EVENT";
-       case SLSI_NL80211_HOTLIST_AP_FOUND_EVENT:
-               return "HOTLIST_AP_FOUND_EVENT";
        case SLSI_NL80211_SCAN_RESULTS_AVAILABLE_EVENT:
                return "SCAN_RESULTS_AVAILABLE_EVENT";
        case SLSI_NL80211_FULL_SCAN_RESULT_EVENT:
                return "FULL_SCAN_RESULT_EVENT";
        case SLSI_NL80211_SCAN_EVENT:
                return "BUCKET_SCAN_DONE_EVENT";
-       case SLSI_NL80211_HOTLIST_AP_LOST_EVENT:
-               return "HOTLIST_AP_LOST_EVENT";
 #ifdef CONFIG_SCSC_WLAN_KEY_MGMT_OFFLOAD
        case SLSI_NL80211_VENDOR_SUBCMD_KEY_MGMT_ROAM_AUTH:
                return "KEY_MGMT_ROAM_AUTH";
@@ -201,21 +195,6 @@ static void slsi_gscan_add_dump_params(struct slsi_nl_gscan_param *nl_gscan_para
        }
 }
 
-static void slsi_gscan_set_hotlist_dump_params(struct slsi_nl_hotlist_param *nl_hotlist_param)
-{
-       int i;
-
-       SLSI_DBG2_NODEV(SLSI_GSCAN, "Parameters for SUBCMD_SET_BSSID_HOTLIST sub-command:\n");
-       SLSI_DBG2_NODEV(SLSI_GSCAN, "lost_ap_sample_size: %d, num_bssid: %d\n",
-                       nl_hotlist_param->lost_ap_sample_size, nl_hotlist_param->num_bssid);
-
-       for (i = 0; i < nl_hotlist_param->num_bssid; i++) {
-               SLSI_DBG2_NODEV(SLSI_GSCAN, "AP[%d]\n", i);
-               SLSI_DBG2_NODEV(SLSI_GSCAN, "\tBSSID:%pM rssi_low:%d rssi_high:%d\n",
-                               nl_hotlist_param->ap[i].bssid, nl_hotlist_param->ap[i].low, nl_hotlist_param->ap[i].high);
-       }
-}
-
 void slsi_gscan_scan_res_dump(struct slsi_gscan_result *scan_data)
 {
        struct slsi_nl_scan_result_param *nl_scan_res = &scan_data->nl_scan_res;
@@ -437,145 +416,6 @@ struct slsi_gscan_result *slsi_prepare_scan_result(struct sk_buff *skb, u16 anqp
        return scan_res;
 }
 
-void slsi_hotlist_ap_lost_indication(struct slsi_dev *sdev, struct net_device *dev, struct sk_buff *skb)
-{
-       struct slsi_nl_scan_result_param *nl_scan_res;
-       struct slsi_hotlist_result       *hotlist, *temp;
-       struct netdev_vif                *ndev_vif = netdev_priv(dev);
-       u8                               *mac_addr;
-       u16                              num_entries;
-       int                              mem_reqd;
-       bool                             found = false;
-       int                              offset = 0;
-       int                              i;
-
-       if (!ndev_vif) {
-               SLSI_WARN_NODEV("ndev_vif is NULL\n");
-               slsi_kfree_skb(skb);
-               return;
-       }
-
-       SLSI_MUTEX_LOCK(ndev_vif->scan_mutex);
-
-       num_entries = fapi_get_s16(skb, u.mlme_ap_loss_ind.entries);
-       mac_addr = fapi_get_data(skb);
-
-       SLSI_NET_DBG1(dev, SLSI_GSCAN, "Hotlist AP Lost Indication: num_entries %d\n", num_entries);
-
-       mem_reqd = num_entries * sizeof(struct slsi_nl_scan_result_param);
-       nl_scan_res = kmalloc(mem_reqd, GFP_KERNEL);
-       if (nl_scan_res == NULL) {
-               SLSI_NET_ERR(dev, "Failed to allocate memory for hotlist lost\n");
-               goto out;
-       }
-
-       for (i = 0; i < num_entries; i++) {
-               SLSI_NET_DBG3(dev, SLSI_GSCAN,
-                             "Remove the GSCAN results for the lost AP: %pM\n", &mac_addr[ETH_ALEN * i]);
-               slsi_gscan_hash_remove(sdev, &mac_addr[ETH_ALEN * i]);
-
-               list_for_each_entry_safe(hotlist, temp, &sdev->hotlist_results, list) {
-                       if (memcmp(hotlist->nl_scan_res.bssid, &mac_addr[ETH_ALEN * i], ETH_ALEN) == 0) {
-                               SLSI_NET_DBG2(dev, SLSI_GSCAN, "Lost AP [%d]: %pM\n", i, &mac_addr[ETH_ALEN * i]);
-                               list_del(&hotlist->list);
-
-                               hotlist->nl_scan_res.ie_length = 0; /* Not sending the IE for hotlist lost event */
-                               memcpy(&nl_scan_res[offset], &hotlist->nl_scan_res, sizeof(struct slsi_nl_scan_result_param));
-                               offset++;
-
-                               kfree(hotlist);
-                               found = true;
-                               break;
-                       }
-               }
-
-               if (!found)
-                       SLSI_NET_ERR(dev, "Hostlist record is not available in scan result\n");
-
-               found = false;
-       }
-
-       slsi_vendor_event(sdev, SLSI_NL80211_HOTLIST_AP_LOST_EVENT,
-                         nl_scan_res, (offset * sizeof(struct slsi_nl_scan_result_param)));
-
-       kfree(nl_scan_res);
-out:
-       slsi_kfree_skb(skb);
-       SLSI_MUTEX_UNLOCK(ndev_vif->scan_mutex);
-}
-
-void slsi_hotlist_ap_found_indication(struct slsi_dev *sdev, struct net_device *dev, struct slsi_gscan_result *scan_res)
-{
-       struct slsi_hotlist_result *hotlist, *temp;
-       int                        num_hotlist_results = 0;
-       struct netdev_vif          *ndev_vif = netdev_priv(dev);
-       int                        mem_reqd;
-       u8                         *event_buffer;
-       int                        offset;
-
-       if (!ndev_vif) {
-               SLSI_WARN_NODEV("ndev_vif is NULL\n");
-               return;
-       }
-
-       if (!SLSI_MUTEX_IS_LOCKED(ndev_vif->scan_mutex))
-               SLSI_WARN_NODEV("ndev_vif->scan_mutex is not locked\n");
-
-       SLSI_NET_DBG1(dev, SLSI_GSCAN, "Hotlist AP Found Indication: %pM\n", scan_res->nl_scan_res.bssid);
-
-       /* Check if the hotlist result is already available */
-       list_for_each_entry_safe(hotlist, temp, &sdev->hotlist_results, list) {
-               if (memcmp(hotlist->nl_scan_res.bssid, scan_res->nl_scan_res.bssid, ETH_ALEN) == 0) {
-                       SLSI_DBG3(sdev, SLSI_GSCAN, "Hotlist result already available for: %pM\n", scan_res->nl_scan_res.bssid);
-                       /* Delete the old result - store the new result */
-                       list_del(&hotlist->list);
-                       kfree(hotlist);
-                       break;
-               }
-       }
-
-       /* Allocating memory for storing the hostlist result */
-       mem_reqd = scan_res->scan_res_len + (sizeof(struct slsi_hotlist_result) - sizeof(struct slsi_nl_scan_result_param));
-       SLSI_DBG3(sdev, SLSI_GSCAN, "hotlist result alloc size: %d\n", mem_reqd);
-       hotlist = kmalloc(mem_reqd, GFP_KERNEL);
-       if (hotlist == NULL) {
-               SLSI_ERR(sdev, "Failed to allocate memory for hotlist\n");
-               return;
-       }
-
-       hotlist->scan_res_len = scan_res->scan_res_len;
-       memcpy(&hotlist->nl_scan_res, &scan_res->nl_scan_res, scan_res->scan_res_len);
-
-       INIT_LIST_HEAD(&hotlist->list);
-       list_add(&hotlist->list, &sdev->hotlist_results);
-
-       /* Calculate the number of hostlist results and mem required */
-       mem_reqd = 0;
-       offset = 0;
-       list_for_each_entry_safe(hotlist, temp, &sdev->hotlist_results, list) {
-               mem_reqd += sizeof(struct slsi_nl_scan_result_param); /* If IE required use: hotlist->scan_res_len */
-               num_hotlist_results++;
-       }
-       SLSI_DBG3(sdev, SLSI_GSCAN, "num_hotlist_results = %d, mem_reqd = %d\n", num_hotlist_results, mem_reqd);
-
-       /* Allocate event buffer */
-       event_buffer = kmalloc(mem_reqd, GFP_KERNEL);
-       if (event_buffer == NULL) {
-               SLSI_ERR_NODEV("Failed to allocate memory for event_buffer\n");
-               return;
-       }
-
-       /* Prepare the event buffer */
-       list_for_each_entry_safe(hotlist, temp, &sdev->hotlist_results, list) {
-               memcpy(&event_buffer[offset], &hotlist->nl_scan_res, sizeof(struct slsi_nl_scan_result_param));
-               offset += sizeof(struct slsi_nl_scan_result_param); /* If IE required use: hotlist->scan_res_len */
-       }
-
-       slsi_vendor_event(sdev, SLSI_NL80211_HOTLIST_AP_FOUND_EVENT, event_buffer, offset);
-
-       kfree(event_buffer);
-}
-
 static void slsi_gscan_hash_add(struct slsi_dev *sdev, struct slsi_gscan_result *scan_res)
 {
        u8                key = SLSI_GSCAN_GET_HASH_KEY(scan_res->nl_scan_res.bssid[5]);
@@ -747,10 +587,8 @@ void slsi_gscan_handle_scan_result(struct slsi_dev *sdev, struct net_device *dev
                goto out;
        }
 
-       /* Check for hotlist AP or ePNO networks */
-       if (fapi_get_u16(skb, u.mlme_scan_ind.hotlisted_ap)) {
-               slsi_hotlist_ap_found_indication(sdev, dev, scan_res);
-       } else if (fapi_get_u16(skb, u.mlme_scan_ind.preferrednetwork_ap)) {
+       /* Check for ePNO networks */
+       if (fapi_get_u16(skb, u.mlme_scan_ind.preferrednetwork_ap)) {
                if (anqp_length == 0)
                        slsi_vendor_event(sdev, SLSI_NL80211_EPNO_EVENT,
                                          &scan_res->nl_scan_res, scan_res->scan_res_len);
@@ -1052,29 +890,6 @@ void slsi_gscan_flush_scan_results(struct slsi_dev *sdev)
        SLSI_MUTEX_UNLOCK(ndev_vif->scan_mutex);
 }
 
-void slsi_gscan_flush_hotlist_results(struct slsi_dev *sdev)
-{
-       struct slsi_hotlist_result *hotlist, *temp;
-       struct netdev_vif          *ndev_vif;
-
-       ndev_vif = slsi_gscan_get_vif(sdev);
-       if (!ndev_vif) {
-               SLSI_WARN_NODEV("ndev_vif is NULL\n");
-               return;
-       }
-
-       SLSI_MUTEX_LOCK(ndev_vif->scan_mutex);
-
-       list_for_each_entry_safe(hotlist, temp, &sdev->hotlist_results, list) {
-               list_del(&hotlist->list);
-               kfree(hotlist);
-       }
-
-       INIT_LIST_HEAD(&sdev->hotlist_results);
-
-       SLSI_MUTEX_UNLOCK(ndev_vif->scan_mutex);
-}
-
 static int slsi_gscan_add_mlme(struct slsi_dev *sdev, struct slsi_nl_gscan_param *nl_gscan_param, struct slsi_gscan *gscan)
 {
        struct slsi_gscan_param      gscan_param;
@@ -1106,7 +921,7 @@ static int slsi_gscan_add_mlme(struct slsi_dev *sdev, struct slsi_nl_gscan_param
                        if (gscan_param.bucket->report_events & SLSI_REPORT_EVENTS_NO_BATCH)
                                report_mode |= FAPI_REPORTMODE_NO_BATCH;
                } else {
-                       report_mode = FAPI_REPORTMODE_BUFFER_FULL;
+                       report_mode = FAPI_REPORTMODE_RESERVED;
                }
 
                if (report_mode == 0) {
@@ -1393,318 +1208,6 @@ exit:
        return ret;
 }
 
-static int slsi_gscan_set_hotlist_read_params(struct slsi_nl_hotlist_param *nl_hotlist_param, const void *data, int len)
-{
-       int                               tmp, tmp1, tmp2, type, j = 0;
-       const struct nlattr               *outer, *inner, *iter;
-       struct slsi_nl_ap_threshold_param *nl_ap;
-       int                               flush;
-
-       nla_for_each_attr(iter, data, len, tmp2) {
-               type = nla_type(iter);
-               switch (type) {
-               case GSCAN_ATTRIBUTE_HOTLIST_BSSIDS:
-                       nla_for_each_nested(outer, iter, tmp) {
-                               nl_ap = &nl_hotlist_param->ap[j];
-                               nla_for_each_nested(inner, outer, tmp1) {
-                                       type = nla_type(inner);
-                                       switch (type) {
-                                       case GSCAN_ATTRIBUTE_BSSID:
-                                               SLSI_ETHER_COPY(&nl_ap->bssid[0], nla_data(inner));
-                                               break;
-                                       case GSCAN_ATTRIBUTE_RSSI_LOW:
-                                               nl_ap->low = nla_get_s8(inner);
-                                               break;
-                                       case GSCAN_ATTRIBUTE_RSSI_HIGH:
-                                               nl_ap->high = nla_get_s8(inner);
-                                               break;
-                                       default:
-                                               SLSI_ERR_NODEV("Unknown type %d\n", type);
-                                               break;
-                                       }
-                               }
-                               j++;
-                       }
-                       nl_hotlist_param->num_bssid = j;
-                       break;
-               case GSCAN_ATTRIBUTE_HOTLIST_FLUSH:
-                       flush = nla_get_u8(iter);
-                       break;
-               case GSCAN_ATTRIBUTE_LOST_AP_SAMPLE_SIZE:
-                       nl_hotlist_param->lost_ap_sample_size = nla_get_u32(iter);
-                       break;
-               default:
-                       SLSI_ERR_NODEV("No ATTRIBUTE_HOTLIST - %d\n", type);
-                       break;
-               }
-       }
-
-       return 0;
-}
-
-static int slsi_gscan_set_hotlist(struct wiphy *wiphy,
-                                 struct wireless_dev *wdev, const void *data, int len)
-{
-       struct slsi_dev              *sdev = SDEV_FROM_WIPHY(wiphy);
-       struct slsi_nl_hotlist_param *nl_hotlist_param;
-       struct net_device            *dev;
-       struct netdev_vif            *ndev_vif;
-       int                          ret = 0;
-
-       SLSI_DBG1_NODEV(SLSI_GSCAN, "SUBCMD_SET_BSSID_HOTLIST\n");
-
-       dev = slsi_gscan_get_netdev(sdev);
-       if (!dev) {
-               SLSI_WARN_NODEV("dev is NULL\n");
-               return -EINVAL;
-       }
-
-       ndev_vif = netdev_priv(dev);
-
-       SLSI_MUTEX_LOCK(ndev_vif->scan_mutex);
-       /* Allocate memory for the received scan params */
-       nl_hotlist_param = kzalloc(sizeof(*nl_hotlist_param), GFP_KERNEL);
-       if (nl_hotlist_param == NULL) {
-               SLSI_ERR_NODEV("Failed for allocate memory for gscan hotlist_param\n");
-               ret = -ENOMEM;
-               goto exit;
-       }
-
-       slsi_gscan_set_hotlist_read_params(nl_hotlist_param, data, len);
-
-#ifdef CONFIG_SCSC_WLAN_DEBUG
-       slsi_gscan_set_hotlist_dump_params(nl_hotlist_param);
-#endif
-       ret = slsi_mlme_set_bssid_hotlist_req(sdev, dev, nl_hotlist_param);
-       if (ret)
-               SLSI_ERR_NODEV("Failed to set hostlist\n");
-
-       kfree(nl_hotlist_param);
-       SLSI_MUTEX_UNLOCK(ndev_vif->scan_mutex);
-exit:
-       return ret;
-}
-
-static int slsi_gscan_reset_hotlist(struct wiphy *wiphy,
-                                   struct wireless_dev *wdev, const void *data, int len)
-{
-       struct slsi_dev   *sdev = SDEV_FROM_WIPHY(wiphy);
-       struct net_device *dev;
-       int               ret = 0;
-       struct netdev_vif *ndev_vif;
-
-       SLSI_DBG1_NODEV(SLSI_GSCAN, "SUBCMD_RESET_BSSID_HOTLIST\n");
-
-       dev = slsi_gscan_get_netdev(sdev);
-       if (!dev) {
-               SLSI_WARN_NODEV("dev is NULL\n");
-               return -EINVAL;
-       }
-       ndev_vif = netdev_priv(dev);
-
-       SLSI_MUTEX_LOCK(ndev_vif->scan_mutex);
-       ret = slsi_mlme_set_bssid_hotlist_req(sdev, dev, NULL);
-       if (ret)
-               SLSI_ERR_NODEV("Failed to reset hostlist\n");
-
-       SLSI_MUTEX_UNLOCK(ndev_vif->scan_mutex);
-
-       slsi_gscan_flush_hotlist_results(sdev);
-
-       return ret;
-}
-
-static struct slsi_gscan *slsi_mlme_get_tracking_scan_id(struct slsi_dev                          *sdev,
-                                                        struct slsi_nl_significant_change_params *significant_param_ptr)
-{
-       /* If channel hint is not in significant change req, link to previous gscan, else new gscan */
-       struct slsi_gscan *ret_gscan;
-
-       if (sdev->gscan != NULL) {
-               ret_gscan = sdev->gscan;
-               SLSI_DBG3(sdev, SLSI_GSCAN, "Existing Scan for tracking\n");
-       } else {
-               struct slsi_gscan *gscan;
-               /* Allocate Memory for the new gscan */
-               gscan = kzalloc(sizeof(*gscan), GFP_KERNEL);
-               if (gscan == NULL) {
-                       SLSI_ERR(sdev, "Failed to allocate memory for gscan\n");
-                       return NULL;
-               }
-               gscan->num_buckets = 1;
-               if (slsi_gscan_alloc_buckets(sdev, gscan, gscan->num_buckets) != 0) {
-                       SLSI_ERR(sdev, "NO free buckets. Abort tracking\n");
-                       kfree(gscan);
-                       return NULL;
-               }
-               /*Build nl_bucket based on channels in significant_param_ptr->ap array*/
-               gscan->nl_bucket.band = WIFI_BAND_UNSPECIFIED;
-               gscan->nl_bucket.num_channels = 0;
-               gscan->nl_bucket.period = 5 * 1000; /* Default */
-               slsi_gscan_add_to_list(&sdev->gscan, gscan);
-               ret_gscan = gscan;
-               SLSI_DBG3(sdev, SLSI_GSCAN, "New Scan for tracking\n");
-       }
-       SLSI_DBG3(sdev, SLSI_GSCAN, "tracking channel num:%d\n", ret_gscan->nl_bucket.num_channels);
-       return ret_gscan;
-}
-
-static int slsi_gscan_set_significant_change(struct wiphy *wiphy,
-                                            struct wireless_dev *wdev, const void *data, int len)
-{
-       int                                      ret = 0;
-       struct slsi_dev                          *sdev = SDEV_FROM_WIPHY(wiphy);
-       struct slsi_nl_significant_change_params *significant_change_param;
-       u8                                       bss_count = 0;
-       struct slsi_nl_ap_threshold_param        *bss_param_ptr;
-       int                                      tmp, tmp1, tmp2, type;
-       const struct nlattr                      *outer, *inner, *iter;
-       struct net_device                        *net_dev;
-       struct slsi_gscan                        *gscan;
-       struct netdev_vif                        *ndev_vif;
-
-       SLSI_DBG3(sdev, SLSI_GSCAN, "SUBCMD_SET_SIGNIFICANT_CHANGE Received\n");
-
-       significant_change_param = kmalloc(sizeof(*significant_change_param), GFP_KERNEL);
-       if (!significant_change_param) {
-               SLSI_ERR(sdev, "NO mem for significant_change_param\n");
-               return -ENOMEM;
-       }
-       memset(significant_change_param, 0, sizeof(struct slsi_nl_significant_change_params));
-       nla_for_each_attr(iter, data, len, tmp2) {
-               type = nla_type(iter);
-               switch (type) {
-               case GSCAN_ATTRIBUTE_RSSI_SAMPLE_SIZE:
-                       significant_change_param->rssi_sample_size = nla_get_u16(iter);
-                       SLSI_DBG3(sdev, SLSI_GSCAN, "rssi_sample_size %d\n", significant_change_param->rssi_sample_size);
-                       break;
-               case GSCAN_ATTRIBUTE_LOST_AP_SAMPLE_SIZE:
-                       significant_change_param->lost_ap_sample_size = nla_get_u16(iter);
-                       SLSI_DBG3(sdev, SLSI_GSCAN, "lost_ap_sample_size %d\n", significant_change_param->lost_ap_sample_size);
-                       break;
-               case GSCAN_ATTRIBUTE_MIN_BREACHING:
-                       significant_change_param->min_breaching = nla_get_u16(iter);
-                       SLSI_DBG3(sdev, SLSI_GSCAN, "min_breaching %d\n", significant_change_param->min_breaching);
-                       break;
-               case GSCAN_ATTRIBUTE_SIGNIFICANT_CHANGE_BSSIDS:
-                       nla_for_each_nested(outer, iter, tmp) {
-                               bss_param_ptr = &significant_change_param->ap[bss_count];
-                               bss_count++;
-                               SLSI_DBG3(sdev, SLSI_GSCAN, "bssids[%d]:\n", bss_count);
-                               if (bss_count == SLSI_GSCAN_MAX_SIGNIFICANT_CHANGE_APS) {
-                                       SLSI_ERR(sdev, "Can support max:%d aps. Skipping excess\n", SLSI_GSCAN_MAX_SIGNIFICANT_CHANGE_APS);
-                                       break;
-                               }
-                               nla_for_each_nested(inner, outer, tmp1) {
-                                       switch (nla_type(inner)) {
-                                       case GSCAN_ATTRIBUTE_BSSID:
-                                               SLSI_ETHER_COPY(&bss_param_ptr->bssid[0], nla_data(inner));
-                                               SLSI_DBG3(sdev, SLSI_GSCAN, "\tbssid %pM\n", bss_param_ptr->bssid);
-                                               break;
-                                       case GSCAN_ATTRIBUTE_RSSI_HIGH:
-                                               bss_param_ptr->high = nla_get_s8(inner);
-                                               SLSI_DBG3(sdev, SLSI_GSCAN, "\thigh %d\n", bss_param_ptr->high);
-                                               break;
-                                       case GSCAN_ATTRIBUTE_RSSI_LOW:
-                                               bss_param_ptr->low = nla_get_s8(inner);
-                                               SLSI_DBG3(sdev, SLSI_GSCAN, "\tlow %d\n", bss_param_ptr->low);
-                                               break;
-                                       default:
-                                               SLSI_ERR(sdev, "unknown attribute:%d\n", type);
-                                               break;
-                                       }
-                               }
-                       }
-                       break;
-               default:
-                       SLSI_ERR(sdev, "Unknown type:%d\n", type);
-                       break;
-               }
-       }
-       significant_change_param->num_bssid = bss_count;
-       net_dev = slsi_get_netdev(sdev, SLSI_NET_INDEX_WLAN);
-       ndev_vif = netdev_priv(net_dev);
-
-       SLSI_MUTEX_LOCK(ndev_vif->scan_mutex);
-       gscan = slsi_mlme_get_tracking_scan_id(sdev, significant_change_param);
-       if (gscan) {
-               if (slsi_mlme_significant_change_set(sdev, net_dev, significant_change_param)) {
-                       SLSI_ERR(sdev, "Could not set GSCAN significant cfg\n");
-                       ret = -EINVAL;
-               }
-       } else {
-               ret = -ENOMEM;
-       }
-       SLSI_MUTEX_UNLOCK(ndev_vif->scan_mutex);
-       kfree(significant_change_param);
-       return ret;
-}
-
-void slsi_rx_significant_change_ind(struct slsi_dev *sdev, struct net_device *dev, struct sk_buff *skb)
-{
-       struct netdev_vif *ndev_vif = netdev_priv(dev);
-       u32               eventdata_len;
-       u16               bssid_count = fapi_get_buff(skb, u.mlme_significant_change_ind.number_of_results);
-       u16               rssi_entry_count = fapi_get_buff(skb, u.mlme_significant_change_ind.number_of_rssi_entries);
-       u32               i, j;
-       u8                *eventdata  = NULL;
-       u8                *op_ptr, *ip_ptr;
-       u16               *le16_ptr;
-
-       /* convert fapi buffer to wifi-hal structure
-        *   fapi buffer: [mac address 6 bytes] [chan_freq 2 bytes]
-        *                [riis history N*2 bytes]
-        *   wifi-hal structure
-        *      typedef struct {
-        *              uint16_t channel;
-        *              mac_addr bssid;
-        *              short rssi_history[8];
-        *      } ChangeInfo;
-        */
-
-       SLSI_DBG3(sdev, SLSI_GSCAN, "No BSSIDs:%d\n", bssid_count);
-
-       eventdata_len = (8 + (8 * 2)) * bssid_count; /* see wifi-hal structure in above comments */
-       eventdata = kmalloc(eventdata_len, GFP_KERNEL);
-       if (!eventdata) {
-               SLSI_ERR(sdev, "no mem for event data\n");
-               slsi_kfree_skb(skb);
-               return;
-       }
-
-       SLSI_MUTEX_LOCK(ndev_vif->vif_mutex);
-       op_ptr = eventdata;
-       ip_ptr = fapi_get_data(skb);
-       for (i = 0; i < bssid_count; i++) {
-               le16_ptr = (u16 *)&ip_ptr[6]; /* channel: required unit MHz. received unit 512KHz */
-               *(u16 *)op_ptr = le16_to_cpu(*le16_ptr) / 2;
-               SLSI_DBG3(sdev, SLSI_GSCAN, "[%d] channel:%d\n", i, *(u16 *)op_ptr);
-               op_ptr += 2;
-
-               SLSI_ETHER_COPY(op_ptr, ip_ptr); /* mac_addr */
-               SLSI_DBG3(sdev, SLSI_GSCAN, "[%d] mac:%pM\n", i, op_ptr);
-               op_ptr += ETH_ALEN;
-
-               for (j = 0; j < 8; j++) {
-                       if (j < rssi_entry_count) {
-                               *op_ptr = ip_ptr[8 + j * 2];
-                               *(op_ptr + 1) = ip_ptr[9 + j * 2];
-                       } else {
-                               s16 invalid_rssi = SLSI_GSCAN_INVALID_RSSI;
-                               *(u16 *)op_ptr = invalid_rssi;
-                       }
-                       op_ptr += 2;
-               }
-               ip_ptr += 8 + (rssi_entry_count * 2);
-       }
-       SLSI_DBG_HEX(sdev, SLSI_GSCAN, eventdata, eventdata_len, "significant change event buffer:\n");
-       SLSI_DBG_HEX(sdev, SLSI_GSCAN, fapi_get_data(skb), fapi_get_datalen(skb), "significant change skb buffer:\n");
-       slsi_vendor_event(sdev, SLSI_NL80211_SIGNIFICANT_CHANGE_EVENT, eventdata, eventdata_len);
-       kfree(eventdata);
-       slsi_kfree_skb(skb);
-       SLSI_MUTEX_UNLOCK(ndev_vif->vif_mutex);
-}
-
 void slsi_rx_rssi_report_ind(struct slsi_dev *sdev, struct net_device *dev, struct sk_buff *skb)
 {
        struct netdev_vif *ndev_vif = netdev_priv(dev);
@@ -1719,38 +1222,6 @@ void slsi_rx_rssi_report_ind(struct slsi_dev *sdev, struct net_device *dev, stru
        SLSI_MUTEX_UNLOCK(ndev_vif->vif_mutex);
 }
 
-static int slsi_gscan_reset_significant_change(struct wiphy *wiphy,
-                                              struct wireless_dev *wdev, const void *data, int len)
-{
-       struct slsi_dev    *sdev = SDEV_FROM_WIPHY(wiphy);
-       struct net_device  *net_dev;
-       struct netdev_vif  *ndev_vif;
-       struct slsi_bucket *bucket = NULL;
-       u32                i;
-
-       SLSI_DBG3(sdev, SLSI_GSCAN, "SUBCMD_RESET_SIGNIFICANT_CHANGE Received\n");
-
-       net_dev = slsi_get_netdev(sdev, SLSI_NET_INDEX_WLAN);
-       ndev_vif = netdev_priv(net_dev);
-
-       SLSI_MUTEX_LOCK(ndev_vif->vif_mutex);
-       for (i = 0; i < SLSI_GSCAN_MAX_BUCKETS; i++) {
-               bucket = &sdev->bucket[i];
-               if (!bucket->used || !bucket->for_change_tracking)
-                       continue;
-
-               (void)slsi_mlme_del_scan(sdev, net_dev, bucket->scan_id, false);
-               bucket->for_change_tracking = false;
-               bucket->used = false;
-               SLSI_MUTEX_UNLOCK(ndev_vif->vif_mutex);
-               return 0;
-       }
-       SLSI_DBG3(sdev, SLSI_GSCAN, "Significant change scan not found\n");
-       SLSI_MUTEX_UNLOCK(ndev_vif->vif_mutex);
-
-       return 0;
-}
-
 #ifdef CONFIG_SCSC_WLAN_KEY_MGMT_OFFLOAD
 static int slsi_key_mgmt_set_pmk(struct wiphy *wiphy,
                                 struct wireless_dev *wdev, const void *pmk, int pmklen)
@@ -1941,7 +1412,7 @@ static int slsi_start_keepalive_offload(struct wiphy *wiphy, struct wireless_dev
          */
        slsi_mlme_send_frame_mgmt(sdev, net_dev, NULL, 0,
                                  FAPI_DATAUNITDESCRIPTOR_IEEE802_3_FRAME,
-                                 FAPI_MESSAGETYPE_PERIODIC_OFFLOAD,
+                                 FAPI_MESSAGETYPE_ANY_OTHER,
                                  ndev_vif->sta.keepalive_host_tag[index - 1], 0, 0, 0);
 
        skb = slsi_alloc_skb_headroom(sizeof(struct ethhdr) + ip_pkt_len, GFP_KERNEL);
@@ -1980,7 +1451,7 @@ static int slsi_start_keepalive_offload(struct wiphy *wiphy, struct wireless_dev
        ip_send_check(ip_hdr(skb));
 
        host_tag = slsi_tx_mgmt_host_tag(sdev);
-       r = slsi_mlme_send_frame_data(sdev, net_dev, skb, FAPI_MESSAGETYPE_PERIODIC_OFFLOAD, host_tag,
+       r = slsi_mlme_send_frame_data(sdev, net_dev, skb, FAPI_MESSAGETYPE_ANY_OTHER, host_tag,
                                      0, (period * 1000));
        if (r == 0)
                ndev_vif->sta.keepalive_host_tag[index - 1] = host_tag;
@@ -2047,7 +1518,7 @@ static int slsi_stop_keepalive_offload(struct wiphy *wiphy, struct wireless_dev
        }
 
        r = slsi_mlme_send_frame_mgmt(sdev, net_dev, NULL, 0, FAPI_DATAUNITDESCRIPTOR_IEEE802_3_FRAME,
-                                     FAPI_MESSAGETYPE_PERIODIC_OFFLOAD, ndev_vif->sta.keepalive_host_tag[index - 1], 0, 0, 0);
+                                     FAPI_MESSAGETYPE_ANY_OTHER, ndev_vif->sta.keepalive_host_tag[index - 1], 0, 0, 0);
        ndev_vif->sta.keepalive_host_tag[index - 1] = 0;
 
 exit:
@@ -3114,12 +2585,13 @@ static int slsi_rtt_set_config(struct wiphy *wiphy, struct wireless_dev *wdev, c
 #endif
        struct slsi_rtt_config *nl_rtt_params;
        const struct nlattr *iter, *outer, *inner;
+       u8 source_addr[ETH_ALEN];
        int tmp, tmp1, tmp2;
        u16 rtt_id = 0;
        u8 num_devices = 0;
        u16 rtt_peer = SLSI_RTT_PEER_AP;
        u16 vif_idx = 0;
-       u16 center_freq0 = 0, center_freq1 = 0, channel_freq = 0, width = 0;
+       u16 channel_freq = 0;
 
        SLSI_DBG1_NODEV(SLSI_GSCAN, "SUBCMD_RTT_RANGE_START\n");
        if (!slsi_dev_rtt_supported()) {
@@ -3172,15 +2644,6 @@ static int slsi_rtt_set_config(struct wiphy *wiphy, struct wireless_dev *wdev, c
                                                channel_freq = nla_get_u16(inner);
                                                nl_rtt_params[j].channel_freq = channel_freq * 2;
                                                break;
-                                       case SLSI_RTT_ATTRIBUTE_TARGET_CHAN_WIDTH:
-                                               width = nla_get_u16(inner);
-                                               break;
-                                       case SLSI_RTT_ATTRIBUTE_TARGET_CHAN_FREQ0:
-                                               center_freq0 = nla_get_u16(inner);
-                                               break;
-                                       case SLSI_RTT_ATTRIBUTE_TARGET_CHAN_FREQ1:
-                                               center_freq1 = nla_get_u16(inner);
-                                               break;
                                        case SLSI_RTT_ATTRIBUTE_TARGET_PERIOD:
                                                nl_rtt_params[j].burst_period = nla_get_u8(inner);
                                                break;
@@ -3212,21 +2675,7 @@ static int slsi_rtt_set_config(struct wiphy *wiphy, struct wireless_dev *wdev, c
                                                SLSI_ERR_NODEV("Unknown RTT INFO ATTRIBUTE type: %d\n", type);
                                                break;
                                        }
-                                       if (rtt_peer == SLSI_RTT_PEER_NAN) {
-#if CONFIG_SCSC_WLAN_MAX_INTERFACES >= 4
-                                               SLSI_ETHER_COPY(nl_rtt_params[j].source_addr,
-                                                               sdev->netdev_addresses[SLSI_NET_INDEX_NAN]);
-#else
-                                               SLSI_ERR(sdev, "NAN not supported(mib:%d)\n", sdev->nan_enabled);
-#endif
-                                       } else {
-                                               SLSI_ETHER_COPY(nl_rtt_params[j].source_addr,
-                                                               sdev->netdev_addresses[SLSI_NET_INDEX_WLAN]);
-                                       }
                                }
-                               /* width+1:to match RTT width enum value with NL enums */
-                               nl_rtt_params[j].channel_info = slsi_compute_chann_info(sdev, width + 1, center_freq0,
-                                                                                       channel_freq);
                                j++;
                        }
                        break;
@@ -3235,6 +2684,15 @@ static int slsi_rtt_set_config(struct wiphy *wiphy, struct wireless_dev *wdev, c
                        break;
                }
        }
+       if (rtt_peer == SLSI_RTT_PEER_NAN) {
+#if CONFIG_SCSC_WLAN_MAX_INTERFACES >= 4
+               SLSI_ETHER_COPY(source_addr, sdev->netdev_addresses[SLSI_NET_INDEX_NAN]);
+#else
+               SLSI_ERR(sdev, "NAN not supported(mib:%d)\n", sdev->nan_enabled);
+#endif
+       } else {
+               SLSI_ETHER_COPY(source_addr, sdev->netdev_addresses[SLSI_NET_INDEX_WLAN]);
+       }
        if (rtt_peer == SLSI_RTT_PEER_AP) {
                vif_idx = 0;
        } else if (rtt_peer == SLSI_RTT_PEER_NAN) {
@@ -3257,7 +2715,7 @@ static int slsi_rtt_set_config(struct wiphy *wiphy, struct wireless_dev *wdev, c
                return -ENOTSUPP;
 #endif
        }
-       r = slsi_mlme_add_range_req(sdev, num_devices, nl_rtt_params, rtt_id, vif_idx);
+       r = slsi_mlme_add_range_req(sdev, num_devices, nl_rtt_params, rtt_id, vif_idx, source_addr);
        if (r) {
                r = -EINVAL;
                SLSI_ERR_NODEV("Failed to set rtt config\n");
@@ -3416,8 +2874,11 @@ void slsi_rx_range_ind(struct slsi_dev *sdev, struct net_device *dev, struct sk_
                tm = *ip_ptr;
                res |= nla_put_u32(nl_skb, SLSI_RTT_EVENT_ATTR_TIMESTAMP_US, tkernel - (tmac - tm));
                ip_ptr += 4;
-               res |= nla_put_u16(nl_skb, SLSI_RTT_EVENT_ATTR_BURST_DURATION_MSN, *ip_ptr);
-               ip_ptr += 2;
+               res |= nla_put_u32(nl_skb, SLSI_RTT_EVENT_ATTR_DISTANCE_MM, *ip_ptr);
+               ip_ptr += 4;
+               res |= nla_put_u32(nl_skb, SLSI_RTT_EVENT_ATTR_DISTANCE_SD_MM, *ip_ptr);
+               ip_ptr += 4;
+               res |= nla_put_u8(nl_skb, SLSI_RTT_EVENT_ATTR_BURST_DURATION_MSN, *ip_ptr++);
                res |= nla_put_u8(nl_skb, SLSI_RTT_EVENT_ATTR_NEGOTIATED_BURST_NUM, *ip_ptr++);
                for (rep_cnt = 0; rep_cnt < 2; rep_cnt++) {
                        if (ip_ptr - start_ptr < data_len && ip_ptr[0] == WLAN_EID_MEASURE_REPORT) {
@@ -4834,12 +4295,9 @@ static int slsi_acs_init(struct wiphy *wiphy,
 }
 
 static const struct  nl80211_vendor_cmd_info slsi_vendor_events[] = {
-       { OUI_GOOGLE, SLSI_NL80211_SIGNIFICANT_CHANGE_EVENT },
-       { OUI_GOOGLE, SLSI_NL80211_HOTLIST_AP_FOUND_EVENT },
        { OUI_GOOGLE, SLSI_NL80211_SCAN_RESULTS_AVAILABLE_EVENT },
        { OUI_GOOGLE, SLSI_NL80211_FULL_SCAN_RESULT_EVENT },
        { OUI_GOOGLE, SLSI_NL80211_SCAN_EVENT },
-       { OUI_GOOGLE, SLSI_NL80211_HOTLIST_AP_LOST_EVENT },
 #ifdef CONFIG_SCSC_WLAN_KEY_MGMT_OFFLOAD
        { OUI_SAMSUNG, SLSI_NL80211_VENDOR_SUBCMD_KEY_MGMT_ROAM_AUTH },
 #endif
@@ -4905,38 +4363,6 @@ static const struct wiphy_vendor_command     slsi_vendor_cmd[] = {
                .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
                .doit = slsi_gscan_get_scan_results
        },
-       {
-               {
-                       .vendor_id = OUI_GOOGLE,
-                       .subcmd = SLSI_NL80211_VENDOR_SUBCMD_SET_BSSID_HOTLIST
-               },
-               .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
-               .doit = slsi_gscan_set_hotlist
-       },
-       {
-               {
-                       .vendor_id = OUI_GOOGLE,
-                       .subcmd = SLSI_NL80211_VENDOR_SUBCMD_RESET_BSSID_HOTLIST
-               },
-               .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
-               .doit = slsi_gscan_reset_hotlist
-       },
-       {
-               {
-                       .vendor_id = OUI_GOOGLE,
-                       .subcmd = SLSI_NL80211_VENDOR_SUBCMD_SET_SIGNIFICANT_CHANGE
-               },
-               .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
-               .doit = slsi_gscan_set_significant_change
-       },
-       {
-               {
-                       .vendor_id = OUI_GOOGLE,
-                       .subcmd = SLSI_NL80211_VENDOR_SUBCMD_RESET_SIGNIFICANT_CHANGE
-               },
-               .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
-               .doit = slsi_gscan_reset_significant_change
-       },
        {
                {
                        .vendor_id = OUI_GOOGLE,
@@ -5308,8 +4734,6 @@ void slsi_nl80211_vendor_deinit(struct slsi_dev *sdev)
        SLSI_DBG2(sdev, SLSI_GSCAN, "Gscan cleanup\n");
        slsi_gscan_flush_scan_results(sdev);
 
-       SLSI_DBG2(sdev, SLSI_GSCAN, "Hotlist cleanup\n");
-       slsi_gscan_flush_hotlist_results(sdev);
 }
 
 void slsi_nl80211_vendor_init(struct slsi_dev *sdev)
index ec2c4aaa4fdbc453056afabdf984eabc1cd48d65..9ec7b9912c15478c4ea45f2c54ae72f6ade3f8af 100755 (executable)
@@ -153,23 +153,6 @@ enum GSCAN_ATTRIBUTE {
        GSCAN_ATTRIBUTE_SCAN_FLAGS,
        GSCAN_ATTRIBUTE_SCAN_BUCKET_BIT,
 
-       /* remaining reserved for additional attributes */
-       GSCAN_ATTRIBUTE_SSID = 40,
-       GSCAN_ATTRIBUTE_BSSID,
-       GSCAN_ATTRIBUTE_CHANNEL,
-       GSCAN_ATTRIBUTE_RSSI,
-       GSCAN_ATTRIBUTE_TIMESTAMP,
-       GSCAN_ATTRIBUTE_RTT,
-       GSCAN_ATTRIBUTE_RTTSD,
-
-       /* remaining reserved for additional attributes */
-       GSCAN_ATTRIBUTE_HOTLIST_BSSIDS = 50,
-       GSCAN_ATTRIBUTE_RSSI_LOW,
-       GSCAN_ATTRIBUTE_RSSI_HIGH,
-       GSCAN_ATTRIBUTE_HOTLIST_ELEM,
-       GSCAN_ATTRIBUTE_HOTLIST_FLUSH,
-       GSCAN_ATTRIBUTE_CHANNEL_NUMBER,
-
        /* remaining reserved for additional attributes */
        GSCAN_ATTRIBUTE_RSSI_SAMPLE_SIZE = 60,
        GSCAN_ATTRIBUTE_LOST_AP_SAMPLE_SIZE,
@@ -270,11 +253,6 @@ enum slsi_hal_vendor_subcmds {
        SLSI_NL80211_VENDOR_SUBCMD_ADD_GSCAN,
        SLSI_NL80211_VENDOR_SUBCMD_DEL_GSCAN,
        SLSI_NL80211_VENDOR_SUBCMD_GET_SCAN_RESULTS,
-       SLSI_NL80211_VENDOR_SUBCMD_SET_BSSID_HOTLIST,
-       SLSI_NL80211_VENDOR_SUBCMD_RESET_BSSID_HOTLIST,
-       SLSI_NL80211_VENDOR_SUBCMD_GET_HOTLIST_RESULTS,
-       SLSI_NL80211_VENDOR_SUBCMD_SET_SIGNIFICANT_CHANGE,
-       SLSI_NL80211_VENDOR_SUBCMD_RESET_SIGNIFICANT_CHANGE,
        SLSI_NL80211_VENDOR_SUBCMD_SET_GSCAN_OUI,
        SLSI_NL80211_VENDOR_SUBCMD_SET_NODFS,
        SLSI_NL80211_VENDOR_SUBCMD_START_KEEP_ALIVE_OFFLOAD,
@@ -327,12 +305,9 @@ enum slsi_supp_vendor_subcmds {
 };
 
 enum slsi_vendor_event_values {
-       SLSI_NL80211_SIGNIFICANT_CHANGE_EVENT,
-       SLSI_NL80211_HOTLIST_AP_FOUND_EVENT,
        SLSI_NL80211_SCAN_RESULTS_AVAILABLE_EVENT,
        SLSI_NL80211_FULL_SCAN_RESULT_EVENT,
        SLSI_NL80211_SCAN_EVENT,
-       SLSI_NL80211_HOTLIST_AP_LOST_EVENT,
        SLSI_NL80211_VENDOR_SUBCMD_KEY_MGMT_ROAM_AUTH,
        SLSI_NL80211_VENDOR_HANGED_EVENT,
        SLSI_NL80211_EPNO_EVENT,
@@ -523,10 +498,7 @@ enum slsi_rtt_attribute {
        SLSI_RTT_ATTRIBUTE_TARGET_MAC,
        SLSI_RTT_ATTRIBUTE_TARGET_TYPE,
        SLSI_RTT_ATTRIBUTE_TARGET_PEER,
-       SLSI_RTT_ATTRIBUTE_TARGET_CHAN_WIDTH,
        SLSI_RTT_ATTRIBUTE_TARGET_CHAN_FREQ,
-       SLSI_RTT_ATTRIBUTE_TARGET_CHAN_FREQ0,
-       SLSI_RTT_ATTRIBUTE_TARGET_CHAN_FREQ1,
        SLSI_RTT_ATTRIBUTE_TARGET_PERIOD,
        SLSI_RTT_ATTRIBUTE_TARGET_NUM_BURST,
        SLSI_RTT_ATTRIBUTE_TARGET_NUM_FTM_BURST,
@@ -627,18 +599,6 @@ struct slsi_nl_scan_result_param {
        u8  ie_data[1];                       /* beacon IE */
 };
 
-struct slsi_nl_ap_threshold_param {
-       u8  bssid[6];          /* AP BSSID */
-       s16 low;               /* low threshold */
-       s16 high;              /* high threshold */
-};
-
-struct slsi_nl_hotlist_param {
-       u8                                lost_ap_sample_size;
-       u8                                num_bssid;                          /* number of hotlist APs */
-       struct slsi_nl_ap_threshold_param ap[SLSI_GSCAN_MAX_HOTLIST_APS];  /* hotlist APs */
-};
-
 struct slsi_bucket {
        bool              used;                /* to identify if this entry is free */
        bool              for_change_tracking; /* Indicates if this scan_id is used for change_tracking */
@@ -664,14 +624,6 @@ struct slsi_gscan_param {
        struct slsi_bucket          *bucket;
 };
 
-struct slsi_nl_significant_change_params {
-       int                               rssi_sample_size;    /* number of samples for averaging RSSI */
-       int                               lost_ap_sample_size; /* number of samples to confirm AP loss */
-       int                               min_breaching;       /* number of APs breaching threshold */
-       int                               num_bssid;              /* max 64 */
-       struct slsi_nl_ap_threshold_param ap[SLSI_GSCAN_MAX_SIGNIFICANT_CHANGE_APS];
-};
-
 struct slsi_gscan_result {
        struct slsi_gscan_result         *hnext;
        int                              scan_cycle;
@@ -680,12 +632,6 @@ struct slsi_gscan_result {
        struct slsi_nl_scan_result_param nl_scan_res;
 };
 
-struct slsi_hotlist_result {
-       struct list_head                 list;
-       int                              scan_res_len;
-       struct slsi_nl_scan_result_param nl_scan_res;
-};
-
 struct slsi_epno_ssid_param {
        u16 flags;
        u8  ssid_len;
@@ -905,7 +851,6 @@ struct slsi_rtt_capabilities {
 
 /* RTT configuration */
 struct slsi_rtt_config {
-       u8 source_addr[ETH_ALEN];
        u8 peer_addr[ETH_ALEN];                 /* peer device mac address */
        u16 type;            /* 1-sided or 2-sided RTT */
        u16 channel_freq;     /* Required for STA-AP mode, optional for P2P, NBD etc. */
@@ -984,8 +929,6 @@ void slsi_nl80211_vendor_init(struct slsi_dev *sdev);
 void slsi_nl80211_vendor_deinit(struct slsi_dev *sdev);
 u8 slsi_gscan_get_scan_policy(enum wifi_band band);
 void slsi_gscan_handle_scan_result(struct slsi_dev *sdev, struct net_device *dev, struct sk_buff *skb, u16 scan_id, bool scan_done);
-int slsi_mlme_set_bssid_hotlist_req(struct slsi_dev *sdev, struct net_device *dev, struct slsi_nl_hotlist_param *nl_hotlist_param);
-void slsi_hotlist_ap_lost_indication(struct slsi_dev *sdev, struct net_device *dev, struct sk_buff *skb);
 void slsi_gscan_hash_remove(struct slsi_dev *sdev, u8 *mac);
 void slsi_rx_significant_change_ind(struct slsi_dev *sdev, struct net_device *dev, struct sk_buff *skb);
 int slsi_gscan_alloc_buckets(struct slsi_dev *sdev, struct slsi_gscan *gscan, int num_buckets);
@@ -994,7 +937,7 @@ int slsi_mib_get_gscan_cap(struct slsi_dev *sdev, struct slsi_nl_gscan_capabilit
 void slsi_rx_rssi_report_ind(struct slsi_dev *sdev, struct net_device *dev, struct sk_buff *skb);
 int slsi_mib_get_rtt_cap(struct slsi_dev *sdev, struct net_device *dev, struct slsi_rtt_capabilities *cap);
 int slsi_mlme_add_range_req(struct slsi_dev *sdev, u8 count, struct slsi_rtt_config *nl_rtt_params,
-                           u16 rtt_id, u16 vif_idx);
+                           u16 rtt_id, u16 vif_idx, u8 *source_addr);
 int slsi_mlme_del_range_req(struct slsi_dev *sdev, struct net_device *dev, u16 count, u8 *addr, u16 rtt_id);
 void slsi_rx_range_ind(struct slsi_dev *sdev, struct net_device *dev, struct sk_buff *skb);
 void slsi_rx_range_done_ind(struct slsi_dev *sdev, struct net_device *dev, struct sk_buff *skb);
index 4dc1c201be4989e2934b11d18afa3a1a4a721a42..f005162e74f7328b9676d7c58c9fdfa0b557e6f0 100755 (executable)
@@ -1368,7 +1368,7 @@ void slsi_nan_followup_ind(struct slsi_dev *sdev, struct net_device *dev, struct
                return;
        }
        hal_evt->publish_subscribe_id = fapi_get_u16(skb, u.mlme_nan_followup_ind.publish_subscribe_id);
-       hal_evt->requestor_instance_id = fapi_get_u16(skb, u.mlme_nan_followup_ind.requestor_instance_id);
+       hal_evt->requestor_instance_id = fapi_get_u16(skb, u.mlme_nan_followup_ind.peer_id);
        ptr = stitched_ie_p + 7; /* 7 = ie_id(1), ie_len(1), oui(3) type/subtype(2)*/
 
        ether_addr_copy(hal_evt->addr, ptr);
@@ -1479,7 +1479,7 @@ void slsi_nan_service_ind(struct slsi_dev *sdev, struct net_device *dev, struct
                return;
        }
        hal_evt->publish_subscribe_id = fapi_get_u16(skb, u.mlme_nan_service_ind.publish_subscribe_id);
-       hal_evt->requestor_instance_id = fapi_get_u32(skb, u.mlme_nan_service_ind.requestor_instance_id);
+       hal_evt->requestor_instance_id = fapi_get_u32(skb, u.mlme_nan_service_ind.peer_id);
 
        /* 7 = ie_id(1), ie_len(1), oui(3) type/subtype(2)*/
        ptr = stitched_ie_p + 7;
index f4ed442417617cc7e05f0f9624be58cc4a7821f3..2044c56548d361df47b24900b4a83787784d8cac 100755 (executable)
@@ -2410,7 +2410,7 @@ void slsi_rx_received_frame_ind(struct slsi_dev *sdev, struct net_device *dev, s
                                if ((subtype == SLSI_P2P_PA_GO_NEG_CFM) || (subtype == SLSI_P2P_PA_PROV_DISC_RSP)) {
                                        ndev_vif->drv_in_p2p_procedure = false;
                                        if (!delayed_work_pending(&ndev_vif->unsync.roc_expiry_work)) {
-                                               slsi_mlme_spare_signal_1(ndev_vif->sdev, ndev_vif->wdev.netdev);
+                                               slsi_mlme_unset_channel_req(ndev_vif->sdev, ndev_vif->wdev.netdev);
                                                ndev_vif->driver_channel = 0;
                                        }
                                }
index 2afc5e0a4203ba133b6b78dc896823f5cae6ebeb..c16a55b9739cb880a970d5dbc174d7b7dc070d83 100755 (executable)
@@ -157,12 +157,6 @@ static int slsi_rx_netdev_mlme(struct slsi_dev *sdev, struct net_device *dev, st
                slsi_kfree_skb(skb);
                break;
 #ifdef CONFIG_SCSC_WLAN_GSCAN_ENABLE
-       case MLME_AP_LOSS_IND:
-               slsi_hotlist_ap_lost_indication(sdev, dev, skb);
-               break;
-       case MLME_SIGNIFICANT_CHANGE_IND:
-               slsi_rx_significant_change_ind(sdev, dev, skb);
-               break;
        case MLME_RSSI_REPORT_IND:
                slsi_rx_rssi_report_ind(sdev, dev, skb);
                break;
@@ -191,7 +185,7 @@ static int slsi_rx_netdev_mlme(struct slsi_dev *sdev, struct net_device *dev, st
                break;
 #endif
 #ifdef CONFIG_SCSC_WLAN_SAE_CONFIG
-       case MLME_SPARE_SIGNAL_1_IND:
+       case MLME_SYNCHRONISED_IND:
                slsi_rx_synchronised_ind(sdev, dev, skb);
                slsi_kfree_skb(skb);
                break;
@@ -337,11 +331,6 @@ static int sap_mlme_rx_handler(struct slsi_dev *sdev, struct sk_buff *skb)
                        }
                        return slsi_rx_action_enqueue_netdev_mlme(sdev, skb, vif);
 #ifdef CONFIG_SCSC_WLAN_GSCAN_ENABLE
-               case MLME_AP_LOSS_IND:
-                       return slsi_rx_enqueue_netdev_mlme(sdev, skb,  SLSI_NET_INDEX_WLAN);
-               case MLME_SIGNIFICANT_CHANGE_IND:
-                       return slsi_rx_enqueue_netdev_mlme(sdev, skb, SLSI_NET_INDEX_WLAN);
-
                case MLME_NAN_EVENT_IND:
                case MLME_NAN_FOLLOWUP_IND:
                case MLME_NAN_SERVICE_IND: