binapigen: fix union size
[govpp.git] / binapi / fib_types / fib_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/fib_types.api.json
6
7 // Package fib_types contains generated bindings for API file fib_types.api.
8 //
9 // Contents:
10 //   3 enums
11 //   3 structs
12 //
13 package fib_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 // FibPathFlags defines enum 'fib_path_flags'.
29 type FibPathFlags uint32
30
31 const (
32         FIB_API_PATH_FLAG_NONE                 FibPathFlags = 0
33         FIB_API_PATH_FLAG_RESOLVE_VIA_ATTACHED FibPathFlags = 1
34         FIB_API_PATH_FLAG_RESOLVE_VIA_HOST     FibPathFlags = 2
35         FIB_API_PATH_FLAG_POP_PW_CW            FibPathFlags = 4
36 )
37
38 var (
39         FibPathFlags_name = map[uint32]string{
40                 0: "FIB_API_PATH_FLAG_NONE",
41                 1: "FIB_API_PATH_FLAG_RESOLVE_VIA_ATTACHED",
42                 2: "FIB_API_PATH_FLAG_RESOLVE_VIA_HOST",
43                 4: "FIB_API_PATH_FLAG_POP_PW_CW",
44         }
45         FibPathFlags_value = map[string]uint32{
46                 "FIB_API_PATH_FLAG_NONE":                 0,
47                 "FIB_API_PATH_FLAG_RESOLVE_VIA_ATTACHED": 1,
48                 "FIB_API_PATH_FLAG_RESOLVE_VIA_HOST":     2,
49                 "FIB_API_PATH_FLAG_POP_PW_CW":            4,
50         }
51 )
52
53 func (x FibPathFlags) String() string {
54         s, ok := FibPathFlags_name[uint32(x)]
55         if ok {
56                 return s
57         }
58         str := func(n uint32) string {
59                 s, ok := FibPathFlags_name[uint32(n)]
60                 if ok {
61                         return s
62                 }
63                 return "FibPathFlags(" + strconv.Itoa(int(n)) + ")"
64         }
65         for i := uint32(0); i <= 32; i++ {
66                 val := uint32(x)
67                 if val&(1<<i) != 0 {
68                         if s != "" {
69                                 s += "|"
70                         }
71                         s += str(1 << i)
72                 }
73         }
74         if s == "" {
75                 return str(uint32(x))
76         }
77         return s
78 }
79
80 // FibPathNhProto defines enum 'fib_path_nh_proto'.
81 type FibPathNhProto uint32
82
83 const (
84         FIB_API_PATH_NH_PROTO_IP4      FibPathNhProto = 0
85         FIB_API_PATH_NH_PROTO_IP6      FibPathNhProto = 1
86         FIB_API_PATH_NH_PROTO_MPLS     FibPathNhProto = 2
87         FIB_API_PATH_NH_PROTO_ETHERNET FibPathNhProto = 3
88         FIB_API_PATH_NH_PROTO_BIER     FibPathNhProto = 4
89 )
90
91 var (
92         FibPathNhProto_name = map[uint32]string{
93                 0: "FIB_API_PATH_NH_PROTO_IP4",
94                 1: "FIB_API_PATH_NH_PROTO_IP6",
95                 2: "FIB_API_PATH_NH_PROTO_MPLS",
96                 3: "FIB_API_PATH_NH_PROTO_ETHERNET",
97                 4: "FIB_API_PATH_NH_PROTO_BIER",
98         }
99         FibPathNhProto_value = map[string]uint32{
100                 "FIB_API_PATH_NH_PROTO_IP4":      0,
101                 "FIB_API_PATH_NH_PROTO_IP6":      1,
102                 "FIB_API_PATH_NH_PROTO_MPLS":     2,
103                 "FIB_API_PATH_NH_PROTO_ETHERNET": 3,
104                 "FIB_API_PATH_NH_PROTO_BIER":     4,
105         }
106 )
107
108 func (x FibPathNhProto) String() string {
109         s, ok := FibPathNhProto_name[uint32(x)]
110         if ok {
111                 return s
112         }
113         return "FibPathNhProto(" + strconv.Itoa(int(x)) + ")"
114 }
115
116 // FibPathType defines enum 'fib_path_type'.
117 type FibPathType uint32
118
119 const (
120         FIB_API_PATH_TYPE_NORMAL        FibPathType = 0
121         FIB_API_PATH_TYPE_LOCAL         FibPathType = 1
122         FIB_API_PATH_TYPE_DROP          FibPathType = 2
123         FIB_API_PATH_TYPE_UDP_ENCAP     FibPathType = 3
124         FIB_API_PATH_TYPE_BIER_IMP      FibPathType = 4
125         FIB_API_PATH_TYPE_ICMP_UNREACH  FibPathType = 5
126         FIB_API_PATH_TYPE_ICMP_PROHIBIT FibPathType = 6
127         FIB_API_PATH_TYPE_SOURCE_LOOKUP FibPathType = 7
128         FIB_API_PATH_TYPE_DVR           FibPathType = 8
129         FIB_API_PATH_TYPE_INTERFACE_RX  FibPathType = 9
130         FIB_API_PATH_TYPE_CLASSIFY      FibPathType = 10
131 )
132
133 var (
134         FibPathType_name = map[uint32]string{
135                 0:  "FIB_API_PATH_TYPE_NORMAL",
136                 1:  "FIB_API_PATH_TYPE_LOCAL",
137                 2:  "FIB_API_PATH_TYPE_DROP",
138                 3:  "FIB_API_PATH_TYPE_UDP_ENCAP",
139                 4:  "FIB_API_PATH_TYPE_BIER_IMP",
140                 5:  "FIB_API_PATH_TYPE_ICMP_UNREACH",
141                 6:  "FIB_API_PATH_TYPE_ICMP_PROHIBIT",
142                 7:  "FIB_API_PATH_TYPE_SOURCE_LOOKUP",
143                 8:  "FIB_API_PATH_TYPE_DVR",
144                 9:  "FIB_API_PATH_TYPE_INTERFACE_RX",
145                 10: "FIB_API_PATH_TYPE_CLASSIFY",
146         }
147         FibPathType_value = map[string]uint32{
148                 "FIB_API_PATH_TYPE_NORMAL":        0,
149                 "FIB_API_PATH_TYPE_LOCAL":         1,
150                 "FIB_API_PATH_TYPE_DROP":          2,
151                 "FIB_API_PATH_TYPE_UDP_ENCAP":     3,
152                 "FIB_API_PATH_TYPE_BIER_IMP":      4,
153                 "FIB_API_PATH_TYPE_ICMP_UNREACH":  5,
154                 "FIB_API_PATH_TYPE_ICMP_PROHIBIT": 6,
155                 "FIB_API_PATH_TYPE_SOURCE_LOOKUP": 7,
156                 "FIB_API_PATH_TYPE_DVR":           8,
157                 "FIB_API_PATH_TYPE_INTERFACE_RX":  9,
158                 "FIB_API_PATH_TYPE_CLASSIFY":      10,
159         }
160 )
161
162 func (x FibPathType) String() string {
163         s, ok := FibPathType_name[uint32(x)]
164         if ok {
165                 return s
166         }
167         return "FibPathType(" + strconv.Itoa(int(x)) + ")"
168 }
169
170 // FibMplsLabel defines type 'fib_mpls_label'.
171 type FibMplsLabel struct {
172         IsUniform uint8  `binapi:"u8,name=is_uniform" json:"is_uniform,omitempty"`
173         Label     uint32 `binapi:"u32,name=label" json:"label,omitempty"`
174         TTL       uint8  `binapi:"u8,name=ttl" json:"ttl,omitempty"`
175         Exp       uint8  `binapi:"u8,name=exp" json:"exp,omitempty"`
176 }
177
178 // FibPath defines type 'fib_path'.
179 type FibPath struct {
180         SwIfIndex  uint32           `binapi:"u32,name=sw_if_index" json:"sw_if_index,omitempty"`
181         TableID    uint32           `binapi:"u32,name=table_id" json:"table_id,omitempty"`
182         RpfID      uint32           `binapi:"u32,name=rpf_id" json:"rpf_id,omitempty"`
183         Weight     uint8            `binapi:"u8,name=weight" json:"weight,omitempty"`
184         Preference uint8            `binapi:"u8,name=preference" json:"preference,omitempty"`
185         Type       FibPathType      `binapi:"fib_path_type,name=type" json:"type,omitempty"`
186         Flags      FibPathFlags     `binapi:"fib_path_flags,name=flags" json:"flags,omitempty"`
187         Proto      FibPathNhProto   `binapi:"fib_path_nh_proto,name=proto" json:"proto,omitempty"`
188         Nh         FibPathNh        `binapi:"fib_path_nh,name=nh" json:"nh,omitempty"`
189         NLabels    uint8            `binapi:"u8,name=n_labels" json:"n_labels,omitempty"`
190         LabelStack [16]FibMplsLabel `binapi:"fib_mpls_label[16],name=label_stack" json:"label_stack,omitempty"`
191 }
192
193 // FibPathNh defines type 'fib_path_nh'.
194 type FibPathNh struct {
195         Address            ip_types.AddressUnion `binapi:"address_union,name=address" json:"address,omitempty"`
196         ViaLabel           uint32                `binapi:"u32,name=via_label" json:"via_label,omitempty"`
197         ObjID              uint32                `binapi:"u32,name=obj_id" json:"obj_id,omitempty"`
198         ClassifyTableIndex uint32                `binapi:"u32,name=classify_table_index" json:"classify_table_index,omitempty"`
199 }