diff --git a/fw/wmi_services.h b/fw/wmi_services.h index 03a00b029d86..1d61d21c1483 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -237,6 +237,7 @@ typedef enum { WMI_SERVICE_WOW_WAKEUP_BY_TIMER_PATTERN=142, /* fw to support waking up host from wow pattern timer */ WMI_SERVICE_PEER_MAP_UNMAP_V2_SUPPORT=143, /* Support for HTT peer map/unmap V2 */ WMI_SERVICE_OFFCHAN_DATA_TID_SUPPORT=144, /* Support new tid for offchan data/mgmt tx over wmi */ + WMI_SERVICE_RX_PROMISC_ENABLE_SUPPORT=145, /* Support enabling/disabling rx promiscuous mode as directed by a WMI message from the host */ /******* ADD NEW SERVICES HERE *******/ diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 8a836c3aac2a..b7939a97aa9e 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -870,6 +870,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_ndl_schedule_update_fixed_param, WMITLV_TAG_STRUC_wmi_peer_tid_msduq_qdepth_thresh_update_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_msduq_qdepth_thresh_update, + WMITLV_TAG_STRUC_wmi_pdev_set_rx_filter_promiscuous_cmd_fixed_param, } WMITLV_TAG_ID; /* @@ -1220,6 +1221,7 @@ typedef enum { OP(WMI_BCN_OFFLOAD_CTRL_CMDID) \ OP(WMI_PDEV_SET_AC_TX_QUEUE_OPTIMIZED_CMDID) \ OP(WMI_PEER_TID_MSDUQ_QDEPTH_THRESH_UPDATE_CMDID) \ + OP(WMI_PDEV_SET_RX_FILTER_PROMISCUOUS_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -3504,6 +3506,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_AC_TX_QUEUE_OPTIMIZED_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_msduq_qdepth_thresh_update, msduq_qdepth_thresh_update, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_TID_MSDUQ_QDEPTH_THRESH_UPDATE_CMDID); +/* Pdev Set RX filter promiscuous Cmd */ +#define WMITLV_TABLE_WMI_PDEV_SET_RX_FILTER_PROMISCUOUS_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_rx_filter_promiscuous_cmd_fixed_param, wmi_pdev_set_rx_filter_promiscuous_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_RX_FILTER_PROMISCUOUS_CMDID); + /************************** TLV definitions of WMI events *******************************/ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index c0ef972d3d26..5a48b1e419d2 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -381,6 +381,8 @@ typedef enum { WMI_PDEV_CONFIG_VENDOR_OUI_ACTION_CMDID, /** enable/disable per-AC tx queue optimizations */ WMI_PDEV_SET_AC_TX_QUEUE_OPTIMIZED_CMDID, + /** enable/disable rx promiscuous mode */ + WMI_PDEV_SET_RX_FILTER_PROMISCUOUS_CMDID, /* VDEV (virtual device) specific commands */ /** vdev create */ @@ -12719,6 +12721,16 @@ typedef struct { A_UINT32 ac_tx_queue_optimize_enable; } wmi_pdev_set_ac_tx_queue_optimized_cmd_fixed_param; +typedef struct { + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_rx_filter_promiscuous_cmd_fixed_param */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + /** Enable/disable rx filter promiscuous */ + A_UINT32 rx_filter_promiscuous_enable; +} wmi_pdev_set_rx_filter_promiscuous_cmd_fixed_param; + typedef enum { WMI_BEACON_INFO_PRESENCE_OUI_EXT = 1 << 0, WMI_BEACON_INFO_PRESENCE_MAC_ADDRESS = 1 << 1, @@ -14338,7 +14350,7 @@ typedef struct { * If number of msdus in a queue excess over qdepth_thresh_value value * while queuing msdu's then we drop new msdus. * (Though dropping older (stale) data rather than newer data might be - * preferable, the dropping is performed by MAC HW, and there’s no option + * preferable, the dropping is performed by MAC HW, and theres no option * to configure the HW to do head dropping rather than tail dropping.) */ A_UINT32 qdepth_thresh_value; @@ -20822,6 +20834,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_ENABLE_FILS_CMDID); WMI_RETURN_STRING(WMI_PDEV_SET_AC_TX_QUEUE_OPTIMIZED_CMDID); WMI_RETURN_STRING(WMI_PEER_TID_MSDUQ_QDEPTH_THRESH_UPDATE_CMDID); + WMI_RETURN_STRING(WMI_PDEV_SET_RX_FILTER_PROMISCUOUS_CMDID); } return "Invalid WMI cmd"; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 23e506923190..33a6bfd542a8 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_ 475 +#define __WMI_REVISION_ 476 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work