DPDK 22.11.5
rte_ipsec_sad.h
Go to the documentation of this file.
1
2/* SPDX-License-Identifier: BSD-3-Clause
3 * Copyright(c) 2019 Intel Corporation
4 */
5
6#ifndef _RTE_IPSEC_SAD_H_
7#define _RTE_IPSEC_SAD_H_
8
9#include <stdint.h>
10
11
19#ifdef __cplusplus
20extern "C" {
21#endif
22
23struct rte_ipsec_sad;
24
26enum {
27 RTE_IPSEC_SAD_SPI_ONLY = 0,
28 RTE_IPSEC_SAD_SPI_DIP,
29 RTE_IPSEC_SAD_SPI_DIP_SIP,
30 RTE_IPSEC_SAD_KEY_TYPE_MASK,
31};
32
33struct rte_ipsec_sadv4_key {
34 uint32_t spi;
35 uint32_t dip;
36 uint32_t sip;
37};
38
39struct rte_ipsec_sadv6_key {
40 uint32_t spi;
41 uint8_t dip[16];
42 uint8_t sip[16];
43};
44
45union rte_ipsec_sad_key {
46 struct rte_ipsec_sadv4_key v4;
47 struct rte_ipsec_sadv6_key v6;
48};
49
51#define RTE_IPSEC_SAD_NAMESIZE 64
53#define RTE_IPSEC_SAD_FLAG_IPV6 0x1
55#define RTE_IPSEC_SAD_FLAG_RW_CONCURRENCY 0x2
56
62 uint32_t max_sa[RTE_IPSEC_SAD_KEY_TYPE_MASK];
64 uint32_t flags;
65};
66
85int
86rte_ipsec_sad_add(struct rte_ipsec_sad *sad,
87 const union rte_ipsec_sad_key *key,
88 int key_type, void *sa);
89
105int
106rte_ipsec_sad_del(struct rte_ipsec_sad *sad,
107 const union rte_ipsec_sad_key *key,
108 int key_type);
109/*
110 * Create SAD
111 *
112 * @param name
113 * SAD name
114 * @param conf
115 * Structure containing the configuration
116 * @return
117 * Handle to SAD object on success
118 * NULL otherwise with rte_errno set to an appropriate values.
119 */
120struct rte_ipsec_sad *
121rte_ipsec_sad_create(const char *name, const struct rte_ipsec_sad_conf *conf);
122
133struct rte_ipsec_sad *
135
142void
143rte_ipsec_sad_destroy(struct rte_ipsec_sad *sad);
144
161int
162rte_ipsec_sad_lookup(const struct rte_ipsec_sad *sad,
163 const union rte_ipsec_sad_key *keys[],
164 void *sa[], uint32_t n);
165
166#ifdef __cplusplus
167}
168#endif
169
170#endif /* _RTE_IPSEC_SAD_H_ */
int rte_ipsec_sad_add(struct rte_ipsec_sad *sad, const union rte_ipsec_sad_key *key, int key_type, void *sa)
struct rte_ipsec_sad * rte_ipsec_sad_find_existing(const char *name)
int rte_ipsec_sad_del(struct rte_ipsec_sad *sad, const union rte_ipsec_sad_key *key, int key_type)
int rte_ipsec_sad_lookup(const struct rte_ipsec_sad *sad, const union rte_ipsec_sad_key *keys[], void *sa[], uint32_t n)
void rte_ipsec_sad_destroy(struct rte_ipsec_sad *sad)
uint32_t max_sa[RTE_IPSEC_SAD_KEY_TYPE_MASK]
Definition: rte_ipsec_sad.h:62