rx_flow_search_entry.h 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789
  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
  163. <enum 8 reo_destination_sw6> Reo will push the frame
  164. into the REO2SW6 ring
  165. <enum 9 reo_destination_9> REO remaps this <enum 10
  166. reo_destination_10> REO remaps this
  167. <enum 11 reo_destination_11> REO remaps this
  168. <enum 12 reo_destination_12> REO remaps this <enum 13
  169. reo_destination_13> REO remaps this
  170. <enum 14 reo_destination_14> REO remaps this
  171. <enum 15 reo_destination_15> REO remaps this
  172. <enum 16 reo_destination_16> REO remaps this
  173. <enum 17 reo_destination_17> REO remaps this
  174. <enum 18 reo_destination_18> REO remaps this
  175. <enum 19 reo_destination_19> REO remaps this
  176. <enum 20 reo_destination_20> REO remaps this
  177. <enum 21 reo_destination_21> REO remaps this
  178. <enum 22 reo_destination_22> REO remaps this
  179. <enum 23 reo_destination_23> REO remaps this
  180. <enum 24 reo_destination_24> REO remaps this
  181. <enum 25 reo_destination_25> REO remaps this
  182. <enum 26 reo_destination_26> REO remaps this
  183. <enum 27 reo_destination_27> REO remaps this
  184. <enum 28 reo_destination_28> REO remaps this
  185. <enum 29 reo_destination_29> REO remaps this
  186. <enum 30 reo_destination_30> REO remaps this
  187. <enum 31 reo_destination_31> REO remaps this
  188. <legal all>
  189. msdu_drop
  190. Overriding indication to REO to forward to REO release
  191. ring
  192. <legal all>
  193. reo_destination_handler
  194. Indicates how to decide the REO destination indication
  195. <enum 0 RXFT_USE_FT> Follow this entry
  196. <enum 1 RXFT_USE_ASPT> Use address search+peer table
  197. entry
  198. <enum 2 RXFT_USE_FT2> Follow this entry
  199. <enum 3 RXFT_USE_CCE> Use CCE super-rule
  200. <legal all>
  201. metadata
  202. Value to be passed to SW if this flow search entry
  203. matches
  204. <legal all>
  205. aggregation_count
  206. FISA: Number'of MSDU's aggregated so far
  207. Set to zero in chips not supporting FISA, e.g. Pine
  208. <legal all>
  209. lro_eligible
  210. FISA: To indicate whether the previous MSDU for this
  211. flow is eligible for LRO/FISA
  212. Set to zero in chips not supporting FISA, e.g. Pine
  213. <legal all>
  214. msdu_count
  215. Number of Rx MSDUs matching this flow
  216. <legal all>
  217. msdu_byte_count
  218. Number of bytes in Rx MSDUs matching this flow
  219. <legal all>
  220. timestamp
  221. Time of last reception (as measured at Rx OLE) matching
  222. this flow
  223. <legal all>
  224. cumulative_l4_checksum
  225. FISA: checksum 'or MSDU's that is part of this flow
  226. aggregated so far
  227. Set to zero in chips not supporting FISA, e.g. Pine
  228. <legal all>
  229. cumulative_ip_length
  230. FISA: Total MSDU length that is part of this flow
  231. aggregated so far
  232. Set to zero in chips not supporting FISA, e.g. Pine
  233. <legal all>
  234. tcp_sequence_number
  235. FISA: TCP Sequence number of the last packet in this
  236. flow to detect sequence number jump
  237. Set to zero in chips not supporting FISA, e.g. Pine
  238. <legal all>
  239. */
  240. /* Description RX_FLOW_SEARCH_ENTRY_0_SRC_IP_127_96
  241. Uppermost 32 bits of source IPv6 address or prefix as
  242. per Common Parser register field IP_DA_SA_PREFIX (with the
  243. first byte in the MSB and the last byte in the LSB, i.e.
  244. requiring a byte-swap for little-endian SW w.r.t. the byte
  245. order in an IPv6 packet)
  246. <legal all>
  247. */
  248. #define RX_FLOW_SEARCH_ENTRY_0_SRC_IP_127_96_OFFSET 0x00000000
  249. #define RX_FLOW_SEARCH_ENTRY_0_SRC_IP_127_96_LSB 0
  250. #define RX_FLOW_SEARCH_ENTRY_0_SRC_IP_127_96_MASK 0xffffffff
  251. /* Description RX_FLOW_SEARCH_ENTRY_1_SRC_IP_95_64
  252. Next 32 bits of source IPv6 address or prefix (requiring
  253. a byte-swap for little-endian SW) <legal all>
  254. */
  255. #define RX_FLOW_SEARCH_ENTRY_1_SRC_IP_95_64_OFFSET 0x00000004
  256. #define RX_FLOW_SEARCH_ENTRY_1_SRC_IP_95_64_LSB 0
  257. #define RX_FLOW_SEARCH_ENTRY_1_SRC_IP_95_64_MASK 0xffffffff
  258. /* Description RX_FLOW_SEARCH_ENTRY_2_SRC_IP_63_32
  259. Next 32 bits of source IPv6 address or lowest 32 bits of
  260. prefix (requiring a byte-swap for little-endian SW)
  261. <legal all>
  262. */
  263. #define RX_FLOW_SEARCH_ENTRY_2_SRC_IP_63_32_OFFSET 0x00000008
  264. #define RX_FLOW_SEARCH_ENTRY_2_SRC_IP_63_32_LSB 0
  265. #define RX_FLOW_SEARCH_ENTRY_2_SRC_IP_63_32_MASK 0xffffffff
  266. /* Description RX_FLOW_SEARCH_ENTRY_3_SRC_IP_31_0
  267. Lowest 32 bits of source IPv6 address, or source IPv4
  268. address (requiring a byte-swap for little-endian SW w.r.t.
  269. the byte order in an Ipv6 or IPv4 packet)
  270. <legal all>
  271. */
  272. #define RX_FLOW_SEARCH_ENTRY_3_SRC_IP_31_0_OFFSET 0x0000000c
  273. #define RX_FLOW_SEARCH_ENTRY_3_SRC_IP_31_0_LSB 0
  274. #define RX_FLOW_SEARCH_ENTRY_3_SRC_IP_31_0_MASK 0xffffffff
  275. /* Description RX_FLOW_SEARCH_ENTRY_4_DEST_IP_127_96
  276. Uppermost 32 bits of destination IPv6 address or prefix
  277. as per Common Parser register field IP_DA_SA_PREFIX (with
  278. the first byte in the MSB and the last byte in the LSB, i.e.
  279. requiring a byte-swap for little-endian SW w.r.t. the byte
  280. order as in an IPv6 packet)
  281. <legal all>
  282. */
  283. #define RX_FLOW_SEARCH_ENTRY_4_DEST_IP_127_96_OFFSET 0x00000010
  284. #define RX_FLOW_SEARCH_ENTRY_4_DEST_IP_127_96_LSB 0
  285. #define RX_FLOW_SEARCH_ENTRY_4_DEST_IP_127_96_MASK 0xffffffff
  286. /* Description RX_FLOW_SEARCH_ENTRY_5_DEST_IP_95_64
  287. Next 32 bits of destination IPv6 address or prefix
  288. (requiring a byte-swap for little-endian SW)
  289. <legal all>
  290. */
  291. #define RX_FLOW_SEARCH_ENTRY_5_DEST_IP_95_64_OFFSET 0x00000014
  292. #define RX_FLOW_SEARCH_ENTRY_5_DEST_IP_95_64_LSB 0
  293. #define RX_FLOW_SEARCH_ENTRY_5_DEST_IP_95_64_MASK 0xffffffff
  294. /* Description RX_FLOW_SEARCH_ENTRY_6_DEST_IP_63_32
  295. Next 32 bits of destination IPv6 address or lowest 32
  296. bits of prefix (requiring a byte-swap for little-endian SW)
  297. <legal all>
  298. */
  299. #define RX_FLOW_SEARCH_ENTRY_6_DEST_IP_63_32_OFFSET 0x00000018
  300. #define RX_FLOW_SEARCH_ENTRY_6_DEST_IP_63_32_LSB 0
  301. #define RX_FLOW_SEARCH_ENTRY_6_DEST_IP_63_32_MASK 0xffffffff
  302. /* Description RX_FLOW_SEARCH_ENTRY_7_DEST_IP_31_0
  303. Lowest 32 bits of destination IPv6 address, or
  304. destination IPv4 address (requiring a byte-swap for
  305. little-endian SW w.r.t. the byte order in an Ipv6 or IPv4
  306. packet)
  307. <legal all>
  308. */
  309. #define RX_FLOW_SEARCH_ENTRY_7_DEST_IP_31_0_OFFSET 0x0000001c
  310. #define RX_FLOW_SEARCH_ENTRY_7_DEST_IP_31_0_LSB 0
  311. #define RX_FLOW_SEARCH_ENTRY_7_DEST_IP_31_0_MASK 0xffffffff
  312. /* Description RX_FLOW_SEARCH_ENTRY_8_SRC_PORT
  313. LSB of SPI in case of ESP/AH
  314. else source port in case of TCP/UDP without IPsec,
  315. else zeros in case of ICMP (with the first/third byte in
  316. the MSB and the second/fourth byte in the LSB, i.e.
  317. requiring a byte-swap for little-endian SW w.r.t. the byte
  318. order as in an Ipv6 or IPv4 packet) <legal all>
  319. */
  320. #define RX_FLOW_SEARCH_ENTRY_8_SRC_PORT_OFFSET 0x00000020
  321. #define RX_FLOW_SEARCH_ENTRY_8_SRC_PORT_LSB 0
  322. #define RX_FLOW_SEARCH_ENTRY_8_SRC_PORT_MASK 0x0000ffff
  323. /* Description RX_FLOW_SEARCH_ENTRY_8_DEST_PORT
  324. MSB of SPI in case of ESP/AH
  325. else destination port in case of TCP/UDP without IPsec,
  326. else zeros in case of ICMP (with the first byte in the
  327. MSB and the second byte in the LSB, i.e. requiring a
  328. byte-swap for little-endian SW w.r.t. the byte order as in
  329. an Ipv6 or IPv4 packet)
  330. <legal all>
  331. */
  332. #define RX_FLOW_SEARCH_ENTRY_8_DEST_PORT_OFFSET 0x00000020
  333. #define RX_FLOW_SEARCH_ENTRY_8_DEST_PORT_LSB 16
  334. #define RX_FLOW_SEARCH_ENTRY_8_DEST_PORT_MASK 0xffff0000
  335. /* Description RX_FLOW_SEARCH_ENTRY_9_L4_PROTOCOL
  336. IPsec or L4 protocol
  337. <enum 1 ICMPV4>
  338. <enum 6 TCP>
  339. <enum 17 UDP>
  340. <enum 50 ESP>
  341. <enum 51 AH>
  342. <enum 58 ICMPV6>
  343. <legal 1, 6, 17, 50, 51, 58>
  344. */
  345. #define RX_FLOW_SEARCH_ENTRY_9_L4_PROTOCOL_OFFSET 0x00000024
  346. #define RX_FLOW_SEARCH_ENTRY_9_L4_PROTOCOL_LSB 0
  347. #define RX_FLOW_SEARCH_ENTRY_9_L4_PROTOCOL_MASK 0x000000ff
  348. /* Description RX_FLOW_SEARCH_ENTRY_9_VALID
  349. Indicates validity of entry
  350. <legal all>
  351. */
  352. #define RX_FLOW_SEARCH_ENTRY_9_VALID_OFFSET 0x00000024
  353. #define RX_FLOW_SEARCH_ENTRY_9_VALID_LSB 8
  354. #define RX_FLOW_SEARCH_ENTRY_9_VALID_MASK 0x00000100
  355. /* Description RX_FLOW_SEARCH_ENTRY_9_RESERVED_9
  356. <legal 0>
  357. */
  358. #define RX_FLOW_SEARCH_ENTRY_9_RESERVED_9_OFFSET 0x00000024
  359. #define RX_FLOW_SEARCH_ENTRY_9_RESERVED_9_LSB 9
  360. #define RX_FLOW_SEARCH_ENTRY_9_RESERVED_9_MASK 0x00fffe00
  361. /* Description RX_FLOW_SEARCH_ENTRY_9_REO_DESTINATION_INDICATION
  362. The ID of the REO exit ring where the MSDU frame shall
  363. push after (MPDU level) reordering has finished.
  364. <enum 0 reo_destination_tcl> Reo will push the frame
  365. into the REO2TCL ring
  366. <enum 1 reo_destination_sw1> Reo will push the frame
  367. into the REO2SW1 ring
  368. <enum 2 reo_destination_sw2> Reo will push the frame
  369. into the REO2SW2 ring
  370. <enum 3 reo_destination_sw3> Reo will push the frame
  371. into the REO2SW3 ring
  372. <enum 4 reo_destination_sw4> Reo will push the frame
  373. into the REO2SW4 ring
  374. <enum 5 reo_destination_release> Reo will push the frame
  375. into the REO_release ring
  376. <enum 6 reo_destination_fw> Reo will push the frame into
  377. the REO2FW ring
  378. <enum 7 reo_destination_sw5> Reo will push the frame
  379. into the REO2SW5 ring
  380. <enum 8 reo_destination_sw6> Reo will push the frame
  381. into the REO2SW6 ring
  382. <enum 9 reo_destination_9> REO remaps this <enum 10
  383. reo_destination_10> REO remaps this
  384. <enum 11 reo_destination_11> REO remaps this
  385. <enum 12 reo_destination_12> REO remaps this <enum 13
  386. reo_destination_13> REO remaps this
  387. <enum 14 reo_destination_14> REO remaps this
  388. <enum 15 reo_destination_15> REO remaps this
  389. <enum 16 reo_destination_16> REO remaps this
  390. <enum 17 reo_destination_17> REO remaps this
  391. <enum 18 reo_destination_18> REO remaps this
  392. <enum 19 reo_destination_19> REO remaps this
  393. <enum 20 reo_destination_20> REO remaps this
  394. <enum 21 reo_destination_21> REO remaps this
  395. <enum 22 reo_destination_22> REO remaps this
  396. <enum 23 reo_destination_23> REO remaps this
  397. <enum 24 reo_destination_24> REO remaps this
  398. <enum 25 reo_destination_25> REO remaps this
  399. <enum 26 reo_destination_26> REO remaps this
  400. <enum 27 reo_destination_27> REO remaps this
  401. <enum 28 reo_destination_28> REO remaps this
  402. <enum 29 reo_destination_29> REO remaps this
  403. <enum 30 reo_destination_30> REO remaps this
  404. <enum 31 reo_destination_31> REO remaps this
  405. <legal all>
  406. */
  407. #define RX_FLOW_SEARCH_ENTRY_9_REO_DESTINATION_INDICATION_OFFSET 0x00000024
  408. #define RX_FLOW_SEARCH_ENTRY_9_REO_DESTINATION_INDICATION_LSB 24
  409. #define RX_FLOW_SEARCH_ENTRY_9_REO_DESTINATION_INDICATION_MASK 0x1f000000
  410. /* Description RX_FLOW_SEARCH_ENTRY_9_MSDU_DROP
  411. Overriding indication to REO to forward to REO release
  412. ring
  413. <legal all>
  414. */
  415. #define RX_FLOW_SEARCH_ENTRY_9_MSDU_DROP_OFFSET 0x00000024
  416. #define RX_FLOW_SEARCH_ENTRY_9_MSDU_DROP_LSB 29
  417. #define RX_FLOW_SEARCH_ENTRY_9_MSDU_DROP_MASK 0x20000000
  418. /* Description RX_FLOW_SEARCH_ENTRY_9_REO_DESTINATION_HANDLER
  419. Indicates how to decide the REO destination indication
  420. <enum 0 RXFT_USE_FT> Follow this entry
  421. <enum 1 RXFT_USE_ASPT> Use address search+peer table
  422. entry
  423. <enum 2 RXFT_USE_FT2> Follow this entry
  424. <enum 3 RXFT_USE_CCE> Use CCE super-rule
  425. <legal all>
  426. */
  427. #define RX_FLOW_SEARCH_ENTRY_9_REO_DESTINATION_HANDLER_OFFSET 0x00000024
  428. #define RX_FLOW_SEARCH_ENTRY_9_REO_DESTINATION_HANDLER_LSB 30
  429. #define RX_FLOW_SEARCH_ENTRY_9_REO_DESTINATION_HANDLER_MASK 0xc0000000
  430. /* Description RX_FLOW_SEARCH_ENTRY_10_METADATA
  431. Value to be passed to SW if this flow search entry
  432. matches
  433. <legal all>
  434. */
  435. #define RX_FLOW_SEARCH_ENTRY_10_METADATA_OFFSET 0x00000028
  436. #define RX_FLOW_SEARCH_ENTRY_10_METADATA_LSB 0
  437. #define RX_FLOW_SEARCH_ENTRY_10_METADATA_MASK 0xffffffff
  438. /* Description RX_FLOW_SEARCH_ENTRY_11_AGGREGATION_COUNT
  439. FISA: Number'of MSDU's aggregated so far
  440. Set to zero in chips not supporting FISA, e.g. Pine
  441. <legal all>
  442. */
  443. #define RX_FLOW_SEARCH_ENTRY_11_AGGREGATION_COUNT_OFFSET 0x0000002c
  444. #define RX_FLOW_SEARCH_ENTRY_11_AGGREGATION_COUNT_LSB 0
  445. #define RX_FLOW_SEARCH_ENTRY_11_AGGREGATION_COUNT_MASK 0x0000007f
  446. /* Description RX_FLOW_SEARCH_ENTRY_11_LRO_ELIGIBLE
  447. FISA: To indicate whether the previous MSDU for this
  448. flow is eligible for LRO/FISA
  449. Set to zero in chips not supporting FISA, e.g. Pine
  450. <legal all>
  451. */
  452. #define RX_FLOW_SEARCH_ENTRY_11_LRO_ELIGIBLE_OFFSET 0x0000002c
  453. #define RX_FLOW_SEARCH_ENTRY_11_LRO_ELIGIBLE_LSB 7
  454. #define RX_FLOW_SEARCH_ENTRY_11_LRO_ELIGIBLE_MASK 0x00000080
  455. /* Description RX_FLOW_SEARCH_ENTRY_11_MSDU_COUNT
  456. Number of Rx MSDUs matching this flow
  457. <legal all>
  458. */
  459. #define RX_FLOW_SEARCH_ENTRY_11_MSDU_COUNT_OFFSET 0x0000002c
  460. #define RX_FLOW_SEARCH_ENTRY_11_MSDU_COUNT_LSB 8
  461. #define RX_FLOW_SEARCH_ENTRY_11_MSDU_COUNT_MASK 0xffffff00
  462. /* Description RX_FLOW_SEARCH_ENTRY_12_MSDU_BYTE_COUNT
  463. Number of bytes in Rx MSDUs matching this flow
  464. <legal all>
  465. */
  466. #define RX_FLOW_SEARCH_ENTRY_12_MSDU_BYTE_COUNT_OFFSET 0x00000030
  467. #define RX_FLOW_SEARCH_ENTRY_12_MSDU_BYTE_COUNT_LSB 0
  468. #define RX_FLOW_SEARCH_ENTRY_12_MSDU_BYTE_COUNT_MASK 0xffffffff
  469. /* Description RX_FLOW_SEARCH_ENTRY_13_TIMESTAMP
  470. Time of last reception (as measured at Rx OLE) matching
  471. this flow
  472. <legal all>
  473. */
  474. #define RX_FLOW_SEARCH_ENTRY_13_TIMESTAMP_OFFSET 0x00000034
  475. #define RX_FLOW_SEARCH_ENTRY_13_TIMESTAMP_LSB 0
  476. #define RX_FLOW_SEARCH_ENTRY_13_TIMESTAMP_MASK 0xffffffff
  477. /* Description RX_FLOW_SEARCH_ENTRY_14_CUMULATIVE_L4_CHECKSUM
  478. FISA: checksum 'or MSDU's that is part of this flow
  479. aggregated so far
  480. Set to zero in chips not supporting FISA, e.g. Pine
  481. <legal all>
  482. */
  483. #define RX_FLOW_SEARCH_ENTRY_14_CUMULATIVE_L4_CHECKSUM_OFFSET 0x00000038
  484. #define RX_FLOW_SEARCH_ENTRY_14_CUMULATIVE_L4_CHECKSUM_LSB 0
  485. #define RX_FLOW_SEARCH_ENTRY_14_CUMULATIVE_L4_CHECKSUM_MASK 0x0000ffff
  486. /* Description RX_FLOW_SEARCH_ENTRY_14_CUMULATIVE_IP_LENGTH
  487. FISA: Total MSDU length that is part of this flow
  488. aggregated so far
  489. Set to zero in chips not supporting FISA, e.g. Pine
  490. <legal all>
  491. */
  492. #define RX_FLOW_SEARCH_ENTRY_14_CUMULATIVE_IP_LENGTH_OFFSET 0x00000038
  493. #define RX_FLOW_SEARCH_ENTRY_14_CUMULATIVE_IP_LENGTH_LSB 16
  494. #define RX_FLOW_SEARCH_ENTRY_14_CUMULATIVE_IP_LENGTH_MASK 0xffff0000
  495. /* Description RX_FLOW_SEARCH_ENTRY_15_TCP_SEQUENCE_NUMBER
  496. FISA: TCP Sequence number of the last packet in this
  497. flow to detect sequence number jump
  498. Set to zero in chips not supporting FISA, e.g. Pine
  499. <legal all>
  500. */
  501. #define RX_FLOW_SEARCH_ENTRY_15_TCP_SEQUENCE_NUMBER_OFFSET 0x0000003c
  502. #define RX_FLOW_SEARCH_ENTRY_15_TCP_SEQUENCE_NUMBER_LSB 0
  503. #define RX_FLOW_SEARCH_ENTRY_15_TCP_SEQUENCE_NUMBER_MASK 0xffffffff
  504. #endif // _RX_FLOW_SEARCH_ENTRY_H_