diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 04a5cce5dccb..46ae42193c23 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -2986,7 +2986,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_DCC_UPDATE_NDL_CMDID); 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_STRUC, wmi_roam_lca_disallow_config_tlv_param, lca_disallow_param, 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_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_rssi_rejection_oce_config_param, rssi_rejection_list, 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 f50a3e501b67..e0e1164a27d4 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -9827,6 +9827,7 @@ enum { ROAM_FILTER_OP_BITMAP_WHITE_LIST = 0x2, ROAM_FILTER_OP_BITMAP_PREFER_BSSID = 0x4, ROAM_FILTER_OP_BITMAP_LCA_DISALLOW = 0x8, + ROAM_FILTER_OP_BITMAP_RSSI_REJECTION_OCE = 0x10, }; /** lca_enable_source_bitmap */ @@ -9840,6 +9841,17 @@ enum { #define WMI_ROAM_LCA_DISALLOW_SOURCE_BACKGROUND 0x80 #define WMI_ROAM_LCA_DISALLOW_SOURCE_FORCED 0x100 +typedef struct { + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_rssi_rejection_oce_config_param */ + A_UINT32 tlv_header; + /** BSSID of AP, who reject (re-)assoc due to low RSSI */ + wmi_mac_addr bssid; + /** Disallowed AP for certain duration, in units of milliseconds */ + A_UINT32 remaining_disallow_duration; + /** AP will be allowed for candidate, when AP RSSI better than expected RSSI units in dBm */ + A_INT32 requested_rssi; +} wmi_roam_rssi_rejection_oce_config_param; + 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 */ @@ -9848,6 +9860,7 @@ typedef struct { A_UINT32 num_bssid_black_list; /* number of blacklist in the TLV variable bssid_black_list */ A_UINT32 num_ssid_white_list; /* number of whitelist in the TLV variable ssid_white_list */ A_UINT32 num_bssid_preferred_list; /* only for lfr 3.0. number of preferred list & factor in the TLV */ + A_UINT32 num_rssi_rejection_ap; /** number of list of AP who rejected STA due to low RSSI */ /** * TLV (tag length value) parameters follows roam_filter_list_cmd * The TLV's are: @@ -9856,6 +9869,7 @@ typedef struct { * 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_rssi_rejection_oce_config_param rssi_rejection_list[] */ } wmi_roam_filter_fixed_param; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 55aab6aba1d9..b4cc6f3877f6 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_ 410 +#define __WMI_REVISION_ 411 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work