/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #ifndef _RXPT_CLASSIFY_INFO_H_ #define _RXPT_CLASSIFY_INFO_H_ #if !defined(__ASSEMBLER__) #endif #define NUM_OF_DWORDS_RXPT_CLASSIFY_INFO 1 struct rxpt_classify_info { #ifndef WIFI_BIT_ORDER_BIG_ENDIAN uint32_t reo_destination_indication : 5, lmac_peer_id_msb : 2, use_flow_id_toeplitz_clfy : 1, pkt_selection_fp_ucast_data : 1, pkt_selection_fp_mcast_data : 1, pkt_selection_fp_1000 : 1, rxdma0_source_ring_selection : 3, rxdma0_destination_ring_selection : 3, mcast_echo_drop_enable : 1, wds_learning_detect_en : 1, intrabss_check_en : 1, use_ppe : 1, ppe_routing_enable : 1, reserved_0b : 10; #else uint32_t reserved_0b : 10, ppe_routing_enable : 1, use_ppe : 1, intrabss_check_en : 1, wds_learning_detect_en : 1, mcast_echo_drop_enable : 1, rxdma0_destination_ring_selection : 3, rxdma0_source_ring_selection : 3, pkt_selection_fp_1000 : 1, pkt_selection_fp_mcast_data : 1, pkt_selection_fp_ucast_data : 1, use_flow_id_toeplitz_clfy : 1, lmac_peer_id_msb : 2, reo_destination_indication : 5; #endif }; #define RXPT_CLASSIFY_INFO_REO_DESTINATION_INDICATION_OFFSET 0x00000000 #define RXPT_CLASSIFY_INFO_REO_DESTINATION_INDICATION_LSB 0 #define RXPT_CLASSIFY_INFO_REO_DESTINATION_INDICATION_MSB 4 #define RXPT_CLASSIFY_INFO_REO_DESTINATION_INDICATION_MASK 0x0000001f #define RXPT_CLASSIFY_INFO_LMAC_PEER_ID_MSB_OFFSET 0x00000000 #define RXPT_CLASSIFY_INFO_LMAC_PEER_ID_MSB_LSB 5 #define RXPT_CLASSIFY_INFO_LMAC_PEER_ID_MSB_MSB 6 #define RXPT_CLASSIFY_INFO_LMAC_PEER_ID_MSB_MASK 0x00000060 #define RXPT_CLASSIFY_INFO_USE_FLOW_ID_TOEPLITZ_CLFY_OFFSET 0x00000000 #define RXPT_CLASSIFY_INFO_USE_FLOW_ID_TOEPLITZ_CLFY_LSB 7 #define RXPT_CLASSIFY_INFO_USE_FLOW_ID_TOEPLITZ_CLFY_MSB 7 #define RXPT_CLASSIFY_INFO_USE_FLOW_ID_TOEPLITZ_CLFY_MASK 0x00000080 #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_UCAST_DATA_OFFSET 0x00000000 #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_UCAST_DATA_LSB 8 #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_UCAST_DATA_MSB 8 #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_UCAST_DATA_MASK 0x00000100 #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_MCAST_DATA_OFFSET 0x00000000 #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_MCAST_DATA_LSB 9 #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_MCAST_DATA_MSB 9 #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_MCAST_DATA_MASK 0x00000200 #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_1000_OFFSET 0x00000000 #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_1000_LSB 10 #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_1000_MSB 10 #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_1000_MASK 0x00000400 #define RXPT_CLASSIFY_INFO_RXDMA0_SOURCE_RING_SELECTION_OFFSET 0x00000000 #define RXPT_CLASSIFY_INFO_RXDMA0_SOURCE_RING_SELECTION_LSB 11 #define RXPT_CLASSIFY_INFO_RXDMA0_SOURCE_RING_SELECTION_MSB 13 #define RXPT_CLASSIFY_INFO_RXDMA0_SOURCE_RING_SELECTION_MASK 0x00003800 #define RXPT_CLASSIFY_INFO_RXDMA0_DESTINATION_RING_SELECTION_OFFSET 0x00000000 #define RXPT_CLASSIFY_INFO_RXDMA0_DESTINATION_RING_SELECTION_LSB 14 #define RXPT_CLASSIFY_INFO_RXDMA0_DESTINATION_RING_SELECTION_MSB 16 #define RXPT_CLASSIFY_INFO_RXDMA0_DESTINATION_RING_SELECTION_MASK 0x0001c000 #define RXPT_CLASSIFY_INFO_MCAST_ECHO_DROP_ENABLE_OFFSET 0x00000000 #define RXPT_CLASSIFY_INFO_MCAST_ECHO_DROP_ENABLE_LSB 17 #define RXPT_CLASSIFY_INFO_MCAST_ECHO_DROP_ENABLE_MSB 17 #define RXPT_CLASSIFY_INFO_MCAST_ECHO_DROP_ENABLE_MASK 0x00020000 #define RXPT_CLASSIFY_INFO_WDS_LEARNING_DETECT_EN_OFFSET 0x00000000 #define RXPT_CLASSIFY_INFO_WDS_LEARNING_DETECT_EN_LSB 18 #define RXPT_CLASSIFY_INFO_WDS_LEARNING_DETECT_EN_MSB 18 #define RXPT_CLASSIFY_INFO_WDS_LEARNING_DETECT_EN_MASK 0x00040000 #define RXPT_CLASSIFY_INFO_INTRABSS_CHECK_EN_OFFSET 0x00000000 #define RXPT_CLASSIFY_INFO_INTRABSS_CHECK_EN_LSB 19 #define RXPT_CLASSIFY_INFO_INTRABSS_CHECK_EN_MSB 19 #define RXPT_CLASSIFY_INFO_INTRABSS_CHECK_EN_MASK 0x00080000 #define RXPT_CLASSIFY_INFO_USE_PPE_OFFSET 0x00000000 #define RXPT_CLASSIFY_INFO_USE_PPE_LSB 20 #define RXPT_CLASSIFY_INFO_USE_PPE_MSB 20 #define RXPT_CLASSIFY_INFO_USE_PPE_MASK 0x00100000 #define RXPT_CLASSIFY_INFO_PPE_ROUTING_ENABLE_OFFSET 0x00000000 #define RXPT_CLASSIFY_INFO_PPE_ROUTING_ENABLE_LSB 21 #define RXPT_CLASSIFY_INFO_PPE_ROUTING_ENABLE_MSB 21 #define RXPT_CLASSIFY_INFO_PPE_ROUTING_ENABLE_MASK 0x00200000 #define RXPT_CLASSIFY_INFO_RESERVED_0B_OFFSET 0x00000000 #define RXPT_CLASSIFY_INFO_RESERVED_0B_LSB 22 #define RXPT_CLASSIFY_INFO_RESERVED_0B_MSB 31 #define RXPT_CLASSIFY_INFO_RESERVED_0B_MASK 0xffc00000 #endif