]> git.proxmox.com Git - ceph.git/blob - ceph/src/spdk/dpdk/drivers/net/octeontx/base/octeontx_pki_var.h
update sources to ceph Nautilus 14.2.1
[ceph.git] / ceph / src / spdk / dpdk / drivers / net / octeontx / base / octeontx_pki_var.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2017 Cavium, Inc
3 */
4
5 #ifndef __OCTEONTX_PKI_VAR_H__
6 #define __OCTEONTX_PKI_VAR_H__
7
8 #include <rte_byteorder.h>
9
10 #define OCTTX_PACKET_WQE_SKIP 128
11 #define OCTTX_PACKET_FIRST_SKIP 240
12 #define OCTTX_PACKET_LATER_SKIP 128
13
14 /* WQE descriptor */
15 typedef union octtx_wqe_s {
16 uint64_t w[6];
17
18 struct {
19 #if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
20 struct {
21 uint64_t pknd : 6;
22 uint64_t rsvd0 : 10;
23 uint64_t style : 8;
24 uint64_t bufs : 8;
25 uint64_t chan : 12;
26 uint64_t apad : 3;
27 uint64_t rsvd1 : 1;
28 uint64_t aura : 12;
29 uint64_t rsvd2 : 4;
30 } w0;
31
32 struct {
33 uint64_t tag : 32;
34 uint64_t tt : 2;
35 uint64_t grp : 10;
36 uint64_t rsvd0 : 2;
37 uint64_t rsvd1 : 2;
38 uint64_t len : 16;
39 } w1;
40
41 struct {
42 uint64_t op_code : 8;
43 uint64_t err_lev : 3;
44 uint64_t raw : 1;
45 uint64_t l2m : 1;
46 uint64_t l2b : 1;
47 uint64_t l3m : 1;
48 uint64_t l3b : 1;
49 uint64_t l3fr : 1;
50 uint64_t pf1 : 1;
51 uint64_t pf2 : 1;
52 uint64_t pf3 : 1;
53 uint64_t pf4 : 1;
54 uint64_t sh : 1;
55 uint64_t vs : 1;
56 uint64_t vv : 1;
57 uint64_t rsvd0 : 8;
58 uint64_t lae : 1;
59 uint64_t lbty : 5;
60 uint64_t lcty : 5;
61 uint64_t ldty : 5;
62 uint64_t lety : 5;
63 uint64_t lfty : 5;
64 uint64_t lgty : 5;
65 uint64_t sw : 1;
66 } w2;
67
68 struct {
69 uint64_t addr; /* Byte addr of start-of-pkt */
70 } w3;
71
72 struct {
73 uint64_t laptr : 8;
74 uint64_t lbptr : 8;
75 uint64_t lcptr : 8;
76 uint64_t ldprt : 8;
77 uint64_t leptr : 8;
78 uint64_t lfptr : 8;
79 uint64_t lgptr : 8;
80 uint64_t vlptr : 8;
81 } w4;
82
83 struct {
84 uint64_t rsvd0 : 47;
85 uint64_t dwd : 1;
86 uint64_t size : 16;
87 } w5;
88 #else
89 struct {
90 uint64_t rsvd2 : 4;
91 uint64_t aura : 12;
92 uint64_t rsvd1 : 1;
93 uint64_t apad : 3;
94 uint64_t chan : 12;
95 uint64_t bufs : 8;
96 uint64_t style : 8;
97 uint64_t rsvd0 : 10;
98 uint64_t pknd : 6;
99 } w0;
100
101 struct {
102 uint64_t len : 16;
103 uint64_t rsvd1 : 2;
104 uint64_t rsvd0 : 2;
105 uint64_t grp : 10;
106 uint64_t tt : 2;
107 uint64_t tag : 32;
108 } w1;
109
110 struct {
111 uint64_t sw : 1;
112 uint64_t lgty : 5;
113 uint64_t lfty : 5;
114 uint64_t lety : 5;
115 uint64_t ldty : 5;
116 uint64_t lcty : 5;
117 uint64_t lbty : 5;
118 uint64_t lae : 1;
119 uint64_t rsvd0 : 8;
120 uint64_t vv : 1;
121 uint64_t vs : 1;
122 uint64_t sh : 1;
123 uint64_t pf4 : 1;
124 uint64_t pf3 : 1;
125 uint64_t pf2 : 1;
126 uint64_t pf1 : 1;
127 uint64_t l3fr : 1;
128 uint64_t l3b : 1;
129 uint64_t l3m : 1;
130 uint64_t l2b : 1;
131 uint64_t l2m : 1;
132 uint64_t raw : 1;
133 uint64_t err_lev : 3;
134 uint64_t op_code : 8;
135 } w2;
136
137 struct {
138 uint64_t addr; /* Byte addr of start-of-pkt */
139 } w3;
140
141 struct {
142 uint64_t vlptr : 8;
143 uint64_t lgptr : 8;
144 uint64_t lfptr : 8;
145 uint64_t leptr : 8;
146 uint64_t ldprt : 8;
147 uint64_t lcptr : 8;
148 uint64_t lbptr : 8;
149 uint64_t laptr : 8;
150 } w4;
151 #endif
152 } s;
153
154 } __rte_packed octtx_wqe_t;
155
156 enum occtx_pki_ltype_e {
157 OCCTX_PKI_LTYPE_NONE = 0,
158 OCCTX_PKI_LTYPE_ENET = 1,
159 OCCTX_PKI_LTYPE_VLAN = 2,
160 OCCTX_PKI_LTYPE_SNAP_PAYLD = 5,
161 OCCTX_PKI_LTYPE_ARP = 6,
162 OCCTX_PKI_LTYPE_RARP = 7,
163 OCCTX_PKI_LTYPE_IP4 = 8,
164 OCCTX_PKI_LTYPE_IP4_OPT = 9,
165 OCCTX_PKI_LTYPE_IP6 = 0xa,
166 OCCTX_PKI_LTYPE_IP6_OPT = 0xb,
167 OCCTX_PKI_LTYPE_IPSEC_ESP = 0xc,
168 OCCTX_PKI_LTYPE_IPFRAG = 0xd,
169 OCCTX_PKI_LTYPE_IPCOMP = 0xe,
170 OCCTX_PKI_LTYPE_TCP = 0x10,
171 OCCTX_PKI_LTYPE_UDP = 0x11,
172 OCCTX_PKI_LTYPE_SCTP = 0x12,
173 OCCTX_PKI_LTYPE_UDP_VXLAN = 0x13,
174 OCCTX_PKI_LTYPE_GRE = 0x14,
175 OCCTX_PKI_LTYPE_NVGRE = 0x15,
176 OCCTX_PKI_LTYPE_GTP = 0x16,
177 OCCTX_PKI_LTYPE_UDP_GENEVE = 0x17,
178 OCCTX_PKI_LTYPE_SW28 = 0x1c,
179 OCCTX_PKI_LTYPE_SW29 = 0x1d,
180 OCCTX_PKI_LTYPE_SW30 = 0x1e,
181 OCCTX_PKI_LTYPE_SW31 = 0x1f,
182 OCCTX_PKI_LTYPE_LAST
183 };
184
185 enum lc_type_e {
186 LC_NONE = OCCTX_PKI_LTYPE_NONE,
187 LC_IPV4 = OCCTX_PKI_LTYPE_IP4,
188 LC_IPV4_OPT = OCCTX_PKI_LTYPE_IP4_OPT,
189 LC_IPV6 = OCCTX_PKI_LTYPE_IP6,
190 LC_IPV6_OPT = OCCTX_PKI_LTYPE_IP6_OPT,
191 };
192
193 enum le_type_e {
194 LE_NONE = OCCTX_PKI_LTYPE_NONE,
195 };
196
197 enum lf_type_e {
198 LF_NONE = OCCTX_PKI_LTYPE_NONE,
199 LF_IPSEC_ESP = OCCTX_PKI_LTYPE_IPSEC_ESP,
200 LF_IPFRAG = OCCTX_PKI_LTYPE_IPFRAG,
201 LF_IPCOMP = OCCTX_PKI_LTYPE_IPCOMP,
202 LF_TCP = OCCTX_PKI_LTYPE_TCP,
203 LF_UDP = OCCTX_PKI_LTYPE_UDP,
204 LF_GRE = OCCTX_PKI_LTYPE_GRE,
205 LF_UDP_GENEVE = OCCTX_PKI_LTYPE_UDP_GENEVE,
206 LF_UDP_VXLAN = OCCTX_PKI_LTYPE_UDP_VXLAN,
207 LF_NVGRE = OCCTX_PKI_LTYPE_NVGRE,
208 };
209 #endif /* __OCTEONTX_PKI_VAR_H__ */