e3281e9a20ac391111fe663812cd04432b916ce4
[govpp.git] / binapi / ipsec_types / ipsec_types.ba.go
1 // Code generated by GoVPP's binapi-generator. DO NOT EDIT.
2 // versions:
3 //  binapi-generator: v0.5.0-dev
4 //  VPP:              22.02-release
5 // source: /usr/share/vpp/api/core/ipsec_types.api.json
6
7 // Package ipsec_types contains generated bindings for API file ipsec_types.api.
8 //
9 // Contents:
10 //   4 enums
11 //   4 structs
12 //
13 package ipsec_types
14
15 import (
16         "strconv"
17
18         api "git.fd.io/govpp.git/api"
19         _ "git.fd.io/govpp.git/binapi/interface_types"
20         ip_types "git.fd.io/govpp.git/binapi/ip_types"
21         tunnel_types "git.fd.io/govpp.git/binapi/tunnel_types"
22 )
23
24 // This is a compile-time assertion to ensure that this generated file
25 // is compatible with the GoVPP api package it is being compiled against.
26 // A compilation error at this line likely means your copy of the
27 // GoVPP api package needs to be updated.
28 const _ = api.GoVppAPIPackageIsVersion2
29
30 const (
31         APIFile    = "ipsec_types"
32         APIVersion = "3.0.1"
33         VersionCrc = 0x48f74470
34 )
35
36 // IpsecCryptoAlg defines enum 'ipsec_crypto_alg'.
37 type IpsecCryptoAlg uint32
38
39 const (
40         IPSEC_API_CRYPTO_ALG_NONE        IpsecCryptoAlg = 0
41         IPSEC_API_CRYPTO_ALG_AES_CBC_128 IpsecCryptoAlg = 1
42         IPSEC_API_CRYPTO_ALG_AES_CBC_192 IpsecCryptoAlg = 2
43         IPSEC_API_CRYPTO_ALG_AES_CBC_256 IpsecCryptoAlg = 3
44         IPSEC_API_CRYPTO_ALG_AES_CTR_128 IpsecCryptoAlg = 4
45         IPSEC_API_CRYPTO_ALG_AES_CTR_192 IpsecCryptoAlg = 5
46         IPSEC_API_CRYPTO_ALG_AES_CTR_256 IpsecCryptoAlg = 6
47         IPSEC_API_CRYPTO_ALG_AES_GCM_128 IpsecCryptoAlg = 7
48         IPSEC_API_CRYPTO_ALG_AES_GCM_192 IpsecCryptoAlg = 8
49         IPSEC_API_CRYPTO_ALG_AES_GCM_256 IpsecCryptoAlg = 9
50         IPSEC_API_CRYPTO_ALG_DES_CBC     IpsecCryptoAlg = 10
51         IPSEC_API_CRYPTO_ALG_3DES_CBC    IpsecCryptoAlg = 11
52 )
53
54 var (
55         IpsecCryptoAlg_name = map[uint32]string{
56                 0:  "IPSEC_API_CRYPTO_ALG_NONE",
57                 1:  "IPSEC_API_CRYPTO_ALG_AES_CBC_128",
58                 2:  "IPSEC_API_CRYPTO_ALG_AES_CBC_192",
59                 3:  "IPSEC_API_CRYPTO_ALG_AES_CBC_256",
60                 4:  "IPSEC_API_CRYPTO_ALG_AES_CTR_128",
61                 5:  "IPSEC_API_CRYPTO_ALG_AES_CTR_192",
62                 6:  "IPSEC_API_CRYPTO_ALG_AES_CTR_256",
63                 7:  "IPSEC_API_CRYPTO_ALG_AES_GCM_128",
64                 8:  "IPSEC_API_CRYPTO_ALG_AES_GCM_192",
65                 9:  "IPSEC_API_CRYPTO_ALG_AES_GCM_256",
66                 10: "IPSEC_API_CRYPTO_ALG_DES_CBC",
67                 11: "IPSEC_API_CRYPTO_ALG_3DES_CBC",
68         }
69         IpsecCryptoAlg_value = map[string]uint32{
70                 "IPSEC_API_CRYPTO_ALG_NONE":        0,
71                 "IPSEC_API_CRYPTO_ALG_AES_CBC_128": 1,
72                 "IPSEC_API_CRYPTO_ALG_AES_CBC_192": 2,
73                 "IPSEC_API_CRYPTO_ALG_AES_CBC_256": 3,
74                 "IPSEC_API_CRYPTO_ALG_AES_CTR_128": 4,
75                 "IPSEC_API_CRYPTO_ALG_AES_CTR_192": 5,
76                 "IPSEC_API_CRYPTO_ALG_AES_CTR_256": 6,
77                 "IPSEC_API_CRYPTO_ALG_AES_GCM_128": 7,
78                 "IPSEC_API_CRYPTO_ALG_AES_GCM_192": 8,
79                 "IPSEC_API_CRYPTO_ALG_AES_GCM_256": 9,
80                 "IPSEC_API_CRYPTO_ALG_DES_CBC":     10,
81                 "IPSEC_API_CRYPTO_ALG_3DES_CBC":    11,
82         }
83 )
84
85 func (x IpsecCryptoAlg) String() string {
86         s, ok := IpsecCryptoAlg_name[uint32(x)]
87         if ok {
88                 return s
89         }
90         return "IpsecCryptoAlg(" + strconv.Itoa(int(x)) + ")"
91 }
92
93 // IpsecIntegAlg defines enum 'ipsec_integ_alg'.
94 type IpsecIntegAlg uint32
95
96 const (
97         IPSEC_API_INTEG_ALG_NONE        IpsecIntegAlg = 0
98         IPSEC_API_INTEG_ALG_MD5_96      IpsecIntegAlg = 1
99         IPSEC_API_INTEG_ALG_SHA1_96     IpsecIntegAlg = 2
100         IPSEC_API_INTEG_ALG_SHA_256_96  IpsecIntegAlg = 3
101         IPSEC_API_INTEG_ALG_SHA_256_128 IpsecIntegAlg = 4
102         IPSEC_API_INTEG_ALG_SHA_384_192 IpsecIntegAlg = 5
103         IPSEC_API_INTEG_ALG_SHA_512_256 IpsecIntegAlg = 6
104 )
105
106 var (
107         IpsecIntegAlg_name = map[uint32]string{
108                 0: "IPSEC_API_INTEG_ALG_NONE",
109                 1: "IPSEC_API_INTEG_ALG_MD5_96",
110                 2: "IPSEC_API_INTEG_ALG_SHA1_96",
111                 3: "IPSEC_API_INTEG_ALG_SHA_256_96",
112                 4: "IPSEC_API_INTEG_ALG_SHA_256_128",
113                 5: "IPSEC_API_INTEG_ALG_SHA_384_192",
114                 6: "IPSEC_API_INTEG_ALG_SHA_512_256",
115         }
116         IpsecIntegAlg_value = map[string]uint32{
117                 "IPSEC_API_INTEG_ALG_NONE":        0,
118                 "IPSEC_API_INTEG_ALG_MD5_96":      1,
119                 "IPSEC_API_INTEG_ALG_SHA1_96":     2,
120                 "IPSEC_API_INTEG_ALG_SHA_256_96":  3,
121                 "IPSEC_API_INTEG_ALG_SHA_256_128": 4,
122                 "IPSEC_API_INTEG_ALG_SHA_384_192": 5,
123                 "IPSEC_API_INTEG_ALG_SHA_512_256": 6,
124         }
125 )
126
127 func (x IpsecIntegAlg) String() string {
128         s, ok := IpsecIntegAlg_name[uint32(x)]
129         if ok {
130                 return s
131         }
132         return "IpsecIntegAlg(" + strconv.Itoa(int(x)) + ")"
133 }
134
135 // IpsecProto defines enum 'ipsec_proto'.
136 type IpsecProto uint32
137
138 const (
139         IPSEC_API_PROTO_ESP IpsecProto = 50
140         IPSEC_API_PROTO_AH  IpsecProto = 51
141 )
142
143 var (
144         IpsecProto_name = map[uint32]string{
145                 50: "IPSEC_API_PROTO_ESP",
146                 51: "IPSEC_API_PROTO_AH",
147         }
148         IpsecProto_value = map[string]uint32{
149                 "IPSEC_API_PROTO_ESP": 50,
150                 "IPSEC_API_PROTO_AH":  51,
151         }
152 )
153
154 func (x IpsecProto) String() string {
155         s, ok := IpsecProto_name[uint32(x)]
156         if ok {
157                 return s
158         }
159         return "IpsecProto(" + strconv.Itoa(int(x)) + ")"
160 }
161
162 // IpsecSadFlags defines enum 'ipsec_sad_flags'.
163 type IpsecSadFlags uint32
164
165 const (
166         IPSEC_API_SAD_FLAG_NONE            IpsecSadFlags = 0
167         IPSEC_API_SAD_FLAG_USE_ESN         IpsecSadFlags = 1
168         IPSEC_API_SAD_FLAG_USE_ANTI_REPLAY IpsecSadFlags = 2
169         IPSEC_API_SAD_FLAG_IS_TUNNEL       IpsecSadFlags = 4
170         IPSEC_API_SAD_FLAG_IS_TUNNEL_V6    IpsecSadFlags = 8
171         IPSEC_API_SAD_FLAG_UDP_ENCAP       IpsecSadFlags = 16
172         IPSEC_API_SAD_FLAG_IS_INBOUND      IpsecSadFlags = 64
173         IPSEC_API_SAD_FLAG_ASYNC           IpsecSadFlags = 128
174 )
175
176 var (
177         IpsecSadFlags_name = map[uint32]string{
178                 0:   "IPSEC_API_SAD_FLAG_NONE",
179                 1:   "IPSEC_API_SAD_FLAG_USE_ESN",
180                 2:   "IPSEC_API_SAD_FLAG_USE_ANTI_REPLAY",
181                 4:   "IPSEC_API_SAD_FLAG_IS_TUNNEL",
182                 8:   "IPSEC_API_SAD_FLAG_IS_TUNNEL_V6",
183                 16:  "IPSEC_API_SAD_FLAG_UDP_ENCAP",
184                 64:  "IPSEC_API_SAD_FLAG_IS_INBOUND",
185                 128: "IPSEC_API_SAD_FLAG_ASYNC",
186         }
187         IpsecSadFlags_value = map[string]uint32{
188                 "IPSEC_API_SAD_FLAG_NONE":            0,
189                 "IPSEC_API_SAD_FLAG_USE_ESN":         1,
190                 "IPSEC_API_SAD_FLAG_USE_ANTI_REPLAY": 2,
191                 "IPSEC_API_SAD_FLAG_IS_TUNNEL":       4,
192                 "IPSEC_API_SAD_FLAG_IS_TUNNEL_V6":    8,
193                 "IPSEC_API_SAD_FLAG_UDP_ENCAP":       16,
194                 "IPSEC_API_SAD_FLAG_IS_INBOUND":      64,
195                 "IPSEC_API_SAD_FLAG_ASYNC":           128,
196         }
197 )
198
199 func (x IpsecSadFlags) String() string {
200         s, ok := IpsecSadFlags_name[uint32(x)]
201         if ok {
202                 return s
203         }
204         str := func(n uint32) string {
205                 s, ok := IpsecSadFlags_name[uint32(n)]
206                 if ok {
207                         return s
208                 }
209                 return "IpsecSadFlags(" + strconv.Itoa(int(n)) + ")"
210         }
211         for i := uint32(0); i <= 32; i++ {
212                 val := uint32(x)
213                 if val&(1<<i) != 0 {
214                         if s != "" {
215                                 s += "|"
216                         }
217                         s += str(1 << i)
218                 }
219         }
220         if s == "" {
221                 return str(uint32(x))
222         }
223         return s
224 }
225
226 // IpsecSadEntry defines type 'ipsec_sad_entry'.
227 type IpsecSadEntry struct {
228         SadID              uint32           `binapi:"u32,name=sad_id" json:"sad_id,omitempty"`
229         Spi                uint32           `binapi:"u32,name=spi" json:"spi,omitempty"`
230         Protocol           IpsecProto       `binapi:"ipsec_proto,name=protocol" json:"protocol,omitempty"`
231         CryptoAlgorithm    IpsecCryptoAlg   `binapi:"ipsec_crypto_alg,name=crypto_algorithm" json:"crypto_algorithm,omitempty"`
232         CryptoKey          Key              `binapi:"key,name=crypto_key" json:"crypto_key,omitempty"`
233         IntegrityAlgorithm IpsecIntegAlg    `binapi:"ipsec_integ_alg,name=integrity_algorithm" json:"integrity_algorithm,omitempty"`
234         IntegrityKey       Key              `binapi:"key,name=integrity_key" json:"integrity_key,omitempty"`
235         Flags              IpsecSadFlags    `binapi:"ipsec_sad_flags,name=flags" json:"flags,omitempty"`
236         TunnelSrc          ip_types.Address `binapi:"address,name=tunnel_src" json:"tunnel_src,omitempty"`
237         TunnelDst          ip_types.Address `binapi:"address,name=tunnel_dst" json:"tunnel_dst,omitempty"`
238         TxTableID          uint32           `binapi:"u32,name=tx_table_id" json:"tx_table_id,omitempty"`
239         Salt               uint32           `binapi:"u32,name=salt" json:"salt,omitempty"`
240         UDPSrcPort         uint16           `binapi:"u16,name=udp_src_port,default=4500" json:"udp_src_port,omitempty"`
241         UDPDstPort         uint16           `binapi:"u16,name=udp_dst_port,default=4500" json:"udp_dst_port,omitempty"`
242 }
243
244 // IpsecSadEntryV2 defines type 'ipsec_sad_entry_v2'.
245 type IpsecSadEntryV2 struct {
246         SadID              uint32                             `binapi:"u32,name=sad_id" json:"sad_id,omitempty"`
247         Spi                uint32                             `binapi:"u32,name=spi" json:"spi,omitempty"`
248         Protocol           IpsecProto                         `binapi:"ipsec_proto,name=protocol" json:"protocol,omitempty"`
249         CryptoAlgorithm    IpsecCryptoAlg                     `binapi:"ipsec_crypto_alg,name=crypto_algorithm" json:"crypto_algorithm,omitempty"`
250         CryptoKey          Key                                `binapi:"key,name=crypto_key" json:"crypto_key,omitempty"`
251         IntegrityAlgorithm IpsecIntegAlg                      `binapi:"ipsec_integ_alg,name=integrity_algorithm" json:"integrity_algorithm,omitempty"`
252         IntegrityKey       Key                                `binapi:"key,name=integrity_key" json:"integrity_key,omitempty"`
253         Flags              IpsecSadFlags                      `binapi:"ipsec_sad_flags,name=flags" json:"flags,omitempty"`
254         TunnelSrc          ip_types.Address                   `binapi:"address,name=tunnel_src" json:"tunnel_src,omitempty"`
255         TunnelDst          ip_types.Address                   `binapi:"address,name=tunnel_dst" json:"tunnel_dst,omitempty"`
256         TunnelFlags        tunnel_types.TunnelEncapDecapFlags `binapi:"tunnel_encap_decap_flags,name=tunnel_flags" json:"tunnel_flags,omitempty"`
257         Dscp               ip_types.IPDscp                    `binapi:"ip_dscp,name=dscp" json:"dscp,omitempty"`
258         TxTableID          uint32                             `binapi:"u32,name=tx_table_id" json:"tx_table_id,omitempty"`
259         Salt               uint32                             `binapi:"u32,name=salt" json:"salt,omitempty"`
260         UDPSrcPort         uint16                             `binapi:"u16,name=udp_src_port,default=4500" json:"udp_src_port,omitempty"`
261         UDPDstPort         uint16                             `binapi:"u16,name=udp_dst_port,default=4500" json:"udp_dst_port,omitempty"`
262 }
263
264 // IpsecSadEntryV3 defines type 'ipsec_sad_entry_v3'.
265 type IpsecSadEntryV3 struct {
266         SadID              uint32              `binapi:"u32,name=sad_id" json:"sad_id,omitempty"`
267         Spi                uint32              `binapi:"u32,name=spi" json:"spi,omitempty"`
268         Protocol           IpsecProto          `binapi:"ipsec_proto,name=protocol" json:"protocol,omitempty"`
269         CryptoAlgorithm    IpsecCryptoAlg      `binapi:"ipsec_crypto_alg,name=crypto_algorithm" json:"crypto_algorithm,omitempty"`
270         CryptoKey          Key                 `binapi:"key,name=crypto_key" json:"crypto_key,omitempty"`
271         IntegrityAlgorithm IpsecIntegAlg       `binapi:"ipsec_integ_alg,name=integrity_algorithm" json:"integrity_algorithm,omitempty"`
272         IntegrityKey       Key                 `binapi:"key,name=integrity_key" json:"integrity_key,omitempty"`
273         Flags              IpsecSadFlags       `binapi:"ipsec_sad_flags,name=flags" json:"flags,omitempty"`
274         Tunnel             tunnel_types.Tunnel `binapi:"tunnel,name=tunnel" json:"tunnel,omitempty"`
275         Salt               uint32              `binapi:"u32,name=salt" json:"salt,omitempty"`
276         UDPSrcPort         uint16              `binapi:"u16,name=udp_src_port,default=4500" json:"udp_src_port,omitempty"`
277         UDPDstPort         uint16              `binapi:"u16,name=udp_dst_port,default=4500" json:"udp_dst_port,omitempty"`
278 }
279
280 // Key defines type 'key'.
281 type Key struct {
282         Length uint8  `binapi:"u8,name=length" json:"length,omitempty"`
283         Data   []byte `binapi:"u8[128],name=data" json:"data,omitempty"`
284 }