From 48983d0eed34ff355b7c75089028e8a92316246c Mon Sep 17 00:00:00 2001 From: spuligil Date: Thu, 13 Feb 2020 06:00:40 -0800 Subject: [PATCH] fw-api: CL 9559507 - update fw common interface files HTT stats: add bss_color_id, add htt_ppdu_stats_users_info TLV def Change-Id: Ib97c8671c9d7af7f7ded0466af3432c95d0c2d9a CRs-Fixed: 2262693 --- fw/htt_ppdu_stats.h | 74 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/fw/htt_ppdu_stats.h b/fw/htt_ppdu_stats.h index e8aa235d8a39..a02e7ade062b 100644 --- a/fw/htt_ppdu_stats.h +++ b/fw/htt_ppdu_stats.h @@ -46,6 +46,7 @@ enum htt_ppdu_stats_tlv_tag { HTT_PPDU_STATS_USR_COMMON_ARRAY_TLV, /* htt_ppdu_stats_usr_common_array_tlv_v */ HTT_PPDU_STATS_INFO_TLV, /* htt_ppdu_stats_info */ HTT_PPDU_STATS_TX_MGMTCTRL_PAYLOAD_TLV, /* htt_ppdu_stats_tx_mgmtctrl_payload_tlv */ + HTT_PPDU_STATS_USERS_INFO_TLV, /* htt_ppdu_stats_users_info_tlv */ /* New TLV's are added above to this line */ HTT_PPDU_STATS_MAX_TAG, @@ -570,6 +571,19 @@ typedef enum HTT_PPDU_STATS_SPATIAL_REUSE HTT_PPDU_STATS_SPATIAL_REUSE; ((_var) |= ((_val) << HTT_PPDU_STATS_COMMON_TLV_SPATIAL_REUSE_S)); \ } while (0) +#define HTT_PPDU_STATS_COMMON_TLV_BSS_COLOR_ID_M 0x0000003f +#define HTT_PPDU_STATS_COMMON_TLV_BSS_COLOR_ID_S 0 + +#define HTT_PPDU_STATS_COMMON_TLV_BSS_COLOR_ID_GET(_var) \ + (((_var) & HTT_PPDU_STATS_COMMON_TLV_BSS_COLOR_ID_M) >> \ + HTT_PPDU_STATS_COMMON_TLV_BSS_COLOR_ID_S) + +#define HTT_PPDU_STATS_COMMON_TLV_BSS_COLOR_ID_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_PPDU_STATS_COMMON_TLV_BSS_COLOR_ID, _val); \ + ((_var) |= ((_val) << HTT_PPDU_STATS_COMMON_TLV_BSS_COLOR_ID_S)); \ + } while (0) + typedef struct { htt_tlv_hdr_t tlv_hdr; @@ -687,12 +701,28 @@ typedef struct { reserved1: 2; }; }; + /* ppdu_start_tstmp_u32_us: * Upper 32 bits of the PPDU start timestamp. * This field can be combined with the ppdu_start_tstmp_us field's * lower 32 bits of the PPDU start timestamp to form a 64-bit timestamp. */ A_UINT32 ppdu_start_tstmp_u32_us; + + /* + * BIT [5 : 0] - bss_color_id indicates he_bss_color which is an identifier + * of the BSS and is used to assist a receiving STA in + * identifying the BSS from which a PPDU originates. + * Value in the range 0 to 63 + * BIT [31 : 6] -reserved + */ + union { + A_UINT32 reserved__bss_color_id; + struct { + A_UINT32 bss_color_id: 6, + reserved2: 26; + }; + }; } htt_ppdu_stats_common_tlv; #define HTT_PPDU_STATS_USER_COMMON_TLV_TID_NUM_M 0x000000ff @@ -2229,5 +2259,49 @@ typedef struct { A_UINT32 payload[1]; } htt_ppdu_stats_tx_mgmtctrl_payload_tlv; +#define HTT_PPDU_STATS_USERS_INFO_TLV_MAX_USERS_M 0x000000ff +#define HTT_PPDU_STATS_USERS_INFO_TLV_MAX_USERS_S 0 + +#define HTT_PPDU_STATS_USERS_INFO_TLV_MAX_USERS_GET(_var) \ + (((_var) & HTT_PPDU_STATS_USERS_INFO_TLV_MAX_USERS_M) >> \ + HTT_PPDU_STATS_USERS_INFO_TLV_MAX_USERS_S) + +#define HTT_PPDU_STATS_USERS_INFO_TLV_MAX_USERS_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_PPDU_STATS_USERS_INFO_TLV_MAX_USERS, _val); \ + ((_var) |= ((_val) << HTT_PPDU_STATS_USERS_INFO_TLV_MAX_USERS_S)); \ + } while (0) + +#define HTT_PPDU_STATS_USERS_INFO_TLV_FRAME_TYPE_M 0x0000ff00 +#define HTT_PPDU_STATS_USERS_INFO_TLV_FRAME_TYPE_S 8 + +#define HTT_PPDU_STATS_USERS_INFO_TLV_FRAME_TYPE_GET(_var) \ + (((_var) & HTT_PPDU_STATS_USERS_INFO_TLV_FRAME_TYPE_M) >> \ + HTT_PPDU_STATS_USERS_INFO_TLV_FRAME_TYPE_S) + +#define HTT_PPDU_STATS_USERS_INFO_TLV_FRAME_TYPE_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_PPDU_STATS_USERS_INFO_TLV_FRAME_TYPE, _val); \ + ((_var) |= ((_val) << HTT_PPDU_STATS_USERS_INFO_TLV_FRAME_TYPE_S)); \ + } while (0) + +typedef struct { + htt_tlv_hdr_t tlv_hdr; + + /* + * BIT [ 7 : 0] :- max_users + * BIT [ 15 : 8] :- frame_type (HTT_STATS_FTYPE) + * BIT [ 31 : 16] :- reserved1 + */ + union { + A_UINT32 rsvd__frame_type__max_users; + struct { + A_UINT32 max_users: 8, + frame_type: 8, + reserved1: 16; + }; + }; +} htt_ppdu_stats_users_info_tlv; + #endif //__HTT_PPDU_STATS_H__