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