diff --git a/target/inc/wmi_services.h b/target/inc/wmi_services.h index d75056fcec..df9bb8d053 100644 --- a/target/inc/wmi_services.h +++ b/target/inc/wmi_services.h @@ -162,7 +162,10 @@ typedef enum { WMI_SERVICE_DEPRECATED_REPLACE, WMI_SERVICE_TDLS_CONN_TRACKER_IN_HOST_MODE, /* FW supports a new mode that allows to run connection tracker in host */ WMI_SERVICE_ENHANCED_MCAST_FILTER,/* FW supports enhanced multicast filtering (of mcast IP inside ucast WLAN) */ - WMI_SERVICE_PERIODIC_CHAN_STAT_SUPPORT, /* periodic channel stats service */ + /* periodic channel stats service */ + WMI_SERVICE_PERIODIC_CHAN_STAT_SUPPORT, + WMI_SERVICE_MESH_11S, /* 11s mesh service support */ + WMI_MAX_SERVICE = 128 /* max service */ } WMI_SERVICE; diff --git a/target/inc/wmi_unified.h b/target/inc/wmi_unified.h index d62718e9f0..0443117796 100644 --- a/target/inc/wmi_unified.h +++ b/target/inc/wmi_unified.h @@ -2765,6 +2765,17 @@ typedef struct { * larger than 32 bits. */ A_UINT32 tsf_delta; + /* + * The lower 32 bits of the TSF (rx_tsf_l32) is copied by FW from + * TSF timestamp in the RX MAC descriptor provided by HW. + */ + A_UINT32 rx_tsf_l32; + + /* + *The Upper 32 bits (rx_tsf_u32) is filled by reading the TSF register + * after the packet is received. + */ + A_UINT32 rx_tsf_u32; /* This TLV is followed by array of bytes: * // management frame buffer * A_UINT8 bufp[]; @@ -4793,6 +4804,15 @@ typedef struct { #define WMI_UNIFIED_VDEV_SUBTYPE_P2P_GO 0x3 #define WMI_UNIFIED_VDEV_SUBTYPE_PROXY_STA 0x4 #define WMI_UNIFIED_VDEV_SUBTYPE_MESH 0x5 +/* + * new subtype for 11S mesh is required as 11S functionality differs + * in many ways from proprietary mesh + * 11S uses 6-addr frame format and supports peering between mesh + * stations and dynamic best path selection between mesh stations. + * While in proprietary mesh, neighboring mesh station MAC is manually + * added to AST table for traffic flow between mesh stations + */ +#define WMI_UNIFIED_VDEV_SUBTYPE_MESH_11S 0x6 /** values for vdev_start_request flags */ /** Indicates that AP VDEV uses hidden ssid. only valid for @@ -5293,6 +5313,13 @@ typedef enum { /* VDEV capabilities */ WMI_VDEV_PARAM_CAPABILITIES, /* see capabilities defs below */ + /* + * Increment TSF in micro seconds to avoid beacon collision on mesh VAP + * The host must ensure that either no other vdevs share the TSF with + * this vdev, or else that it is acceptable to apply this TSF adjustment + * to all vdevs sharing the TSF + */ + WMI_VDEV_PARAM_TSF_INCREMENT, } WMI_VDEV_PARAM; /* vdev capabilities bit mask */ diff --git a/target/inc/wmi_version.h b/target/inc/wmi_version.h index 521bdc8482..ce9b0e9275 100644 --- a/target/inc/wmi_version.h +++ b/target/inc/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_ 219 +#define __WMI_REVISION_ 220 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work