xref: /dpdk/examples/ipsec-secgw/ipsec_worker.h (revision 68a03efeed657e6e05f281479b33b51102797e15)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright (C) 2020 Marvell International Ltd.
3  */
4 #ifndef _IPSEC_WORKER_H_
5 #define _IPSEC_WORKER_H_
6 
7 #include "ipsec.h"
8 
9 enum pkt_type {
10 	PKT_TYPE_PLAIN_IPV4 = 1,
11 	PKT_TYPE_IPSEC_IPV4,
12 	PKT_TYPE_PLAIN_IPV6,
13 	PKT_TYPE_IPSEC_IPV6,
14 	PKT_TYPE_INVALID
15 };
16 
17 enum {
18 	PKT_DROPPED = 0,
19 	PKT_FORWARDED,
20 	PKT_POSTED	/* for lookaside case */
21 };
22 
23 struct route_table {
24 	struct rt_ctx *rt4_ctx;
25 	struct rt_ctx *rt6_ctx;
26 };
27 
28 /*
29  * Conf required by event mode worker with tx internal port
30  */
31 struct lcore_conf_ev_tx_int_port_wrkr {
32 	struct ipsec_ctx inbound;
33 	struct ipsec_ctx outbound;
34 	struct route_table rt;
35 } __rte_cache_aligned;
36 
37 void ipsec_poll_mode_worker(void);
38 
39 int ipsec_launch_one_lcore(void *args);
40 
41 #endif /* _IPSEC_WORKER_H_ */
42