1 2 /* Copyright (c) 2021, Qualcomm Innovation Center, Inc. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 18 19 20 21 22 23 24 25 26 #ifndef _RXPT_CLASSIFY_INFO_H_ 27 #define _RXPT_CLASSIFY_INFO_H_ 28 #if !defined(__ASSEMBLER__) 29 #endif 30 31 #define NUM_OF_DWORDS_RXPT_CLASSIFY_INFO 1 32 33 34 struct rxpt_classify_info { 35 #ifndef BIG_ENDIAN_HOST 36 uint32_t reo_destination_indication : 5, 37 lmac_peer_id_msb : 2, 38 use_flow_id_toeplitz_clfy : 1, 39 pkt_selection_fp_ucast_data : 1, 40 pkt_selection_fp_mcast_data : 1, 41 pkt_selection_fp_1000 : 1, 42 rxdma0_source_ring_selection : 3, 43 rxdma0_destination_ring_selection : 3, 44 mcast_echo_drop_enable : 1, 45 wds_learning_detect_en : 1, 46 intrabss_check_en : 1, 47 use_ppe : 1, 48 ppe_routing_enable : 1, 49 reserved_0b : 10; 50 #else 51 uint32_t reserved_0b : 10, 52 ppe_routing_enable : 1, 53 use_ppe : 1, 54 intrabss_check_en : 1, 55 wds_learning_detect_en : 1, 56 mcast_echo_drop_enable : 1, 57 rxdma0_destination_ring_selection : 3, 58 rxdma0_source_ring_selection : 3, 59 pkt_selection_fp_1000 : 1, 60 pkt_selection_fp_mcast_data : 1, 61 pkt_selection_fp_ucast_data : 1, 62 use_flow_id_toeplitz_clfy : 1, 63 lmac_peer_id_msb : 2, 64 reo_destination_indication : 5; 65 #endif 66 }; 67 68 69 70 71 #define RXPT_CLASSIFY_INFO_REO_DESTINATION_INDICATION_OFFSET 0x00000000 72 #define RXPT_CLASSIFY_INFO_REO_DESTINATION_INDICATION_LSB 0 73 #define RXPT_CLASSIFY_INFO_REO_DESTINATION_INDICATION_MSB 4 74 #define RXPT_CLASSIFY_INFO_REO_DESTINATION_INDICATION_MASK 0x0000001f 75 76 77 78 79 #define RXPT_CLASSIFY_INFO_LMAC_PEER_ID_MSB_OFFSET 0x00000000 80 #define RXPT_CLASSIFY_INFO_LMAC_PEER_ID_MSB_LSB 5 81 #define RXPT_CLASSIFY_INFO_LMAC_PEER_ID_MSB_MSB 6 82 #define RXPT_CLASSIFY_INFO_LMAC_PEER_ID_MSB_MASK 0x00000060 83 84 85 86 87 #define RXPT_CLASSIFY_INFO_USE_FLOW_ID_TOEPLITZ_CLFY_OFFSET 0x00000000 88 #define RXPT_CLASSIFY_INFO_USE_FLOW_ID_TOEPLITZ_CLFY_LSB 7 89 #define RXPT_CLASSIFY_INFO_USE_FLOW_ID_TOEPLITZ_CLFY_MSB 7 90 #define RXPT_CLASSIFY_INFO_USE_FLOW_ID_TOEPLITZ_CLFY_MASK 0x00000080 91 92 93 94 95 #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_UCAST_DATA_OFFSET 0x00000000 96 #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_UCAST_DATA_LSB 8 97 #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_UCAST_DATA_MSB 8 98 #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_UCAST_DATA_MASK 0x00000100 99 100 101 102 103 #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_MCAST_DATA_OFFSET 0x00000000 104 #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_MCAST_DATA_LSB 9 105 #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_MCAST_DATA_MSB 9 106 #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_MCAST_DATA_MASK 0x00000200 107 108 109 110 111 #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_1000_OFFSET 0x00000000 112 #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_1000_LSB 10 113 #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_1000_MSB 10 114 #define RXPT_CLASSIFY_INFO_PKT_SELECTION_FP_1000_MASK 0x00000400 115 116 117 118 119 #define RXPT_CLASSIFY_INFO_RXDMA0_SOURCE_RING_SELECTION_OFFSET 0x00000000 120 #define RXPT_CLASSIFY_INFO_RXDMA0_SOURCE_RING_SELECTION_LSB 11 121 #define RXPT_CLASSIFY_INFO_RXDMA0_SOURCE_RING_SELECTION_MSB 13 122 #define RXPT_CLASSIFY_INFO_RXDMA0_SOURCE_RING_SELECTION_MASK 0x00003800 123 124 125 126 127 #define RXPT_CLASSIFY_INFO_RXDMA0_DESTINATION_RING_SELECTION_OFFSET 0x00000000 128 #define RXPT_CLASSIFY_INFO_RXDMA0_DESTINATION_RING_SELECTION_LSB 14 129 #define RXPT_CLASSIFY_INFO_RXDMA0_DESTINATION_RING_SELECTION_MSB 16 130 #define RXPT_CLASSIFY_INFO_RXDMA0_DESTINATION_RING_SELECTION_MASK 0x0001c000 131 132 133 134 135 #define RXPT_CLASSIFY_INFO_MCAST_ECHO_DROP_ENABLE_OFFSET 0x00000000 136 #define RXPT_CLASSIFY_INFO_MCAST_ECHO_DROP_ENABLE_LSB 17 137 #define RXPT_CLASSIFY_INFO_MCAST_ECHO_DROP_ENABLE_MSB 17 138 #define RXPT_CLASSIFY_INFO_MCAST_ECHO_DROP_ENABLE_MASK 0x00020000 139 140 141 142 143 #define RXPT_CLASSIFY_INFO_WDS_LEARNING_DETECT_EN_OFFSET 0x00000000 144 #define RXPT_CLASSIFY_INFO_WDS_LEARNING_DETECT_EN_LSB 18 145 #define RXPT_CLASSIFY_INFO_WDS_LEARNING_DETECT_EN_MSB 18 146 #define RXPT_CLASSIFY_INFO_WDS_LEARNING_DETECT_EN_MASK 0x00040000 147 148 149 150 151 #define RXPT_CLASSIFY_INFO_INTRABSS_CHECK_EN_OFFSET 0x00000000 152 #define RXPT_CLASSIFY_INFO_INTRABSS_CHECK_EN_LSB 19 153 #define RXPT_CLASSIFY_INFO_INTRABSS_CHECK_EN_MSB 19 154 #define RXPT_CLASSIFY_INFO_INTRABSS_CHECK_EN_MASK 0x00080000 155 156 157 158 159 #define RXPT_CLASSIFY_INFO_USE_PPE_OFFSET 0x00000000 160 #define RXPT_CLASSIFY_INFO_USE_PPE_LSB 20 161 #define RXPT_CLASSIFY_INFO_USE_PPE_MSB 20 162 #define RXPT_CLASSIFY_INFO_USE_PPE_MASK 0x00100000 163 164 165 166 167 #define RXPT_CLASSIFY_INFO_PPE_ROUTING_ENABLE_OFFSET 0x00000000 168 #define RXPT_CLASSIFY_INFO_PPE_ROUTING_ENABLE_LSB 21 169 #define RXPT_CLASSIFY_INFO_PPE_ROUTING_ENABLE_MSB 21 170 #define RXPT_CLASSIFY_INFO_PPE_ROUTING_ENABLE_MASK 0x00200000 171 172 173 174 175 #define RXPT_CLASSIFY_INFO_RESERVED_0B_OFFSET 0x00000000 176 #define RXPT_CLASSIFY_INFO_RESERVED_0B_LSB 22 177 #define RXPT_CLASSIFY_INFO_RESERVED_0B_MSB 31 178 #define RXPT_CLASSIFY_INFO_RESERVED_0B_MASK 0xffc00000 179 180 181 182 #endif 183