Improve binapi generator
[govpp.git] / binapi / ipsec_types / ipsec_types.ba.go
diff --git a/binapi/ipsec_types/ipsec_types.ba.go b/binapi/ipsec_types/ipsec_types.ba.go
new file mode 100644 (file)
index 0000000..c1d80aa
--- /dev/null
@@ -0,0 +1,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"`
+}