From 0da49ec7b9a848e111f6da1f5f48a81e0ffc6ba7 Mon Sep 17 00:00:00 2001 From: spuligil Date: Sat, 5 Apr 2025 06:03:20 -0700 Subject: [PATCH] fw-api: CL 28944690 - update fw common interface files Change-Id: I320ebfbf2598e558700ca79045d7efb5496be5c7 CRs-Fixed: 3830439 --- fw/wmi_services.h | 1 + fw/wmi_tlv_defs.h | 6 +++++ fw/wmi_unified.h | 64 +++++++++++++++++++++++++++++++++++++++++++++++ fw/wmi_version.h | 2 +- 4 files changed, 72 insertions(+), 1 deletion(-) diff --git a/fw/wmi_services.h b/fw/wmi_services.h index e03647797902..c0dc42fb9865 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -698,6 +698,7 @@ typedef enum { WMI_SERVICE_MLO_ROAM_PARTNER_BRINGUP_FROM_HOST = 439, /* Indicates FW supports new design in which FW expects the host to bringup the partner link during roaming */ WMI_SERVICE_CTRL_PATH_PEER_BA_STATS = 440, /* FW supports retrieving BlockAck stats through WMI_REQUEST_CTRL_PATH_PEER_STAT */ WMI_SERVICE_CTRL_PATH_STA_DAR_STATS_SUPPORT = 441, /* FW supports DAR stats reporting for STA mode */ + WMI_SERVICE_APF_DATA_OFFLOAD_SUPPORT_ENABLED = 442, /* Indicates FW support for APFv6 handling offloads and disable QC data offloads */ WMI_MAX_EXT2_SERVICE diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 76012e9b04d5..10f7ab407ce6 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1480,6 +1480,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_roam_partner_link_param, WMITLV_TAG_STRUC_wmi_mlo_link_ttlm_complete_fixed_param, WMITLV_TAG_STRUC_wmi_ctrl_path_sta_dar_stats_struct, + WMITLV_TAG_STRUC_wmi_bpf_set_supported_offload_bitmap_cmd_fixed_param, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. @@ -2043,6 +2044,7 @@ typedef enum { OP(WMI_VDEV_VBSS_CONFIG_CMDID) \ OP(WMI_NDP_SET_LATENCY_TPUT_CMDID) \ OP(WMI_MLO_LINK_TTLM_COMPLETE_CMDID) \ + OP(WMI_BPF_SET_SUPPORTED_OFFLOAD_BITMAP_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -5761,6 +5763,10 @@ WMITLV_CREATE_PARAM_STRUC(WMI_GET_SCAN_CACHE_RESULT_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sawf_ezmesh_hop_count_cmd_fixed_param, wmi_sawf_ezmesh_hop_count_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_SAWF_EZMESH_HOP_COUNT_CMDID); +#define WMITLV_TABLE_WMI_BPF_SET_SUPPORTED_OFFLOAD_BITMAP_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_bpf_set_supported_offload_bitmap_cmd_fixed_param, wmi_bpf_set_supported_offload_bitmap_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_BPF_SET_SUPPORTED_OFFLOAD_BITMAP_CMDID); + /************************** TLV definitions of WMI events *******************************/ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 61c640efd4ea..f1db33bc5d5c 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -1579,6 +1579,7 @@ typedef enum { WMI_BPF_SET_VDEV_ENABLE_CMDID, WMI_BPF_SET_VDEV_WORK_MEMORY_CMDID, WMI_BPF_GET_VDEV_WORK_MEMORY_CMDID, + WMI_BPF_SET_SUPPORTED_OFFLOAD_BITMAP_CMDID, /** WMI commands related to monitor mode. */ WMI_MNT_FILTER_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_MONITOR), @@ -5109,6 +5110,27 @@ typedef struct { * BIT 6 : 31 Reserved */ A_UINT32 c2c_int_type_config; + + /** + * @brief apf_data_ofld_enable + * BIT 0 -> enable/disable offload support in apf + * @detail: This flag will indicate during init time + * based on the vendor img version if APF is supporting + * any offloads. + * BIT 1 : 31 Reserved + */ + union { + A_UINT32 apf_data_ofload_enable__word; + struct { + A_UINT32 + apf_data_ofld_enable: 1, + reserved: 31; + }; + }; + #define WMI_RSRC_CFG_APF_DATA_OFLD_ENABLE_GET(word32) \ + WMI_GET_BITS(word32, 0, 1) + #define WMI_RSRC_CFG_APF_DATA_OFLD_ENABLE_SET(word32, value) \ + WMI_SET_BITS(word32, 0, 1, value) } wmi_resource_config; #define WMI_MSDU_FLOW_AST_ENABLE_GET(msdu_flow_config0, ast_x) \ @@ -34076,6 +34098,47 @@ typedef struct wmi_bpf_get_vdev_work_memory_resp_evt_s { */ } wmi_bpf_get_vdev_work_memory_resp_evt_fixed_param; + +/* APF offloads supported bitmap: + * + * BIT 0: ARP OFFLOAD + * BIT 1: NS OFFLOAD + * BIT 2: IGMP OFFLOAD + * BIT 3: ICMP OFFLOAD + * BIT 4-31: reserved +*/ +#define WMI_BPF_ARP_OFFLOAD_SUPPORT_GET(param) \ + WMI_GET_BITS(param, 0, 1) +#define WMI_BPF_ARP_OFFLOAD_SUPPORT_SET(param, value) \ + WMI_SET_BITS(param, 0, 1, value) + +#define WMI_BPF_NS_OFFLOAD_SUPPORT_GET(param) \ + WMI_GET_BITS(param, 1, 1) +#define WMI_BPF_NS_OFFLOAD_SUPPORT_SET(param, value) \ + WMI_SET_BITS(param, 1, 1, value) + +#define WMI_BPF_IGMP_OFFLOAD_SUPPORT_GET(param) \ + WMI_GET_BITS(param, 2, 1) +#define WMI_BPF_IGMP_OFFLOAD_SUPPORT_SET(param, value) \ + WMI_SET_BITS(param, 2, 1, value) + +#define WMI_BPF_ICMP_OFFLOAD_SUPPORT_GET(param) \ + WMI_GET_BITS(param, 3, 1) +#define WMI_BPF_ICMP_OFFLOAD_SUPPORT_SET(param, value) \ + WMI_SET_BITS(param, 3, 1, value) + +typedef struct wmi_bpf_set_supported_offload_bitmap_cmd_s { + A_UINT32 tlv_header; + A_UINT32 vdev_id; + /* ofld_bitmap: + * Host sends bitmap for APF supported offloads. + * Refer to the above WMI_BPF_ macros for the interpretation of the bits + * within the bitmap. + */ + A_UINT32 ofld_bitmap; +} wmi_bpf_set_supported_offload_bitmap_cmd_fixed_param; + + #define AES_BLOCK_LEN 16 /* in bytes */ #define FIPS_KEY_LENGTH_128 16 /* in bytes */ #define FIPS_KEY_LENGTH_256 32 /* in bytes */ @@ -38915,6 +38978,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_VDEV_VBSS_CONFIG_CMDID); WMI_RETURN_STRING(WMI_NDP_SET_LATENCY_TPUT_CMDID); WMI_RETURN_STRING(WMI_MLO_LINK_TTLM_COMPLETE_CMDID); + WMI_RETURN_STRING(WMI_BPF_SET_SUPPORTED_OFFLOAD_BITMAP_CMDID); } return (A_UINT8 *) "Invalid WMI cmd"; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index daf771ced9b5..8bb7d189c2d3 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -37,7 +37,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_ 1595 +#define __WMI_REVISION_ 1596 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work