rx_flow_search_entry.h 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793
  1. /*
  2. * Copyright (c) 2020 The Linux Foundation. All rights reserved.
  3. *
  4. * Permission to use, copy, modify, and/or distribute this software for
  5. * any purpose with or without fee is hereby granted, provided that the
  6. * above copyright notice and this permission notice appear in all
  7. * copies.
  8. *
  9. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
  10. * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
  11. * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
  12. * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
  13. * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
  14. * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  15. * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  16. * PERFORMANCE OF THIS SOFTWARE.
  17. */
  18. //
  19. // DO NOT EDIT! This file is automatically generated
  20. // These definitions are tied to a particular hardware layout
  21. #ifndef _RX_FLOW_SEARCH_ENTRY_H_
  22. #define _RX_FLOW_SEARCH_ENTRY_H_
  23. #if !defined(__ASSEMBLER__)
  24. #endif
  25. // ################ START SUMMARY #################
  26. //
  27. // Dword Fields
  28. // 0 src_ip_127_96[31:0]
  29. // 1 src_ip_95_64[31:0]
  30. // 2 src_ip_63_32[31:0]
  31. // 3 src_ip_31_0[31:0]
  32. // 4 dest_ip_127_96[31:0]
  33. // 5 dest_ip_95_64[31:0]
  34. // 6 dest_ip_63_32[31:0]
  35. // 7 dest_ip_31_0[31:0]
  36. // 8 src_port[15:0], dest_port[31:16]
  37. // 9 l4_protocol[7:0], valid[8], reserved_9[23:9], reo_destination_indication[28:24], msdu_drop[29], reo_destination_handler[31:30]
  38. // 10 metadata[31:0]
  39. // 11 aggregation_count[6:0], lro_eligible[7], msdu_count[31:8]
  40. // 12 msdu_byte_count[31:0]
  41. // 13 timestamp[31:0]
  42. // 14 cumulative_l4_checksum[15:0], cumulative_ip_length[31:16]
  43. // 15 tcp_sequence_number[31:0]
  44. //
  45. // ################ END SUMMARY #################
  46. #define NUM_OF_DWORDS_RX_FLOW_SEARCH_ENTRY 16
  47. struct rx_flow_search_entry {
  48. uint32_t src_ip_127_96 : 32; //[31:0]
  49. uint32_t src_ip_95_64 : 32; //[31:0]
  50. uint32_t src_ip_63_32 : 32; //[31:0]
  51. uint32_t src_ip_31_0 : 32; //[31:0]
  52. uint32_t dest_ip_127_96 : 32; //[31:0]
  53. uint32_t dest_ip_95_64 : 32; //[31:0]
  54. uint32_t dest_ip_63_32 : 32; //[31:0]
  55. uint32_t dest_ip_31_0 : 32; //[31:0]
  56. uint32_t src_port : 16, //[15:0]
  57. dest_port : 16; //[31:16]
  58. uint32_t l4_protocol : 8, //[7:0]
  59. valid : 1, //[8]
  60. reserved_9 : 15, //[23:9]
  61. reo_destination_indication : 5, //[28:24]
  62. msdu_drop : 1, //[29]
  63. reo_destination_handler : 2; //[31:30]
  64. uint32_t metadata : 32; //[31:0]
  65. uint32_t aggregation_count : 7, //[6:0]
  66. lro_eligible : 1, //[7]
  67. msdu_count : 24; //[31:8]
  68. uint32_t msdu_byte_count : 32; //[31:0]
  69. uint32_t timestamp : 32; //[31:0]
  70. uint32_t cumulative_l4_checksum : 16, //[15:0]
  71. cumulative_ip_length : 16; //[31:16]
  72. uint32_t tcp_sequence_number : 32; //[31:0]
  73. };
  74. /*
  75. src_ip_127_96
  76. Uppermost 32 bits of source IPv6 address or prefix as
  77. per Common Parser register field IP_DA_SA_PREFIX (with the
  78. first byte in the MSB and the last byte in the LSB, i.e.
  79. requiring a byte-swap for little-endian SW w.r.t. the byte
  80. order in an IPv6 packet)
  81. <legal all>
  82. src_ip_95_64
  83. Next 32 bits of source IPv6 address or prefix (requiring
  84. a byte-swap for little-endian SW) <legal all>
  85. src_ip_63_32
  86. Next 32 bits of source IPv6 address or lowest 32 bits of
  87. prefix (requiring a byte-swap for little-endian SW)
  88. <legal all>
  89. src_ip_31_0
  90. Lowest 32 bits of source IPv6 address, or source IPv4
  91. address (requiring a byte-swap for little-endian SW w.r.t.
  92. the byte order in an IPv6 or IPv4 packet)
  93. <legal all>
  94. dest_ip_127_96
  95. Uppermost 32 bits of destination IPv6 address or prefix
  96. as per Common Parser register field IP_DA_SA_PREFIX (with
  97. the first byte in the MSB and the last byte in the LSB, i.e.
  98. requiring a byte-swap for little-endian SW w.r.t. the byte
  99. order as in an IPv6 packet)
  100. <legal all>
  101. dest_ip_95_64
  102. Next 32 bits of destination IPv6 address or prefix
  103. (requiring a byte-swap for little-endian SW)
  104. <legal all>
  105. dest_ip_63_32
  106. Next 32 bits of destination IPv6 address or lowest 32
  107. bits of prefix (requiring a byte-swap for little-endian SW)
  108. <legal all>
  109. dest_ip_31_0
  110. Lowest 32 bits of destination IPv6 address, or
  111. destination IPv4 address (requiring a byte-swap for
  112. little-endian SW w.r.t. the byte order in an IPv6 or IPv4
  113. packet)
  114. <legal all>
  115. src_port
  116. LSB of SPI in case of ESP/AH
  117. else source port in case of TCP/UDP without IPsec,
  118. else zeros in case of ICMP (with the first/third byte in
  119. the MSB and the second/fourth byte in the LSB, i.e.
  120. requiring a byte-swap for little-endian SW w.r.t. the byte
  121. order as in an IPv6 or IPv4 packet) <legal all>
  122. dest_port
  123. MSB of SPI in case of ESP/AH
  124. else destination port in case of TCP/UDP without IPsec,
  125. else zeros in case of ICMP (with the first byte in the
  126. MSB and the second byte in the LSB, i.e. requiring a
  127. byte-swap for little-endian SW w.r.t. the byte order as in
  128. an IPv6 or IPv4 packet)
  129. <legal all>
  130. l4_protocol
  131. IPsec or L4 protocol
  132. <enum 1 ICMPV4>
  133. <enum 6 TCP>
  134. <enum 17 UDP>
  135. <enum 50 ESP>
  136. <enum 51 AH>
  137. <enum 58 ICMPV6>
  138. <legal 1, 6, 17, 50, 51, 58>
  139. valid
  140. Indicates validity of entry
  141. <legal all>
  142. reserved_9
  143. <legal 0>
  144. reo_destination_indication
  145. The ID of the REO exit ring where the MSDU frame shall
  146. push after (MPDU level) reordering has finished.
  147. <enum 0 reo_destination_tcl> Reo will push the frame
  148. into the REO2TCL ring
  149. <enum 1 reo_destination_sw1> Reo will push the frame
  150. into the REO2SW1 ring
  151. <enum 2 reo_destination_sw2> Reo will push the frame
  152. into the REO2SW2 ring
  153. <enum 3 reo_destination_sw3> Reo will push the frame
  154. into the REO2SW3 ring
  155. <enum 4 reo_destination_sw4> Reo will push the frame
  156. into the REO2SW4 ring
  157. <enum 5 reo_destination_release> Reo will push the frame
  158. into the REO_release ring
  159. <enum 6 reo_destination_fw> Reo will push the frame into
  160. the REO2FW ring
  161. <enum 7 reo_destination_sw5> Reo will push the frame
  162. into the REO2SW5 ring (REO remaps this in chips without
  163. REO2SW5 ring, e.g. Pine)
  164. <enum 8 reo_destination_sw6> Reo will push the frame
  165. into the REO2SW6 ring (REO remaps this in chips without
  166. REO2SW6 ring, e.g. Pine)
  167. <enum 9 reo_destination_9> REO remaps this <enum 10
  168. reo_destination_10> REO remaps this
  169. <enum 11 reo_destination_11> REO remaps this
  170. <enum 12 reo_destination_12> REO remaps this <enum 13
  171. reo_destination_13> REO remaps this
  172. <enum 14 reo_destination_14> REO remaps this
  173. <enum 15 reo_destination_15> REO remaps this
  174. <enum 16 reo_destination_16> REO remaps this
  175. <enum 17 reo_destination_17> REO remaps this
  176. <enum 18 reo_destination_18> REO remaps this
  177. <enum 19 reo_destination_19> REO remaps this
  178. <enum 20 reo_destination_20> REO remaps this
  179. <enum 21 reo_destination_21> REO remaps this
  180. <enum 22 reo_destination_22> REO remaps this
  181. <enum 23 reo_destination_23> REO remaps this
  182. <enum 24 reo_destination_24> REO remaps this
  183. <enum 25 reo_destination_25> REO remaps this
  184. <enum 26 reo_destination_26> REO remaps this
  185. <enum 27 reo_destination_27> REO remaps this
  186. <enum 28 reo_destination_28> REO remaps this
  187. <enum 29 reo_destination_29> REO remaps this
  188. <enum 30 reo_destination_30> REO remaps this
  189. <enum 31 reo_destination_31> REO remaps this
  190. <legal all>
  191. msdu_drop
  192. Overriding indication to REO to forward to REO release
  193. ring
  194. <legal all>
  195. reo_destination_handler
  196. Indicates how to decide the REO destination indication
  197. <enum 0 RXFT_USE_FT> Follow this entry
  198. <enum 1 RXFT_USE_ASPT> Use address search+peer table
  199. entry
  200. <enum 2 RXFT_USE_FT2> Follow this entry
  201. <enum 3 RXFT_USE_CCE> Use CCE super-rule
  202. <legal all>
  203. metadata
  204. Value to be passed to SW if this flow search entry
  205. matches
  206. <legal all>
  207. aggregation_count
  208. FISA: Number'of MSDU's aggregated so far
  209. Set to zero in chips not supporting FISA, e.g. Pine
  210. <legal all>
  211. lro_eligible
  212. FISA: To indicate whether the previous MSDU for this
  213. flow is eligible for LRO/FISA
  214. Set to zero in chips not supporting FISA, e.g. Pine
  215. <legal all>
  216. msdu_count
  217. Number of Rx MSDUs matching this flow
  218. <legal all>
  219. msdu_byte_count
  220. Number of bytes in Rx MSDUs matching this flow
  221. <legal all>
  222. timestamp
  223. Time of last reception (as measured at Rx OLE) matching
  224. this flow
  225. <legal all>
  226. cumulative_l4_checksum
  227. FISA: checksum 'or MSDU's that is part of this flow
  228. aggregated so far
  229. Set to zero in chips not supporting FISA, e.g. Pine
  230. <legal all>
  231. cumulative_ip_length
  232. FISA: Total MSDU length that is part of this flow
  233. aggregated so far
  234. Set to zero in chips not supporting FISA, e.g. Pine
  235. <legal all>
  236. tcp_sequence_number
  237. FISA: TCP Sequence number of the last packet in this
  238. flow to detect sequence number jump
  239. Set to zero in chips not supporting FISA, e.g. Pine
  240. <legal all>
  241. */
  242. /* Description RX_FLOW_SEARCH_ENTRY_0_SRC_IP_127_96
  243. Uppermost 32 bits of source IPv6 address or prefix as
  244. per Common Parser register field IP_DA_SA_PREFIX (with the
  245. first byte in the MSB and the last byte in the LSB, i.e.
  246. requiring a byte-swap for little-endian SW w.r.t. the byte
  247. order in an IPv6 packet)
  248. <legal all>
  249. */
  250. #define RX_FLOW_SEARCH_ENTRY_0_SRC_IP_127_96_OFFSET 0x00000000
  251. #define RX_FLOW_SEARCH_ENTRY_0_SRC_IP_127_96_LSB 0
  252. #define RX_FLOW_SEARCH_ENTRY_0_SRC_IP_127_96_MASK 0xffffffff
  253. /* Description RX_FLOW_SEARCH_ENTRY_1_SRC_IP_95_64
  254. Next 32 bits of source IPv6 address or prefix (requiring
  255. a byte-swap for little-endian SW) <legal all>
  256. */
  257. #define RX_FLOW_SEARCH_ENTRY_1_SRC_IP_95_64_OFFSET 0x00000004
  258. #define RX_FLOW_SEARCH_ENTRY_1_SRC_IP_95_64_LSB 0
  259. #define RX_FLOW_SEARCH_ENTRY_1_SRC_IP_95_64_MASK 0xffffffff
  260. /* Description RX_FLOW_SEARCH_ENTRY_2_SRC_IP_63_32
  261. Next 32 bits of source IPv6 address or lowest 32 bits of
  262. prefix (requiring a byte-swap for little-endian SW)
  263. <legal all>
  264. */
  265. #define RX_FLOW_SEARCH_ENTRY_2_SRC_IP_63_32_OFFSET 0x00000008
  266. #define RX_FLOW_SEARCH_ENTRY_2_SRC_IP_63_32_LSB 0
  267. #define RX_FLOW_SEARCH_ENTRY_2_SRC_IP_63_32_MASK 0xffffffff
  268. /* Description RX_FLOW_SEARCH_ENTRY_3_SRC_IP_31_0
  269. Lowest 32 bits of source IPv6 address, or source IPv4
  270. address (requiring a byte-swap for little-endian SW w.r.t.
  271. the byte order in an IPv6 or IPv4 packet)
  272. <legal all>
  273. */
  274. #define RX_FLOW_SEARCH_ENTRY_3_SRC_IP_31_0_OFFSET 0x0000000c
  275. #define RX_FLOW_SEARCH_ENTRY_3_SRC_IP_31_0_LSB 0
  276. #define RX_FLOW_SEARCH_ENTRY_3_SRC_IP_31_0_MASK 0xffffffff
  277. /* Description RX_FLOW_SEARCH_ENTRY_4_DEST_IP_127_96
  278. Uppermost 32 bits of destination IPv6 address or prefix
  279. as per Common Parser register field IP_DA_SA_PREFIX (with
  280. the first byte in the MSB and the last byte in the LSB, i.e.
  281. requiring a byte-swap for little-endian SW w.r.t. the byte
  282. order as in an IPv6 packet)
  283. <legal all>
  284. */
  285. #define RX_FLOW_SEARCH_ENTRY_4_DEST_IP_127_96_OFFSET 0x00000010
  286. #define RX_FLOW_SEARCH_ENTRY_4_DEST_IP_127_96_LSB 0
  287. #define RX_FLOW_SEARCH_ENTRY_4_DEST_IP_127_96_MASK 0xffffffff
  288. /* Description RX_FLOW_SEARCH_ENTRY_5_DEST_IP_95_64
  289. Next 32 bits of destination IPv6 address or prefix
  290. (requiring a byte-swap for little-endian SW)
  291. <legal all>
  292. */
  293. #define RX_FLOW_SEARCH_ENTRY_5_DEST_IP_95_64_OFFSET 0x00000014
  294. #define RX_FLOW_SEARCH_ENTRY_5_DEST_IP_95_64_LSB 0
  295. #define RX_FLOW_SEARCH_ENTRY_5_DEST_IP_95_64_MASK 0xffffffff
  296. /* Description RX_FLOW_SEARCH_ENTRY_6_DEST_IP_63_32
  297. Next 32 bits of destination IPv6 address or lowest 32
  298. bits of prefix (requiring a byte-swap for little-endian SW)
  299. <legal all>
  300. */
  301. #define RX_FLOW_SEARCH_ENTRY_6_DEST_IP_63_32_OFFSET 0x00000018
  302. #define RX_FLOW_SEARCH_ENTRY_6_DEST_IP_63_32_LSB 0
  303. #define RX_FLOW_SEARCH_ENTRY_6_DEST_IP_63_32_MASK 0xffffffff
  304. /* Description RX_FLOW_SEARCH_ENTRY_7_DEST_IP_31_0
  305. Lowest 32 bits of destination IPv6 address, or
  306. destination IPv4 address (requiring a byte-swap for
  307. little-endian SW w.r.t. the byte order in an IPv6 or IPv4
  308. packet)
  309. <legal all>
  310. */
  311. #define RX_FLOW_SEARCH_ENTRY_7_DEST_IP_31_0_OFFSET 0x0000001c
  312. #define RX_FLOW_SEARCH_ENTRY_7_DEST_IP_31_0_LSB 0
  313. #define RX_FLOW_SEARCH_ENTRY_7_DEST_IP_31_0_MASK 0xffffffff
  314. /* Description RX_FLOW_SEARCH_ENTRY_8_SRC_PORT
  315. LSB of SPI in case of ESP/AH
  316. else source port in case of TCP/UDP without IPsec,
  317. else zeros in case of ICMP (with the first/third byte in
  318. the MSB and the second/fourth byte in the LSB, i.e.
  319. requiring a byte-swap for little-endian SW w.r.t. the byte
  320. order as in an IPv6 or IPv4 packet) <legal all>
  321. */
  322. #define RX_FLOW_SEARCH_ENTRY_8_SRC_PORT_OFFSET 0x00000020
  323. #define RX_FLOW_SEARCH_ENTRY_8_SRC_PORT_LSB 0
  324. #define RX_FLOW_SEARCH_ENTRY_8_SRC_PORT_MASK 0x0000ffff
  325. /* Description RX_FLOW_SEARCH_ENTRY_8_DEST_PORT
  326. MSB of SPI in case of ESP/AH
  327. else destination port in case of TCP/UDP without IPsec,
  328. else zeros in case of ICMP (with the first byte in the
  329. MSB and the second byte in the LSB, i.e. requiring a
  330. byte-swap for little-endian SW w.r.t. the byte order as in
  331. an IPv6 or IPv4 packet)
  332. <legal all>
  333. */
  334. #define RX_FLOW_SEARCH_ENTRY_8_DEST_PORT_OFFSET 0x00000020
  335. #define RX_FLOW_SEARCH_ENTRY_8_DEST_PORT_LSB 16
  336. #define RX_FLOW_SEARCH_ENTRY_8_DEST_PORT_MASK 0xffff0000
  337. /* Description RX_FLOW_SEARCH_ENTRY_9_L4_PROTOCOL
  338. IPsec or L4 protocol
  339. <enum 1 ICMPV4>
  340. <enum 6 TCP>
  341. <enum 17 UDP>
  342. <enum 50 ESP>
  343. <enum 51 AH>
  344. <enum 58 ICMPV6>
  345. <legal 1, 6, 17, 50, 51, 58>
  346. */
  347. #define RX_FLOW_SEARCH_ENTRY_9_L4_PROTOCOL_OFFSET 0x00000024
  348. #define RX_FLOW_SEARCH_ENTRY_9_L4_PROTOCOL_LSB 0
  349. #define RX_FLOW_SEARCH_ENTRY_9_L4_PROTOCOL_MASK 0x000000ff
  350. /* Description RX_FLOW_SEARCH_ENTRY_9_VALID
  351. Indicates validity of entry
  352. <legal all>
  353. */
  354. #define RX_FLOW_SEARCH_ENTRY_9_VALID_OFFSET 0x00000024
  355. #define RX_FLOW_SEARCH_ENTRY_9_VALID_LSB 8
  356. #define RX_FLOW_SEARCH_ENTRY_9_VALID_MASK 0x00000100
  357. /* Description RX_FLOW_SEARCH_ENTRY_9_RESERVED_9
  358. <legal 0>
  359. */
  360. #define RX_FLOW_SEARCH_ENTRY_9_RESERVED_9_OFFSET 0x00000024
  361. #define RX_FLOW_SEARCH_ENTRY_9_RESERVED_9_LSB 9
  362. #define RX_FLOW_SEARCH_ENTRY_9_RESERVED_9_MASK 0x00fffe00
  363. /* Description RX_FLOW_SEARCH_ENTRY_9_REO_DESTINATION_INDICATION
  364. The ID of the REO exit ring where the MSDU frame shall
  365. push after (MPDU level) reordering has finished.
  366. <enum 0 reo_destination_tcl> Reo will push the frame
  367. into the REO2TCL ring
  368. <enum 1 reo_destination_sw1> Reo will push the frame
  369. into the REO2SW1 ring
  370. <enum 2 reo_destination_sw2> Reo will push the frame
  371. into the REO2SW2 ring
  372. <enum 3 reo_destination_sw3> Reo will push the frame
  373. into the REO2SW3 ring
  374. <enum 4 reo_destination_sw4> Reo will push the frame
  375. into the REO2SW4 ring
  376. <enum 5 reo_destination_release> Reo will push the frame
  377. into the REO_release ring
  378. <enum 6 reo_destination_fw> Reo will push the frame into
  379. the REO2FW ring
  380. <enum 7 reo_destination_sw5> Reo will push the frame
  381. into the REO2SW5 ring (REO remaps this in chips without
  382. REO2SW5 ring, e.g. Pine)
  383. <enum 8 reo_destination_sw6> Reo will push the frame
  384. into the REO2SW6 ring (REO remaps this in chips without
  385. REO2SW6 ring, e.g. Pine)
  386. <enum 9 reo_destination_9> REO remaps this <enum 10
  387. reo_destination_10> REO remaps this
  388. <enum 11 reo_destination_11> REO remaps this
  389. <enum 12 reo_destination_12> REO remaps this <enum 13
  390. reo_destination_13> REO remaps this
  391. <enum 14 reo_destination_14> REO remaps this
  392. <enum 15 reo_destination_15> REO remaps this
  393. <enum 16 reo_destination_16> REO remaps this
  394. <enum 17 reo_destination_17> REO remaps this
  395. <enum 18 reo_destination_18> REO remaps this
  396. <enum 19 reo_destination_19> REO remaps this
  397. <enum 20 reo_destination_20> REO remaps this
  398. <enum 21 reo_destination_21> REO remaps this
  399. <enum 22 reo_destination_22> REO remaps this
  400. <enum 23 reo_destination_23> REO remaps this
  401. <enum 24 reo_destination_24> REO remaps this
  402. <enum 25 reo_destination_25> REO remaps this
  403. <enum 26 reo_destination_26> REO remaps this
  404. <enum 27 reo_destination_27> REO remaps this
  405. <enum 28 reo_destination_28> REO remaps this
  406. <enum 29 reo_destination_29> REO remaps this
  407. <enum 30 reo_destination_30> REO remaps this
  408. <enum 31 reo_destination_31> REO remaps this
  409. <legal all>
  410. */
  411. #define RX_FLOW_SEARCH_ENTRY_9_REO_DESTINATION_INDICATION_OFFSET 0x00000024
  412. #define RX_FLOW_SEARCH_ENTRY_9_REO_DESTINATION_INDICATION_LSB 24
  413. #define RX_FLOW_SEARCH_ENTRY_9_REO_DESTINATION_INDICATION_MASK 0x1f000000
  414. /* Description RX_FLOW_SEARCH_ENTRY_9_MSDU_DROP
  415. Overriding indication to REO to forward to REO release
  416. ring
  417. <legal all>
  418. */
  419. #define RX_FLOW_SEARCH_ENTRY_9_MSDU_DROP_OFFSET 0x00000024
  420. #define RX_FLOW_SEARCH_ENTRY_9_MSDU_DROP_LSB 29
  421. #define RX_FLOW_SEARCH_ENTRY_9_MSDU_DROP_MASK 0x20000000
  422. /* Description RX_FLOW_SEARCH_ENTRY_9_REO_DESTINATION_HANDLER
  423. Indicates how to decide the REO destination indication
  424. <enum 0 RXFT_USE_FT> Follow this entry
  425. <enum 1 RXFT_USE_ASPT> Use address search+peer table
  426. entry
  427. <enum 2 RXFT_USE_FT2> Follow this entry
  428. <enum 3 RXFT_USE_CCE> Use CCE super-rule
  429. <legal all>
  430. */
  431. #define RX_FLOW_SEARCH_ENTRY_9_REO_DESTINATION_HANDLER_OFFSET 0x00000024
  432. #define RX_FLOW_SEARCH_ENTRY_9_REO_DESTINATION_HANDLER_LSB 30
  433. #define RX_FLOW_SEARCH_ENTRY_9_REO_DESTINATION_HANDLER_MASK 0xc0000000
  434. /* Description RX_FLOW_SEARCH_ENTRY_10_METADATA
  435. Value to be passed to SW if this flow search entry
  436. matches
  437. <legal all>
  438. */
  439. #define RX_FLOW_SEARCH_ENTRY_10_METADATA_OFFSET 0x00000028
  440. #define RX_FLOW_SEARCH_ENTRY_10_METADATA_LSB 0
  441. #define RX_FLOW_SEARCH_ENTRY_10_METADATA_MASK 0xffffffff
  442. /* Description RX_FLOW_SEARCH_ENTRY_11_AGGREGATION_COUNT
  443. FISA: Number'of MSDU's aggregated so far
  444. Set to zero in chips not supporting FISA, e.g. Pine
  445. <legal all>
  446. */
  447. #define RX_FLOW_SEARCH_ENTRY_11_AGGREGATION_COUNT_OFFSET 0x0000002c
  448. #define RX_FLOW_SEARCH_ENTRY_11_AGGREGATION_COUNT_LSB 0
  449. #define RX_FLOW_SEARCH_ENTRY_11_AGGREGATION_COUNT_MASK 0x0000007f
  450. /* Description RX_FLOW_SEARCH_ENTRY_11_LRO_ELIGIBLE
  451. FISA: To indicate whether the previous MSDU for this
  452. flow is eligible for LRO/FISA
  453. Set to zero in chips not supporting FISA, e.g. Pine
  454. <legal all>
  455. */
  456. #define RX_FLOW_SEARCH_ENTRY_11_LRO_ELIGIBLE_OFFSET 0x0000002c
  457. #define RX_FLOW_SEARCH_ENTRY_11_LRO_ELIGIBLE_LSB 7
  458. #define RX_FLOW_SEARCH_ENTRY_11_LRO_ELIGIBLE_MASK 0x00000080
  459. /* Description RX_FLOW_SEARCH_ENTRY_11_MSDU_COUNT
  460. Number of Rx MSDUs matching this flow
  461. <legal all>
  462. */
  463. #define RX_FLOW_SEARCH_ENTRY_11_MSDU_COUNT_OFFSET 0x0000002c
  464. #define RX_FLOW_SEARCH_ENTRY_11_MSDU_COUNT_LSB 8
  465. #define RX_FLOW_SEARCH_ENTRY_11_MSDU_COUNT_MASK 0xffffff00
  466. /* Description RX_FLOW_SEARCH_ENTRY_12_MSDU_BYTE_COUNT
  467. Number of bytes in Rx MSDUs matching this flow
  468. <legal all>
  469. */
  470. #define RX_FLOW_SEARCH_ENTRY_12_MSDU_BYTE_COUNT_OFFSET 0x00000030
  471. #define RX_FLOW_SEARCH_ENTRY_12_MSDU_BYTE_COUNT_LSB 0
  472. #define RX_FLOW_SEARCH_ENTRY_12_MSDU_BYTE_COUNT_MASK 0xffffffff
  473. /* Description RX_FLOW_SEARCH_ENTRY_13_TIMESTAMP
  474. Time of last reception (as measured at Rx OLE) matching
  475. this flow
  476. <legal all>
  477. */
  478. #define RX_FLOW_SEARCH_ENTRY_13_TIMESTAMP_OFFSET 0x00000034
  479. #define RX_FLOW_SEARCH_ENTRY_13_TIMESTAMP_LSB 0
  480. #define RX_FLOW_SEARCH_ENTRY_13_TIMESTAMP_MASK 0xffffffff
  481. /* Description RX_FLOW_SEARCH_ENTRY_14_CUMULATIVE_L4_CHECKSUM
  482. FISA: checksum 'or MSDU's that is part of this flow
  483. aggregated so far
  484. Set to zero in chips not supporting FISA, e.g. Pine
  485. <legal all>
  486. */
  487. #define RX_FLOW_SEARCH_ENTRY_14_CUMULATIVE_L4_CHECKSUM_OFFSET 0x00000038
  488. #define RX_FLOW_SEARCH_ENTRY_14_CUMULATIVE_L4_CHECKSUM_LSB 0
  489. #define RX_FLOW_SEARCH_ENTRY_14_CUMULATIVE_L4_CHECKSUM_MASK 0x0000ffff
  490. /* Description RX_FLOW_SEARCH_ENTRY_14_CUMULATIVE_IP_LENGTH
  491. FISA: Total MSDU length that is part of this flow
  492. aggregated so far
  493. Set to zero in chips not supporting FISA, e.g. Pine
  494. <legal all>
  495. */
  496. #define RX_FLOW_SEARCH_ENTRY_14_CUMULATIVE_IP_LENGTH_OFFSET 0x00000038
  497. #define RX_FLOW_SEARCH_ENTRY_14_CUMULATIVE_IP_LENGTH_LSB 16
  498. #define RX_FLOW_SEARCH_ENTRY_14_CUMULATIVE_IP_LENGTH_MASK 0xffff0000
  499. /* Description RX_FLOW_SEARCH_ENTRY_15_TCP_SEQUENCE_NUMBER
  500. FISA: TCP Sequence number of the last packet in this
  501. flow to detect sequence number jump
  502. Set to zero in chips not supporting FISA, e.g. Pine
  503. <legal all>
  504. */
  505. #define RX_FLOW_SEARCH_ENTRY_15_TCP_SEQUENCE_NUMBER_OFFSET 0x0000003c
  506. #define RX_FLOW_SEARCH_ENTRY_15_TCP_SEQUENCE_NUMBER_LSB 0
  507. #define RX_FLOW_SEARCH_ENTRY_15_TCP_SEQUENCE_NUMBER_MASK 0xffffffff
  508. #endif // _RX_FLOW_SEARCH_ENTRY_H_