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