aboutsummaryrefslogtreecommitdiffstats
path: root/binapi/ipsec_types/ipsec_types.ba.go
blob: c1d80aa19559155fb1d67492970a96388cf60b09 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
// Code generated by GoVPP's binapi-generator. DO NOT EDIT.
// versions:
//  binapi-generator: v0.4.0-dev
//  VPP:              20.05-release
// source: /usr/share/vpp/api/core/ipsec_types.api.json

// Package ipsec_types contains generated bindings for API file ipsec_types.api.
//
// Contents:
//   4 enums
//   2 structs
//
package ipsec_types

import (
	api "git.fd.io/govpp.git/api"
	ip_types "git.fd.io/govpp.git/binapi/ip_types"
	"strconv"
)

// This is a compile-time assertion to ensure that this generated file
// is compatible with the GoVPP api package it is being compiled against.
// A compilation error at this line likely means your copy of the
// GoVPP api package needs to be updated.
const _ = api.GoVppAPIPackageIsVersion2

// IpsecCryptoAlg defines enum 'ipsec_crypto_alg'.
type IpsecCryptoAlg uint32

const (
	IPSEC_API_CRYPTO_ALG_NONE        IpsecCryptoAlg = 0
	IPSEC_API_CRYPTO_ALG_AES_CBC_128 IpsecCryptoAlg = 1
	IPSEC_API_CRYPTO_ALG_AES_CBC_192 IpsecCryptoAlg = 2
	IPSEC_API_CRYPTO_ALG_AES_CBC_256 IpsecCryptoAlg = 3
	IPSEC_API_CRYPTO_ALG_AES_CTR_128 IpsecCryptoAlg = 4
	IPSEC_API_CRYPTO_ALG_AES_CTR_192 IpsecCryptoAlg = 5
	IPSEC_API_CRYPTO_ALG_AES_CTR_256 IpsecCryptoAlg = 6
	IPSEC_API_CRYPTO_ALG_AES_GCM_128 IpsecCryptoAlg = 7
	IPSEC_API_CRYPTO_ALG_AES_GCM_192 IpsecCryptoAlg = 8
	IPSEC_API_CRYPTO_ALG_AES_GCM_256 IpsecCryptoAlg = 9
	IPSEC_API_CRYPTO_ALG_DES_CBC     IpsecCryptoAlg = 10
	IPSEC_API_CRYPTO_ALG_3DES_CBC    IpsecCryptoAlg = 11
)

var (
	IpsecCryptoAlg_name = map[uint32]string{
		0:  "IPSEC_API_CRYPTO_ALG_NONE",
		1:  "IPSEC_API_CRYPTO_ALG_AES_CBC_128",
		2:  "IPSEC_API_CRYPTO_ALG_AES_CBC_192",
		3:  "IPSEC_API_CRYPTO_ALG_AES_CBC_256",
		4:  "IPSEC_API_CRYPTO_ALG_AES_CTR_128",
		5:  "IPSEC_API_CRYPTO_ALG_AES_CTR_192",
		6:  "IPSEC_API_CRYPTO_ALG_AES_CTR_256",
		7:  "IPSEC_API_CRYPTO_ALG_AES_GCM_128",
		8:  "IPSEC_API_CRYPTO_ALG_AES_GCM_192",
		9:  "IPSEC_API_CRYPTO_ALG_AES_GCM_256",
		10: "IPSEC_API_CRYPTO_ALG_DES_CBC",
		11: "IPSEC_API_CRYPTO_ALG_3DES_CBC",
	}
	IpsecCryptoAlg_value = map[string]uint32{
		"IPSEC_API_CRYPTO_ALG_NONE":        0,
		"IPSEC_API_CRYPTO_ALG_AES_CBC_128": 1,
		"IPSEC_API_CRYPTO_ALG_AES_CBC_192": 2,
		"IPSEC_API_CRYPTO_ALG_AES_CBC_256": 3,
		"IPSEC_API_CRYPTO_ALG_AES_CTR_128": 4,
		"IPSEC_API_CRYPTO_ALG_AES_CTR_192": 5,
		"IPSEC_API_CRYPTO_ALG_AES_CTR_256": 6,
		"IPSEC_API_CRYPTO_ALG_AES_GCM_128": 7,
		"IPSEC_API_CRYPTO_ALG_AES_GCM_192": 8,
		"IPSEC_API_CRYPTO_ALG_AES_GCM_256": 9,
		"IPSEC_API_CRYPTO_ALG_DES_CBC":     10,
		"IPSEC_API_CRYPTO_ALG_3DES_CBC":    11,
	}
)

func (x IpsecCryptoAlg) String() string {
	s, ok := IpsecCryptoAlg_name[uint32(x)]
	if ok {
		return s
	}
	return "IpsecCryptoAlg(" + strconv.Itoa(int(x)) + ")"
}

// IpsecIntegAlg defines enum 'ipsec_integ_alg'.
type IpsecIntegAlg uint32

const (
	IPSEC_API_INTEG_ALG_NONE        IpsecIntegAlg = 0
	IPSEC_API_INTEG_ALG_MD5_96      IpsecIntegAlg = 1
	IPSEC_API_INTEG_ALG_SHA1_96     IpsecIntegAlg = 2
	IPSEC_API_INTEG_ALG_SHA_256_96  IpsecIntegAlg = 3
	IPSEC_API_INTEG_ALG_SHA_256_128 IpsecIntegAlg = 4
	IPSEC_API_INTEG_ALG_SHA_384_192 IpsecIntegAlg = 5
	IPSEC_API_INTEG_ALG_SHA_512_256 IpsecIntegAlg = 6
)

var (
	IpsecIntegAlg_name = map[uint32]string{
		0: "IPSEC_API_INTEG_ALG_NONE",
		1: "IPSEC_API_INTEG_ALG_MD5_96",
		2: "IPSEC_API_INTEG_ALG_SHA1_96",
		3: "IPSEC_API_INTEG_ALG_SHA_256_96",
		4: "IPSEC_API_INTEG_ALG_SHA_256_128",
		5: "IPSEC_API_INTEG_ALG_SHA_384_192",
		6: "IPSEC_API_INTEG_ALG_SHA_512_256",
	}
	IpsecIntegAlg_value = map[string]uint32{
		"IPSEC_API_INTEG_ALG_NONE":        0,
		"IPSEC_API_INTEG_ALG_MD5_96":      1,
		"IPSEC_API_INTEG_ALG_SHA1_96":     2,
		"IPSEC_API_INTEG_ALG_SHA_256_96":  3,
		"IPSEC_API_INTEG_ALG_SHA_256_128": 4,
		"IPSEC_API_INTEG_ALG_SHA_384_192": 5,
		"IPSEC_API_INTEG_ALG_SHA_512_256": 6,
	}
)

func (x IpsecIntegAlg) String() string {
	s, ok := IpsecIntegAlg_name[uint32(x)]
	if ok {
		return s
	}
	return "IpsecIntegAlg(" + strconv.Itoa(int(x)) + ")"
}

// IpsecProto defines enum 'ipsec_proto'.
type IpsecProto uint32

const (
	IPSEC_API_PROTO_ESP IpsecProto = 50
	IPSEC_API_PROTO_AH  IpsecProto = 51
)

var (
	IpsecProto_name = map[uint32]string{
		50: "IPSEC_API_PROTO_ESP",
		51: "IPSEC_API_PROTO_AH",
	}
	IpsecProto_value = map[string]uint32{
		"IPSEC_API_PROTO_ESP": 50,
		"IPSEC_API_PROTO_AH":  51,
	}
)

func (x IpsecProto) String() string {
	s, ok := IpsecProto_name[uint32(x)]
	if ok {
		return s
	}
	return "IpsecProto(" + strconv.Itoa(int(x)) + ")"
}

// IpsecSadFlags defines enum 'ipsec_sad_flags'.
type IpsecSadFlags uint32

const (
	IPSEC_API_SAD_FLAG_NONE            IpsecSadFlags = 0
	IPSEC_API_SAD_FLAG_USE_ESN         IpsecSadFlags = 1
	IPSEC_API_SAD_FLAG_USE_ANTI_REPLAY IpsecSadFlags = 2
	IPSEC_API_SAD_FLAG_IS_TUNNEL       IpsecSadFlags = 4
	IPSEC_API_SAD_FLAG_IS_TUNNEL_V6    IpsecSadFlags = 8
	IPSEC_API_SAD_FLAG_UDP_ENCAP       IpsecSadFlags = 16
	IPSEC_API_SAD_FLAG_IS_INBOUND      IpsecSadFlags = 64
)

var (
	IpsecSadFlags_name = map[uint32]string{
		0:  "IPSEC_API_SAD_FLAG_NONE",
		1:  "IPSEC_API_SAD_FLAG_USE_ESN",
		2:  "IPSEC_API_SAD_FLAG_USE_ANTI_REPLAY",
		4:  "IPSEC_API_SAD_FLAG_IS_TUNNEL",
		8:  "IPSEC_API_SAD_FLAG_IS_TUNNEL_V6",
		16: "IPSEC_API_SAD_FLAG_UDP_ENCAP",
		64: "IPSEC_API_SAD_FLAG_IS_INBOUND",
	}
	IpsecSadFlags_value = map[string]uint32{
		"IPSEC_API_SAD_FLAG_NONE":            0,
		"IPSEC_API_SAD_FLAG_USE_ESN":         1,
		"IPSEC_API_SAD_FLAG_USE_ANTI_REPLAY": 2,
		"IPSEC_API_SAD_FLAG_IS_TUNNEL":       4,
		"IPSEC_API_SAD_FLAG_IS_TUNNEL_V6":    8,
		"IPSEC_API_SAD_FLAG_UDP_ENCAP":       16,
		"IPSEC_API_SAD_FLAG_IS_INBOUND":      64,
	}
)

func (x IpsecSadFlags) String() string {
	s, ok := IpsecSadFlags_name[uint32(x)]
	if ok {
		return s
	}
	str := func(n uint32) string {
		s, ok := IpsecSadFlags_name[uint32(n)]
		if ok {
			return s
		}
		return "IpsecSadFlags(" + strconv.Itoa(int(n)) + ")"
	}
	for i := uint32(0); i <= 32; i++ {
		val := uint32(x)
		if val&(1<<i) != 0 {
			if s != "" {
				s += "|"
			}
			s += str(1 << i)
		}
	}
	if s == "" {
		return str(uint32(x))
	}
	return s
}

// IpsecSadEntry defines type 'ipsec_sad_entry'.
type IpsecSadEntry struct {
	SadID              uint32           `binapi:"u32,name=sad_id" json:"sad_id,omitempty"`
	Spi                uint32           `binapi:"u32,name=spi" json:"spi,omitempty"`
	Protocol           IpsecProto       `binapi:"ipsec_proto,name=protocol" json:"protocol,omitempty"`
	CryptoAlgorithm    IpsecCryptoAlg   `binapi:"ipsec_crypto_alg,name=crypto_algorithm" json:"crypto_algorithm,omitempty"`
	CryptoKey          Key              `binapi:"key,name=crypto_key" json:"crypto_key,omitempty"`
	IntegrityAlgorithm IpsecIntegAlg    `binapi:"ipsec_integ_alg,name=integrity_algorithm" json:"integrity_algorithm,omitempty"`
	IntegrityKey       Key              `binapi:"key,name=integrity_key" json:"integrity_key,omitempty"`
	Flags              IpsecSadFlags    `binapi:"ipsec_sad_flags,name=flags" json:"flags,omitempty"`
	TunnelSrc          ip_types.Address `binapi:"address,name=tunnel_src" json:"tunnel_src,omitempty"`
	TunnelDst          ip_types.Address `binapi:"address,name=tunnel_dst" json:"tunnel_dst,omitempty"`
	TxTableID          uint32           `binapi:"u32,name=tx_table_id" json:"tx_table_id,omitempty"`
	Salt               uint32           `binapi:"u32,name=salt" json:"salt,omitempty"`
	UDPSrcPort         uint16           `binapi:"u16,name=udp_src_port,default=%!s(float64=4500)" json:"udp_src_port,omitempty"`
	UDPDstPort         uint16           `binapi:"u16,name=udp_dst_port,default=%!s(float64=4500)" json:"udp_dst_port,omitempty"`
}

// Key defines type 'key'.
type Key struct {
	Length uint8  `binapi:"u8,name=length" json:"length,omitempty"`
	Data   []byte `binapi:"u8[128],name=data" json:"data,omitempty"`
}