Change module name to go.fd.io/govpp
[govpp.git] / binapi / flow_types / flow_types.ba.go
1 // Code generated by GoVPP's binapi-generator. DO NOT EDIT.
2 // versions:
3 //  binapi-generator: v0.6.0-dev
4 //  VPP:              22.02-release
5 // source: /usr/share/vpp/api/core/flow_types.api.json
6
7 // Package flow_types contains generated bindings for API file flow_types.api.
8 //
9 // Contents:
10 //   2 enums
11 //  17 structs
12 //   1 union
13 //
14 package flow_types
15
16 import (
17         "strconv"
18
19         api "go.fd.io/govpp/api"
20         ethernet_types "go.fd.io/govpp/binapi/ethernet_types"
21         ip_types "go.fd.io/govpp/binapi/ip_types"
22         codec "go.fd.io/govpp/codec"
23 )
24
25 // This is a compile-time assertion to ensure that this generated file
26 // is compatible with the GoVPP api package it is being compiled against.
27 // A compilation error at this line likely means your copy of the
28 // GoVPP api package needs to be updated.
29 const _ = api.GoVppAPIPackageIsVersion2
30
31 const (
32         APIFile    = "flow_types"
33         APIVersion = "0.0.3"
34         VersionCrc = 0xd789ede8
35 )
36
37 // FlowAction defines enum 'flow_action'.
38 type FlowAction uint32
39
40 const (
41         FLOW_ACTION_COUNT             FlowAction = 1
42         FLOW_ACTION_MARK              FlowAction = 2
43         FLOW_ACTION_BUFFER_ADVANCE    FlowAction = 4
44         FLOW_ACTION_REDIRECT_TO_NODE  FlowAction = 8
45         FLOW_ACTION_REDIRECT_TO_QUEUE FlowAction = 16
46         FLOW_ACTION_DROP              FlowAction = 64
47 )
48
49 var (
50         FlowAction_name = map[uint32]string{
51                 1:  "FLOW_ACTION_COUNT",
52                 2:  "FLOW_ACTION_MARK",
53                 4:  "FLOW_ACTION_BUFFER_ADVANCE",
54                 8:  "FLOW_ACTION_REDIRECT_TO_NODE",
55                 16: "FLOW_ACTION_REDIRECT_TO_QUEUE",
56                 64: "FLOW_ACTION_DROP",
57         }
58         FlowAction_value = map[string]uint32{
59                 "FLOW_ACTION_COUNT":             1,
60                 "FLOW_ACTION_MARK":              2,
61                 "FLOW_ACTION_BUFFER_ADVANCE":    4,
62                 "FLOW_ACTION_REDIRECT_TO_NODE":  8,
63                 "FLOW_ACTION_REDIRECT_TO_QUEUE": 16,
64                 "FLOW_ACTION_DROP":              64,
65         }
66 )
67
68 func (x FlowAction) String() string {
69         s, ok := FlowAction_name[uint32(x)]
70         if ok {
71                 return s
72         }
73         return "FlowAction(" + strconv.Itoa(int(x)) + ")"
74 }
75
76 // FlowType defines enum 'flow_type'.
77 type FlowType uint32
78
79 const (
80         FLOW_TYPE_ETHERNET           FlowType = 1
81         FLOW_TYPE_IP4                FlowType = 2
82         FLOW_TYPE_IP6                FlowType = 3
83         FLOW_TYPE_IP4_L2TPV3OIP      FlowType = 4
84         FLOW_TYPE_IP4_IPSEC_ESP      FlowType = 5
85         FLOW_TYPE_IP4_IPSEC_AH       FlowType = 6
86         FLOW_TYPE_IP4_N_TUPLE        FlowType = 7
87         FLOW_TYPE_IP6_N_TUPLE        FlowType = 8
88         FLOW_TYPE_IP4_N_TUPLE_TAGGED FlowType = 9
89         FLOW_TYPE_IP6_N_TUPLE_TAGGED FlowType = 10
90         FLOW_TYPE_IP4_VXLAN          FlowType = 11
91         FLOW_TYPE_IP6_VXLAN          FlowType = 12
92         FLOW_TYPE_IP4_GTPC           FlowType = 13
93         FLOW_TYPE_IP4_GTPU           FlowType = 14
94 )
95
96 var (
97         FlowType_name = map[uint32]string{
98                 1:  "FLOW_TYPE_ETHERNET",
99                 2:  "FLOW_TYPE_IP4",
100                 3:  "FLOW_TYPE_IP6",
101                 4:  "FLOW_TYPE_IP4_L2TPV3OIP",
102                 5:  "FLOW_TYPE_IP4_IPSEC_ESP",
103                 6:  "FLOW_TYPE_IP4_IPSEC_AH",
104                 7:  "FLOW_TYPE_IP4_N_TUPLE",
105                 8:  "FLOW_TYPE_IP6_N_TUPLE",
106                 9:  "FLOW_TYPE_IP4_N_TUPLE_TAGGED",
107                 10: "FLOW_TYPE_IP6_N_TUPLE_TAGGED",
108                 11: "FLOW_TYPE_IP4_VXLAN",
109                 12: "FLOW_TYPE_IP6_VXLAN",
110                 13: "FLOW_TYPE_IP4_GTPC",
111                 14: "FLOW_TYPE_IP4_GTPU",
112         }
113         FlowType_value = map[string]uint32{
114                 "FLOW_TYPE_ETHERNET":           1,
115                 "FLOW_TYPE_IP4":                2,
116                 "FLOW_TYPE_IP6":                3,
117                 "FLOW_TYPE_IP4_L2TPV3OIP":      4,
118                 "FLOW_TYPE_IP4_IPSEC_ESP":      5,
119                 "FLOW_TYPE_IP4_IPSEC_AH":       6,
120                 "FLOW_TYPE_IP4_N_TUPLE":        7,
121                 "FLOW_TYPE_IP6_N_TUPLE":        8,
122                 "FLOW_TYPE_IP4_N_TUPLE_TAGGED": 9,
123                 "FLOW_TYPE_IP6_N_TUPLE_TAGGED": 10,
124                 "FLOW_TYPE_IP4_VXLAN":          11,
125                 "FLOW_TYPE_IP6_VXLAN":          12,
126                 "FLOW_TYPE_IP4_GTPC":           13,
127                 "FLOW_TYPE_IP4_GTPU":           14,
128         }
129 )
130
131 func (x FlowType) String() string {
132         s, ok := FlowType_name[uint32(x)]
133         if ok {
134                 return s
135         }
136         return "FlowType(" + strconv.Itoa(int(x)) + ")"
137 }
138
139 // FlowEthernet defines type 'flow_ethernet'.
140 type FlowEthernet struct {
141         Foo     int32                     `binapi:"i32,name=foo" json:"foo,omitempty"`
142         SrcAddr ethernet_types.MacAddress `binapi:"mac_address,name=src_addr" json:"src_addr,omitempty"`
143         DstAddr ethernet_types.MacAddress `binapi:"mac_address,name=dst_addr" json:"dst_addr,omitempty"`
144         Type    uint16                    `binapi:"u16,name=type" json:"type,omitempty"`
145 }
146
147 // FlowIP4 defines type 'flow_ip4'.
148 type FlowIP4 struct {
149         Foo      int32                      `binapi:"i32,name=foo" json:"foo,omitempty"`
150         SrcAddr  ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=src_addr" json:"src_addr,omitempty"`
151         DstAddr  ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=dst_addr" json:"dst_addr,omitempty"`
152         Protocol IPProtAndMask              `binapi:"ip_prot_and_mask,name=protocol" json:"protocol,omitempty"`
153 }
154
155 // FlowIP4Gtpc defines type 'flow_ip4_gtpc'.
156 type FlowIP4Gtpc struct {
157         Foo      int32                      `binapi:"i32,name=foo" json:"foo,omitempty"`
158         SrcAddr  ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=src_addr" json:"src_addr,omitempty"`
159         DstAddr  ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=dst_addr" json:"dst_addr,omitempty"`
160         Protocol IPProtAndMask              `binapi:"ip_prot_and_mask,name=protocol" json:"protocol,omitempty"`
161         SrcPort  IPPortAndMask              `binapi:"ip_port_and_mask,name=src_port" json:"src_port,omitempty"`
162         DstPort  IPPortAndMask              `binapi:"ip_port_and_mask,name=dst_port" json:"dst_port,omitempty"`
163         Teid     uint32                     `binapi:"u32,name=teid" json:"teid,omitempty"`
164 }
165
166 // FlowIP4Gtpu defines type 'flow_ip4_gtpu'.
167 type FlowIP4Gtpu struct {
168         Foo      int32                      `binapi:"i32,name=foo" json:"foo,omitempty"`
169         SrcAddr  ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=src_addr" json:"src_addr,omitempty"`
170         DstAddr  ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=dst_addr" json:"dst_addr,omitempty"`
171         Protocol IPProtAndMask              `binapi:"ip_prot_and_mask,name=protocol" json:"protocol,omitempty"`
172         SrcPort  IPPortAndMask              `binapi:"ip_port_and_mask,name=src_port" json:"src_port,omitempty"`
173         DstPort  IPPortAndMask              `binapi:"ip_port_and_mask,name=dst_port" json:"dst_port,omitempty"`
174         Teid     uint32                     `binapi:"u32,name=teid" json:"teid,omitempty"`
175 }
176
177 // FlowIP4IpsecAh defines type 'flow_ip4_ipsec_ah'.
178 type FlowIP4IpsecAh struct {
179         Foo      int32                      `binapi:"i32,name=foo" json:"foo,omitempty"`
180         SrcAddr  ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=src_addr" json:"src_addr,omitempty"`
181         DstAddr  ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=dst_addr" json:"dst_addr,omitempty"`
182         Protocol IPProtAndMask              `binapi:"ip_prot_and_mask,name=protocol" json:"protocol,omitempty"`
183         Spi      uint32                     `binapi:"u32,name=spi" json:"spi,omitempty"`
184 }
185
186 // FlowIP4IpsecEsp defines type 'flow_ip4_ipsec_esp'.
187 type FlowIP4IpsecEsp struct {
188         Foo      int32                      `binapi:"i32,name=foo" json:"foo,omitempty"`
189         SrcAddr  ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=src_addr" json:"src_addr,omitempty"`
190         DstAddr  ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=dst_addr" json:"dst_addr,omitempty"`
191         Protocol IPProtAndMask              `binapi:"ip_prot_and_mask,name=protocol" json:"protocol,omitempty"`
192         Spi      uint32                     `binapi:"u32,name=spi" json:"spi,omitempty"`
193 }
194
195 // FlowIP4L2tpv3oip defines type 'flow_ip4_l2tpv3oip'.
196 type FlowIP4L2tpv3oip struct {
197         Foo       int32                      `binapi:"i32,name=foo" json:"foo,omitempty"`
198         SrcAddr   ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=src_addr" json:"src_addr,omitempty"`
199         DstAddr   ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=dst_addr" json:"dst_addr,omitempty"`
200         Protocol  IPProtAndMask              `binapi:"ip_prot_and_mask,name=protocol" json:"protocol,omitempty"`
201         SessionID uint32                     `binapi:"u32,name=session_id" json:"session_id,omitempty"`
202 }
203
204 // FlowIP4NTuple defines type 'flow_ip4_n_tuple'.
205 type FlowIP4NTuple struct {
206         Foo      int32                      `binapi:"i32,name=foo" json:"foo,omitempty"`
207         SrcAddr  ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=src_addr" json:"src_addr,omitempty"`
208         DstAddr  ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=dst_addr" json:"dst_addr,omitempty"`
209         Protocol IPProtAndMask              `binapi:"ip_prot_and_mask,name=protocol" json:"protocol,omitempty"`
210         SrcPort  IPPortAndMask              `binapi:"ip_port_and_mask,name=src_port" json:"src_port,omitempty"`
211         DstPort  IPPortAndMask              `binapi:"ip_port_and_mask,name=dst_port" json:"dst_port,omitempty"`
212 }
213
214 // FlowIP4NTupleTagged defines type 'flow_ip4_n_tuple_tagged'.
215 type FlowIP4NTupleTagged struct {
216         Foo      int32                      `binapi:"i32,name=foo" json:"foo,omitempty"`
217         SrcAddr  ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=src_addr" json:"src_addr,omitempty"`
218         DstAddr  ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=dst_addr" json:"dst_addr,omitempty"`
219         Protocol IPProtAndMask              `binapi:"ip_prot_and_mask,name=protocol" json:"protocol,omitempty"`
220         SrcPort  IPPortAndMask              `binapi:"ip_port_and_mask,name=src_port" json:"src_port,omitempty"`
221         DstPort  IPPortAndMask              `binapi:"ip_port_and_mask,name=dst_port" json:"dst_port,omitempty"`
222 }
223
224 // FlowIP4Vxlan defines type 'flow_ip4_vxlan'.
225 type FlowIP4Vxlan struct {
226         Foo      int32                      `binapi:"i32,name=foo" json:"foo,omitempty"`
227         SrcAddr  ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=src_addr" json:"src_addr,omitempty"`
228         DstAddr  ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=dst_addr" json:"dst_addr,omitempty"`
229         Protocol IPProtAndMask              `binapi:"ip_prot_and_mask,name=protocol" json:"protocol,omitempty"`
230         SrcPort  IPPortAndMask              `binapi:"ip_port_and_mask,name=src_port" json:"src_port,omitempty"`
231         DstPort  IPPortAndMask              `binapi:"ip_port_and_mask,name=dst_port" json:"dst_port,omitempty"`
232         Vni      uint32                     `binapi:"u32,name=vni" json:"vni,omitempty"`
233 }
234
235 // FlowIP6 defines type 'flow_ip6'.
236 type FlowIP6 struct {
237         Foo      int32                      `binapi:"i32,name=foo" json:"foo,omitempty"`
238         SrcAddr  ip_types.IP6AddressAndMask `binapi:"ip6_address_and_mask,name=src_addr" json:"src_addr,omitempty"`
239         DstAddr  ip_types.IP6AddressAndMask `binapi:"ip6_address_and_mask,name=dst_addr" json:"dst_addr,omitempty"`
240         Protocol IPProtAndMask              `binapi:"ip_prot_and_mask,name=protocol" json:"protocol,omitempty"`
241 }
242
243 // FlowIP6NTuple defines type 'flow_ip6_n_tuple'.
244 type FlowIP6NTuple struct {
245         Foo      int32                      `binapi:"i32,name=foo" json:"foo,omitempty"`
246         SrcAddr  ip_types.IP6AddressAndMask `binapi:"ip6_address_and_mask,name=src_addr" json:"src_addr,omitempty"`
247         DstAddr  ip_types.IP6AddressAndMask `binapi:"ip6_address_and_mask,name=dst_addr" json:"dst_addr,omitempty"`
248         Protocol IPProtAndMask              `binapi:"ip_prot_and_mask,name=protocol" json:"protocol,omitempty"`
249         SrcPort  IPPortAndMask              `binapi:"ip_port_and_mask,name=src_port" json:"src_port,omitempty"`
250         DstPort  IPPortAndMask              `binapi:"ip_port_and_mask,name=dst_port" json:"dst_port,omitempty"`
251 }
252
253 // FlowIP6NTupleTagged defines type 'flow_ip6_n_tuple_tagged'.
254 type FlowIP6NTupleTagged struct {
255         Foo      int32                      `binapi:"i32,name=foo" json:"foo,omitempty"`
256         SrcAddr  ip_types.IP6AddressAndMask `binapi:"ip6_address_and_mask,name=src_addr" json:"src_addr,omitempty"`
257         DstAddr  ip_types.IP6AddressAndMask `binapi:"ip6_address_and_mask,name=dst_addr" json:"dst_addr,omitempty"`
258         Protocol IPProtAndMask              `binapi:"ip_prot_and_mask,name=protocol" json:"protocol,omitempty"`
259         SrcPort  IPPortAndMask              `binapi:"ip_port_and_mask,name=src_port" json:"src_port,omitempty"`
260         DstPort  IPPortAndMask              `binapi:"ip_port_and_mask,name=dst_port" json:"dst_port,omitempty"`
261 }
262
263 // FlowIP6Vxlan defines type 'flow_ip6_vxlan'.
264 type FlowIP6Vxlan struct {
265         Foo      int32                      `binapi:"i32,name=foo" json:"foo,omitempty"`
266         SrcAddr  ip_types.IP6AddressAndMask `binapi:"ip6_address_and_mask,name=src_addr" json:"src_addr,omitempty"`
267         DstAddr  ip_types.IP6AddressAndMask `binapi:"ip6_address_and_mask,name=dst_addr" json:"dst_addr,omitempty"`
268         Protocol IPProtAndMask              `binapi:"ip_prot_and_mask,name=protocol" json:"protocol,omitempty"`
269         SrcPort  IPPortAndMask              `binapi:"ip_port_and_mask,name=src_port" json:"src_port,omitempty"`
270         DstPort  IPPortAndMask              `binapi:"ip_port_and_mask,name=dst_port" json:"dst_port,omitempty"`
271         Vni      uint32                     `binapi:"u32,name=vni" json:"vni,omitempty"`
272 }
273
274 // FlowRule defines type 'flow_rule'.
275 type FlowRule struct {
276         Type                         FlowType   `binapi:"flow_type,name=type" json:"type,omitempty"`
277         Index                        uint32     `binapi:"u32,name=index" json:"index,omitempty"`
278         Actions                      FlowAction `binapi:"flow_action,name=actions" json:"actions,omitempty"`
279         MarkFlowID                   uint32     `binapi:"u32,name=mark_flow_id" json:"mark_flow_id,omitempty"`
280         RedirectNodeIndex            uint32     `binapi:"u32,name=redirect_node_index" json:"redirect_node_index,omitempty"`
281         RedirectDeviceInputNextIndex uint32     `binapi:"u32,name=redirect_device_input_next_index" json:"redirect_device_input_next_index,omitempty"`
282         RedirectQueue                uint32     `binapi:"u32,name=redirect_queue" json:"redirect_queue,omitempty"`
283         BufferAdvance                int32      `binapi:"i32,name=buffer_advance" json:"buffer_advance,omitempty"`
284         Flow                         FlowUnion  `binapi:"flow,name=flow" json:"flow,omitempty"`
285 }
286
287 // IPPortAndMask defines type 'ip_port_and_mask'.
288 type IPPortAndMask struct {
289         Port uint16 `binapi:"u16,name=port" json:"port,omitempty"`
290         Mask uint16 `binapi:"u16,name=mask" json:"mask,omitempty"`
291 }
292
293 // IPProtAndMask defines type 'ip_prot_and_mask'.
294 type IPProtAndMask struct {
295         Prot ip_types.IPProto `binapi:"ip_proto,name=prot" json:"prot,omitempty"`
296         Mask uint8            `binapi:"u8,name=mask" json:"mask,omitempty"`
297 }
298
299 // FlowUnion defines union 'flow'.
300 type FlowUnion struct {
301         // FlowUnion can be one of:
302         // - Ethernet *FlowEthernet
303         // - IP4 *FlowIP4
304         // - IP6 *FlowIP6
305         // - IP4L2tpv3oip *FlowIP4L2tpv3oip
306         // - IP4IpsecEsp *FlowIP4IpsecEsp
307         // - IP4IpsecAh *FlowIP4IpsecAh
308         // - IP4NTuple *FlowIP4NTuple
309         // - IP6NTuple *FlowIP6NTuple
310         // - IP4NTupleTagged *FlowIP4NTupleTagged
311         // - IP6NTupleTagged *FlowIP6NTupleTagged
312         // - IP4Vxlan *FlowIP4Vxlan
313         // - IP6Vxlan *FlowIP6Vxlan
314         // - IP4Gtpc *FlowIP4Gtpc
315         // - IP4Gtpu *FlowIP4Gtpu
316         XXX_UnionData [82]byte
317 }
318
319 func FlowUnionEthernet(a FlowEthernet) (u FlowUnion) {
320         u.SetEthernet(a)
321         return
322 }
323 func (u *FlowUnion) SetEthernet(a FlowEthernet) {
324         buf := codec.NewBuffer(u.XXX_UnionData[:])
325         buf.EncodeInt32(a.Foo)
326         buf.EncodeBytes(a.SrcAddr[:], 6)
327         buf.EncodeBytes(a.DstAddr[:], 6)
328         buf.EncodeUint16(a.Type)
329 }
330 func (u *FlowUnion) GetEthernet() (a FlowEthernet) {
331         buf := codec.NewBuffer(u.XXX_UnionData[:])
332         a.Foo = buf.DecodeInt32()
333         copy(a.SrcAddr[:], buf.DecodeBytes(6))
334         copy(a.DstAddr[:], buf.DecodeBytes(6))
335         a.Type = buf.DecodeUint16()
336         return
337 }
338
339 func FlowUnionIP4(a FlowIP4) (u FlowUnion) {
340         u.SetIP4(a)
341         return
342 }
343 func (u *FlowUnion) SetIP4(a FlowIP4) {
344         buf := codec.NewBuffer(u.XXX_UnionData[:])
345         buf.EncodeInt32(a.Foo)
346         buf.EncodeBytes(a.SrcAddr.Addr[:], 4)
347         buf.EncodeBytes(a.SrcAddr.Mask[:], 4)
348         buf.EncodeBytes(a.DstAddr.Addr[:], 4)
349         buf.EncodeBytes(a.DstAddr.Mask[:], 4)
350         buf.EncodeUint8(uint8(a.Protocol.Prot))
351         buf.EncodeUint8(a.Protocol.Mask)
352 }
353 func (u *FlowUnion) GetIP4() (a FlowIP4) {
354         buf := codec.NewBuffer(u.XXX_UnionData[:])
355         a.Foo = buf.DecodeInt32()
356         copy(a.SrcAddr.Addr[:], buf.DecodeBytes(4))
357         copy(a.SrcAddr.Mask[:], buf.DecodeBytes(4))
358         copy(a.DstAddr.Addr[:], buf.DecodeBytes(4))
359         copy(a.DstAddr.Mask[:], buf.DecodeBytes(4))
360         a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8())
361         a.Protocol.Mask = buf.DecodeUint8()
362         return
363 }
364
365 func FlowUnionIP6(a FlowIP6) (u FlowUnion) {
366         u.SetIP6(a)
367         return
368 }
369 func (u *FlowUnion) SetIP6(a FlowIP6) {
370         buf := codec.NewBuffer(u.XXX_UnionData[:])
371         buf.EncodeInt32(a.Foo)
372         buf.EncodeBytes(a.SrcAddr.Addr[:], 16)
373         buf.EncodeBytes(a.SrcAddr.Mask[:], 16)
374         buf.EncodeBytes(a.DstAddr.Addr[:], 16)
375         buf.EncodeBytes(a.DstAddr.Mask[:], 16)
376         buf.EncodeUint8(uint8(a.Protocol.Prot))
377         buf.EncodeUint8(a.Protocol.Mask)
378 }
379 func (u *FlowUnion) GetIP6() (a FlowIP6) {
380         buf := codec.NewBuffer(u.XXX_UnionData[:])
381         a.Foo = buf.DecodeInt32()
382         copy(a.SrcAddr.Addr[:], buf.DecodeBytes(16))
383         copy(a.SrcAddr.Mask[:], buf.DecodeBytes(16))
384         copy(a.DstAddr.Addr[:], buf.DecodeBytes(16))
385         copy(a.DstAddr.Mask[:], buf.DecodeBytes(16))
386         a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8())
387         a.Protocol.Mask = buf.DecodeUint8()
388         return
389 }
390
391 func FlowUnionIP4L2tpv3oip(a FlowIP4L2tpv3oip) (u FlowUnion) {
392         u.SetIP4L2tpv3oip(a)
393         return
394 }
395 func (u *FlowUnion) SetIP4L2tpv3oip(a FlowIP4L2tpv3oip) {
396         buf := codec.NewBuffer(u.XXX_UnionData[:])
397         buf.EncodeInt32(a.Foo)
398         buf.EncodeBytes(a.SrcAddr.Addr[:], 4)
399         buf.EncodeBytes(a.SrcAddr.Mask[:], 4)
400         buf.EncodeBytes(a.DstAddr.Addr[:], 4)
401         buf.EncodeBytes(a.DstAddr.Mask[:], 4)
402         buf.EncodeUint8(uint8(a.Protocol.Prot))
403         buf.EncodeUint8(a.Protocol.Mask)
404         buf.EncodeUint32(a.SessionID)
405 }
406 func (u *FlowUnion) GetIP4L2tpv3oip() (a FlowIP4L2tpv3oip) {
407         buf := codec.NewBuffer(u.XXX_UnionData[:])
408         a.Foo = buf.DecodeInt32()
409         copy(a.SrcAddr.Addr[:], buf.DecodeBytes(4))
410         copy(a.SrcAddr.Mask[:], buf.DecodeBytes(4))
411         copy(a.DstAddr.Addr[:], buf.DecodeBytes(4))
412         copy(a.DstAddr.Mask[:], buf.DecodeBytes(4))
413         a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8())
414         a.Protocol.Mask = buf.DecodeUint8()
415         a.SessionID = buf.DecodeUint32()
416         return
417 }
418
419 func FlowUnionIP4IpsecEsp(a FlowIP4IpsecEsp) (u FlowUnion) {
420         u.SetIP4IpsecEsp(a)
421         return
422 }
423 func (u *FlowUnion) SetIP4IpsecEsp(a FlowIP4IpsecEsp) {
424         buf := codec.NewBuffer(u.XXX_UnionData[:])
425         buf.EncodeInt32(a.Foo)
426         buf.EncodeBytes(a.SrcAddr.Addr[:], 4)
427         buf.EncodeBytes(a.SrcAddr.Mask[:], 4)
428         buf.EncodeBytes(a.DstAddr.Addr[:], 4)
429         buf.EncodeBytes(a.DstAddr.Mask[:], 4)
430         buf.EncodeUint8(uint8(a.Protocol.Prot))
431         buf.EncodeUint8(a.Protocol.Mask)
432         buf.EncodeUint32(a.Spi)
433 }
434 func (u *FlowUnion) GetIP4IpsecEsp() (a FlowIP4IpsecEsp) {
435         buf := codec.NewBuffer(u.XXX_UnionData[:])
436         a.Foo = buf.DecodeInt32()
437         copy(a.SrcAddr.Addr[:], buf.DecodeBytes(4))
438         copy(a.SrcAddr.Mask[:], buf.DecodeBytes(4))
439         copy(a.DstAddr.Addr[:], buf.DecodeBytes(4))
440         copy(a.DstAddr.Mask[:], buf.DecodeBytes(4))
441         a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8())
442         a.Protocol.Mask = buf.DecodeUint8()
443         a.Spi = buf.DecodeUint32()
444         return
445 }
446
447 func FlowUnionIP4IpsecAh(a FlowIP4IpsecAh) (u FlowUnion) {
448         u.SetIP4IpsecAh(a)
449         return
450 }
451 func (u *FlowUnion) SetIP4IpsecAh(a FlowIP4IpsecAh) {
452         buf := codec.NewBuffer(u.XXX_UnionData[:])
453         buf.EncodeInt32(a.Foo)
454         buf.EncodeBytes(a.SrcAddr.Addr[:], 4)
455         buf.EncodeBytes(a.SrcAddr.Mask[:], 4)
456         buf.EncodeBytes(a.DstAddr.Addr[:], 4)
457         buf.EncodeBytes(a.DstAddr.Mask[:], 4)
458         buf.EncodeUint8(uint8(a.Protocol.Prot))
459         buf.EncodeUint8(a.Protocol.Mask)
460         buf.EncodeUint32(a.Spi)
461 }
462 func (u *FlowUnion) GetIP4IpsecAh() (a FlowIP4IpsecAh) {
463         buf := codec.NewBuffer(u.XXX_UnionData[:])
464         a.Foo = buf.DecodeInt32()
465         copy(a.SrcAddr.Addr[:], buf.DecodeBytes(4))
466         copy(a.SrcAddr.Mask[:], buf.DecodeBytes(4))
467         copy(a.DstAddr.Addr[:], buf.DecodeBytes(4))
468         copy(a.DstAddr.Mask[:], buf.DecodeBytes(4))
469         a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8())
470         a.Protocol.Mask = buf.DecodeUint8()
471         a.Spi = buf.DecodeUint32()
472         return
473 }
474
475 func FlowUnionIP4NTuple(a FlowIP4NTuple) (u FlowUnion) {
476         u.SetIP4NTuple(a)
477         return
478 }
479 func (u *FlowUnion) SetIP4NTuple(a FlowIP4NTuple) {
480         buf := codec.NewBuffer(u.XXX_UnionData[:])
481         buf.EncodeInt32(a.Foo)
482         buf.EncodeBytes(a.SrcAddr.Addr[:], 4)
483         buf.EncodeBytes(a.SrcAddr.Mask[:], 4)
484         buf.EncodeBytes(a.DstAddr.Addr[:], 4)
485         buf.EncodeBytes(a.DstAddr.Mask[:], 4)
486         buf.EncodeUint8(uint8(a.Protocol.Prot))
487         buf.EncodeUint8(a.Protocol.Mask)
488         buf.EncodeUint16(a.SrcPort.Port)
489         buf.EncodeUint16(a.SrcPort.Mask)
490         buf.EncodeUint16(a.DstPort.Port)
491         buf.EncodeUint16(a.DstPort.Mask)
492 }
493 func (u *FlowUnion) GetIP4NTuple() (a FlowIP4NTuple) {
494         buf := codec.NewBuffer(u.XXX_UnionData[:])
495         a.Foo = buf.DecodeInt32()
496         copy(a.SrcAddr.Addr[:], buf.DecodeBytes(4))
497         copy(a.SrcAddr.Mask[:], buf.DecodeBytes(4))
498         copy(a.DstAddr.Addr[:], buf.DecodeBytes(4))
499         copy(a.DstAddr.Mask[:], buf.DecodeBytes(4))
500         a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8())
501         a.Protocol.Mask = buf.DecodeUint8()
502         a.SrcPort.Port = buf.DecodeUint16()
503         a.SrcPort.Mask = buf.DecodeUint16()
504         a.DstPort.Port = buf.DecodeUint16()
505         a.DstPort.Mask = buf.DecodeUint16()
506         return
507 }
508
509 func FlowUnionIP6NTuple(a FlowIP6NTuple) (u FlowUnion) {
510         u.SetIP6NTuple(a)
511         return
512 }
513 func (u *FlowUnion) SetIP6NTuple(a FlowIP6NTuple) {
514         buf := codec.NewBuffer(u.XXX_UnionData[:])
515         buf.EncodeInt32(a.Foo)
516         buf.EncodeBytes(a.SrcAddr.Addr[:], 16)
517         buf.EncodeBytes(a.SrcAddr.Mask[:], 16)
518         buf.EncodeBytes(a.DstAddr.Addr[:], 16)
519         buf.EncodeBytes(a.DstAddr.Mask[:], 16)
520         buf.EncodeUint8(uint8(a.Protocol.Prot))
521         buf.EncodeUint8(a.Protocol.Mask)
522         buf.EncodeUint16(a.SrcPort.Port)
523         buf.EncodeUint16(a.SrcPort.Mask)
524         buf.EncodeUint16(a.DstPort.Port)
525         buf.EncodeUint16(a.DstPort.Mask)
526 }
527 func (u *FlowUnion) GetIP6NTuple() (a FlowIP6NTuple) {
528         buf := codec.NewBuffer(u.XXX_UnionData[:])
529         a.Foo = buf.DecodeInt32()
530         copy(a.SrcAddr.Addr[:], buf.DecodeBytes(16))
531         copy(a.SrcAddr.Mask[:], buf.DecodeBytes(16))
532         copy(a.DstAddr.Addr[:], buf.DecodeBytes(16))
533         copy(a.DstAddr.Mask[:], buf.DecodeBytes(16))
534         a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8())
535         a.Protocol.Mask = buf.DecodeUint8()
536         a.SrcPort.Port = buf.DecodeUint16()
537         a.SrcPort.Mask = buf.DecodeUint16()
538         a.DstPort.Port = buf.DecodeUint16()
539         a.DstPort.Mask = buf.DecodeUint16()
540         return
541 }
542
543 func FlowUnionIP4NTupleTagged(a FlowIP4NTupleTagged) (u FlowUnion) {
544         u.SetIP4NTupleTagged(a)
545         return
546 }
547 func (u *FlowUnion) SetIP4NTupleTagged(a FlowIP4NTupleTagged) {
548         buf := codec.NewBuffer(u.XXX_UnionData[:])
549         buf.EncodeInt32(a.Foo)
550         buf.EncodeBytes(a.SrcAddr.Addr[:], 4)
551         buf.EncodeBytes(a.SrcAddr.Mask[:], 4)
552         buf.EncodeBytes(a.DstAddr.Addr[:], 4)
553         buf.EncodeBytes(a.DstAddr.Mask[:], 4)
554         buf.EncodeUint8(uint8(a.Protocol.Prot))
555         buf.EncodeUint8(a.Protocol.Mask)
556         buf.EncodeUint16(a.SrcPort.Port)
557         buf.EncodeUint16(a.SrcPort.Mask)
558         buf.EncodeUint16(a.DstPort.Port)
559         buf.EncodeUint16(a.DstPort.Mask)
560 }
561 func (u *FlowUnion) GetIP4NTupleTagged() (a FlowIP4NTupleTagged) {
562         buf := codec.NewBuffer(u.XXX_UnionData[:])
563         a.Foo = buf.DecodeInt32()
564         copy(a.SrcAddr.Addr[:], buf.DecodeBytes(4))
565         copy(a.SrcAddr.Mask[:], buf.DecodeBytes(4))
566         copy(a.DstAddr.Addr[:], buf.DecodeBytes(4))
567         copy(a.DstAddr.Mask[:], buf.DecodeBytes(4))
568         a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8())
569         a.Protocol.Mask = buf.DecodeUint8()
570         a.SrcPort.Port = buf.DecodeUint16()
571         a.SrcPort.Mask = buf.DecodeUint16()
572         a.DstPort.Port = buf.DecodeUint16()
573         a.DstPort.Mask = buf.DecodeUint16()
574         return
575 }
576
577 func FlowUnionIP6NTupleTagged(a FlowIP6NTupleTagged) (u FlowUnion) {
578         u.SetIP6NTupleTagged(a)
579         return
580 }
581 func (u *FlowUnion) SetIP6NTupleTagged(a FlowIP6NTupleTagged) {
582         buf := codec.NewBuffer(u.XXX_UnionData[:])
583         buf.EncodeInt32(a.Foo)
584         buf.EncodeBytes(a.SrcAddr.Addr[:], 16)
585         buf.EncodeBytes(a.SrcAddr.Mask[:], 16)
586         buf.EncodeBytes(a.DstAddr.Addr[:], 16)
587         buf.EncodeBytes(a.DstAddr.Mask[:], 16)
588         buf.EncodeUint8(uint8(a.Protocol.Prot))
589         buf.EncodeUint8(a.Protocol.Mask)
590         buf.EncodeUint16(a.SrcPort.Port)
591         buf.EncodeUint16(a.SrcPort.Mask)
592         buf.EncodeUint16(a.DstPort.Port)
593         buf.EncodeUint16(a.DstPort.Mask)
594 }
595 func (u *FlowUnion) GetIP6NTupleTagged() (a FlowIP6NTupleTagged) {
596         buf := codec.NewBuffer(u.XXX_UnionData[:])
597         a.Foo = buf.DecodeInt32()
598         copy(a.SrcAddr.Addr[:], buf.DecodeBytes(16))
599         copy(a.SrcAddr.Mask[:], buf.DecodeBytes(16))
600         copy(a.DstAddr.Addr[:], buf.DecodeBytes(16))
601         copy(a.DstAddr.Mask[:], buf.DecodeBytes(16))
602         a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8())
603         a.Protocol.Mask = buf.DecodeUint8()
604         a.SrcPort.Port = buf.DecodeUint16()
605         a.SrcPort.Mask = buf.DecodeUint16()
606         a.DstPort.Port = buf.DecodeUint16()
607         a.DstPort.Mask = buf.DecodeUint16()
608         return
609 }
610
611 func FlowUnionIP4Vxlan(a FlowIP4Vxlan) (u FlowUnion) {
612         u.SetIP4Vxlan(a)
613         return
614 }
615 func (u *FlowUnion) SetIP4Vxlan(a FlowIP4Vxlan) {
616         buf := codec.NewBuffer(u.XXX_UnionData[:])
617         buf.EncodeInt32(a.Foo)
618         buf.EncodeBytes(a.SrcAddr.Addr[:], 4)
619         buf.EncodeBytes(a.SrcAddr.Mask[:], 4)
620         buf.EncodeBytes(a.DstAddr.Addr[:], 4)
621         buf.EncodeBytes(a.DstAddr.Mask[:], 4)
622         buf.EncodeUint8(uint8(a.Protocol.Prot))
623         buf.EncodeUint8(a.Protocol.Mask)
624         buf.EncodeUint16(a.SrcPort.Port)
625         buf.EncodeUint16(a.SrcPort.Mask)
626         buf.EncodeUint16(a.DstPort.Port)
627         buf.EncodeUint16(a.DstPort.Mask)
628         buf.EncodeUint32(a.Vni)
629 }
630 func (u *FlowUnion) GetIP4Vxlan() (a FlowIP4Vxlan) {
631         buf := codec.NewBuffer(u.XXX_UnionData[:])
632         a.Foo = buf.DecodeInt32()
633         copy(a.SrcAddr.Addr[:], buf.DecodeBytes(4))
634         copy(a.SrcAddr.Mask[:], buf.DecodeBytes(4))
635         copy(a.DstAddr.Addr[:], buf.DecodeBytes(4))
636         copy(a.DstAddr.Mask[:], buf.DecodeBytes(4))
637         a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8())
638         a.Protocol.Mask = buf.DecodeUint8()
639         a.SrcPort.Port = buf.DecodeUint16()
640         a.SrcPort.Mask = buf.DecodeUint16()
641         a.DstPort.Port = buf.DecodeUint16()
642         a.DstPort.Mask = buf.DecodeUint16()
643         a.Vni = buf.DecodeUint32()
644         return
645 }
646
647 func FlowUnionIP6Vxlan(a FlowIP6Vxlan) (u FlowUnion) {
648         u.SetIP6Vxlan(a)
649         return
650 }
651 func (u *FlowUnion) SetIP6Vxlan(a FlowIP6Vxlan) {
652         buf := codec.NewBuffer(u.XXX_UnionData[:])
653         buf.EncodeInt32(a.Foo)
654         buf.EncodeBytes(a.SrcAddr.Addr[:], 16)
655         buf.EncodeBytes(a.SrcAddr.Mask[:], 16)
656         buf.EncodeBytes(a.DstAddr.Addr[:], 16)
657         buf.EncodeBytes(a.DstAddr.Mask[:], 16)
658         buf.EncodeUint8(uint8(a.Protocol.Prot))
659         buf.EncodeUint8(a.Protocol.Mask)
660         buf.EncodeUint16(a.SrcPort.Port)
661         buf.EncodeUint16(a.SrcPort.Mask)
662         buf.EncodeUint16(a.DstPort.Port)
663         buf.EncodeUint16(a.DstPort.Mask)
664         buf.EncodeUint32(a.Vni)
665 }
666 func (u *FlowUnion) GetIP6Vxlan() (a FlowIP6Vxlan) {
667         buf := codec.NewBuffer(u.XXX_UnionData[:])
668         a.Foo = buf.DecodeInt32()
669         copy(a.SrcAddr.Addr[:], buf.DecodeBytes(16))
670         copy(a.SrcAddr.Mask[:], buf.DecodeBytes(16))
671         copy(a.DstAddr.Addr[:], buf.DecodeBytes(16))
672         copy(a.DstAddr.Mask[:], buf.DecodeBytes(16))
673         a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8())
674         a.Protocol.Mask = buf.DecodeUint8()
675         a.SrcPort.Port = buf.DecodeUint16()
676         a.SrcPort.Mask = buf.DecodeUint16()
677         a.DstPort.Port = buf.DecodeUint16()
678         a.DstPort.Mask = buf.DecodeUint16()
679         a.Vni = buf.DecodeUint32()
680         return
681 }
682
683 func FlowUnionIP4Gtpc(a FlowIP4Gtpc) (u FlowUnion) {
684         u.SetIP4Gtpc(a)
685         return
686 }
687 func (u *FlowUnion) SetIP4Gtpc(a FlowIP4Gtpc) {
688         buf := codec.NewBuffer(u.XXX_UnionData[:])
689         buf.EncodeInt32(a.Foo)
690         buf.EncodeBytes(a.SrcAddr.Addr[:], 4)
691         buf.EncodeBytes(a.SrcAddr.Mask[:], 4)
692         buf.EncodeBytes(a.DstAddr.Addr[:], 4)
693         buf.EncodeBytes(a.DstAddr.Mask[:], 4)
694         buf.EncodeUint8(uint8(a.Protocol.Prot))
695         buf.EncodeUint8(a.Protocol.Mask)
696         buf.EncodeUint16(a.SrcPort.Port)
697         buf.EncodeUint16(a.SrcPort.Mask)
698         buf.EncodeUint16(a.DstPort.Port)
699         buf.EncodeUint16(a.DstPort.Mask)
700         buf.EncodeUint32(a.Teid)
701 }
702 func (u *FlowUnion) GetIP4Gtpc() (a FlowIP4Gtpc) {
703         buf := codec.NewBuffer(u.XXX_UnionData[:])
704         a.Foo = buf.DecodeInt32()
705         copy(a.SrcAddr.Addr[:], buf.DecodeBytes(4))
706         copy(a.SrcAddr.Mask[:], buf.DecodeBytes(4))
707         copy(a.DstAddr.Addr[:], buf.DecodeBytes(4))
708         copy(a.DstAddr.Mask[:], buf.DecodeBytes(4))
709         a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8())
710         a.Protocol.Mask = buf.DecodeUint8()
711         a.SrcPort.Port = buf.DecodeUint16()
712         a.SrcPort.Mask = buf.DecodeUint16()
713         a.DstPort.Port = buf.DecodeUint16()
714         a.DstPort.Mask = buf.DecodeUint16()
715         a.Teid = buf.DecodeUint32()
716         return
717 }
718
719 func FlowUnionIP4Gtpu(a FlowIP4Gtpu) (u FlowUnion) {
720         u.SetIP4Gtpu(a)
721         return
722 }
723 func (u *FlowUnion) SetIP4Gtpu(a FlowIP4Gtpu) {
724         buf := codec.NewBuffer(u.XXX_UnionData[:])
725         buf.EncodeInt32(a.Foo)
726         buf.EncodeBytes(a.SrcAddr.Addr[:], 4)
727         buf.EncodeBytes(a.SrcAddr.Mask[:], 4)
728         buf.EncodeBytes(a.DstAddr.Addr[:], 4)
729         buf.EncodeBytes(a.DstAddr.Mask[:], 4)
730         buf.EncodeUint8(uint8(a.Protocol.Prot))
731         buf.EncodeUint8(a.Protocol.Mask)
732         buf.EncodeUint16(a.SrcPort.Port)
733         buf.EncodeUint16(a.SrcPort.Mask)
734         buf.EncodeUint16(a.DstPort.Port)
735         buf.EncodeUint16(a.DstPort.Mask)
736         buf.EncodeUint32(a.Teid)
737 }
738 func (u *FlowUnion) GetIP4Gtpu() (a FlowIP4Gtpu) {
739         buf := codec.NewBuffer(u.XXX_UnionData[:])
740         a.Foo = buf.DecodeInt32()
741         copy(a.SrcAddr.Addr[:], buf.DecodeBytes(4))
742         copy(a.SrcAddr.Mask[:], buf.DecodeBytes(4))
743         copy(a.DstAddr.Addr[:], buf.DecodeBytes(4))
744         copy(a.DstAddr.Mask[:], buf.DecodeBytes(4))
745         a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8())
746         a.Protocol.Mask = buf.DecodeUint8()
747         a.SrcPort.Port = buf.DecodeUint16()
748         a.SrcPort.Mask = buf.DecodeUint16()
749         a.DstPort.Port = buf.DecodeUint16()
750         a.DstPort.Mask = buf.DecodeUint16()
751         a.Teid = buf.DecodeUint32()
752         return
753 }