1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2017 Cavium, Inc
5 #ifndef __OCTEONTX_PKI_VAR_H__
6 #define __OCTEONTX_PKI_VAR_H__
8 #include <rte_byteorder.h>
10 #define OCTTX_PACKET_WQE_SKIP 128
11 #define OCTTX_PACKET_FIRST_SKIP_MAXREGVAL 496
12 #define OCTTX_PACKET_FIRST_SKIP_MAXLEN 512
13 #define OCTTX_PACKET_FIRST_SKIP_ADJUST(x) \
14 (RTE_MIN(x, OCTTX_PACKET_FIRST_SKIP_MAXREGVAL))
15 #define OCTTX_PACKET_FIRST_SKIP_SUM(p) \
16 (OCTTX_PACKET_WQE_SKIP \
17 + rte_pktmbuf_priv_size(p) \
18 + RTE_PKTMBUF_HEADROOM)
19 #define OCTTX_PACKET_FIRST_SKIP(p) \
20 OCTTX_PACKET_FIRST_SKIP_ADJUST(OCTTX_PACKET_FIRST_SKIP_SUM(p))
21 #define OCTTX_PACKET_LATER_SKIP 128
24 typedef union octtx_wqe_s {
28 #if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
78 uint64_t addr; /* Byte addr of start-of-pkt */
142 uint64_t err_lev : 3;
143 uint64_t op_code : 8;
147 uint64_t addr; /* Byte addr of start-of-pkt */
163 } __rte_packed octtx_wqe_t;
165 enum occtx_pki_ltype_e {
166 OCCTX_PKI_LTYPE_NONE = 0,
167 OCCTX_PKI_LTYPE_ENET = 1,
168 OCCTX_PKI_LTYPE_VLAN = 2,
169 OCCTX_PKI_LTYPE_SNAP_PAYLD = 5,
170 OCCTX_PKI_LTYPE_ARP = 6,
171 OCCTX_PKI_LTYPE_RARP = 7,
172 OCCTX_PKI_LTYPE_IP4 = 8,
173 OCCTX_PKI_LTYPE_IP4_OPT = 9,
174 OCCTX_PKI_LTYPE_IP6 = 0xa,
175 OCCTX_PKI_LTYPE_IP6_OPT = 0xb,
176 OCCTX_PKI_LTYPE_IPSEC_ESP = 0xc,
177 OCCTX_PKI_LTYPE_IPFRAG = 0xd,
178 OCCTX_PKI_LTYPE_IPCOMP = 0xe,
179 OCCTX_PKI_LTYPE_TCP = 0x10,
180 OCCTX_PKI_LTYPE_UDP = 0x11,
181 OCCTX_PKI_LTYPE_SCTP = 0x12,
182 OCCTX_PKI_LTYPE_UDP_VXLAN = 0x13,
183 OCCTX_PKI_LTYPE_GRE = 0x14,
184 OCCTX_PKI_LTYPE_NVGRE = 0x15,
185 OCCTX_PKI_LTYPE_GTP = 0x16,
186 OCCTX_PKI_LTYPE_UDP_GENEVE = 0x17,
187 OCCTX_PKI_LTYPE_SW28 = 0x1c,
188 OCCTX_PKI_LTYPE_SW29 = 0x1d,
189 OCCTX_PKI_LTYPE_SW30 = 0x1e,
190 OCCTX_PKI_LTYPE_SW31 = 0x1f,
195 LC_NONE = OCCTX_PKI_LTYPE_NONE,
196 LC_IPV4 = OCCTX_PKI_LTYPE_IP4,
197 LC_IPV4_OPT = OCCTX_PKI_LTYPE_IP4_OPT,
198 LC_IPV6 = OCCTX_PKI_LTYPE_IP6,
199 LC_IPV6_OPT = OCCTX_PKI_LTYPE_IP6_OPT,
203 LE_NONE = OCCTX_PKI_LTYPE_NONE,
207 LF_NONE = OCCTX_PKI_LTYPE_NONE,
208 LF_IPSEC_ESP = OCCTX_PKI_LTYPE_IPSEC_ESP,
209 LF_IPFRAG = OCCTX_PKI_LTYPE_IPFRAG,
210 LF_IPCOMP = OCCTX_PKI_LTYPE_IPCOMP,
211 LF_TCP = OCCTX_PKI_LTYPE_TCP,
212 LF_UDP = OCCTX_PKI_LTYPE_UDP,
213 LF_GRE = OCCTX_PKI_LTYPE_GRE,
214 LF_UDP_GENEVE = OCCTX_PKI_LTYPE_UDP_GENEVE,
215 LF_UDP_VXLAN = OCCTX_PKI_LTYPE_UDP_VXLAN,
216 LF_NVGRE = OCCTX_PKI_LTYPE_NVGRE,
218 #endif /* __OCTEONTX_PKI_VAR_H__ */