From db9133db4d721825774000b206cbb3b111a1ef0e Mon Sep 17 00:00:00 2001 From: spuligil Date: Thu, 13 Sep 2018 00:03:45 -0700 Subject: [PATCH] fw-api: CL 5392072 - update fw common interface files Change-Id: I4aa855010e7d8bb5a251b16b4936307a2127fdf7 WMI: specify OBSS min and max RSSI limits for roaming CRs-Fixed: 2262693 --- fw/wmi_tlv_defs.h | 7 +++++++ fw/wmi_unified.h | 31 +++++++++++++++++++++++++++++++ fw/wmi_version.h | 2 +- 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 96c2b9176c..f8607bd000 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -930,6 +930,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_peer_cfr_capture_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_peer_chan_width_switch_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_chan_width_peer_list, + WMITLV_TAG_STRUC_wmi_obss_spatial_reuse_set_def_obss_thresh_cmd_fixed_param, } WMITLV_TAG_ID; /* @@ -1310,6 +1311,7 @@ typedef enum { OP(WMI_PDEV_OBSS_PD_SPATIAL_REUSE_CMDID) \ OP(WMI_PEER_CFR_CAPTURE_CMDID) \ OP(WMI_PEER_CHAN_WIDTH_SWITCH_CMDID) \ + OP(WMI_PDEV_OBSS_PD_SPATIAL_REUSE_SET_DEF_OBSS_THRESH_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -3774,6 +3776,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_CFR_CAPTURE_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_chan_width_peer_list, peer_info, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_CHAN_WIDTH_SWITCH_CMDID); +/* OBSS_PD Spatial_Reuse Set Default OBSS Thresholds */ +#define WMITLV_TABLE_WMI_PDEV_OBSS_PD_SPATIAL_REUSE_SET_DEF_OBSS_THRESH_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_obss_spatial_reuse_set_def_obss_thresh_cmd_fixed_param, wmi_obss_spatial_reuse_set_def_obss_thresh_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_OBSS_PD_SPATIAL_REUSE_SET_DEF_OBSS_THRESH_CMDID); + /************************** TLV definitions of WMI events *******************************/ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 61beb2869b..972715d9ca 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -1163,6 +1163,7 @@ typedef enum { /** WMI commands related to OBSS PD Spatial Reuse **/ WMI_PDEV_OBSS_PD_SPATIAL_REUSE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_SPATIAL_REUSE), + WMI_PDEV_OBSS_PD_SPATIAL_REUSE_SET_DEF_OBSS_THRESH_CMDID, } WMI_CMD_ID; typedef enum { @@ -22292,6 +22293,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_SAR_LIMITS_CMDID); WMI_RETURN_STRING(WMI_SAR_GET_LIMITS_CMDID); WMI_RETURN_STRING(WMI_PEER_CHAN_WIDTH_SWITCH_CMDID); + WMI_RETURN_STRING(WMI_PDEV_OBSS_PD_SPATIAL_REUSE_SET_DEF_OBSS_THRESH_CMDID); } return "Invalid WMI cmd"; @@ -23520,6 +23522,35 @@ typedef struct { A_UINT32 vdev_id; } wmi_obss_spatial_reuse_set_cmd_fixed_param; +/* + * Below structure is related to WMI CMD that configures the default + * mimimum (OBSS_MIN) and maximum (OBSS_MAX) Other BSS levels (RSSI in dbm) + * for VDEV of a give type (STA or AP). These thresholds are configured + * within the Host and passed down to the FW. FW will use these + * default OBSS_MIN and OBSS_MAX values during roaming if the assoc response + * from the AP does not include spatial reuse parameter set Info Element. + */ +typedef struct { + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_obss_spatial_reuse_set_def_obss_thresh_cmd_fixed_param + */ + A_UINT32 tlv_header; + /* + * In the below fields, "OBSS level" refers to the power of the + * signals received from "Other BSS". + * Spatial reuse will only be permitted if the Other BSS's signal power + * is witin the min to max range specified by the below fields. + */ + /** Minimum OBSS level to use */ + A_INT32 obss_min; /* RSSI in dBm */ + /** Maximum OBSS level to use */ + A_INT32 obss_max; /* RSSI in dBm */ + /** Type of VDEV for which these threshold are applicable. + * vdev_type should be one of WMI_VDEV_TYPE_STA or WMI_VDEV_TYPE_AP + */ + A_UINT32 vdev_type; +} wmi_obss_spatial_reuse_set_def_obss_thresh_cmd_fixed_param; + typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUCT_wmi_chan_width_peer_list */ wmi_mac_addr peer_macaddr; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index ad7bf29615..6e671dac31 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_ 573 +#define __WMI_REVISION_ 574 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work