binapigen: fix union size
[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.4.0-dev
4 //  VPP:              20.05-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 //   2 structs
12 //
13 package ipsec_types
14
15 import (
16         "strconv"
17
18         api "git.fd.io/govpp.git/api"
19         ip_types "git.fd.io/govpp.git/binapi/ip_types"
20 )
21
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
27
28 // IpsecCryptoAlg defines enum 'ipsec_crypto_alg'.
29 type IpsecCryptoAlg uint32
30
31 const (
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
44 )
45
46 var (
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",
60         }
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,
74         }
75 )
76
77 func (x IpsecCryptoAlg) String() string {
78         s, ok := IpsecCryptoAlg_name[uint32(x)]
79         if ok {
80                 return s
81         }
82         return "IpsecCryptoAlg(" + strconv.Itoa(int(x)) + ")"
83 }
84
85 // IpsecIntegAlg defines enum 'ipsec_integ_alg'.
86 type IpsecIntegAlg uint32
87
88 const (
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
96 )
97
98 var (
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",
107         }
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,
116         }
117 )
118
119 func (x IpsecIntegAlg) String() string {
120         s, ok := IpsecIntegAlg_name[uint32(x)]
121         if ok {
122                 return s
123         }
124         return "IpsecIntegAlg(" + strconv.Itoa(int(x)) + ")"
125 }
126
127 // IpsecProto defines enum 'ipsec_proto'.
128 type IpsecProto uint32
129
130 const (
131         IPSEC_API_PROTO_ESP IpsecProto = 50
132         IPSEC_API_PROTO_AH  IpsecProto = 51
133 )
134
135 var (
136         IpsecProto_name = map[uint32]string{
137                 50: "IPSEC_API_PROTO_ESP",
138                 51: "IPSEC_API_PROTO_AH",
139         }
140         IpsecProto_value = map[string]uint32{
141                 "IPSEC_API_PROTO_ESP": 50,
142                 "IPSEC_API_PROTO_AH":  51,
143         }
144 )
145
146 func (x IpsecProto) String() string {
147         s, ok := IpsecProto_name[uint32(x)]
148         if ok {
149                 return s
150         }
151         return "IpsecProto(" + strconv.Itoa(int(x)) + ")"
152 }
153
154 // IpsecSadFlags defines enum 'ipsec_sad_flags'.
155 type IpsecSadFlags uint32
156
157 const (
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
165 )
166
167 var (
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",
176         }
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,
185         }
186 )
187
188 func (x IpsecSadFlags) String() string {
189         s, ok := IpsecSadFlags_name[uint32(x)]
190         if ok {
191                 return s
192         }
193         str := func(n uint32) string {
194                 s, ok := IpsecSadFlags_name[uint32(n)]
195                 if ok {
196                         return s
197                 }
198                 return "IpsecSadFlags(" + strconv.Itoa(int(n)) + ")"
199         }
200         for i := uint32(0); i <= 32; i++ {
201                 val := uint32(x)
202                 if val&(1<<i) != 0 {
203                         if s != "" {
204                                 s += "|"
205                         }
206                         s += str(1 << i)
207                 }
208         }
209         if s == "" {
210                 return str(uint32(x))
211         }
212         return s
213 }
214
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"`
231 }
232
233 // Key defines type 'key'.
234 type Key struct {
235         Length uint8  `binapi:"u8,name=length" json:"length,omitempty"`
236         Data   []byte `binapi:"u8[128],name=data" json:"data,omitempty"`
237 }