github.com/edwarnicke/govpp@v0.0.0-20230130211138-14ef5d20b1d0/binapi/flow_types/flow_types.ba.go (about) 1 // Code generated by GoVPP's binapi-generator. DO NOT EDIT. 2 // versions: 3 // binapi-generator: v0.4.0-dev 4 // VPP: 23.02-rc0~189-g57127b32a 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 // 5 enums 11 // 20 structs 12 // 2 unions 13 // 14 package flow_types 15 16 import ( 17 "strconv" 18 19 api "git.fd.io/govpp.git/api" 20 codec "git.fd.io/govpp.git/codec" 21 ethernet_types "github.com/edwarnicke/govpp/binapi/ethernet_types" 22 ip_types "github.com/edwarnicke/govpp/binapi/ip_types" 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 // FlowActionV2 defines enum 'flow_action_v2'. 71 type FlowActionV2 uint32 72 73 const ( 74 FLOW_ACTION_COUNT_V2 FlowActionV2 = 1 75 FLOW_ACTION_MARK_V2 FlowActionV2 = 2 76 FLOW_ACTION_BUFFER_ADVANCE_V2 FlowActionV2 = 4 77 FLOW_ACTION_REDIRECT_TO_NODE_V2 FlowActionV2 = 8 78 FLOW_ACTION_REDIRECT_TO_QUEUE_V2 FlowActionV2 = 16 79 FLOW_ACTION_RSS_V2 FlowActionV2 = 32 80 FLOW_ACTION_DROP_V2 FlowActionV2 = 64 81 ) 82 83 var ( 84 FlowActionV2_name = map[uint32]string{ 85 1: "FLOW_ACTION_COUNT_V2", 86 2: "FLOW_ACTION_MARK_V2", 87 4: "FLOW_ACTION_BUFFER_ADVANCE_V2", 88 8: "FLOW_ACTION_REDIRECT_TO_NODE_V2", 89 16: "FLOW_ACTION_REDIRECT_TO_QUEUE_V2", 90 32: "FLOW_ACTION_RSS_V2", 91 64: "FLOW_ACTION_DROP_V2", 92 } 93 FlowActionV2_value = map[string]uint32{ 94 "FLOW_ACTION_COUNT_V2": 1, 95 "FLOW_ACTION_MARK_V2": 2, 96 "FLOW_ACTION_BUFFER_ADVANCE_V2": 4, 97 "FLOW_ACTION_REDIRECT_TO_NODE_V2": 8, 98 "FLOW_ACTION_REDIRECT_TO_QUEUE_V2": 16, 99 "FLOW_ACTION_RSS_V2": 32, 100 "FLOW_ACTION_DROP_V2": 64, 101 } 102 ) 103 104 func (x FlowActionV2) String() string { 105 s, ok := FlowActionV2_name[uint32(x)] 106 if ok { 107 return s 108 } 109 return "FlowActionV2(" + strconv.Itoa(int(x)) + ")" 110 } 111 112 // FlowType defines enum 'flow_type'. 113 type FlowType uint32 114 115 const ( 116 FLOW_TYPE_ETHERNET FlowType = 1 117 FLOW_TYPE_IP4 FlowType = 2 118 FLOW_TYPE_IP6 FlowType = 3 119 FLOW_TYPE_IP4_L2TPV3OIP FlowType = 4 120 FLOW_TYPE_IP4_IPSEC_ESP FlowType = 5 121 FLOW_TYPE_IP4_IPSEC_AH FlowType = 6 122 FLOW_TYPE_IP4_N_TUPLE FlowType = 7 123 FLOW_TYPE_IP6_N_TUPLE FlowType = 8 124 FLOW_TYPE_IP4_N_TUPLE_TAGGED FlowType = 9 125 FLOW_TYPE_IP6_N_TUPLE_TAGGED FlowType = 10 126 FLOW_TYPE_IP4_VXLAN FlowType = 11 127 FLOW_TYPE_IP6_VXLAN FlowType = 12 128 FLOW_TYPE_IP4_GTPC FlowType = 13 129 FLOW_TYPE_IP4_GTPU FlowType = 14 130 ) 131 132 var ( 133 FlowType_name = map[uint32]string{ 134 1: "FLOW_TYPE_ETHERNET", 135 2: "FLOW_TYPE_IP4", 136 3: "FLOW_TYPE_IP6", 137 4: "FLOW_TYPE_IP4_L2TPV3OIP", 138 5: "FLOW_TYPE_IP4_IPSEC_ESP", 139 6: "FLOW_TYPE_IP4_IPSEC_AH", 140 7: "FLOW_TYPE_IP4_N_TUPLE", 141 8: "FLOW_TYPE_IP6_N_TUPLE", 142 9: "FLOW_TYPE_IP4_N_TUPLE_TAGGED", 143 10: "FLOW_TYPE_IP6_N_TUPLE_TAGGED", 144 11: "FLOW_TYPE_IP4_VXLAN", 145 12: "FLOW_TYPE_IP6_VXLAN", 146 13: "FLOW_TYPE_IP4_GTPC", 147 14: "FLOW_TYPE_IP4_GTPU", 148 } 149 FlowType_value = map[string]uint32{ 150 "FLOW_TYPE_ETHERNET": 1, 151 "FLOW_TYPE_IP4": 2, 152 "FLOW_TYPE_IP6": 3, 153 "FLOW_TYPE_IP4_L2TPV3OIP": 4, 154 "FLOW_TYPE_IP4_IPSEC_ESP": 5, 155 "FLOW_TYPE_IP4_IPSEC_AH": 6, 156 "FLOW_TYPE_IP4_N_TUPLE": 7, 157 "FLOW_TYPE_IP6_N_TUPLE": 8, 158 "FLOW_TYPE_IP4_N_TUPLE_TAGGED": 9, 159 "FLOW_TYPE_IP6_N_TUPLE_TAGGED": 10, 160 "FLOW_TYPE_IP4_VXLAN": 11, 161 "FLOW_TYPE_IP6_VXLAN": 12, 162 "FLOW_TYPE_IP4_GTPC": 13, 163 "FLOW_TYPE_IP4_GTPU": 14, 164 } 165 ) 166 167 func (x FlowType) String() string { 168 s, ok := FlowType_name[uint32(x)] 169 if ok { 170 return s 171 } 172 return "FlowType(" + strconv.Itoa(int(x)) + ")" 173 } 174 175 // FlowTypeV2 defines enum 'flow_type_v2'. 176 type FlowTypeV2 uint32 177 178 const ( 179 FLOW_TYPE_ETHERNET_V2 FlowTypeV2 = 1 180 FLOW_TYPE_IP4_V2 FlowTypeV2 = 2 181 FLOW_TYPE_IP6_V2 FlowTypeV2 = 3 182 FLOW_TYPE_IP4_L2TPV3OIP_V2 FlowTypeV2 = 4 183 FLOW_TYPE_IP4_IPSEC_ESP_V2 FlowTypeV2 = 5 184 FLOW_TYPE_IP4_IPSEC_AH_V2 FlowTypeV2 = 6 185 FLOW_TYPE_IP4_N_TUPLE_V2 FlowTypeV2 = 7 186 FLOW_TYPE_IP6_N_TUPLE_V2 FlowTypeV2 = 8 187 FLOW_TYPE_IP4_N_TUPLE_TAGGED_V2 FlowTypeV2 = 9 188 FLOW_TYPE_IP6_N_TUPLE_TAGGED_V2 FlowTypeV2 = 10 189 FLOW_TYPE_IP4_VXLAN_V2 FlowTypeV2 = 11 190 FLOW_TYPE_IP6_VXLAN_V2 FlowTypeV2 = 12 191 FLOW_TYPE_IP4_GTPC_V2 FlowTypeV2 = 13 192 FLOW_TYPE_IP4_GTPU_V2 FlowTypeV2 = 14 193 FLOW_TYPE_GENERIC_V2 FlowTypeV2 = 15 194 ) 195 196 var ( 197 FlowTypeV2_name = map[uint32]string{ 198 1: "FLOW_TYPE_ETHERNET_V2", 199 2: "FLOW_TYPE_IP4_V2", 200 3: "FLOW_TYPE_IP6_V2", 201 4: "FLOW_TYPE_IP4_L2TPV3OIP_V2", 202 5: "FLOW_TYPE_IP4_IPSEC_ESP_V2", 203 6: "FLOW_TYPE_IP4_IPSEC_AH_V2", 204 7: "FLOW_TYPE_IP4_N_TUPLE_V2", 205 8: "FLOW_TYPE_IP6_N_TUPLE_V2", 206 9: "FLOW_TYPE_IP4_N_TUPLE_TAGGED_V2", 207 10: "FLOW_TYPE_IP6_N_TUPLE_TAGGED_V2", 208 11: "FLOW_TYPE_IP4_VXLAN_V2", 209 12: "FLOW_TYPE_IP6_VXLAN_V2", 210 13: "FLOW_TYPE_IP4_GTPC_V2", 211 14: "FLOW_TYPE_IP4_GTPU_V2", 212 15: "FLOW_TYPE_GENERIC_V2", 213 } 214 FlowTypeV2_value = map[string]uint32{ 215 "FLOW_TYPE_ETHERNET_V2": 1, 216 "FLOW_TYPE_IP4_V2": 2, 217 "FLOW_TYPE_IP6_V2": 3, 218 "FLOW_TYPE_IP4_L2TPV3OIP_V2": 4, 219 "FLOW_TYPE_IP4_IPSEC_ESP_V2": 5, 220 "FLOW_TYPE_IP4_IPSEC_AH_V2": 6, 221 "FLOW_TYPE_IP4_N_TUPLE_V2": 7, 222 "FLOW_TYPE_IP6_N_TUPLE_V2": 8, 223 "FLOW_TYPE_IP4_N_TUPLE_TAGGED_V2": 9, 224 "FLOW_TYPE_IP6_N_TUPLE_TAGGED_V2": 10, 225 "FLOW_TYPE_IP4_VXLAN_V2": 11, 226 "FLOW_TYPE_IP6_VXLAN_V2": 12, 227 "FLOW_TYPE_IP4_GTPC_V2": 13, 228 "FLOW_TYPE_IP4_GTPU_V2": 14, 229 "FLOW_TYPE_GENERIC_V2": 15, 230 } 231 ) 232 233 func (x FlowTypeV2) String() string { 234 s, ok := FlowTypeV2_name[uint32(x)] 235 if ok { 236 return s 237 } 238 return "FlowTypeV2(" + strconv.Itoa(int(x)) + ")" 239 } 240 241 // RssFunction defines enum 'rss_function'. 242 type RssFunction uint32 243 244 const ( 245 RSS_FUNC_DEFAULT RssFunction = 0 246 RSS_FUNC_TOEPLITZ RssFunction = 1 247 RSS_FUNC_SIMPLE_XOR RssFunction = 2 248 RSS_FUNC_SYMMETRIC_TOEPLITZ RssFunction = 3 249 ) 250 251 var ( 252 RssFunction_name = map[uint32]string{ 253 0: "RSS_FUNC_DEFAULT", 254 1: "RSS_FUNC_TOEPLITZ", 255 2: "RSS_FUNC_SIMPLE_XOR", 256 3: "RSS_FUNC_SYMMETRIC_TOEPLITZ", 257 } 258 RssFunction_value = map[string]uint32{ 259 "RSS_FUNC_DEFAULT": 0, 260 "RSS_FUNC_TOEPLITZ": 1, 261 "RSS_FUNC_SIMPLE_XOR": 2, 262 "RSS_FUNC_SYMMETRIC_TOEPLITZ": 3, 263 } 264 ) 265 266 func (x RssFunction) String() string { 267 s, ok := RssFunction_name[uint32(x)] 268 if ok { 269 return s 270 } 271 return "RssFunction(" + strconv.Itoa(int(x)) + ")" 272 } 273 274 // FlowEthernet defines type 'flow_ethernet'. 275 type FlowEthernet struct { 276 Foo int32 `binapi:"i32,name=foo" json:"foo,omitempty"` 277 SrcAddr ethernet_types.MacAddress `binapi:"mac_address,name=src_addr" json:"src_addr,omitempty"` 278 DstAddr ethernet_types.MacAddress `binapi:"mac_address,name=dst_addr" json:"dst_addr,omitempty"` 279 Type uint16 `binapi:"u16,name=type" json:"type,omitempty"` 280 } 281 282 // FlowGeneric defines type 'flow_generic'. 283 type FlowGeneric struct { 284 Foo int32 `binapi:"i32,name=foo" json:"foo,omitempty"` 285 Pattern GenericPattern `binapi:"generic_pattern,name=pattern" json:"pattern,omitempty"` 286 } 287 288 // FlowIP4 defines type 'flow_ip4'. 289 type FlowIP4 struct { 290 Foo int32 `binapi:"i32,name=foo" json:"foo,omitempty"` 291 SrcAddr ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=src_addr" json:"src_addr,omitempty"` 292 DstAddr ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=dst_addr" json:"dst_addr,omitempty"` 293 Protocol IPProtAndMask `binapi:"ip_prot_and_mask,name=protocol" json:"protocol,omitempty"` 294 } 295 296 // FlowIP4Gtpc defines type 'flow_ip4_gtpc'. 297 type FlowIP4Gtpc struct { 298 Foo int32 `binapi:"i32,name=foo" json:"foo,omitempty"` 299 SrcAddr ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=src_addr" json:"src_addr,omitempty"` 300 DstAddr ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=dst_addr" json:"dst_addr,omitempty"` 301 Protocol IPProtAndMask `binapi:"ip_prot_and_mask,name=protocol" json:"protocol,omitempty"` 302 SrcPort IPPortAndMask `binapi:"ip_port_and_mask,name=src_port" json:"src_port,omitempty"` 303 DstPort IPPortAndMask `binapi:"ip_port_and_mask,name=dst_port" json:"dst_port,omitempty"` 304 Teid uint32 `binapi:"u32,name=teid" json:"teid,omitempty"` 305 } 306 307 // FlowIP4Gtpu defines type 'flow_ip4_gtpu'. 308 type FlowIP4Gtpu struct { 309 Foo int32 `binapi:"i32,name=foo" json:"foo,omitempty"` 310 SrcAddr ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=src_addr" json:"src_addr,omitempty"` 311 DstAddr ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=dst_addr" json:"dst_addr,omitempty"` 312 Protocol IPProtAndMask `binapi:"ip_prot_and_mask,name=protocol" json:"protocol,omitempty"` 313 SrcPort IPPortAndMask `binapi:"ip_port_and_mask,name=src_port" json:"src_port,omitempty"` 314 DstPort IPPortAndMask `binapi:"ip_port_and_mask,name=dst_port" json:"dst_port,omitempty"` 315 Teid uint32 `binapi:"u32,name=teid" json:"teid,omitempty"` 316 } 317 318 // FlowIP4IpsecAh defines type 'flow_ip4_ipsec_ah'. 319 type FlowIP4IpsecAh struct { 320 Foo int32 `binapi:"i32,name=foo" json:"foo,omitempty"` 321 SrcAddr ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=src_addr" json:"src_addr,omitempty"` 322 DstAddr ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=dst_addr" json:"dst_addr,omitempty"` 323 Protocol IPProtAndMask `binapi:"ip_prot_and_mask,name=protocol" json:"protocol,omitempty"` 324 Spi uint32 `binapi:"u32,name=spi" json:"spi,omitempty"` 325 } 326 327 // FlowIP4IpsecEsp defines type 'flow_ip4_ipsec_esp'. 328 type FlowIP4IpsecEsp struct { 329 Foo int32 `binapi:"i32,name=foo" json:"foo,omitempty"` 330 SrcAddr ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=src_addr" json:"src_addr,omitempty"` 331 DstAddr ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=dst_addr" json:"dst_addr,omitempty"` 332 Protocol IPProtAndMask `binapi:"ip_prot_and_mask,name=protocol" json:"protocol,omitempty"` 333 Spi uint32 `binapi:"u32,name=spi" json:"spi,omitempty"` 334 } 335 336 // FlowIP4L2tpv3oip defines type 'flow_ip4_l2tpv3oip'. 337 type FlowIP4L2tpv3oip struct { 338 Foo int32 `binapi:"i32,name=foo" json:"foo,omitempty"` 339 SrcAddr ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=src_addr" json:"src_addr,omitempty"` 340 DstAddr ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=dst_addr" json:"dst_addr,omitempty"` 341 Protocol IPProtAndMask `binapi:"ip_prot_and_mask,name=protocol" json:"protocol,omitempty"` 342 SessionID uint32 `binapi:"u32,name=session_id" json:"session_id,omitempty"` 343 } 344 345 // FlowIP4NTuple defines type 'flow_ip4_n_tuple'. 346 type FlowIP4NTuple struct { 347 Foo int32 `binapi:"i32,name=foo" json:"foo,omitempty"` 348 SrcAddr ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=src_addr" json:"src_addr,omitempty"` 349 DstAddr ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=dst_addr" json:"dst_addr,omitempty"` 350 Protocol IPProtAndMask `binapi:"ip_prot_and_mask,name=protocol" json:"protocol,omitempty"` 351 SrcPort IPPortAndMask `binapi:"ip_port_and_mask,name=src_port" json:"src_port,omitempty"` 352 DstPort IPPortAndMask `binapi:"ip_port_and_mask,name=dst_port" json:"dst_port,omitempty"` 353 } 354 355 // FlowIP4NTupleTagged defines type 'flow_ip4_n_tuple_tagged'. 356 type FlowIP4NTupleTagged struct { 357 Foo int32 `binapi:"i32,name=foo" json:"foo,omitempty"` 358 SrcAddr ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=src_addr" json:"src_addr,omitempty"` 359 DstAddr ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=dst_addr" json:"dst_addr,omitempty"` 360 Protocol IPProtAndMask `binapi:"ip_prot_and_mask,name=protocol" json:"protocol,omitempty"` 361 SrcPort IPPortAndMask `binapi:"ip_port_and_mask,name=src_port" json:"src_port,omitempty"` 362 DstPort IPPortAndMask `binapi:"ip_port_and_mask,name=dst_port" json:"dst_port,omitempty"` 363 } 364 365 // FlowIP4Vxlan defines type 'flow_ip4_vxlan'. 366 type FlowIP4Vxlan struct { 367 Foo int32 `binapi:"i32,name=foo" json:"foo,omitempty"` 368 SrcAddr ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=src_addr" json:"src_addr,omitempty"` 369 DstAddr ip_types.IP4AddressAndMask `binapi:"ip4_address_and_mask,name=dst_addr" json:"dst_addr,omitempty"` 370 Protocol IPProtAndMask `binapi:"ip_prot_and_mask,name=protocol" json:"protocol,omitempty"` 371 SrcPort IPPortAndMask `binapi:"ip_port_and_mask,name=src_port" json:"src_port,omitempty"` 372 DstPort IPPortAndMask `binapi:"ip_port_and_mask,name=dst_port" json:"dst_port,omitempty"` 373 Vni uint32 `binapi:"u32,name=vni" json:"vni,omitempty"` 374 } 375 376 // FlowIP6 defines type 'flow_ip6'. 377 type FlowIP6 struct { 378 Foo int32 `binapi:"i32,name=foo" json:"foo,omitempty"` 379 SrcAddr ip_types.IP6AddressAndMask `binapi:"ip6_address_and_mask,name=src_addr" json:"src_addr,omitempty"` 380 DstAddr ip_types.IP6AddressAndMask `binapi:"ip6_address_and_mask,name=dst_addr" json:"dst_addr,omitempty"` 381 Protocol IPProtAndMask `binapi:"ip_prot_and_mask,name=protocol" json:"protocol,omitempty"` 382 } 383 384 // FlowIP6NTuple defines type 'flow_ip6_n_tuple'. 385 type FlowIP6NTuple struct { 386 Foo int32 `binapi:"i32,name=foo" json:"foo,omitempty"` 387 SrcAddr ip_types.IP6AddressAndMask `binapi:"ip6_address_and_mask,name=src_addr" json:"src_addr,omitempty"` 388 DstAddr ip_types.IP6AddressAndMask `binapi:"ip6_address_and_mask,name=dst_addr" json:"dst_addr,omitempty"` 389 Protocol IPProtAndMask `binapi:"ip_prot_and_mask,name=protocol" json:"protocol,omitempty"` 390 SrcPort IPPortAndMask `binapi:"ip_port_and_mask,name=src_port" json:"src_port,omitempty"` 391 DstPort IPPortAndMask `binapi:"ip_port_and_mask,name=dst_port" json:"dst_port,omitempty"` 392 } 393 394 // FlowIP6NTupleTagged defines type 'flow_ip6_n_tuple_tagged'. 395 type FlowIP6NTupleTagged struct { 396 Foo int32 `binapi:"i32,name=foo" json:"foo,omitempty"` 397 SrcAddr ip_types.IP6AddressAndMask `binapi:"ip6_address_and_mask,name=src_addr" json:"src_addr,omitempty"` 398 DstAddr ip_types.IP6AddressAndMask `binapi:"ip6_address_and_mask,name=dst_addr" json:"dst_addr,omitempty"` 399 Protocol IPProtAndMask `binapi:"ip_prot_and_mask,name=protocol" json:"protocol,omitempty"` 400 SrcPort IPPortAndMask `binapi:"ip_port_and_mask,name=src_port" json:"src_port,omitempty"` 401 DstPort IPPortAndMask `binapi:"ip_port_and_mask,name=dst_port" json:"dst_port,omitempty"` 402 } 403 404 // FlowIP6Vxlan defines type 'flow_ip6_vxlan'. 405 type FlowIP6Vxlan struct { 406 Foo int32 `binapi:"i32,name=foo" json:"foo,omitempty"` 407 SrcAddr ip_types.IP6AddressAndMask `binapi:"ip6_address_and_mask,name=src_addr" json:"src_addr,omitempty"` 408 DstAddr ip_types.IP6AddressAndMask `binapi:"ip6_address_and_mask,name=dst_addr" json:"dst_addr,omitempty"` 409 Protocol IPProtAndMask `binapi:"ip_prot_and_mask,name=protocol" json:"protocol,omitempty"` 410 SrcPort IPPortAndMask `binapi:"ip_port_and_mask,name=src_port" json:"src_port,omitempty"` 411 DstPort IPPortAndMask `binapi:"ip_port_and_mask,name=dst_port" json:"dst_port,omitempty"` 412 Vni uint32 `binapi:"u32,name=vni" json:"vni,omitempty"` 413 } 414 415 // FlowRule defines type 'flow_rule'. 416 type FlowRule struct { 417 Type FlowType `binapi:"flow_type,name=type" json:"type,omitempty"` 418 Index uint32 `binapi:"u32,name=index" json:"index,omitempty"` 419 Actions FlowAction `binapi:"flow_action,name=actions" json:"actions,omitempty"` 420 MarkFlowID uint32 `binapi:"u32,name=mark_flow_id" json:"mark_flow_id,omitempty"` 421 RedirectNodeIndex uint32 `binapi:"u32,name=redirect_node_index" json:"redirect_node_index,omitempty"` 422 RedirectDeviceInputNextIndex uint32 `binapi:"u32,name=redirect_device_input_next_index" json:"redirect_device_input_next_index,omitempty"` 423 RedirectQueue uint32 `binapi:"u32,name=redirect_queue" json:"redirect_queue,omitempty"` 424 BufferAdvance int32 `binapi:"i32,name=buffer_advance" json:"buffer_advance,omitempty"` 425 Flow FlowUnion `binapi:"flow,name=flow" json:"flow,omitempty"` 426 } 427 428 // FlowRuleV2 defines type 'flow_rule_v2'. 429 type FlowRuleV2 struct { 430 Type FlowTypeV2 `binapi:"flow_type_v2,name=type" json:"type,omitempty"` 431 Index uint32 `binapi:"u32,name=index" json:"index,omitempty"` 432 Actions FlowActionV2 `binapi:"flow_action_v2,name=actions" json:"actions,omitempty"` 433 MarkFlowID uint32 `binapi:"u32,name=mark_flow_id" json:"mark_flow_id,omitempty"` 434 RedirectNodeIndex uint32 `binapi:"u32,name=redirect_node_index" json:"redirect_node_index,omitempty"` 435 RedirectDeviceInputNextIndex uint32 `binapi:"u32,name=redirect_device_input_next_index" json:"redirect_device_input_next_index,omitempty"` 436 RedirectQueue uint32 `binapi:"u32,name=redirect_queue" json:"redirect_queue,omitempty"` 437 QueueIndex uint32 `binapi:"u32,name=queue_index" json:"queue_index,omitempty"` 438 QueueNum uint32 `binapi:"u32,name=queue_num" json:"queue_num,omitempty"` 439 BufferAdvance int32 `binapi:"i32,name=buffer_advance" json:"buffer_advance,omitempty"` 440 RssTypes uint64 `binapi:"u64,name=rss_types" json:"rss_types,omitempty"` 441 RssFun RssFunction `binapi:"rss_function,name=rss_fun" json:"rss_fun,omitempty"` 442 Flow FlowV2Union `binapi:"flow_v2,name=flow" json:"flow,omitempty"` 443 } 444 445 // GenericPattern defines type 'generic_pattern'. 446 type GenericPattern struct { 447 Spec []byte `binapi:"u8[1024],name=spec" json:"spec,omitempty"` 448 Mask []byte `binapi:"u8[1024],name=mask" json:"mask,omitempty"` 449 } 450 451 // IPPortAndMask defines type 'ip_port_and_mask'. 452 type IPPortAndMask struct { 453 Port uint16 `binapi:"u16,name=port" json:"port,omitempty"` 454 Mask uint16 `binapi:"u16,name=mask" json:"mask,omitempty"` 455 } 456 457 // IPProtAndMask defines type 'ip_prot_and_mask'. 458 type IPProtAndMask struct { 459 Prot ip_types.IPProto `binapi:"ip_proto,name=prot" json:"prot,omitempty"` 460 Mask uint8 `binapi:"u8,name=mask" json:"mask,omitempty"` 461 } 462 463 // FlowUnion defines union 'flow'. 464 type FlowUnion struct { 465 // FlowUnion can be one of: 466 // - Ethernet *FlowEthernet 467 // - IP4 *FlowIP4 468 // - IP6 *FlowIP6 469 // - IP4L2tpv3oip *FlowIP4L2tpv3oip 470 // - IP4IpsecEsp *FlowIP4IpsecEsp 471 // - IP4IpsecAh *FlowIP4IpsecAh 472 // - IP4NTuple *FlowIP4NTuple 473 // - IP6NTuple *FlowIP6NTuple 474 // - IP4NTupleTagged *FlowIP4NTupleTagged 475 // - IP6NTupleTagged *FlowIP6NTupleTagged 476 // - IP4Vxlan *FlowIP4Vxlan 477 // - IP6Vxlan *FlowIP6Vxlan 478 // - IP4Gtpc *FlowIP4Gtpc 479 // - IP4Gtpu *FlowIP4Gtpu 480 XXX_UnionData [82]byte 481 } 482 483 func FlowUnionEthernet(a FlowEthernet) (u FlowUnion) { 484 u.SetEthernet(a) 485 return 486 } 487 func (u *FlowUnion) SetEthernet(a FlowEthernet) { 488 buf := codec.NewBuffer(u.XXX_UnionData[:]) 489 buf.EncodeInt32(a.Foo) 490 buf.EncodeBytes(a.SrcAddr[:], 6) 491 buf.EncodeBytes(a.DstAddr[:], 6) 492 buf.EncodeUint16(a.Type) 493 } 494 func (u *FlowUnion) GetEthernet() (a FlowEthernet) { 495 buf := codec.NewBuffer(u.XXX_UnionData[:]) 496 a.Foo = buf.DecodeInt32() 497 copy(a.SrcAddr[:], buf.DecodeBytes(6)) 498 copy(a.DstAddr[:], buf.DecodeBytes(6)) 499 a.Type = buf.DecodeUint16() 500 return 501 } 502 503 func FlowUnionIP4(a FlowIP4) (u FlowUnion) { 504 u.SetIP4(a) 505 return 506 } 507 func (u *FlowUnion) SetIP4(a FlowIP4) { 508 buf := codec.NewBuffer(u.XXX_UnionData[:]) 509 buf.EncodeInt32(a.Foo) 510 buf.EncodeBytes(a.SrcAddr.Addr[:], 4) 511 buf.EncodeBytes(a.SrcAddr.Mask[:], 4) 512 buf.EncodeBytes(a.DstAddr.Addr[:], 4) 513 buf.EncodeBytes(a.DstAddr.Mask[:], 4) 514 buf.EncodeUint8(uint8(a.Protocol.Prot)) 515 buf.EncodeUint8(a.Protocol.Mask) 516 } 517 func (u *FlowUnion) GetIP4() (a FlowIP4) { 518 buf := codec.NewBuffer(u.XXX_UnionData[:]) 519 a.Foo = buf.DecodeInt32() 520 copy(a.SrcAddr.Addr[:], buf.DecodeBytes(4)) 521 copy(a.SrcAddr.Mask[:], buf.DecodeBytes(4)) 522 copy(a.DstAddr.Addr[:], buf.DecodeBytes(4)) 523 copy(a.DstAddr.Mask[:], buf.DecodeBytes(4)) 524 a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8()) 525 a.Protocol.Mask = buf.DecodeUint8() 526 return 527 } 528 529 func FlowUnionIP6(a FlowIP6) (u FlowUnion) { 530 u.SetIP6(a) 531 return 532 } 533 func (u *FlowUnion) SetIP6(a FlowIP6) { 534 buf := codec.NewBuffer(u.XXX_UnionData[:]) 535 buf.EncodeInt32(a.Foo) 536 buf.EncodeBytes(a.SrcAddr.Addr[:], 16) 537 buf.EncodeBytes(a.SrcAddr.Mask[:], 16) 538 buf.EncodeBytes(a.DstAddr.Addr[:], 16) 539 buf.EncodeBytes(a.DstAddr.Mask[:], 16) 540 buf.EncodeUint8(uint8(a.Protocol.Prot)) 541 buf.EncodeUint8(a.Protocol.Mask) 542 } 543 func (u *FlowUnion) GetIP6() (a FlowIP6) { 544 buf := codec.NewBuffer(u.XXX_UnionData[:]) 545 a.Foo = buf.DecodeInt32() 546 copy(a.SrcAddr.Addr[:], buf.DecodeBytes(16)) 547 copy(a.SrcAddr.Mask[:], buf.DecodeBytes(16)) 548 copy(a.DstAddr.Addr[:], buf.DecodeBytes(16)) 549 copy(a.DstAddr.Mask[:], buf.DecodeBytes(16)) 550 a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8()) 551 a.Protocol.Mask = buf.DecodeUint8() 552 return 553 } 554 555 func FlowUnionIP4L2tpv3oip(a FlowIP4L2tpv3oip) (u FlowUnion) { 556 u.SetIP4L2tpv3oip(a) 557 return 558 } 559 func (u *FlowUnion) SetIP4L2tpv3oip(a FlowIP4L2tpv3oip) { 560 buf := codec.NewBuffer(u.XXX_UnionData[:]) 561 buf.EncodeInt32(a.Foo) 562 buf.EncodeBytes(a.SrcAddr.Addr[:], 4) 563 buf.EncodeBytes(a.SrcAddr.Mask[:], 4) 564 buf.EncodeBytes(a.DstAddr.Addr[:], 4) 565 buf.EncodeBytes(a.DstAddr.Mask[:], 4) 566 buf.EncodeUint8(uint8(a.Protocol.Prot)) 567 buf.EncodeUint8(a.Protocol.Mask) 568 buf.EncodeUint32(a.SessionID) 569 } 570 func (u *FlowUnion) GetIP4L2tpv3oip() (a FlowIP4L2tpv3oip) { 571 buf := codec.NewBuffer(u.XXX_UnionData[:]) 572 a.Foo = buf.DecodeInt32() 573 copy(a.SrcAddr.Addr[:], buf.DecodeBytes(4)) 574 copy(a.SrcAddr.Mask[:], buf.DecodeBytes(4)) 575 copy(a.DstAddr.Addr[:], buf.DecodeBytes(4)) 576 copy(a.DstAddr.Mask[:], buf.DecodeBytes(4)) 577 a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8()) 578 a.Protocol.Mask = buf.DecodeUint8() 579 a.SessionID = buf.DecodeUint32() 580 return 581 } 582 583 func FlowUnionIP4IpsecEsp(a FlowIP4IpsecEsp) (u FlowUnion) { 584 u.SetIP4IpsecEsp(a) 585 return 586 } 587 func (u *FlowUnion) SetIP4IpsecEsp(a FlowIP4IpsecEsp) { 588 buf := codec.NewBuffer(u.XXX_UnionData[:]) 589 buf.EncodeInt32(a.Foo) 590 buf.EncodeBytes(a.SrcAddr.Addr[:], 4) 591 buf.EncodeBytes(a.SrcAddr.Mask[:], 4) 592 buf.EncodeBytes(a.DstAddr.Addr[:], 4) 593 buf.EncodeBytes(a.DstAddr.Mask[:], 4) 594 buf.EncodeUint8(uint8(a.Protocol.Prot)) 595 buf.EncodeUint8(a.Protocol.Mask) 596 buf.EncodeUint32(a.Spi) 597 } 598 func (u *FlowUnion) GetIP4IpsecEsp() (a FlowIP4IpsecEsp) { 599 buf := codec.NewBuffer(u.XXX_UnionData[:]) 600 a.Foo = buf.DecodeInt32() 601 copy(a.SrcAddr.Addr[:], buf.DecodeBytes(4)) 602 copy(a.SrcAddr.Mask[:], buf.DecodeBytes(4)) 603 copy(a.DstAddr.Addr[:], buf.DecodeBytes(4)) 604 copy(a.DstAddr.Mask[:], buf.DecodeBytes(4)) 605 a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8()) 606 a.Protocol.Mask = buf.DecodeUint8() 607 a.Spi = buf.DecodeUint32() 608 return 609 } 610 611 func FlowUnionIP4IpsecAh(a FlowIP4IpsecAh) (u FlowUnion) { 612 u.SetIP4IpsecAh(a) 613 return 614 } 615 func (u *FlowUnion) SetIP4IpsecAh(a FlowIP4IpsecAh) { 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.EncodeUint32(a.Spi) 625 } 626 func (u *FlowUnion) GetIP4IpsecAh() (a FlowIP4IpsecAh) { 627 buf := codec.NewBuffer(u.XXX_UnionData[:]) 628 a.Foo = buf.DecodeInt32() 629 copy(a.SrcAddr.Addr[:], buf.DecodeBytes(4)) 630 copy(a.SrcAddr.Mask[:], buf.DecodeBytes(4)) 631 copy(a.DstAddr.Addr[:], buf.DecodeBytes(4)) 632 copy(a.DstAddr.Mask[:], buf.DecodeBytes(4)) 633 a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8()) 634 a.Protocol.Mask = buf.DecodeUint8() 635 a.Spi = buf.DecodeUint32() 636 return 637 } 638 639 func FlowUnionIP4NTuple(a FlowIP4NTuple) (u FlowUnion) { 640 u.SetIP4NTuple(a) 641 return 642 } 643 func (u *FlowUnion) SetIP4NTuple(a FlowIP4NTuple) { 644 buf := codec.NewBuffer(u.XXX_UnionData[:]) 645 buf.EncodeInt32(a.Foo) 646 buf.EncodeBytes(a.SrcAddr.Addr[:], 4) 647 buf.EncodeBytes(a.SrcAddr.Mask[:], 4) 648 buf.EncodeBytes(a.DstAddr.Addr[:], 4) 649 buf.EncodeBytes(a.DstAddr.Mask[:], 4) 650 buf.EncodeUint8(uint8(a.Protocol.Prot)) 651 buf.EncodeUint8(a.Protocol.Mask) 652 buf.EncodeUint16(a.SrcPort.Port) 653 buf.EncodeUint16(a.SrcPort.Mask) 654 buf.EncodeUint16(a.DstPort.Port) 655 buf.EncodeUint16(a.DstPort.Mask) 656 } 657 func (u *FlowUnion) GetIP4NTuple() (a FlowIP4NTuple) { 658 buf := codec.NewBuffer(u.XXX_UnionData[:]) 659 a.Foo = buf.DecodeInt32() 660 copy(a.SrcAddr.Addr[:], buf.DecodeBytes(4)) 661 copy(a.SrcAddr.Mask[:], buf.DecodeBytes(4)) 662 copy(a.DstAddr.Addr[:], buf.DecodeBytes(4)) 663 copy(a.DstAddr.Mask[:], buf.DecodeBytes(4)) 664 a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8()) 665 a.Protocol.Mask = buf.DecodeUint8() 666 a.SrcPort.Port = buf.DecodeUint16() 667 a.SrcPort.Mask = buf.DecodeUint16() 668 a.DstPort.Port = buf.DecodeUint16() 669 a.DstPort.Mask = buf.DecodeUint16() 670 return 671 } 672 673 func FlowUnionIP6NTuple(a FlowIP6NTuple) (u FlowUnion) { 674 u.SetIP6NTuple(a) 675 return 676 } 677 func (u *FlowUnion) SetIP6NTuple(a FlowIP6NTuple) { 678 buf := codec.NewBuffer(u.XXX_UnionData[:]) 679 buf.EncodeInt32(a.Foo) 680 buf.EncodeBytes(a.SrcAddr.Addr[:], 16) 681 buf.EncodeBytes(a.SrcAddr.Mask[:], 16) 682 buf.EncodeBytes(a.DstAddr.Addr[:], 16) 683 buf.EncodeBytes(a.DstAddr.Mask[:], 16) 684 buf.EncodeUint8(uint8(a.Protocol.Prot)) 685 buf.EncodeUint8(a.Protocol.Mask) 686 buf.EncodeUint16(a.SrcPort.Port) 687 buf.EncodeUint16(a.SrcPort.Mask) 688 buf.EncodeUint16(a.DstPort.Port) 689 buf.EncodeUint16(a.DstPort.Mask) 690 } 691 func (u *FlowUnion) GetIP6NTuple() (a FlowIP6NTuple) { 692 buf := codec.NewBuffer(u.XXX_UnionData[:]) 693 a.Foo = buf.DecodeInt32() 694 copy(a.SrcAddr.Addr[:], buf.DecodeBytes(16)) 695 copy(a.SrcAddr.Mask[:], buf.DecodeBytes(16)) 696 copy(a.DstAddr.Addr[:], buf.DecodeBytes(16)) 697 copy(a.DstAddr.Mask[:], buf.DecodeBytes(16)) 698 a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8()) 699 a.Protocol.Mask = buf.DecodeUint8() 700 a.SrcPort.Port = buf.DecodeUint16() 701 a.SrcPort.Mask = buf.DecodeUint16() 702 a.DstPort.Port = buf.DecodeUint16() 703 a.DstPort.Mask = buf.DecodeUint16() 704 return 705 } 706 707 func FlowUnionIP4NTupleTagged(a FlowIP4NTupleTagged) (u FlowUnion) { 708 u.SetIP4NTupleTagged(a) 709 return 710 } 711 func (u *FlowUnion) SetIP4NTupleTagged(a FlowIP4NTupleTagged) { 712 buf := codec.NewBuffer(u.XXX_UnionData[:]) 713 buf.EncodeInt32(a.Foo) 714 buf.EncodeBytes(a.SrcAddr.Addr[:], 4) 715 buf.EncodeBytes(a.SrcAddr.Mask[:], 4) 716 buf.EncodeBytes(a.DstAddr.Addr[:], 4) 717 buf.EncodeBytes(a.DstAddr.Mask[:], 4) 718 buf.EncodeUint8(uint8(a.Protocol.Prot)) 719 buf.EncodeUint8(a.Protocol.Mask) 720 buf.EncodeUint16(a.SrcPort.Port) 721 buf.EncodeUint16(a.SrcPort.Mask) 722 buf.EncodeUint16(a.DstPort.Port) 723 buf.EncodeUint16(a.DstPort.Mask) 724 } 725 func (u *FlowUnion) GetIP4NTupleTagged() (a FlowIP4NTupleTagged) { 726 buf := codec.NewBuffer(u.XXX_UnionData[:]) 727 a.Foo = buf.DecodeInt32() 728 copy(a.SrcAddr.Addr[:], buf.DecodeBytes(4)) 729 copy(a.SrcAddr.Mask[:], buf.DecodeBytes(4)) 730 copy(a.DstAddr.Addr[:], buf.DecodeBytes(4)) 731 copy(a.DstAddr.Mask[:], buf.DecodeBytes(4)) 732 a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8()) 733 a.Protocol.Mask = buf.DecodeUint8() 734 a.SrcPort.Port = buf.DecodeUint16() 735 a.SrcPort.Mask = buf.DecodeUint16() 736 a.DstPort.Port = buf.DecodeUint16() 737 a.DstPort.Mask = buf.DecodeUint16() 738 return 739 } 740 741 func FlowUnionIP6NTupleTagged(a FlowIP6NTupleTagged) (u FlowUnion) { 742 u.SetIP6NTupleTagged(a) 743 return 744 } 745 func (u *FlowUnion) SetIP6NTupleTagged(a FlowIP6NTupleTagged) { 746 buf := codec.NewBuffer(u.XXX_UnionData[:]) 747 buf.EncodeInt32(a.Foo) 748 buf.EncodeBytes(a.SrcAddr.Addr[:], 16) 749 buf.EncodeBytes(a.SrcAddr.Mask[:], 16) 750 buf.EncodeBytes(a.DstAddr.Addr[:], 16) 751 buf.EncodeBytes(a.DstAddr.Mask[:], 16) 752 buf.EncodeUint8(uint8(a.Protocol.Prot)) 753 buf.EncodeUint8(a.Protocol.Mask) 754 buf.EncodeUint16(a.SrcPort.Port) 755 buf.EncodeUint16(a.SrcPort.Mask) 756 buf.EncodeUint16(a.DstPort.Port) 757 buf.EncodeUint16(a.DstPort.Mask) 758 } 759 func (u *FlowUnion) GetIP6NTupleTagged() (a FlowIP6NTupleTagged) { 760 buf := codec.NewBuffer(u.XXX_UnionData[:]) 761 a.Foo = buf.DecodeInt32() 762 copy(a.SrcAddr.Addr[:], buf.DecodeBytes(16)) 763 copy(a.SrcAddr.Mask[:], buf.DecodeBytes(16)) 764 copy(a.DstAddr.Addr[:], buf.DecodeBytes(16)) 765 copy(a.DstAddr.Mask[:], buf.DecodeBytes(16)) 766 a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8()) 767 a.Protocol.Mask = buf.DecodeUint8() 768 a.SrcPort.Port = buf.DecodeUint16() 769 a.SrcPort.Mask = buf.DecodeUint16() 770 a.DstPort.Port = buf.DecodeUint16() 771 a.DstPort.Mask = buf.DecodeUint16() 772 return 773 } 774 775 func FlowUnionIP4Vxlan(a FlowIP4Vxlan) (u FlowUnion) { 776 u.SetIP4Vxlan(a) 777 return 778 } 779 func (u *FlowUnion) SetIP4Vxlan(a FlowIP4Vxlan) { 780 buf := codec.NewBuffer(u.XXX_UnionData[:]) 781 buf.EncodeInt32(a.Foo) 782 buf.EncodeBytes(a.SrcAddr.Addr[:], 4) 783 buf.EncodeBytes(a.SrcAddr.Mask[:], 4) 784 buf.EncodeBytes(a.DstAddr.Addr[:], 4) 785 buf.EncodeBytes(a.DstAddr.Mask[:], 4) 786 buf.EncodeUint8(uint8(a.Protocol.Prot)) 787 buf.EncodeUint8(a.Protocol.Mask) 788 buf.EncodeUint16(a.SrcPort.Port) 789 buf.EncodeUint16(a.SrcPort.Mask) 790 buf.EncodeUint16(a.DstPort.Port) 791 buf.EncodeUint16(a.DstPort.Mask) 792 buf.EncodeUint32(a.Vni) 793 } 794 func (u *FlowUnion) GetIP4Vxlan() (a FlowIP4Vxlan) { 795 buf := codec.NewBuffer(u.XXX_UnionData[:]) 796 a.Foo = buf.DecodeInt32() 797 copy(a.SrcAddr.Addr[:], buf.DecodeBytes(4)) 798 copy(a.SrcAddr.Mask[:], buf.DecodeBytes(4)) 799 copy(a.DstAddr.Addr[:], buf.DecodeBytes(4)) 800 copy(a.DstAddr.Mask[:], buf.DecodeBytes(4)) 801 a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8()) 802 a.Protocol.Mask = buf.DecodeUint8() 803 a.SrcPort.Port = buf.DecodeUint16() 804 a.SrcPort.Mask = buf.DecodeUint16() 805 a.DstPort.Port = buf.DecodeUint16() 806 a.DstPort.Mask = buf.DecodeUint16() 807 a.Vni = buf.DecodeUint32() 808 return 809 } 810 811 func FlowUnionIP6Vxlan(a FlowIP6Vxlan) (u FlowUnion) { 812 u.SetIP6Vxlan(a) 813 return 814 } 815 func (u *FlowUnion) SetIP6Vxlan(a FlowIP6Vxlan) { 816 buf := codec.NewBuffer(u.XXX_UnionData[:]) 817 buf.EncodeInt32(a.Foo) 818 buf.EncodeBytes(a.SrcAddr.Addr[:], 16) 819 buf.EncodeBytes(a.SrcAddr.Mask[:], 16) 820 buf.EncodeBytes(a.DstAddr.Addr[:], 16) 821 buf.EncodeBytes(a.DstAddr.Mask[:], 16) 822 buf.EncodeUint8(uint8(a.Protocol.Prot)) 823 buf.EncodeUint8(a.Protocol.Mask) 824 buf.EncodeUint16(a.SrcPort.Port) 825 buf.EncodeUint16(a.SrcPort.Mask) 826 buf.EncodeUint16(a.DstPort.Port) 827 buf.EncodeUint16(a.DstPort.Mask) 828 buf.EncodeUint32(a.Vni) 829 } 830 func (u *FlowUnion) GetIP6Vxlan() (a FlowIP6Vxlan) { 831 buf := codec.NewBuffer(u.XXX_UnionData[:]) 832 a.Foo = buf.DecodeInt32() 833 copy(a.SrcAddr.Addr[:], buf.DecodeBytes(16)) 834 copy(a.SrcAddr.Mask[:], buf.DecodeBytes(16)) 835 copy(a.DstAddr.Addr[:], buf.DecodeBytes(16)) 836 copy(a.DstAddr.Mask[:], buf.DecodeBytes(16)) 837 a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8()) 838 a.Protocol.Mask = buf.DecodeUint8() 839 a.SrcPort.Port = buf.DecodeUint16() 840 a.SrcPort.Mask = buf.DecodeUint16() 841 a.DstPort.Port = buf.DecodeUint16() 842 a.DstPort.Mask = buf.DecodeUint16() 843 a.Vni = buf.DecodeUint32() 844 return 845 } 846 847 func FlowUnionIP4Gtpc(a FlowIP4Gtpc) (u FlowUnion) { 848 u.SetIP4Gtpc(a) 849 return 850 } 851 func (u *FlowUnion) SetIP4Gtpc(a FlowIP4Gtpc) { 852 buf := codec.NewBuffer(u.XXX_UnionData[:]) 853 buf.EncodeInt32(a.Foo) 854 buf.EncodeBytes(a.SrcAddr.Addr[:], 4) 855 buf.EncodeBytes(a.SrcAddr.Mask[:], 4) 856 buf.EncodeBytes(a.DstAddr.Addr[:], 4) 857 buf.EncodeBytes(a.DstAddr.Mask[:], 4) 858 buf.EncodeUint8(uint8(a.Protocol.Prot)) 859 buf.EncodeUint8(a.Protocol.Mask) 860 buf.EncodeUint16(a.SrcPort.Port) 861 buf.EncodeUint16(a.SrcPort.Mask) 862 buf.EncodeUint16(a.DstPort.Port) 863 buf.EncodeUint16(a.DstPort.Mask) 864 buf.EncodeUint32(a.Teid) 865 } 866 func (u *FlowUnion) GetIP4Gtpc() (a FlowIP4Gtpc) { 867 buf := codec.NewBuffer(u.XXX_UnionData[:]) 868 a.Foo = buf.DecodeInt32() 869 copy(a.SrcAddr.Addr[:], buf.DecodeBytes(4)) 870 copy(a.SrcAddr.Mask[:], buf.DecodeBytes(4)) 871 copy(a.DstAddr.Addr[:], buf.DecodeBytes(4)) 872 copy(a.DstAddr.Mask[:], buf.DecodeBytes(4)) 873 a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8()) 874 a.Protocol.Mask = buf.DecodeUint8() 875 a.SrcPort.Port = buf.DecodeUint16() 876 a.SrcPort.Mask = buf.DecodeUint16() 877 a.DstPort.Port = buf.DecodeUint16() 878 a.DstPort.Mask = buf.DecodeUint16() 879 a.Teid = buf.DecodeUint32() 880 return 881 } 882 883 func FlowUnionIP4Gtpu(a FlowIP4Gtpu) (u FlowUnion) { 884 u.SetIP4Gtpu(a) 885 return 886 } 887 func (u *FlowUnion) SetIP4Gtpu(a FlowIP4Gtpu) { 888 buf := codec.NewBuffer(u.XXX_UnionData[:]) 889 buf.EncodeInt32(a.Foo) 890 buf.EncodeBytes(a.SrcAddr.Addr[:], 4) 891 buf.EncodeBytes(a.SrcAddr.Mask[:], 4) 892 buf.EncodeBytes(a.DstAddr.Addr[:], 4) 893 buf.EncodeBytes(a.DstAddr.Mask[:], 4) 894 buf.EncodeUint8(uint8(a.Protocol.Prot)) 895 buf.EncodeUint8(a.Protocol.Mask) 896 buf.EncodeUint16(a.SrcPort.Port) 897 buf.EncodeUint16(a.SrcPort.Mask) 898 buf.EncodeUint16(a.DstPort.Port) 899 buf.EncodeUint16(a.DstPort.Mask) 900 buf.EncodeUint32(a.Teid) 901 } 902 func (u *FlowUnion) GetIP4Gtpu() (a FlowIP4Gtpu) { 903 buf := codec.NewBuffer(u.XXX_UnionData[:]) 904 a.Foo = buf.DecodeInt32() 905 copy(a.SrcAddr.Addr[:], buf.DecodeBytes(4)) 906 copy(a.SrcAddr.Mask[:], buf.DecodeBytes(4)) 907 copy(a.DstAddr.Addr[:], buf.DecodeBytes(4)) 908 copy(a.DstAddr.Mask[:], buf.DecodeBytes(4)) 909 a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8()) 910 a.Protocol.Mask = buf.DecodeUint8() 911 a.SrcPort.Port = buf.DecodeUint16() 912 a.SrcPort.Mask = buf.DecodeUint16() 913 a.DstPort.Port = buf.DecodeUint16() 914 a.DstPort.Mask = buf.DecodeUint16() 915 a.Teid = buf.DecodeUint32() 916 return 917 } 918 919 // FlowV2Union defines union 'flow_v2'. 920 type FlowV2Union struct { 921 // FlowV2Union can be one of: 922 // - Ethernet *FlowEthernet 923 // - IP4 *FlowIP4 924 // - IP6 *FlowIP6 925 // - IP4L2tpv3oip *FlowIP4L2tpv3oip 926 // - IP4IpsecEsp *FlowIP4IpsecEsp 927 // - IP4IpsecAh *FlowIP4IpsecAh 928 // - IP4NTuple *FlowIP4NTuple 929 // - IP6NTuple *FlowIP6NTuple 930 // - IP4NTupleTagged *FlowIP4NTupleTagged 931 // - IP6NTupleTagged *FlowIP6NTupleTagged 932 // - IP4Vxlan *FlowIP4Vxlan 933 // - IP6Vxlan *FlowIP6Vxlan 934 // - IP4Gtpc *FlowIP4Gtpc 935 // - IP4Gtpu *FlowIP4Gtpu 936 // - Generic *FlowGeneric 937 XXX_UnionData [2052]byte 938 } 939 940 func FlowV2UnionEthernet(a FlowEthernet) (u FlowV2Union) { 941 u.SetEthernet(a) 942 return 943 } 944 func (u *FlowV2Union) SetEthernet(a FlowEthernet) { 945 buf := codec.NewBuffer(u.XXX_UnionData[:]) 946 buf.EncodeInt32(a.Foo) 947 buf.EncodeBytes(a.SrcAddr[:], 6) 948 buf.EncodeBytes(a.DstAddr[:], 6) 949 buf.EncodeUint16(a.Type) 950 } 951 func (u *FlowV2Union) GetEthernet() (a FlowEthernet) { 952 buf := codec.NewBuffer(u.XXX_UnionData[:]) 953 a.Foo = buf.DecodeInt32() 954 copy(a.SrcAddr[:], buf.DecodeBytes(6)) 955 copy(a.DstAddr[:], buf.DecodeBytes(6)) 956 a.Type = buf.DecodeUint16() 957 return 958 } 959 960 func FlowV2UnionIP4(a FlowIP4) (u FlowV2Union) { 961 u.SetIP4(a) 962 return 963 } 964 func (u *FlowV2Union) SetIP4(a FlowIP4) { 965 buf := codec.NewBuffer(u.XXX_UnionData[:]) 966 buf.EncodeInt32(a.Foo) 967 buf.EncodeBytes(a.SrcAddr.Addr[:], 4) 968 buf.EncodeBytes(a.SrcAddr.Mask[:], 4) 969 buf.EncodeBytes(a.DstAddr.Addr[:], 4) 970 buf.EncodeBytes(a.DstAddr.Mask[:], 4) 971 buf.EncodeUint8(uint8(a.Protocol.Prot)) 972 buf.EncodeUint8(a.Protocol.Mask) 973 } 974 func (u *FlowV2Union) GetIP4() (a FlowIP4) { 975 buf := codec.NewBuffer(u.XXX_UnionData[:]) 976 a.Foo = buf.DecodeInt32() 977 copy(a.SrcAddr.Addr[:], buf.DecodeBytes(4)) 978 copy(a.SrcAddr.Mask[:], buf.DecodeBytes(4)) 979 copy(a.DstAddr.Addr[:], buf.DecodeBytes(4)) 980 copy(a.DstAddr.Mask[:], buf.DecodeBytes(4)) 981 a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8()) 982 a.Protocol.Mask = buf.DecodeUint8() 983 return 984 } 985 986 func FlowV2UnionIP6(a FlowIP6) (u FlowV2Union) { 987 u.SetIP6(a) 988 return 989 } 990 func (u *FlowV2Union) SetIP6(a FlowIP6) { 991 buf := codec.NewBuffer(u.XXX_UnionData[:]) 992 buf.EncodeInt32(a.Foo) 993 buf.EncodeBytes(a.SrcAddr.Addr[:], 16) 994 buf.EncodeBytes(a.SrcAddr.Mask[:], 16) 995 buf.EncodeBytes(a.DstAddr.Addr[:], 16) 996 buf.EncodeBytes(a.DstAddr.Mask[:], 16) 997 buf.EncodeUint8(uint8(a.Protocol.Prot)) 998 buf.EncodeUint8(a.Protocol.Mask) 999 } 1000 func (u *FlowV2Union) GetIP6() (a FlowIP6) { 1001 buf := codec.NewBuffer(u.XXX_UnionData[:]) 1002 a.Foo = buf.DecodeInt32() 1003 copy(a.SrcAddr.Addr[:], buf.DecodeBytes(16)) 1004 copy(a.SrcAddr.Mask[:], buf.DecodeBytes(16)) 1005 copy(a.DstAddr.Addr[:], buf.DecodeBytes(16)) 1006 copy(a.DstAddr.Mask[:], buf.DecodeBytes(16)) 1007 a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8()) 1008 a.Protocol.Mask = buf.DecodeUint8() 1009 return 1010 } 1011 1012 func FlowV2UnionIP4L2tpv3oip(a FlowIP4L2tpv3oip) (u FlowV2Union) { 1013 u.SetIP4L2tpv3oip(a) 1014 return 1015 } 1016 func (u *FlowV2Union) SetIP4L2tpv3oip(a FlowIP4L2tpv3oip) { 1017 buf := codec.NewBuffer(u.XXX_UnionData[:]) 1018 buf.EncodeInt32(a.Foo) 1019 buf.EncodeBytes(a.SrcAddr.Addr[:], 4) 1020 buf.EncodeBytes(a.SrcAddr.Mask[:], 4) 1021 buf.EncodeBytes(a.DstAddr.Addr[:], 4) 1022 buf.EncodeBytes(a.DstAddr.Mask[:], 4) 1023 buf.EncodeUint8(uint8(a.Protocol.Prot)) 1024 buf.EncodeUint8(a.Protocol.Mask) 1025 buf.EncodeUint32(a.SessionID) 1026 } 1027 func (u *FlowV2Union) GetIP4L2tpv3oip() (a FlowIP4L2tpv3oip) { 1028 buf := codec.NewBuffer(u.XXX_UnionData[:]) 1029 a.Foo = buf.DecodeInt32() 1030 copy(a.SrcAddr.Addr[:], buf.DecodeBytes(4)) 1031 copy(a.SrcAddr.Mask[:], buf.DecodeBytes(4)) 1032 copy(a.DstAddr.Addr[:], buf.DecodeBytes(4)) 1033 copy(a.DstAddr.Mask[:], buf.DecodeBytes(4)) 1034 a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8()) 1035 a.Protocol.Mask = buf.DecodeUint8() 1036 a.SessionID = buf.DecodeUint32() 1037 return 1038 } 1039 1040 func FlowV2UnionIP4IpsecEsp(a FlowIP4IpsecEsp) (u FlowV2Union) { 1041 u.SetIP4IpsecEsp(a) 1042 return 1043 } 1044 func (u *FlowV2Union) SetIP4IpsecEsp(a FlowIP4IpsecEsp) { 1045 buf := codec.NewBuffer(u.XXX_UnionData[:]) 1046 buf.EncodeInt32(a.Foo) 1047 buf.EncodeBytes(a.SrcAddr.Addr[:], 4) 1048 buf.EncodeBytes(a.SrcAddr.Mask[:], 4) 1049 buf.EncodeBytes(a.DstAddr.Addr[:], 4) 1050 buf.EncodeBytes(a.DstAddr.Mask[:], 4) 1051 buf.EncodeUint8(uint8(a.Protocol.Prot)) 1052 buf.EncodeUint8(a.Protocol.Mask) 1053 buf.EncodeUint32(a.Spi) 1054 } 1055 func (u *FlowV2Union) GetIP4IpsecEsp() (a FlowIP4IpsecEsp) { 1056 buf := codec.NewBuffer(u.XXX_UnionData[:]) 1057 a.Foo = buf.DecodeInt32() 1058 copy(a.SrcAddr.Addr[:], buf.DecodeBytes(4)) 1059 copy(a.SrcAddr.Mask[:], buf.DecodeBytes(4)) 1060 copy(a.DstAddr.Addr[:], buf.DecodeBytes(4)) 1061 copy(a.DstAddr.Mask[:], buf.DecodeBytes(4)) 1062 a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8()) 1063 a.Protocol.Mask = buf.DecodeUint8() 1064 a.Spi = buf.DecodeUint32() 1065 return 1066 } 1067 1068 func FlowV2UnionIP4IpsecAh(a FlowIP4IpsecAh) (u FlowV2Union) { 1069 u.SetIP4IpsecAh(a) 1070 return 1071 } 1072 func (u *FlowV2Union) SetIP4IpsecAh(a FlowIP4IpsecAh) { 1073 buf := codec.NewBuffer(u.XXX_UnionData[:]) 1074 buf.EncodeInt32(a.Foo) 1075 buf.EncodeBytes(a.SrcAddr.Addr[:], 4) 1076 buf.EncodeBytes(a.SrcAddr.Mask[:], 4) 1077 buf.EncodeBytes(a.DstAddr.Addr[:], 4) 1078 buf.EncodeBytes(a.DstAddr.Mask[:], 4) 1079 buf.EncodeUint8(uint8(a.Protocol.Prot)) 1080 buf.EncodeUint8(a.Protocol.Mask) 1081 buf.EncodeUint32(a.Spi) 1082 } 1083 func (u *FlowV2Union) GetIP4IpsecAh() (a FlowIP4IpsecAh) { 1084 buf := codec.NewBuffer(u.XXX_UnionData[:]) 1085 a.Foo = buf.DecodeInt32() 1086 copy(a.SrcAddr.Addr[:], buf.DecodeBytes(4)) 1087 copy(a.SrcAddr.Mask[:], buf.DecodeBytes(4)) 1088 copy(a.DstAddr.Addr[:], buf.DecodeBytes(4)) 1089 copy(a.DstAddr.Mask[:], buf.DecodeBytes(4)) 1090 a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8()) 1091 a.Protocol.Mask = buf.DecodeUint8() 1092 a.Spi = buf.DecodeUint32() 1093 return 1094 } 1095 1096 func FlowV2UnionIP4NTuple(a FlowIP4NTuple) (u FlowV2Union) { 1097 u.SetIP4NTuple(a) 1098 return 1099 } 1100 func (u *FlowV2Union) SetIP4NTuple(a FlowIP4NTuple) { 1101 buf := codec.NewBuffer(u.XXX_UnionData[:]) 1102 buf.EncodeInt32(a.Foo) 1103 buf.EncodeBytes(a.SrcAddr.Addr[:], 4) 1104 buf.EncodeBytes(a.SrcAddr.Mask[:], 4) 1105 buf.EncodeBytes(a.DstAddr.Addr[:], 4) 1106 buf.EncodeBytes(a.DstAddr.Mask[:], 4) 1107 buf.EncodeUint8(uint8(a.Protocol.Prot)) 1108 buf.EncodeUint8(a.Protocol.Mask) 1109 buf.EncodeUint16(a.SrcPort.Port) 1110 buf.EncodeUint16(a.SrcPort.Mask) 1111 buf.EncodeUint16(a.DstPort.Port) 1112 buf.EncodeUint16(a.DstPort.Mask) 1113 } 1114 func (u *FlowV2Union) GetIP4NTuple() (a FlowIP4NTuple) { 1115 buf := codec.NewBuffer(u.XXX_UnionData[:]) 1116 a.Foo = buf.DecodeInt32() 1117 copy(a.SrcAddr.Addr[:], buf.DecodeBytes(4)) 1118 copy(a.SrcAddr.Mask[:], buf.DecodeBytes(4)) 1119 copy(a.DstAddr.Addr[:], buf.DecodeBytes(4)) 1120 copy(a.DstAddr.Mask[:], buf.DecodeBytes(4)) 1121 a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8()) 1122 a.Protocol.Mask = buf.DecodeUint8() 1123 a.SrcPort.Port = buf.DecodeUint16() 1124 a.SrcPort.Mask = buf.DecodeUint16() 1125 a.DstPort.Port = buf.DecodeUint16() 1126 a.DstPort.Mask = buf.DecodeUint16() 1127 return 1128 } 1129 1130 func FlowV2UnionIP6NTuple(a FlowIP6NTuple) (u FlowV2Union) { 1131 u.SetIP6NTuple(a) 1132 return 1133 } 1134 func (u *FlowV2Union) SetIP6NTuple(a FlowIP6NTuple) { 1135 buf := codec.NewBuffer(u.XXX_UnionData[:]) 1136 buf.EncodeInt32(a.Foo) 1137 buf.EncodeBytes(a.SrcAddr.Addr[:], 16) 1138 buf.EncodeBytes(a.SrcAddr.Mask[:], 16) 1139 buf.EncodeBytes(a.DstAddr.Addr[:], 16) 1140 buf.EncodeBytes(a.DstAddr.Mask[:], 16) 1141 buf.EncodeUint8(uint8(a.Protocol.Prot)) 1142 buf.EncodeUint8(a.Protocol.Mask) 1143 buf.EncodeUint16(a.SrcPort.Port) 1144 buf.EncodeUint16(a.SrcPort.Mask) 1145 buf.EncodeUint16(a.DstPort.Port) 1146 buf.EncodeUint16(a.DstPort.Mask) 1147 } 1148 func (u *FlowV2Union) GetIP6NTuple() (a FlowIP6NTuple) { 1149 buf := codec.NewBuffer(u.XXX_UnionData[:]) 1150 a.Foo = buf.DecodeInt32() 1151 copy(a.SrcAddr.Addr[:], buf.DecodeBytes(16)) 1152 copy(a.SrcAddr.Mask[:], buf.DecodeBytes(16)) 1153 copy(a.DstAddr.Addr[:], buf.DecodeBytes(16)) 1154 copy(a.DstAddr.Mask[:], buf.DecodeBytes(16)) 1155 a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8()) 1156 a.Protocol.Mask = buf.DecodeUint8() 1157 a.SrcPort.Port = buf.DecodeUint16() 1158 a.SrcPort.Mask = buf.DecodeUint16() 1159 a.DstPort.Port = buf.DecodeUint16() 1160 a.DstPort.Mask = buf.DecodeUint16() 1161 return 1162 } 1163 1164 func FlowV2UnionIP4NTupleTagged(a FlowIP4NTupleTagged) (u FlowV2Union) { 1165 u.SetIP4NTupleTagged(a) 1166 return 1167 } 1168 func (u *FlowV2Union) SetIP4NTupleTagged(a FlowIP4NTupleTagged) { 1169 buf := codec.NewBuffer(u.XXX_UnionData[:]) 1170 buf.EncodeInt32(a.Foo) 1171 buf.EncodeBytes(a.SrcAddr.Addr[:], 4) 1172 buf.EncodeBytes(a.SrcAddr.Mask[:], 4) 1173 buf.EncodeBytes(a.DstAddr.Addr[:], 4) 1174 buf.EncodeBytes(a.DstAddr.Mask[:], 4) 1175 buf.EncodeUint8(uint8(a.Protocol.Prot)) 1176 buf.EncodeUint8(a.Protocol.Mask) 1177 buf.EncodeUint16(a.SrcPort.Port) 1178 buf.EncodeUint16(a.SrcPort.Mask) 1179 buf.EncodeUint16(a.DstPort.Port) 1180 buf.EncodeUint16(a.DstPort.Mask) 1181 } 1182 func (u *FlowV2Union) GetIP4NTupleTagged() (a FlowIP4NTupleTagged) { 1183 buf := codec.NewBuffer(u.XXX_UnionData[:]) 1184 a.Foo = buf.DecodeInt32() 1185 copy(a.SrcAddr.Addr[:], buf.DecodeBytes(4)) 1186 copy(a.SrcAddr.Mask[:], buf.DecodeBytes(4)) 1187 copy(a.DstAddr.Addr[:], buf.DecodeBytes(4)) 1188 copy(a.DstAddr.Mask[:], buf.DecodeBytes(4)) 1189 a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8()) 1190 a.Protocol.Mask = buf.DecodeUint8() 1191 a.SrcPort.Port = buf.DecodeUint16() 1192 a.SrcPort.Mask = buf.DecodeUint16() 1193 a.DstPort.Port = buf.DecodeUint16() 1194 a.DstPort.Mask = buf.DecodeUint16() 1195 return 1196 } 1197 1198 func FlowV2UnionIP6NTupleTagged(a FlowIP6NTupleTagged) (u FlowV2Union) { 1199 u.SetIP6NTupleTagged(a) 1200 return 1201 } 1202 func (u *FlowV2Union) SetIP6NTupleTagged(a FlowIP6NTupleTagged) { 1203 buf := codec.NewBuffer(u.XXX_UnionData[:]) 1204 buf.EncodeInt32(a.Foo) 1205 buf.EncodeBytes(a.SrcAddr.Addr[:], 16) 1206 buf.EncodeBytes(a.SrcAddr.Mask[:], 16) 1207 buf.EncodeBytes(a.DstAddr.Addr[:], 16) 1208 buf.EncodeBytes(a.DstAddr.Mask[:], 16) 1209 buf.EncodeUint8(uint8(a.Protocol.Prot)) 1210 buf.EncodeUint8(a.Protocol.Mask) 1211 buf.EncodeUint16(a.SrcPort.Port) 1212 buf.EncodeUint16(a.SrcPort.Mask) 1213 buf.EncodeUint16(a.DstPort.Port) 1214 buf.EncodeUint16(a.DstPort.Mask) 1215 } 1216 func (u *FlowV2Union) GetIP6NTupleTagged() (a FlowIP6NTupleTagged) { 1217 buf := codec.NewBuffer(u.XXX_UnionData[:]) 1218 a.Foo = buf.DecodeInt32() 1219 copy(a.SrcAddr.Addr[:], buf.DecodeBytes(16)) 1220 copy(a.SrcAddr.Mask[:], buf.DecodeBytes(16)) 1221 copy(a.DstAddr.Addr[:], buf.DecodeBytes(16)) 1222 copy(a.DstAddr.Mask[:], buf.DecodeBytes(16)) 1223 a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8()) 1224 a.Protocol.Mask = buf.DecodeUint8() 1225 a.SrcPort.Port = buf.DecodeUint16() 1226 a.SrcPort.Mask = buf.DecodeUint16() 1227 a.DstPort.Port = buf.DecodeUint16() 1228 a.DstPort.Mask = buf.DecodeUint16() 1229 return 1230 } 1231 1232 func FlowV2UnionIP4Vxlan(a FlowIP4Vxlan) (u FlowV2Union) { 1233 u.SetIP4Vxlan(a) 1234 return 1235 } 1236 func (u *FlowV2Union) SetIP4Vxlan(a FlowIP4Vxlan) { 1237 buf := codec.NewBuffer(u.XXX_UnionData[:]) 1238 buf.EncodeInt32(a.Foo) 1239 buf.EncodeBytes(a.SrcAddr.Addr[:], 4) 1240 buf.EncodeBytes(a.SrcAddr.Mask[:], 4) 1241 buf.EncodeBytes(a.DstAddr.Addr[:], 4) 1242 buf.EncodeBytes(a.DstAddr.Mask[:], 4) 1243 buf.EncodeUint8(uint8(a.Protocol.Prot)) 1244 buf.EncodeUint8(a.Protocol.Mask) 1245 buf.EncodeUint16(a.SrcPort.Port) 1246 buf.EncodeUint16(a.SrcPort.Mask) 1247 buf.EncodeUint16(a.DstPort.Port) 1248 buf.EncodeUint16(a.DstPort.Mask) 1249 buf.EncodeUint32(a.Vni) 1250 } 1251 func (u *FlowV2Union) GetIP4Vxlan() (a FlowIP4Vxlan) { 1252 buf := codec.NewBuffer(u.XXX_UnionData[:]) 1253 a.Foo = buf.DecodeInt32() 1254 copy(a.SrcAddr.Addr[:], buf.DecodeBytes(4)) 1255 copy(a.SrcAddr.Mask[:], buf.DecodeBytes(4)) 1256 copy(a.DstAddr.Addr[:], buf.DecodeBytes(4)) 1257 copy(a.DstAddr.Mask[:], buf.DecodeBytes(4)) 1258 a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8()) 1259 a.Protocol.Mask = buf.DecodeUint8() 1260 a.SrcPort.Port = buf.DecodeUint16() 1261 a.SrcPort.Mask = buf.DecodeUint16() 1262 a.DstPort.Port = buf.DecodeUint16() 1263 a.DstPort.Mask = buf.DecodeUint16() 1264 a.Vni = buf.DecodeUint32() 1265 return 1266 } 1267 1268 func FlowV2UnionIP6Vxlan(a FlowIP6Vxlan) (u FlowV2Union) { 1269 u.SetIP6Vxlan(a) 1270 return 1271 } 1272 func (u *FlowV2Union) SetIP6Vxlan(a FlowIP6Vxlan) { 1273 buf := codec.NewBuffer(u.XXX_UnionData[:]) 1274 buf.EncodeInt32(a.Foo) 1275 buf.EncodeBytes(a.SrcAddr.Addr[:], 16) 1276 buf.EncodeBytes(a.SrcAddr.Mask[:], 16) 1277 buf.EncodeBytes(a.DstAddr.Addr[:], 16) 1278 buf.EncodeBytes(a.DstAddr.Mask[:], 16) 1279 buf.EncodeUint8(uint8(a.Protocol.Prot)) 1280 buf.EncodeUint8(a.Protocol.Mask) 1281 buf.EncodeUint16(a.SrcPort.Port) 1282 buf.EncodeUint16(a.SrcPort.Mask) 1283 buf.EncodeUint16(a.DstPort.Port) 1284 buf.EncodeUint16(a.DstPort.Mask) 1285 buf.EncodeUint32(a.Vni) 1286 } 1287 func (u *FlowV2Union) GetIP6Vxlan() (a FlowIP6Vxlan) { 1288 buf := codec.NewBuffer(u.XXX_UnionData[:]) 1289 a.Foo = buf.DecodeInt32() 1290 copy(a.SrcAddr.Addr[:], buf.DecodeBytes(16)) 1291 copy(a.SrcAddr.Mask[:], buf.DecodeBytes(16)) 1292 copy(a.DstAddr.Addr[:], buf.DecodeBytes(16)) 1293 copy(a.DstAddr.Mask[:], buf.DecodeBytes(16)) 1294 a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8()) 1295 a.Protocol.Mask = buf.DecodeUint8() 1296 a.SrcPort.Port = buf.DecodeUint16() 1297 a.SrcPort.Mask = buf.DecodeUint16() 1298 a.DstPort.Port = buf.DecodeUint16() 1299 a.DstPort.Mask = buf.DecodeUint16() 1300 a.Vni = buf.DecodeUint32() 1301 return 1302 } 1303 1304 func FlowV2UnionIP4Gtpc(a FlowIP4Gtpc) (u FlowV2Union) { 1305 u.SetIP4Gtpc(a) 1306 return 1307 } 1308 func (u *FlowV2Union) SetIP4Gtpc(a FlowIP4Gtpc) { 1309 buf := codec.NewBuffer(u.XXX_UnionData[:]) 1310 buf.EncodeInt32(a.Foo) 1311 buf.EncodeBytes(a.SrcAddr.Addr[:], 4) 1312 buf.EncodeBytes(a.SrcAddr.Mask[:], 4) 1313 buf.EncodeBytes(a.DstAddr.Addr[:], 4) 1314 buf.EncodeBytes(a.DstAddr.Mask[:], 4) 1315 buf.EncodeUint8(uint8(a.Protocol.Prot)) 1316 buf.EncodeUint8(a.Protocol.Mask) 1317 buf.EncodeUint16(a.SrcPort.Port) 1318 buf.EncodeUint16(a.SrcPort.Mask) 1319 buf.EncodeUint16(a.DstPort.Port) 1320 buf.EncodeUint16(a.DstPort.Mask) 1321 buf.EncodeUint32(a.Teid) 1322 } 1323 func (u *FlowV2Union) GetIP4Gtpc() (a FlowIP4Gtpc) { 1324 buf := codec.NewBuffer(u.XXX_UnionData[:]) 1325 a.Foo = buf.DecodeInt32() 1326 copy(a.SrcAddr.Addr[:], buf.DecodeBytes(4)) 1327 copy(a.SrcAddr.Mask[:], buf.DecodeBytes(4)) 1328 copy(a.DstAddr.Addr[:], buf.DecodeBytes(4)) 1329 copy(a.DstAddr.Mask[:], buf.DecodeBytes(4)) 1330 a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8()) 1331 a.Protocol.Mask = buf.DecodeUint8() 1332 a.SrcPort.Port = buf.DecodeUint16() 1333 a.SrcPort.Mask = buf.DecodeUint16() 1334 a.DstPort.Port = buf.DecodeUint16() 1335 a.DstPort.Mask = buf.DecodeUint16() 1336 a.Teid = buf.DecodeUint32() 1337 return 1338 } 1339 1340 func FlowV2UnionIP4Gtpu(a FlowIP4Gtpu) (u FlowV2Union) { 1341 u.SetIP4Gtpu(a) 1342 return 1343 } 1344 func (u *FlowV2Union) SetIP4Gtpu(a FlowIP4Gtpu) { 1345 buf := codec.NewBuffer(u.XXX_UnionData[:]) 1346 buf.EncodeInt32(a.Foo) 1347 buf.EncodeBytes(a.SrcAddr.Addr[:], 4) 1348 buf.EncodeBytes(a.SrcAddr.Mask[:], 4) 1349 buf.EncodeBytes(a.DstAddr.Addr[:], 4) 1350 buf.EncodeBytes(a.DstAddr.Mask[:], 4) 1351 buf.EncodeUint8(uint8(a.Protocol.Prot)) 1352 buf.EncodeUint8(a.Protocol.Mask) 1353 buf.EncodeUint16(a.SrcPort.Port) 1354 buf.EncodeUint16(a.SrcPort.Mask) 1355 buf.EncodeUint16(a.DstPort.Port) 1356 buf.EncodeUint16(a.DstPort.Mask) 1357 buf.EncodeUint32(a.Teid) 1358 } 1359 func (u *FlowV2Union) GetIP4Gtpu() (a FlowIP4Gtpu) { 1360 buf := codec.NewBuffer(u.XXX_UnionData[:]) 1361 a.Foo = buf.DecodeInt32() 1362 copy(a.SrcAddr.Addr[:], buf.DecodeBytes(4)) 1363 copy(a.SrcAddr.Mask[:], buf.DecodeBytes(4)) 1364 copy(a.DstAddr.Addr[:], buf.DecodeBytes(4)) 1365 copy(a.DstAddr.Mask[:], buf.DecodeBytes(4)) 1366 a.Protocol.Prot = ip_types.IPProto(buf.DecodeUint8()) 1367 a.Protocol.Mask = buf.DecodeUint8() 1368 a.SrcPort.Port = buf.DecodeUint16() 1369 a.SrcPort.Mask = buf.DecodeUint16() 1370 a.DstPort.Port = buf.DecodeUint16() 1371 a.DstPort.Mask = buf.DecodeUint16() 1372 a.Teid = buf.DecodeUint32() 1373 return 1374 } 1375 1376 func FlowV2UnionGeneric(a FlowGeneric) (u FlowV2Union) { 1377 u.SetGeneric(a) 1378 return 1379 } 1380 func (u *FlowV2Union) SetGeneric(a FlowGeneric) { 1381 buf := codec.NewBuffer(u.XXX_UnionData[:]) 1382 buf.EncodeInt32(a.Foo) 1383 buf.EncodeBytes(a.Pattern.Spec, 1024) 1384 buf.EncodeBytes(a.Pattern.Mask, 1024) 1385 } 1386 func (u *FlowV2Union) GetGeneric() (a FlowGeneric) { 1387 buf := codec.NewBuffer(u.XXX_UnionData[:]) 1388 a.Foo = buf.DecodeInt32() 1389 a.Pattern.Spec = make([]byte, 1024) 1390 copy(a.Pattern.Spec, buf.DecodeBytes(len(a.Pattern.Spec))) 1391 a.Pattern.Mask = make([]byte, 1024) 1392 copy(a.Pattern.Mask, buf.DecodeBytes(len(a.Pattern.Mask))) 1393 return 1394 }