Browse Source

fw-api: CL 15762579 - update fw common interface files

Change-Id: If64f744b3932e11136480b1d898cea22a92c02b8
WMI: add VDEV_ICMP_OFFLOAD_CMD msg def
CRs-Fixed: 2262693
spuligil 3 years ago
parent
commit
08ae5e3594
4 changed files with 53 additions and 1 deletions
  1. 1 0
      fw/wmi_services.h
  2. 9 0
      fw/wmi_tlv_defs.h
  3. 42 0
      fw/wmi_unified.h
  4. 1 1
      fw/wmi_version.h

+ 1 - 0
fw/wmi_services.h

@@ -557,6 +557,7 @@ typedef  enum  {
      */
     WMI_SERVICE_SPATIAL_REUSE_ENHANCEMENT_SUPPORT = 306,
     WMI_SERVICE_MU_SNIF = 307, /* FW support MU sniffer */
+    WMI_SERVICE_ICMP_OFFLOAD = 308, /* FW supports ping offload during APPS suspend */
 
 
     WMI_MAX_EXT2_SERVICE

+ 9 - 0
fw/wmi_tlv_defs.h

@@ -1202,6 +1202,8 @@ typedef enum {
     WMITLV_TAG_STRUC_wmi_pdev_set_bios_interface_cmd_fixed_param,
     WMITLV_TAG_STRUC_wmi_vdev_set_mu_snif_cmd_param,
     WMITLV_TAG_STRUC_wmi_ctrl_path_btcoex_stats_struct,
+    WMITLV_TAG_STRUC_wmi_icmp_offload_fixed_param,
+    WMITLV_TAG_STRUC_WMI_IPV6_ADDR,
 } WMITLV_TAG_ID;
 
 /*
@@ -1678,6 +1680,7 @@ typedef enum {
     OP(WMI_REQUEST_THERMAL_STATS_CMDID) \
     OP(WMI_PDEV_SET_BIOS_INTERFACE_CMDID) \
     OP(WMI_VDEV_SET_MU_SNIF_CMDID) \
+    OP(WMI_VDEV_ICMP_OFFLOAD_CMDID) \
     /* add new CMD_LIST elements above this line */
 
 
@@ -4814,6 +4817,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_THERMAL_STATS_CMDID);
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, aids, WMITLV_SIZE_VAR)
 WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_SET_MU_SNIF_CMDID);
 
+/* WMI CMD used to offload ICMP ping packets */
+#define WMITLV_TABLE_WMI_VDEV_ICMP_OFFLOAD_CMDID(id,op,buf,len) \
+    WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_icmp_offload_fixed_param, wmi_icmp_offload_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
+    WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_FIXED_STRUC, WMI_IPV6_ADDR, ipv6_addr, WMITLV_SIZE_VAR)
+ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_ICMP_OFFLOAD_CMDID);
+
 
 
 /************************** TLV definitions of WMI events *******************************/

+ 42 - 0
fw/wmi_unified.h

@@ -558,6 +558,8 @@ typedef enum {
     WMI_VDEV_ENABLE_DISABLE_INTRA_BSS_CMDID,
     /* set vdev mu sniffer param */
     WMI_VDEV_SET_MU_SNIF_CMDID,
+    /** ICMP OFFLOAD */
+    WMI_VDEV_ICMP_OFFLOAD_CMDID,
 
     /* peer specific commands */
 
@@ -29691,6 +29693,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
         WMI_RETURN_STRING(WMI_REQUEST_THERMAL_STATS_CMDID);
         WMI_RETURN_STRING(WMI_PDEV_SET_BIOS_INTERFACE_CMDID);
         WMI_RETURN_STRING(WMI_VDEV_SET_MU_SNIF_CMDID);
+        WMI_RETURN_STRING(WMI_VDEV_ICMP_OFFLOAD_CMDID);
     }
 
     return (A_UINT8 *) "Invalid WMI cmd";
@@ -36130,6 +36133,45 @@ typedef struct {
  */
 } wmi_igmp_offload_fixed_param;
 
+/* flags for ICMP Offload IP4,IP6 */
+#define WMI_ICMP_OFFLOAD_IPV4_ENABLED_BIT 0
+#define WMI_ICMP_OFFLOAD_IPV6_ENABLED_BIT 1
+
+/* set IPv4 enabled/disabled flag and get the flag */
+#define WMI_SET_ICMP_OFFLOAD_IPV4_ENABLED_BIT(valid_bitmask)  \
+    WMI_SET_BITS(valid_bitmask, WMI_ICMP_OFFLOAD_IPV4_ENABLED_BIT, 1, 1)
+
+#define WMI_SET_ICMP_OFFLOAD_IPV4_DISABLED_BIT(valid_bitmask) \
+    WMI_SET_BITS(valid_bitmask, WMI_ICMP_OFFLOAD_IPV4_ENABLED_BIT, 1, 0)
+
+#define WMI_GET_ICMP_OFFLOAD_IPV4_ENABLED(valid_bitmask) \
+    WMI_GET_BITS(valid_bitmask, WMI_ICMP_OFFLOAD_IPV4_ENABLED_BIT, 1)
+
+/* set IPv6 enabled flag, disabled and get the flag */
+#define WMI_SET_ICMP_OFFLOAD_IPV6_ENABLED_BIT(valid_bitmask) \
+    WMI_SET_BITS(valid_bitmask, WMI_ICMP_OFFLOAD_IPV6_ENABLED_BIT, 1, 1)
+
+#define WMI_SET_ICMP_OFFLOAD_IPV6_DISABLED_BIT(valid_bitmask) \
+    WMI_SET_BITS(valid_bitmask, WMI_ICMP_OFFLOAD_IPV6_ENABLED_BIT, 1, 0)
+
+#define WMI_GET_ICMP_OFFLOAD_IPV6_ENABLED(valid_bitmask) \
+    WMI_GET_BITS(valid_bitmask, WMI_ICMP_OFFLOAD_IPV6_ENABLED_BIT, 1)
+
+typedef struct {
+    /** TLV tag and len; tag equals
+     * WMITLV_TAG_STRUC_wmi_vdev_icmp_offload_cmd_fixed_param
+     */
+    A_UINT32      tlv_header;
+    A_UINT32      vdev_id;
+    A_UINT32      enable;
+    /* bitmask for valid ipv4/ipv6 address */
+    A_UINT32      valid_bitmask;
+    WMI_IPV4_ADDR ipv4_addr;
+/* Following this structure are the TLVs:
+ *      WMI_IPV6_ADDR ipv6_addr[num_ipv6_addr];
+ */
+} wmi_icmp_offload_fixed_param;
+
 typedef struct {
     /** TLV tag and len; tag equals
     * WMITLV_TAG_STRUC_wmi_vdev_smart_monitor_event_fixed_param */

+ 1 - 1
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_ 1061
+#define __WMI_REVISION_ 1062
 
 /** The Version Namespace should not be normally changed. Only
  *  host and firmware of the same WMI namespace will work