1 // Code generated by GoVPP's binapi-generator. DO NOT EDIT.
3 // binapi-generator: v0.4.0-dev
5 // source: /usr/share/vpp/api/core/ipsec_types.api.json
7 // Package ipsec_types contains generated bindings for API file ipsec_types.api.
18 api "git.fd.io/govpp.git/api"
19 ip_types "git.fd.io/govpp.git/binapi/ip_types"
22 // This is a compile-time assertion to ensure that this generated file
23 // is compatible with the GoVPP api package it is being compiled against.
24 // A compilation error at this line likely means your copy of the
25 // GoVPP api package needs to be updated.
26 const _ = api.GoVppAPIPackageIsVersion2
28 // IpsecCryptoAlg defines enum 'ipsec_crypto_alg'.
29 type IpsecCryptoAlg uint32
32 IPSEC_API_CRYPTO_ALG_NONE IpsecCryptoAlg = 0
33 IPSEC_API_CRYPTO_ALG_AES_CBC_128 IpsecCryptoAlg = 1
34 IPSEC_API_CRYPTO_ALG_AES_CBC_192 IpsecCryptoAlg = 2
35 IPSEC_API_CRYPTO_ALG_AES_CBC_256 IpsecCryptoAlg = 3
36 IPSEC_API_CRYPTO_ALG_AES_CTR_128 IpsecCryptoAlg = 4
37 IPSEC_API_CRYPTO_ALG_AES_CTR_192 IpsecCryptoAlg = 5
38 IPSEC_API_CRYPTO_ALG_AES_CTR_256 IpsecCryptoAlg = 6
39 IPSEC_API_CRYPTO_ALG_AES_GCM_128 IpsecCryptoAlg = 7
40 IPSEC_API_CRYPTO_ALG_AES_GCM_192 IpsecCryptoAlg = 8
41 IPSEC_API_CRYPTO_ALG_AES_GCM_256 IpsecCryptoAlg = 9
42 IPSEC_API_CRYPTO_ALG_DES_CBC IpsecCryptoAlg = 10
43 IPSEC_API_CRYPTO_ALG_3DES_CBC IpsecCryptoAlg = 11
47 IpsecCryptoAlg_name = map[uint32]string{
48 0: "IPSEC_API_CRYPTO_ALG_NONE",
49 1: "IPSEC_API_CRYPTO_ALG_AES_CBC_128",
50 2: "IPSEC_API_CRYPTO_ALG_AES_CBC_192",
51 3: "IPSEC_API_CRYPTO_ALG_AES_CBC_256",
52 4: "IPSEC_API_CRYPTO_ALG_AES_CTR_128",
53 5: "IPSEC_API_CRYPTO_ALG_AES_CTR_192",
54 6: "IPSEC_API_CRYPTO_ALG_AES_CTR_256",
55 7: "IPSEC_API_CRYPTO_ALG_AES_GCM_128",
56 8: "IPSEC_API_CRYPTO_ALG_AES_GCM_192",
57 9: "IPSEC_API_CRYPTO_ALG_AES_GCM_256",
58 10: "IPSEC_API_CRYPTO_ALG_DES_CBC",
59 11: "IPSEC_API_CRYPTO_ALG_3DES_CBC",
61 IpsecCryptoAlg_value = map[string]uint32{
62 "IPSEC_API_CRYPTO_ALG_NONE": 0,
63 "IPSEC_API_CRYPTO_ALG_AES_CBC_128": 1,
64 "IPSEC_API_CRYPTO_ALG_AES_CBC_192": 2,
65 "IPSEC_API_CRYPTO_ALG_AES_CBC_256": 3,
66 "IPSEC_API_CRYPTO_ALG_AES_CTR_128": 4,
67 "IPSEC_API_CRYPTO_ALG_AES_CTR_192": 5,
68 "IPSEC_API_CRYPTO_ALG_AES_CTR_256": 6,
69 "IPSEC_API_CRYPTO_ALG_AES_GCM_128": 7,
70 "IPSEC_API_CRYPTO_ALG_AES_GCM_192": 8,
71 "IPSEC_API_CRYPTO_ALG_AES_GCM_256": 9,
72 "IPSEC_API_CRYPTO_ALG_DES_CBC": 10,
73 "IPSEC_API_CRYPTO_ALG_3DES_CBC": 11,
77 func (x IpsecCryptoAlg) String() string {
78 s, ok := IpsecCryptoAlg_name[uint32(x)]
82 return "IpsecCryptoAlg(" + strconv.Itoa(int(x)) + ")"
85 // IpsecIntegAlg defines enum 'ipsec_integ_alg'.
86 type IpsecIntegAlg uint32
89 IPSEC_API_INTEG_ALG_NONE IpsecIntegAlg = 0
90 IPSEC_API_INTEG_ALG_MD5_96 IpsecIntegAlg = 1
91 IPSEC_API_INTEG_ALG_SHA1_96 IpsecIntegAlg = 2
92 IPSEC_API_INTEG_ALG_SHA_256_96 IpsecIntegAlg = 3
93 IPSEC_API_INTEG_ALG_SHA_256_128 IpsecIntegAlg = 4
94 IPSEC_API_INTEG_ALG_SHA_384_192 IpsecIntegAlg = 5
95 IPSEC_API_INTEG_ALG_SHA_512_256 IpsecIntegAlg = 6
99 IpsecIntegAlg_name = map[uint32]string{
100 0: "IPSEC_API_INTEG_ALG_NONE",
101 1: "IPSEC_API_INTEG_ALG_MD5_96",
102 2: "IPSEC_API_INTEG_ALG_SHA1_96",
103 3: "IPSEC_API_INTEG_ALG_SHA_256_96",
104 4: "IPSEC_API_INTEG_ALG_SHA_256_128",
105 5: "IPSEC_API_INTEG_ALG_SHA_384_192",
106 6: "IPSEC_API_INTEG_ALG_SHA_512_256",
108 IpsecIntegAlg_value = map[string]uint32{
109 "IPSEC_API_INTEG_ALG_NONE": 0,
110 "IPSEC_API_INTEG_ALG_MD5_96": 1,
111 "IPSEC_API_INTEG_ALG_SHA1_96": 2,
112 "IPSEC_API_INTEG_ALG_SHA_256_96": 3,
113 "IPSEC_API_INTEG_ALG_SHA_256_128": 4,
114 "IPSEC_API_INTEG_ALG_SHA_384_192": 5,
115 "IPSEC_API_INTEG_ALG_SHA_512_256": 6,
119 func (x IpsecIntegAlg) String() string {
120 s, ok := IpsecIntegAlg_name[uint32(x)]
124 return "IpsecIntegAlg(" + strconv.Itoa(int(x)) + ")"
127 // IpsecProto defines enum 'ipsec_proto'.
128 type IpsecProto uint32
131 IPSEC_API_PROTO_ESP IpsecProto = 50
132 IPSEC_API_PROTO_AH IpsecProto = 51
136 IpsecProto_name = map[uint32]string{
137 50: "IPSEC_API_PROTO_ESP",
138 51: "IPSEC_API_PROTO_AH",
140 IpsecProto_value = map[string]uint32{
141 "IPSEC_API_PROTO_ESP": 50,
142 "IPSEC_API_PROTO_AH": 51,
146 func (x IpsecProto) String() string {
147 s, ok := IpsecProto_name[uint32(x)]
151 return "IpsecProto(" + strconv.Itoa(int(x)) + ")"
154 // IpsecSadFlags defines enum 'ipsec_sad_flags'.
155 type IpsecSadFlags uint32
158 IPSEC_API_SAD_FLAG_NONE IpsecSadFlags = 0
159 IPSEC_API_SAD_FLAG_USE_ESN IpsecSadFlags = 1
160 IPSEC_API_SAD_FLAG_USE_ANTI_REPLAY IpsecSadFlags = 2
161 IPSEC_API_SAD_FLAG_IS_TUNNEL IpsecSadFlags = 4
162 IPSEC_API_SAD_FLAG_IS_TUNNEL_V6 IpsecSadFlags = 8
163 IPSEC_API_SAD_FLAG_UDP_ENCAP IpsecSadFlags = 16
164 IPSEC_API_SAD_FLAG_IS_INBOUND IpsecSadFlags = 64
168 IpsecSadFlags_name = map[uint32]string{
169 0: "IPSEC_API_SAD_FLAG_NONE",
170 1: "IPSEC_API_SAD_FLAG_USE_ESN",
171 2: "IPSEC_API_SAD_FLAG_USE_ANTI_REPLAY",
172 4: "IPSEC_API_SAD_FLAG_IS_TUNNEL",
173 8: "IPSEC_API_SAD_FLAG_IS_TUNNEL_V6",
174 16: "IPSEC_API_SAD_FLAG_UDP_ENCAP",
175 64: "IPSEC_API_SAD_FLAG_IS_INBOUND",
177 IpsecSadFlags_value = map[string]uint32{
178 "IPSEC_API_SAD_FLAG_NONE": 0,
179 "IPSEC_API_SAD_FLAG_USE_ESN": 1,
180 "IPSEC_API_SAD_FLAG_USE_ANTI_REPLAY": 2,
181 "IPSEC_API_SAD_FLAG_IS_TUNNEL": 4,
182 "IPSEC_API_SAD_FLAG_IS_TUNNEL_V6": 8,
183 "IPSEC_API_SAD_FLAG_UDP_ENCAP": 16,
184 "IPSEC_API_SAD_FLAG_IS_INBOUND": 64,
188 func (x IpsecSadFlags) String() string {
189 s, ok := IpsecSadFlags_name[uint32(x)]
193 str := func(n uint32) string {
194 s, ok := IpsecSadFlags_name[uint32(n)]
198 return "IpsecSadFlags(" + strconv.Itoa(int(n)) + ")"
200 for i := uint32(0); i <= 32; i++ {
210 return str(uint32(x))
215 // IpsecSadEntry defines type 'ipsec_sad_entry'.
216 type IpsecSadEntry struct {
217 SadID uint32 `binapi:"u32,name=sad_id" json:"sad_id,omitempty"`
218 Spi uint32 `binapi:"u32,name=spi" json:"spi,omitempty"`
219 Protocol IpsecProto `binapi:"ipsec_proto,name=protocol" json:"protocol,omitempty"`
220 CryptoAlgorithm IpsecCryptoAlg `binapi:"ipsec_crypto_alg,name=crypto_algorithm" json:"crypto_algorithm,omitempty"`
221 CryptoKey Key `binapi:"key,name=crypto_key" json:"crypto_key,omitempty"`
222 IntegrityAlgorithm IpsecIntegAlg `binapi:"ipsec_integ_alg,name=integrity_algorithm" json:"integrity_algorithm,omitempty"`
223 IntegrityKey Key `binapi:"key,name=integrity_key" json:"integrity_key,omitempty"`
224 Flags IpsecSadFlags `binapi:"ipsec_sad_flags,name=flags" json:"flags,omitempty"`
225 TunnelSrc ip_types.Address `binapi:"address,name=tunnel_src" json:"tunnel_src,omitempty"`
226 TunnelDst ip_types.Address `binapi:"address,name=tunnel_dst" json:"tunnel_dst,omitempty"`
227 TxTableID uint32 `binapi:"u32,name=tx_table_id" json:"tx_table_id,omitempty"`
228 Salt uint32 `binapi:"u32,name=salt" json:"salt,omitempty"`
229 UDPSrcPort uint16 `binapi:"u16,name=udp_src_port,default=4500" json:"udp_src_port,omitempty"`
230 UDPDstPort uint16 `binapi:"u16,name=udp_dst_port,default=4500" json:"udp_dst_port,omitempty"`
233 // Key defines type 'key'.
235 Length uint8 `binapi:"u8,name=length" json:"length,omitempty"`
236 Data []byte `binapi:"u8[128],name=data" json:"data,omitempty"`