From 431995b3dd57bb5db6c47b27bca6c5595f5d8775 Mon Sep 17 00:00:00 2001 From: snandini Date: Thu, 15 Jun 2017 17:23:52 -0700 Subject: [PATCH] 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 --- fw/wmi_tlv_defs.h | 4 +++- fw/wmi_unified.h | 21 +++++++++++++++++++++ fw/wmi_version.h | 2 +- 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 073259aacf6d..2e81ebe2528d 100644 --- a/fw/wmi_tlv_defs.h +++ b/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 */ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 65ecd28282d0..897d576277d0 100644 --- a/fw/wmi_unified.h +++ b/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; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 3853ed48edaf..50c827344a2e 100644 --- a/fw/wmi_version.h +++ b/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