Ver Fonte

fw-api: CL 3156191 - update fw common interface files

WMI msg defs for configuring LCA (Last Connected AP) roam behavior

Change-Id: I266b92447e1e9153ea2186cabbf6241810fd4ebb
CRs-Fixed: 1107600
snandini há 7 anos atrás
pai
commit
431995b3dd
3 ficheiros alterados com 25 adições e 2 exclusões
  1. 3 1
      fw/wmi_tlv_defs.h
  2. 21 0
      fw/wmi_unified.h
  3. 1 1
      fw/wmi_version.h

+ 3 - 1
fw/wmi_tlv_defs.h

@@ -836,6 +836,7 @@ typedef enum {
     WMITLV_TAG_STRUC_wmi_oem_dma_buf_release_entry,
     WMITLV_TAG_STRUC_wmi_pdev_bss_chan_info_request_fixed_param,
     WMITLV_TAG_STRUC_wmi_pdev_bss_chan_info_event_fixed_param,
+    WMITLV_TAG_STRUC_wmi_roam_lca_disallow_config_tlv_param,
 } WMITLV_TAG_ID;
 
 /*
@@ -2976,7 +2977,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_DCC_UPDATE_NDL_CMDID);
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, bssid_black_list, WMITLV_SIZE_VAR) \
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_ssid, ssid_white_list, WMITLV_SIZE_VAR) \
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, bssid_preferred_list, WMITLV_SIZE_VAR) \
-    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, bssid_preferred_factor, WMITLV_SIZE_VAR)
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, bssid_preferred_factor, WMITLV_SIZE_VAR) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_lca_disallow_config_tlv_param, lca_disallow_param, WMITLV_SIZE_VAR)
 WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_FILTER_CMDID);
 
 /* TSF timestamp action cmd */

+ 21 - 0
fw/wmi_unified.h

@@ -9778,8 +9778,20 @@ enum {
     ROAM_FILTER_OP_BITMAP_BLACK_LIST =   0x1,
     ROAM_FILTER_OP_BITMAP_WHITE_LIST =   0x2,
     ROAM_FILTER_OP_BITMAP_PREFER_BSSID = 0x4,
+    ROAM_FILTER_OP_BITMAP_LCA_DISALLOW = 0x8,
 };
 
+/** lca_enable_source_bitmap */
+#define WMI_ROAM_LCA_DISALLOW_SOURCE_PER        = 0x1,
+#define WMI_ROAM_LCA_DISALLOW_SOURCE_BMISS      = 0x2,
+#define WMI_ROAM_LCA_DISALLOW_SOURCE_LOW_RSSI   = 0x4,
+#define WMI_ROAM_LCA_DISALLOW_SOURCE_HIGH_RSSI  = 0x8,
+#define WMI_ROAM_LCA_DISALLOW_SOURCE_PERIODIC   = 0x10,
+#define WMI_ROAM_LCA_DISALLOW_SOURCE_MAWC       = 0x20, /* MAWC = Motion Aided Wifi connectivity */
+#define WMI_ROAM_LCA_DISALLOW_SOURCE_DENSE      = 0x40,
+#define WMI_ROAM_LCA_DISALLOW_SOURCE_BACKGROUND = 0x80,
+#define WMI_ROAM_LCA_DISALLOW_SOURCE_FORCED     = 0x100,
+
 typedef struct {
     A_UINT32 tlv_header;     /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_filter_list_fixed_param */
     A_UINT32 vdev_id; /** Unique id identifying the VDEV on which roaming filter is adopted */
@@ -9795,9 +9807,18 @@ typedef struct {
      *     wmi_ssid ssid_white_list[];
      *     wmi_mac_addr bssid_preferred_list[];
      *     A_UINT32 bssid_preferred_factor[];
+     *     wmi_roam_lca_disallow_config_tlv_param lca_disallow_param[0/1] (opt)
      */
 } wmi_roam_filter_fixed_param;
 
+typedef struct {
+    A_UINT32 tlv_header;        /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_lca_disallow_config_tlv_param */
+    A_UINT32 disallow_duration; /** How long LCA AP will be disallowed before it can be a roaming candidate again, in units of seconds */
+    A_UINT32 rssi_channel_penalization; /** How much RSSI will be penalized if candidate(s) are found in the same channel as disallowed AP's, in units of db */
+    A_UINT32 num_disallowed_aps; /** How many APs the target should maintain in its LCA (Last Connected AP) list */
+    A_UINT32 disallow_lca_enable_source_bitmap; /** disallow LCA logic is enabled only when trigger sources are matched with corresponding bit (see WMI_ROAM_LCA_DISALLOW_SOURCE constants) */
+} wmi_roam_lca_disallow_config_tlv_param;
+
 typedef struct {
     A_UINT8 address[4]; /* IPV4 address in Network Byte Order */
 } WMI_IPV4_ADDR;

+ 1 - 1
fw/wmi_version.h

@@ -36,7 +36,7 @@
 #define __WMI_VER_MINOR_    0
 /** WMI revision number has to be incremented when there is a
  *  change that may or may not break compatibility. */
-#define __WMI_REVISION_ 403
+#define __WMI_REVISION_ 404
 
 /** The Version Namespace should not be normally changed. Only
  *  host and firmware of the same WMI namespace will work