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