blob: a31015a49528e6b95c18de5742d94b5ec9778556 [file] [log] [blame]
Don Newton98fd8812019-09-23 15:15:02 -04001/*
2 * Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
3 * Copyright (c) 2011, 2012 Open Networking Foundation
4 * Copyright 2013, Big Switch Networks, Inc. This library was generated by the LoxiGen Compiler.
5 * Copyright 2018, Red Hat, Inc.
6 */
7// Automatically generated by LOXI from template const.go
8// Do not modify
9
10package of13
11
12import (
13 "fmt"
14 "strings"
15)
16
17const (
18 // Identifiers from group macro_definitions
19 MaxTableNameLen = 32 // OFP_MAX_TABLE_NAME_LEN
20 MaxPortNameLen = 16 // OFP_MAX_PORT_NAME_LEN
21 TCPPort = 6653 // OFP_TCP_PORT
22 SSLPort = 6653 // OFP_SSL_PORT
23 EthAlen = 6 // OFP_ETH_ALEN
24 DefaultMissSendLen = 128 // OFP_DEFAULT_MISS_SEND_LEN
25 VLANNone = 0 // OFP_VLAN_NONE
26 FlowPermanent = 0 // OFP_FLOW_PERMANENT
27 DefaultPriority = 32768 // OFP_DEFAULT_PRIORITY
28 NoBuffer = 4294967295 // OFP_NO_BUFFER
29 DescStrLen = 256 // DESC_STR_LEN
30 SerialNumLen = 32 // SERIAL_NUM_LEN
31 OFPQAll = 4294967295 // OFPQ_ALL
32 OFPQMaxRateUncfg = 65535 // OFPQ_MAX_RATE_UNCFG
33 OFPQMinRateUncfg = 65535 // OFPQ_MIN_RATE_UNCFG
34)
35
36const (
37 // Identifiers from group nx_action_controller2_prop_type
38 Nxac2PtMaxLen = 0 // NXAC2PT_MAX_LEN
39 Nxac2PtControllerID = 1 // NXAC2PT_CONTROLLER_ID
40 Nxac2PtReason = 2 // NXAC2PT_REASON
41 Nxac2PtUserdata = 3 // NXAC2PT_USERDATA
42 Nxac2PtPause = 4 // NXAC2PT_PAUSE
43 Nxac2PtMeterID = 5 // NXAC2PT_METER_ID
44)
45
46type NxActionController2PropType uint16
47
48func (self NxActionController2PropType) MarshalJSON() ([]byte, error) {
49 return []byte(fmt.Sprintf("%d", self)), nil
50}
51
52const (
53 // Identifiers from group nx_bd_algorithms
54 NxBdAlgActiveBackup = 0 // NX_BD_ALG_ACTIVE_BACKUP
55 NxBdAlgHrw = 1 // NX_BD_ALG_HRW
56)
57
58type NxBdAlgorithms uint16
59
60func (self NxBdAlgorithms) MarshalJSON() ([]byte, error) {
61 return []byte(fmt.Sprintf("\"%s\"", self)), nil
62}
63
64func (self NxBdAlgorithms) String() string {
65 switch self {
66 case NxBdAlgActiveBackup:
67 return "active_backup"
68 case NxBdAlgHrw:
69 return "hrw"
70 default:
71 return fmt.Sprintf("%d", self)
72 }
73}
74
75const (
76 // Identifiers from group nx_conntrack_flags
77 NxCtFCommit = 1 // NX_CT_F_COMMIT
78 NxCtFForce = 2 // NX_CT_F_FORCE
79)
80
81type NxConntrackFlags uint16
82
83func (self NxConntrackFlags) MarshalJSON() ([]byte, error) {
84 var flags []string
85 if self&NxCtFCommit == NxCtFCommit {
86 flags = append(flags, "\"Commit\": true")
87 }
88 if self&NxCtFForce == NxCtFForce {
89 flags = append(flags, "\"Force\": true")
90 }
91 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
92}
93
94const (
95 // Identifiers from group nx_flow_monitor_flags
96 NxfmfInitial = 1 // NXFMF_INITIAL
97 NxfmfAdd = 2 // NXFMF_ADD
98 NxfmfDelete = 4 // NXFMF_DELETE
99 NxfmfModify = 8 // NXFMF_MODIFY
100 NxfmfActions = 16 // NXFMF_ACTIONS
101 NxfmfOwn = 32 // NXFMF_OWN
102)
103
104type NxFlowMonitorFlags uint16
105
106func (self NxFlowMonitorFlags) MarshalJSON() ([]byte, error) {
107 var flags []string
108 if self&NxfmfInitial == NxfmfInitial {
109 flags = append(flags, "\"Initial\": true")
110 }
111 if self&NxfmfAdd == NxfmfAdd {
112 flags = append(flags, "\"Add\": true")
113 }
114 if self&NxfmfDelete == NxfmfDelete {
115 flags = append(flags, "\"Delete\": true")
116 }
117 if self&NxfmfModify == NxfmfModify {
118 flags = append(flags, "\"Modify\": true")
119 }
120 if self&NxfmfActions == NxfmfActions {
121 flags = append(flags, "\"Actions\": true")
122 }
123 if self&NxfmfOwn == NxfmfOwn {
124 flags = append(flags, "\"Own\": true")
125 }
126 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
127}
128
129const (
130 // Identifiers from group nx_hash_fields
131 NxHashFieldsEthSrc = 0 // NX_HASH_FIELDS_ETH_SRC
132 NxHashFieldsSymmetricL4 = 1 // NX_HASH_FIELDS_SYMMETRIC_L4
133 NxHashFieldsSymmetricL3L4 = 2 // NX_HASH_FIELDS_SYMMETRIC_L3L4
134 NxHashFieldsSymmetricL3L4Udp = 3 // NX_HASH_FIELDS_SYMMETRIC_L3L4_UDP
135 NxHashFieldsNwSrc = 4 // NX_HASH_FIELDS_NW_SRC
136 NxHashFieldsNwDst = 5 // NX_HASH_FIELDS_NW_DST
137 NxHashFieldsSymmetricL3 = 6 // NX_HASH_FIELDS_SYMMETRIC_L3
138)
139
140type NxHashFields uint16
141
142func (self NxHashFields) MarshalJSON() ([]byte, error) {
143 return []byte(fmt.Sprintf("\"%s\"", self)), nil
144}
145
146func (self NxHashFields) String() string {
147 switch self {
148 case NxHashFieldsEthSrc:
149 return "eth_src"
150 case NxHashFieldsSymmetricL4:
151 return "symmetric_l4"
152 case NxHashFieldsSymmetricL3L4:
153 return "symmetric_l3l4"
154 case NxHashFieldsSymmetricL3L4Udp:
155 return "symmetric_l3l4_udp"
156 case NxHashFieldsNwSrc:
157 return "nw_src"
158 case NxHashFieldsNwDst:
159 return "nw_dst"
160 case NxHashFieldsSymmetricL3:
161 return "symmetric_l3"
162 default:
163 return fmt.Sprintf("%d", self)
164 }
165}
166
167const (
168 // Identifiers from group nx_mp_algorithm
169 NxMpAlgModuloN = 0 // NX_MP_ALG_MODULO_N
170 NxMpAlgHashThreshold = 1 // NX_MP_ALG_HASH_THRESHOLD
171 NxMpAlgHrw = 2 // NX_MP_ALG_HRW
172 NxMpAlgIterHash = 3 // NX_MP_ALG_ITER_HASH
173)
174
175type NxMpAlgorithm uint16
176
177func (self NxMpAlgorithm) MarshalJSON() ([]byte, error) {
178 return []byte(fmt.Sprintf("\"%s\"", self)), nil
179}
180
181func (self NxMpAlgorithm) String() string {
182 switch self {
183 case NxMpAlgModuloN:
184 return "modulo_n"
185 case NxMpAlgHashThreshold:
186 return "hash_threshold"
187 case NxMpAlgHrw:
188 return "hrw"
189 case NxMpAlgIterHash:
190 return "iter_hash"
191 default:
192 return fmt.Sprintf("%d", self)
193 }
194}
195
196const (
197 // Identifiers from group of_action_nx_bundle_slave_type
198 NxmOfInPort = 2 // NXM_OF_IN_PORT
199 NxmOfJustThereToDefinePrefix = 10000 // NXM_OF_JUST_THERE_TO_DEFINE_PREFIX
200)
201
202type ActionNxBundleSlaveType uint32
203
204func (self ActionNxBundleSlaveType) MarshalJSON() ([]byte, error) {
205 return []byte(fmt.Sprintf("\"%s\"", self)), nil
206}
207
208func (self ActionNxBundleSlaveType) String() string {
209 switch self {
210 case NxmOfInPort:
211 return "in_port"
212 case NxmOfJustThereToDefinePrefix:
213 return "just_there_to_define_prefix"
214 default:
215 return fmt.Sprintf("%d", self)
216 }
217}
218
219const (
220 // Identifiers from group of_bsn_gentable_error_code
221 OFBSNGentableErrorUnknown = 0 // OF_BSN_GENTABLE_ERROR_UNKNOWN
222 OFBSNGentableErrorParam = 1 // OF_BSN_GENTABLE_ERROR_PARAM
223 OFBSNGentableErrorTableFull = 2 // OF_BSN_GENTABLE_ERROR_TABLE_FULL
224)
225
226type BsnGentableErrorCode uint16
227
228func (self BsnGentableErrorCode) MarshalJSON() ([]byte, error) {
229 return []byte(fmt.Sprintf("%d", self)), nil
230}
231
232const (
233 // Identifiers from group of_bsn_hash_gtp_port_match
234 OFBSNHashGtpPortMatchSrc = 1 // OF_BSN_HASH_GTP_PORT_MATCH_SRC
235 OFBSNHashGtpPortMatchDst = 2 // OF_BSN_HASH_GTP_PORT_MATCH_DST
236 OFBSNHashGtpPortMatchSrcOrDst = 3 // OF_BSN_HASH_GTP_PORT_MATCH_SRC_OR_DST
237 OFBSNHashGtpPortMatchSrcAndDst = 4 // OF_BSN_HASH_GTP_PORT_MATCH_SRC_AND_DST
238)
239
240type BsnHashGtpPortMatch uint8
241
242func (self BsnHashGtpPortMatch) MarshalJSON() ([]byte, error) {
243 return []byte(fmt.Sprintf("%d", self)), nil
244}
245
246const (
247 // Identifiers from group of_bsn_hash_packet_field
248 BSNHashFieldDstMAC = 2 // OFP_BSN_HASH_FIELD_DST_MAC
249 BSNHashFieldSrcMAC = 4 // OFP_BSN_HASH_FIELD_SRC_MAC
250 BSNHashFieldEthType = 8 // OFP_BSN_HASH_FIELD_ETH_TYPE
251 BSNHashFieldVLANID = 16 // OFP_BSN_HASH_FIELD_VLAN_ID
252 BSNHashFieldInnerL2 = 32 // OFP_BSN_HASH_FIELD_INNER_L2
253 BSNHashFieldInnerL3 = 64 // OFP_BSN_HASH_FIELD_INNER_L3
254 BSNHashFieldSrcIp = 128 // OFP_BSN_HASH_FIELD_SRC_IP
255 BSNHashFieldDstIp = 256 // OFP_BSN_HASH_FIELD_DST_IP
256 BSNHashFieldIpProto = 512 // OFP_BSN_HASH_FIELD_IP_PROTO
257 BSNHashFieldSrcL4Port = 1024 // OFP_BSN_HASH_FIELD_SRC_L4_PORT
258 BSNHashFieldDstL4Port = 2048 // OFP_BSN_HASH_FIELD_DST_L4_PORT
259 BSNHashFieldMplsLabel1 = 4096 // OFP_BSN_HASH_FIELD_MPLS_LABEL1
260 BSNHashFieldMplsLabel2 = 8192 // OFP_BSN_HASH_FIELD_MPLS_LABEL2
261 BSNHashFieldMplsLabel3 = 16384 // OFP_BSN_HASH_FIELD_MPLS_LABEL3
262 BSNHashFieldMplsLabelHiBits = 32768 // OFP_BSN_HASH_FIELD_MPLS_LABEL_HI_BITS
263 BSNHashFieldMplsPayloadSrcIp = 65536 // OFP_BSN_HASH_FIELD_MPLS_PAYLOAD_SRC_IP
264 BSNHashFieldMplsPayloadDstIp = 131072 // OFP_BSN_HASH_FIELD_MPLS_PAYLOAD_DST_IP
265 BSNHashFieldSymmetric = 262144 // OFP_BSN_HASH_FIELD_SYMMETRIC
266)
267
268type BsnHashPacketField uint64
269
270func (self BsnHashPacketField) MarshalJSON() ([]byte, error) {
271 var flags []string
272 if self&BSNHashFieldDstMAC == BSNHashFieldDstMAC {
273 flags = append(flags, "\"DstMAC\": true")
274 }
275 if self&BSNHashFieldSrcMAC == BSNHashFieldSrcMAC {
276 flags = append(flags, "\"SrcMAC\": true")
277 }
278 if self&BSNHashFieldEthType == BSNHashFieldEthType {
279 flags = append(flags, "\"EthType\": true")
280 }
281 if self&BSNHashFieldVLANID == BSNHashFieldVLANID {
282 flags = append(flags, "\"VlanID\": true")
283 }
284 if self&BSNHashFieldInnerL2 == BSNHashFieldInnerL2 {
285 flags = append(flags, "\"InnerL2\": true")
286 }
287 if self&BSNHashFieldInnerL3 == BSNHashFieldInnerL3 {
288 flags = append(flags, "\"InnerL3\": true")
289 }
290 if self&BSNHashFieldSrcIp == BSNHashFieldSrcIp {
291 flags = append(flags, "\"SrcIp\": true")
292 }
293 if self&BSNHashFieldDstIp == BSNHashFieldDstIp {
294 flags = append(flags, "\"DstIp\": true")
295 }
296 if self&BSNHashFieldIpProto == BSNHashFieldIpProto {
297 flags = append(flags, "\"IpProto\": true")
298 }
299 if self&BSNHashFieldSrcL4Port == BSNHashFieldSrcL4Port {
300 flags = append(flags, "\"SrcL4Port\": true")
301 }
302 if self&BSNHashFieldDstL4Port == BSNHashFieldDstL4Port {
303 flags = append(flags, "\"DstL4Port\": true")
304 }
305 if self&BSNHashFieldMplsLabel1 == BSNHashFieldMplsLabel1 {
306 flags = append(flags, "\"MplsLabel1\": true")
307 }
308 if self&BSNHashFieldMplsLabel2 == BSNHashFieldMplsLabel2 {
309 flags = append(flags, "\"MplsLabel2\": true")
310 }
311 if self&BSNHashFieldMplsLabel3 == BSNHashFieldMplsLabel3 {
312 flags = append(flags, "\"MplsLabel3\": true")
313 }
314 if self&BSNHashFieldMplsLabelHiBits == BSNHashFieldMplsLabelHiBits {
315 flags = append(flags, "\"MplsLabelHiBits\": true")
316 }
317 if self&BSNHashFieldMplsPayloadSrcIp == BSNHashFieldMplsPayloadSrcIp {
318 flags = append(flags, "\"MplsPayloadSrcIp\": true")
319 }
320 if self&BSNHashFieldMplsPayloadDstIp == BSNHashFieldMplsPayloadDstIp {
321 flags = append(flags, "\"MplsPayloadDstIp\": true")
322 }
323 if self&BSNHashFieldSymmetric == BSNHashFieldSymmetric {
324 flags = append(flags, "\"Symmetric\": true")
325 }
326 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
327}
328
329const (
330 // Identifiers from group of_bsn_hash_packet_type
331 OFBSNHashPacketL2 = 0 // OF_BSN_HASH_PACKET_L2
332 OFBSNHashPacketL2Gre = 1 // OF_BSN_HASH_PACKET_L2GRE
333 OFBSNHashPacketIpv4 = 3 // OF_BSN_HASH_PACKET_IPV4
334 OFBSNHashPacketIpv6 = 4 // OF_BSN_HASH_PACKET_IPV6
335 OFBSNHashPacketMpls = 5 // OF_BSN_HASH_PACKET_MPLS
336 OFBSNHashPacketSymmetric = 6 // OF_BSN_HASH_PACKET_SYMMETRIC
337)
338
339type BsnHashPacketType uint8
340
341func (self BsnHashPacketType) MarshalJSON() ([]byte, error) {
342 return []byte(fmt.Sprintf("%d", self)), nil
343}
344
345const (
346 // Identifiers from group of_bsn_hash_type
347 BSNHashTypeL2 = 0 // OFP_BSN_HASH_TYPE_L2
348 BSNHashTypeL3 = 1 // OFP_BSN_HASH_TYPE_L3
349 BSNHashTypeEnhanced = 2 // OFP_BSN_HASH_TYPE_ENHANCED
350)
351
352type BsnHashType uint8
353
354func (self BsnHashType) MarshalJSON() ([]byte, error) {
355 return []byte(fmt.Sprintf("%d", self)), nil
356}
357
358const (
359 // Identifiers from group of_bsn_lacp_convergence_status
360 LacpSuccess = 0 // LACP_SUCCESS
361 LacpTimedout = 1 // LACP_TIMEDOUT
362 LacpOutOfSync = 2 // LACP_OUT_OF_SYNC
363)
364
365type BsnLacpConvergenceStatus uint8
366
367func (self BsnLacpConvergenceStatus) MarshalJSON() ([]byte, error) {
368 return []byte(fmt.Sprintf("%d", self)), nil
369}
370
371const (
372 // Identifiers from group of_bsn_pdu_slot_num
373 BsnPduSlotNumAny = 255 // BSN_PDU_SLOT_NUM_ANY
374)
375
376type BsnPduSlotNum uint8
377
378func (self BsnPduSlotNum) MarshalJSON() ([]byte, error) {
379 return []byte(fmt.Sprintf("%d", self)), nil
380}
381
382const (
383 // Identifiers from group of_bsn_vlan_counter
384 BSNVLANCounterRxBytes = 0 // OFP_BSN_VLAN_COUNTER_RX_BYTES
385 BSNVLANCounterRxPackets = 1 // OFP_BSN_VLAN_COUNTER_RX_PACKETS
386 BSNVLANCounterTxBytes = 2 // OFP_BSN_VLAN_COUNTER_TX_BYTES
387 BSNVLANCounterTxPackets = 3 // OFP_BSN_VLAN_COUNTER_TX_PACKETS
388)
389
390type BsnVlanCounter uint8
391
392func (self BsnVlanCounter) MarshalJSON() ([]byte, error) {
393 return []byte(fmt.Sprintf("%d", self)), nil
394}
395
396const (
397 // Identifiers from group of_bsn_vrf_counter
398 BSNVrfCounterBytes = 0 // OFP_BSN_VRF_COUNTER_BYTES
399 BSNVrfCounterPackets = 1 // OFP_BSN_VRF_COUNTER_PACKETS
400)
401
402type BsnVrfCounter uint8
403
404func (self BsnVrfCounter) MarshalJSON() ([]byte, error) {
405 return []byte(fmt.Sprintf("%d", self)), nil
406}
407
408const (
409 // Identifiers from group of_nx_nat_range
410 NxNatRangeIpv4Min = 1 // NX_NAT_RANGE_IPV4_MIN
411 NxNatRangeIpv4Max = 2 // NX_NAT_RANGE_IPV4_MAX
412 NxNatRangeIpv6Min = 4 // NX_NAT_RANGE_IPV6_MIN
413 NxNatRangeIpv6Max = 8 // NX_NAT_RANGE_IPV6_MAX
414 NxNatRangeProtoMin = 16 // NX_NAT_RANGE_PROTO_MIN
415 NxNatRangeProtoMax = 32 // NX_NAT_RANGE_PROTO_MAX
416)
417
418type NxNatRange uint16
419
420func (self NxNatRange) MarshalJSON() ([]byte, error) {
421 var flags []string
422 if self&NxNatRangeIpv4Min == NxNatRangeIpv4Min {
423 flags = append(flags, "\"Ipv4Min\": true")
424 }
425 if self&NxNatRangeIpv4Max == NxNatRangeIpv4Max {
426 flags = append(flags, "\"Ipv4Max\": true")
427 }
428 if self&NxNatRangeIpv6Min == NxNatRangeIpv6Min {
429 flags = append(flags, "\"Ipv6Min\": true")
430 }
431 if self&NxNatRangeIpv6Max == NxNatRangeIpv6Max {
432 flags = append(flags, "\"Ipv6Max\": true")
433 }
434 if self&NxNatRangeProtoMin == NxNatRangeProtoMin {
435 flags = append(flags, "\"ProtoMin\": true")
436 }
437 if self&NxNatRangeProtoMax == NxNatRangeProtoMax {
438 flags = append(flags, "\"ProtoMax\": true")
439 }
440 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
441}
442
443const (
444 // Identifiers from group ofp_action_type
445 OFPATOutput = 0 // OFPAT_OUTPUT
446 OFPATCopyTtlOut = 11 // OFPAT_COPY_TTL_OUT
447 OFPATCopyTtlIn = 12 // OFPAT_COPY_TTL_IN
448 OFPATSetMplsTtl = 15 // OFPAT_SET_MPLS_TTL
449 OFPATDecMplsTtl = 16 // OFPAT_DEC_MPLS_TTL
450 OFPATPushVLAN = 17 // OFPAT_PUSH_VLAN
451 OFPATPopVLAN = 18 // OFPAT_POP_VLAN
452 OFPATPushMpls = 19 // OFPAT_PUSH_MPLS
453 OFPATPopMpls = 20 // OFPAT_POP_MPLS
454 OFPATSetQueue = 21 // OFPAT_SET_QUEUE
455 OFPATGroup = 22 // OFPAT_GROUP
456 OFPATSetNwTtl = 23 // OFPAT_SET_NW_TTL
457 OFPATDecNwTtl = 24 // OFPAT_DEC_NW_TTL
458 OFPATSetField = 25 // OFPAT_SET_FIELD
459 OFPATPushPbb = 26 // OFPAT_PUSH_PBB
460 OFPATPopPbb = 27 // OFPAT_POP_PBB
461 OFPATExperimenter = 65535 // OFPAT_EXPERIMENTER
462)
463
464type ActionType uint16
465
466func (self ActionType) MarshalJSON() ([]byte, error) {
467 return []byte(fmt.Sprintf("%d", self)), nil
468}
469
470const (
471 // Identifiers from group ofp_bad_action_code
472 OFPBACBadType = 0 // OFPBAC_BAD_TYPE
473 OFPBACBadLen = 1 // OFPBAC_BAD_LEN
474 OFPBACBadExperimenter = 2 // OFPBAC_BAD_EXPERIMENTER
475 OFPBACBadExperimenterType = 3 // OFPBAC_BAD_EXPERIMENTER_TYPE
476 OFPBACBadOutPort = 4 // OFPBAC_BAD_OUT_PORT
477 OFPBACBadArgument = 5 // OFPBAC_BAD_ARGUMENT
478 OFPBACEperm = 6 // OFPBAC_EPERM
479 OFPBACTooMany = 7 // OFPBAC_TOO_MANY
480 OFPBACBadQueue = 8 // OFPBAC_BAD_QUEUE
481 OFPBACBadOutGroup = 9 // OFPBAC_BAD_OUT_GROUP
482 OFPBACMatchInconsistent = 10 // OFPBAC_MATCH_INCONSISTENT
483 OFPBACUnsupportedOrder = 11 // OFPBAC_UNSUPPORTED_ORDER
484 OFPBACBadTag = 12 // OFPBAC_BAD_TAG
485 OFPBACBadSetType = 13 // OFPBAC_BAD_SET_TYPE
486 OFPBACBadSetLen = 14 // OFPBAC_BAD_SET_LEN
487 OFPBACBadSetArgument = 15 // OFPBAC_BAD_SET_ARGUMENT
488)
489
490type BadActionCode uint16
491
492func (self BadActionCode) MarshalJSON() ([]byte, error) {
493 return []byte(fmt.Sprintf("%d", self)), nil
494}
495
496const (
497 // Identifiers from group ofp_bad_instruction_code
498 OFPBICUnknownInst = 0 // OFPBIC_UNKNOWN_INST
499 OFPBICUnsupInst = 1 // OFPBIC_UNSUP_INST
500 OFPBICBadTableID = 2 // OFPBIC_BAD_TABLE_ID
501 OFPBICUnsupMetadata = 3 // OFPBIC_UNSUP_METADATA
502 OFPBICUnsupMetadataMask = 4 // OFPBIC_UNSUP_METADATA_MASK
503 OFPBICBadExperimenter = 5 // OFPBIC_BAD_EXPERIMENTER
504 OFPBICBadExperimenterType = 6 // OFPBIC_BAD_EXPERIMENTER_TYPE
505 OFPBICBadLen = 7 // OFPBIC_BAD_LEN
506 OFPBICEperm = 8 // OFPBIC_EPERM
507)
508
509type BadInstructionCode uint16
510
511func (self BadInstructionCode) MarshalJSON() ([]byte, error) {
512 return []byte(fmt.Sprintf("%d", self)), nil
513}
514
515const (
516 // Identifiers from group ofp_bad_match_code
517 OFPBMCBadType = 0 // OFPBMC_BAD_TYPE
518 OFPBMCBadLen = 1 // OFPBMC_BAD_LEN
519 OFPBMCBadTag = 2 // OFPBMC_BAD_TAG
520 OFPBMCBadDlAddrMask = 3 // OFPBMC_BAD_DL_ADDR_MASK
521 OFPBMCBadNwAddrMask = 4 // OFPBMC_BAD_NW_ADDR_MASK
522 OFPBMCBadWildcards = 5 // OFPBMC_BAD_WILDCARDS
523 OFPBMCBadField = 6 // OFPBMC_BAD_FIELD
524 OFPBMCBadValue = 7 // OFPBMC_BAD_VALUE
525 OFPBMCBadMask = 8 // OFPBMC_BAD_MASK
526 OFPBMCBadPrereq = 9 // OFPBMC_BAD_PREREQ
527 OFPBMCDupField = 10 // OFPBMC_DUP_FIELD
528 OFPBMCEperm = 11 // OFPBMC_EPERM
529)
530
531type BadMatchCode uint16
532
533func (self BadMatchCode) MarshalJSON() ([]byte, error) {
534 return []byte(fmt.Sprintf("%d", self)), nil
535}
536
537const (
538 // Identifiers from group ofp_bad_request_code
539 OFPBRCBadVersion = 0 // OFPBRC_BAD_VERSION
540 OFPBRCBadType = 1 // OFPBRC_BAD_TYPE
541 OFPBRCBadStat = 2 // OFPBRC_BAD_STAT
542 OFPBRCBadExperimenter = 3 // OFPBRC_BAD_EXPERIMENTER
543 OFPBRCBadExperimenterType = 4 // OFPBRC_BAD_EXPERIMENTER_TYPE
544 OFPBRCEperm = 5 // OFPBRC_EPERM
545 OFPBRCBadLen = 6 // OFPBRC_BAD_LEN
546 OFPBRCBufferEmpty = 7 // OFPBRC_BUFFER_EMPTY
547 OFPBRCBufferUnknown = 8 // OFPBRC_BUFFER_UNKNOWN
548 OFPBRCBadTableID = 9 // OFPBRC_BAD_TABLE_ID
549 OFPBRCIsSlave = 10 // OFPBRC_IS_SLAVE
550 OFPBRCBadPort = 11 // OFPBRC_BAD_PORT
551 OFPBRCBadPacket = 12 // OFPBRC_BAD_PACKET
552 OFPBRCMultipartBufferOverflow = 13 // OFPBRC_MULTIPART_BUFFER_OVERFLOW
553)
554
555type BadRequestCode uint16
556
557func (self BadRequestCode) MarshalJSON() ([]byte, error) {
558 return []byte(fmt.Sprintf("%d", self)), nil
559}
560
561const (
562 // Identifiers from group ofp_bsn_anchor
563 BSNAnchorPacketStart = 0 // OFP_BSN_ANCHOR_PACKET_START
564 BSNAnchorL3HeaderStart = 1 // OFP_BSN_ANCHOR_L3_HEADER_START
565 BSNAnchorL4HeaderStart = 2 // OFP_BSN_ANCHOR_L4_HEADER_START
566 BSNAnchorL4PayloadStart = 3 // OFP_BSN_ANCHOR_L4_PAYLOAD_START
567)
568
569type BsnAnchor uint16
570
571func (self BsnAnchor) MarshalJSON() ([]byte, error) {
572 return []byte(fmt.Sprintf("%d", self)), nil
573}
574
575const (
576 // Identifiers from group ofp_bsn_auto_negotiation_type
577 BSNAutoNegotiationDefault = 0 // OFP_BSN_AUTO_NEGOTIATION_DEFAULT
578 BSNAutoNegotiationEnable = 1 // OFP_BSN_AUTO_NEGOTIATION_ENABLE
579 BSNAutoNegotiationDisable = 2 // OFP_BSN_AUTO_NEGOTIATION_DISABLE
580)
581
582type BsnAutoNegotiationType uint8
583
584func (self BsnAutoNegotiationType) MarshalJSON() ([]byte, error) {
585 return []byte(fmt.Sprintf("%d", self)), nil
586}
587
588const (
589 // Identifiers from group ofp_bsn_bfd_endpoint
590 BSNBfdUnused = 0 // OFP_BSN_BFD_UNUSED
591 BSNBfdMicro = 1 // OFP_BSN_BFD_MICRO
592 BSNBfd1Hop = 2 // OFP_BSN_BFD_1_HOP
593 BSNBfdMultiHop = 3 // OFP_BSN_BFD_MULTI_HOP
594)
595
596type BsnBfdEndpoint uint8
597
598func (self BsnBfdEndpoint) MarshalJSON() ([]byte, error) {
599 return []byte(fmt.Sprintf("%d", self)), nil
600}
601
602const (
603 // Identifiers from group ofp_bsn_bfd_endpoint_state
604 BSNBfdEndpointStateAdmindown = 0 // OFP_BSN_BFD_ENDPOINT_STATE_ADMINDOWN
605 BSNBfdEndpointStateDown = 1 // OFP_BSN_BFD_ENDPOINT_STATE_DOWN
606 BSNBfdEndpointStateInit = 2 // OFP_BSN_BFD_ENDPOINT_STATE_INIT
607 BSNBfdEndpointStateUp = 3 // OFP_BSN_BFD_ENDPOINT_STATE_UP
608 BSNBfdEndpointSessionError = 4 // OFP_BSN_BFD_ENDPOINT_SESSION_ERROR
609 BSNBfdEndpointRemoteAdmindown = 5 // OFP_BSN_BFD_ENDPOINT_REMOTE_ADMINDOWN
610 BSNBfdEndpointParamsChange = 6 // OFP_BSN_BFD_ENDPOINT_PARAMS_CHANGE
611)
612
613type BsnBfdEndpointState uint8
614
615func (self BsnBfdEndpointState) MarshalJSON() ([]byte, error) {
616 return []byte(fmt.Sprintf("%d", self)), nil
617}
618
619const (
Jonathan Hart828908c2020-04-15 14:23:45 -0700620 // Identifiers from group ofp_bsn_cml
621 BSNCmlNone = 0 // OFP_BSN_CML_NONE
622 BSNCmlCpuDrop = 1 // OFP_BSN_CML_CPU_DROP
623 BSNCmlForward = 2 // OFP_BSN_CML_FORWARD
624 BSNCmlCpuForward = 3 // OFP_BSN_CML_CPU_FORWARD
625)
626
627type BsnCml uint16
628
629func (self BsnCml) MarshalJSON() ([]byte, error) {
630 return []byte(fmt.Sprintf("%d", self)), nil
631}
632
633const (
Don Newton98fd8812019-09-23 15:15:02 -0400634 // Identifiers from group ofp_bsn_controller_connection_state
635 BSNControllerConnectionStateDisconnected = 0 // OFP_BSN_CONTROLLER_CONNECTION_STATE_DISCONNECTED
636 BSNControllerConnectionStateConnected = 1 // OFP_BSN_CONTROLLER_CONNECTION_STATE_CONNECTED
637)
638
639type BsnControllerConnectionState uint8
640
641func (self BsnControllerConnectionState) MarshalJSON() ([]byte, error) {
642 return []byte(fmt.Sprintf("%d", self)), nil
643}
644
645const (
646 // Identifiers from group ofp_bsn_controller_role_reason
647 BSNControllerRoleReasonMasterRequest = 0 // OFP_BSN_CONTROLLER_ROLE_REASON_MASTER_REQUEST
648 BSNControllerRoleReasonConfig = 1 // OFP_BSN_CONTROLLER_ROLE_REASON_CONFIG
649 BSNControllerRoleReasonExperimenter = 2 // OFP_BSN_CONTROLLER_ROLE_REASON_EXPERIMENTER
650)
651
652type BsnControllerRoleReason uint8
653
654func (self BsnControllerRoleReason) MarshalJSON() ([]byte, error) {
655 return []byte(fmt.Sprintf("%d", self)), nil
656}
657
658const (
659 // Identifiers from group ofp_bsn_decap
660 BSNDecapVxlan = 0 // OFP_BSN_DECAP_VXLAN
661 BSNDecapErspan = 1 // OFP_BSN_DECAP_ERSPAN
662 BSNDecapL2GRE = 2 // OFP_BSN_DECAP_L2_GRE
663 BSNDecapNvgre = 3 // OFP_BSN_DECAP_NVGRE
664 BSNDecapCapwap = 4 // OFP_BSN_DECAP_CAPWAP
665 BSNDecapL2Mpls = 5 // OFP_BSN_DECAP_L2_MPLS
666 BSNDecapL3GRE = 6 // OFP_BSN_DECAP_L3_GRE
667 BSNDecapGtp = 7 // OFP_BSN_DECAP_GTP
668 BSNDecapL3Mpls = 8 // OFP_BSN_DECAP_L3_MPLS
669)
670
671type BsnDecap uint16
672
673func (self BsnDecap) MarshalJSON() ([]byte, error) {
674 return []byte(fmt.Sprintf("%d", self)), nil
675}
676
677const (
678 // Identifiers from group ofp_bsn_encap
679 BSNEncapUnused = 0 // OFP_BSN_ENCAP_UNUSED
680 BSNEncapIpv4Udp = 1 // OFP_BSN_ENCAP_IPV4_UDP
681 BSNEncapIpv6Udp = 2 // OFP_BSN_ENCAP_IPV6_UDP
682)
683
684type BsnEncap uint8
685
686func (self BsnEncap) MarshalJSON() ([]byte, error) {
687 return []byte(fmt.Sprintf("%d", self)), nil
688}
689
690const (
691 // Identifiers from group ofp_bsn_enhanced_hash_type
692 BSNEnhancedHashL2 = 1 // OFP_BSN_ENHANCED_HASH_L2
693 BSNEnhancedHashL3 = 2 // OFP_BSN_ENHANCED_HASH_L3
694 BSNEnhancedHashL2Gre = 4 // OFP_BSN_ENHANCED_HASH_L2GRE
695 BSNEnhancedHashMpls = 8 // OFP_BSN_ENHANCED_HASH_MPLS
696 BSNEnhancedHashGtp = 16 // OFP_BSN_ENHANCED_HASH_GTP
697 BSNEnhancedHashSymmetric = 32 // OFP_BSN_ENHANCED_HASH_SYMMETRIC
698)
699
700type BsnEnhancedHashType uint64
701
702func (self BsnEnhancedHashType) MarshalJSON() ([]byte, error) {
703 var flags []string
704 if self&BSNEnhancedHashL2 == BSNEnhancedHashL2 {
705 flags = append(flags, "\"L2\": true")
706 }
707 if self&BSNEnhancedHashL3 == BSNEnhancedHashL3 {
708 flags = append(flags, "\"L3\": true")
709 }
710 if self&BSNEnhancedHashL2Gre == BSNEnhancedHashL2Gre {
711 flags = append(flags, "\"L2Gre\": true")
712 }
713 if self&BSNEnhancedHashMpls == BSNEnhancedHashMpls {
714 flags = append(flags, "\"Mpls\": true")
715 }
716 if self&BSNEnhancedHashGtp == BSNEnhancedHashGtp {
717 flags = append(flags, "\"Gtp\": true")
718 }
719 if self&BSNEnhancedHashSymmetric == BSNEnhancedHashSymmetric {
720 flags = append(flags, "\"Symmetric\": true")
721 }
722 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
723}
724
725const (
726 // Identifiers from group ofp_bsn_fabric_port_role
727 BSNFabricPortRolePartitionedSpine = 1 // OFP_BSN_FABRIC_PORT_ROLE_PARTITIONED_SPINE
728)
729
730type BsnFabricPortRole uint16
731
732func (self BsnFabricPortRole) MarshalJSON() ([]byte, error) {
733 return []byte(fmt.Sprintf("%d", self)), nil
734}
735
736const (
737 // Identifiers from group ofp_bsn_flow_classifier
738 BSNFlowClassifierNone = 0 // OFP_BSN_FLOW_CLASSIFIER_NONE
739 BSNFlowClassifierL2Bc = 1 // OFP_BSN_FLOW_CLASSIFIER_L2BC
740 BSNFlowClassifierL2Uc = 2 // OFP_BSN_FLOW_CLASSIFIER_L2UC
741 BSNFlowClassifierL2Unknown = 3 // OFP_BSN_FLOW_CLASSIFIER_L2UNKNOWN
742 BSNFlowClassifierL2Mcknown = 4 // OFP_BSN_FLOW_CLASSIFIER_L2MCKNOWN
743 BSNFlowClassifierL2Mcunknown = 5 // OFP_BSN_FLOW_CLASSIFIER_L2MCUNKNOWN
744 BSNFlowClassifierL3Mcunknown = 6 // OFP_BSN_FLOW_CLASSIFIER_L3MCUNKNOWN
745 BSNFlowClassifierL3Mcknown = 7 // OFP_BSN_FLOW_CLASSIFIER_L3MCKNOWN
746 BSNFlowClassifierL3Ucknown = 8 // OFP_BSN_FLOW_CLASSIFIER_L3UCKNOWN
747 BSNFlowClassifierL3Ucunknown = 9 // OFP_BSN_FLOW_CLASSIFIER_L3UCUNKNOWN
748)
749
750type BsnFlowClassifier uint16
751
752func (self BsnFlowClassifier) MarshalJSON() ([]byte, error) {
753 return []byte(fmt.Sprintf("%d", self)), nil
754}
755
756const (
757 // Identifiers from group ofp_bsn_forward_error_correction_type
758 BSNForwardErrorCorrectionDefault = 0 // OFP_BSN_FORWARD_ERROR_CORRECTION_DEFAULT
759 BSNForwardErrorCorrectionEnable = 1 // OFP_BSN_FORWARD_ERROR_CORRECTION_ENABLE
760 BSNForwardErrorCorrectionDisable = 2 // OFP_BSN_FORWARD_ERROR_CORRECTION_DISABLE
761)
762
763type BsnForwardErrorCorrectionType uint8
764
765func (self BsnForwardErrorCorrectionType) MarshalJSON() ([]byte, error) {
766 return []byte(fmt.Sprintf("%d", self)), nil
767}
768
769const (
770 // Identifiers from group ofp_bsn_hash_algorithm_type
771 BSNHashAlgorithmCrc16Xor8 = 0 // OFP_BSN_HASH_ALGORITHM_CRC16XOR8
772 BSNHashAlgorithmCrc16Xor4 = 1 // OFP_BSN_HASH_ALGORITHM_CRC16XOR4
773 BSNHashAlgorithmCrc16Xor2 = 2 // OFP_BSN_HASH_ALGORITHM_CRC16XOR2
774 BSNHashAlgorithmCrc16Xor1 = 3 // OFP_BSN_HASH_ALGORITHM_CRC16XOR1
775 BSNHashAlgorithmCrc16 = 4 // OFP_BSN_HASH_ALGORITHM_CRC16
776 BSNHashAlgorithmXor16 = 5 // OFP_BSN_HASH_ALGORITHM_XOR16
777 BSNHashAlgorithmCrc16Ccitt = 6 // OFP_BSN_HASH_ALGORITHM_CRC16CCITT
778 BSNHashAlgorithmCrc32Lo = 7 // OFP_BSN_HASH_ALGORITHM_CRC32LO
779 BSNHashAlgorithmCrc32Hi = 8 // OFP_BSN_HASH_ALGORITHM_CRC32HI
780)
781
782type BsnHashAlgorithmType uint16
783
784func (self BsnHashAlgorithmType) MarshalJSON() ([]byte, error) {
785 return []byte(fmt.Sprintf("%d", self)), nil
786}
787
788const (
789 // Identifiers from group ofp_bsn_hash_select_flags
790 BSNHashSelectSrcIp = 1 // OFP_BSN_HASH_SELECT_SRC_IP
791 BSNHashSelectDstIp = 2 // OFP_BSN_HASH_SELECT_DST_IP
792)
793
794type BsnHashSelectFlags uint32
795
796func (self BsnHashSelectFlags) MarshalJSON() ([]byte, error) {
797 var flags []string
798 if self&BSNHashSelectSrcIp == BSNHashSelectSrcIp {
799 flags = append(flags, "\"SrcIp\": true")
800 }
801 if self&BSNHashSelectDstIp == BSNHashSelectDstIp {
802 flags = append(flags, "\"DstIp\": true")
803 }
804 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
805}
806
807const (
808 // Identifiers from group ofp_bsn_ip_tunnel_type
809 BSNIpTunnelTypeNone = 0 // OFP_BSN_IP_TUNNEL_TYPE_NONE
810 BSNIpTunnelTypePim = 1 // OFP_BSN_IP_TUNNEL_TYPE_PIM
811)
812
813type BsnIpTunnelType uint16
814
815func (self BsnIpTunnelType) MarshalJSON() ([]byte, error) {
816 return []byte(fmt.Sprintf("%d", self)), nil
817}
818
819const (
820 // Identifiers from group ofp_bsn_lacp_state
821 BSNLacpStateActivity = 1 // OFP_BSN_LACP_STATE_ACTIVITY
822 BSNLacpStateTimeout = 2 // OFP_BSN_LACP_STATE_TIMEOUT
823 BSNLacpStateAggregation = 4 // OFP_BSN_LACP_STATE_AGGREGATION
824 BSNLacpStateSynchronization = 8 // OFP_BSN_LACP_STATE_SYNCHRONIZATION
825 BSNLacpStateCollecting = 16 // OFP_BSN_LACP_STATE_COLLECTING
826 BSNLacpStateDistributing = 32 // OFP_BSN_LACP_STATE_DISTRIBUTING
827 BSNLacpStateDefaulted = 64 // OFP_BSN_LACP_STATE_DEFAULTED
828 BSNLacpStateExpired = 128 // OFP_BSN_LACP_STATE_EXPIRED
829)
830
831type BsnLacpState uint8
832
833func (self BsnLacpState) MarshalJSON() ([]byte, error) {
834 var flags []string
835 if self&BSNLacpStateActivity == BSNLacpStateActivity {
836 flags = append(flags, "\"Activity\": true")
837 }
838 if self&BSNLacpStateTimeout == BSNLacpStateTimeout {
839 flags = append(flags, "\"Timeout\": true")
840 }
841 if self&BSNLacpStateAggregation == BSNLacpStateAggregation {
842 flags = append(flags, "\"Aggregation\": true")
843 }
844 if self&BSNLacpStateSynchronization == BSNLacpStateSynchronization {
845 flags = append(flags, "\"Synchronization\": true")
846 }
847 if self&BSNLacpStateCollecting == BSNLacpStateCollecting {
848 flags = append(flags, "\"Collecting\": true")
849 }
850 if self&BSNLacpStateDistributing == BSNLacpStateDistributing {
851 flags = append(flags, "\"Distributing\": true")
852 }
853 if self&BSNLacpStateDefaulted == BSNLacpStateDefaulted {
854 flags = append(flags, "\"Defaulted\": true")
855 }
856 if self&BSNLacpStateExpired == BSNLacpStateExpired {
857 flags = append(flags, "\"Expired\": true")
858 }
859 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
860}
861
862const (
863 // Identifiers from group ofp_bsn_lag_flag
864 BSNLagFlagAutoRecovery = 1 // OFP_BSN_LAG_FLAG_AUTO_RECOVERY
865)
866
867type BsnLagFlag uint16
868
869func (self BsnLagFlag) MarshalJSON() ([]byte, error) {
870 var flags []string
871 if self&BSNLagFlagAutoRecovery == BSNLagFlagAutoRecovery {
872 flags = append(flags, "\"BSNLagFlagAutoRecovery\": true")
873 }
874 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
875}
876
877const (
878 // Identifiers from group ofp_bsn_loglevel
879 BSNLoglevelMsg = 0 // OFP_BSN_LOGLEVEL_MSG
880 BSNLoglevelError = 1 // OFP_BSN_LOGLEVEL_ERROR
881 BSNLoglevelWarn = 2 // OFP_BSN_LOGLEVEL_WARN
882 BSNLoglevelInfo = 3 // OFP_BSN_LOGLEVEL_INFO
883 BSNLoglevelVerbose = 4 // OFP_BSN_LOGLEVEL_VERBOSE
884 BSNLoglevelTrace = 5 // OFP_BSN_LOGLEVEL_TRACE
885)
886
887type BsnLoglevel uint8
888
889func (self BsnLoglevel) MarshalJSON() ([]byte, error) {
890 return []byte(fmt.Sprintf("%d", self)), nil
891}
892
893const (
894 // Identifiers from group ofp_bsn_loopback_mode
895 BSNLoopbackModeNone = 0 // OFP_BSN_LOOPBACK_MODE_NONE
896 BSNLoopbackModeMAC = 1 // OFP_BSN_LOOPBACK_MODE_MAC
897 BSNLoopbackModePhy = 2 // OFP_BSN_LOOPBACK_MODE_PHY
898 BSNLoopbackModePhyRemote = 3 // OFP_BSN_LOOPBACK_MODE_PHY_REMOTE
899)
900
901type BsnLoopbackMode uint8
902
903func (self BsnLoopbackMode) MarshalJSON() ([]byte, error) {
904 return []byte(fmt.Sprintf("%d", self)), nil
905}
906
907const (
908 // Identifiers from group ofp_bsn_lua_upload_flags
909 BSNLuaUploadMore = 1 // OFP_BSN_LUA_UPLOAD_MORE
910 BSNLuaUploadForce = 2 // OFP_BSN_LUA_UPLOAD_FORCE
911)
912
913type BsnLuaUploadFlags uint16
914
915func (self BsnLuaUploadFlags) MarshalJSON() ([]byte, error) {
916 var flags []string
917 if self&BSNLuaUploadMore == BSNLuaUploadMore {
918 flags = append(flags, "\"More\": true")
919 }
920 if self&BSNLuaUploadForce == BSNLuaUploadForce {
921 flags = append(flags, "\"Force\": true")
922 }
923 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
924}
925
926const (
927 // Identifiers from group ofp_bsn_multicast_packet
928 BSNMulticastPacketNone = 0 // OFP_BSN_MULTICAST_PACKET_NONE
929 BSNMulticastPacketPimHello = 1 // OFP_BSN_MULTICAST_PACKET_PIM_HELLO
930 BSNMulticastPacketPimJoinPrune = 2 // OFP_BSN_MULTICAST_PACKET_PIM_JOIN_PRUNE
931 BSNMulticastPacketPimAssert = 3 // OFP_BSN_MULTICAST_PACKET_PIM_ASSERT
932)
933
934type BsnMulticastPacket uint16
935
936func (self BsnMulticastPacket) MarshalJSON() ([]byte, error) {
937 return []byte(fmt.Sprintf("%d", self)), nil
938}
939
940const (
941 // Identifiers from group ofp_bsn_pktin_flag
Jonathan Hart828908c2020-04-15 14:23:45 -0700942 BSNPktinFlagPdu = 1 // OFP_BSN_PKTIN_FLAG_PDU
943 BSNPktinFlagNewHost = 2 // OFP_BSN_PKTIN_FLAG_NEW_HOST
944 BSNPktinFlagStationMove = 4 // OFP_BSN_PKTIN_FLAG_STATION_MOVE
945 BSNPktinFlagARP = 8 // OFP_BSN_PKTIN_FLAG_ARP
946 BSNPktinFlagDhcp = 16 // OFP_BSN_PKTIN_FLAG_DHCP
947 BSNPktinFlagL2Cpu = 32 // OFP_BSN_PKTIN_FLAG_L2_CPU
948 BSNPktinFlagDebug = 64 // OFP_BSN_PKTIN_FLAG_DEBUG
949 BSNPktinFlagTtlExpired = 128 // OFP_BSN_PKTIN_FLAG_TTL_EXPIRED
950 BSNPktinFlagL3Miss = 256 // OFP_BSN_PKTIN_FLAG_L3_MISS
951 BSNPktinFlagL3Cpu = 512 // OFP_BSN_PKTIN_FLAG_L3_CPU
952 BSNPktinFlagIngressAcl = 1024 // OFP_BSN_PKTIN_FLAG_INGRESS_ACL
953 BSNPktinFlagSflow = 2048 // OFP_BSN_PKTIN_FLAG_SFLOW
954 BSNPktinFlagARPCache = 4096 // OFP_BSN_PKTIN_FLAG_ARP_CACHE
955 BSNPktinFlagARPTarget = 8192 // OFP_BSN_PKTIN_FLAG_ARP_TARGET
956 BSNPktinFlagIgmp = 16384 // OFP_BSN_PKTIN_FLAG_IGMP
957 BSNPktinFlagPim = 32768 // OFP_BSN_PKTIN_FLAG_PIM
958 BSNPktinFlagVxlanSipMiss = 65536 // OFP_BSN_PKTIN_FLAG_VXLAN_SIP_MISS
959 BSNPktinFlagMcReserved = 131072 // OFP_BSN_PKTIN_FLAG_MC_RESERVED
960 BSNPktinFlagAnalytics = 262144 // OFP_BSN_PKTIN_FLAG_ANALYTICS
961 BSNPktinFlagIcmpv6 = 524288 // OFP_BSN_PKTIN_FLAG_ICMPV6
962 BSNPktinFlagIngressAclLocal = 1048576 // OFP_BSN_PKTIN_FLAG_INGRESS_ACL_LOCAL
963 BSNPktinFlagIpmcMiss = 2097152 // OFP_BSN_PKTIN_FLAG_IPMC_MISS
964 BSNPktinFlagIpmcRpfFailed = 4194304 // OFP_BSN_PKTIN_FLAG_IPMC_RPF_FAILED
965 BSNPktinFlagBfdSlowpath = 8388608 // OFP_BSN_PKTIN_FLAG_BFD_SLOWPATH
966 BSNPktinFlagSflowEgress = 16777216 // OFP_BSN_PKTIN_FLAG_SFLOW_EGRESS
Don Newton98fd8812019-09-23 15:15:02 -0400967)
968
969type BsnPktinFlag uint64
970
971func (self BsnPktinFlag) MarshalJSON() ([]byte, error) {
972 var flags []string
973 if self&BSNPktinFlagPdu == BSNPktinFlagPdu {
974 flags = append(flags, "\"Pdu\": true")
975 }
976 if self&BSNPktinFlagNewHost == BSNPktinFlagNewHost {
977 flags = append(flags, "\"NewHost\": true")
978 }
979 if self&BSNPktinFlagStationMove == BSNPktinFlagStationMove {
980 flags = append(flags, "\"StationMove\": true")
981 }
982 if self&BSNPktinFlagARP == BSNPktinFlagARP {
983 flags = append(flags, "\"Arp\": true")
984 }
985 if self&BSNPktinFlagDhcp == BSNPktinFlagDhcp {
986 flags = append(flags, "\"Dhcp\": true")
987 }
988 if self&BSNPktinFlagL2Cpu == BSNPktinFlagL2Cpu {
989 flags = append(flags, "\"L2Cpu\": true")
990 }
991 if self&BSNPktinFlagDebug == BSNPktinFlagDebug {
992 flags = append(flags, "\"Debug\": true")
993 }
994 if self&BSNPktinFlagTtlExpired == BSNPktinFlagTtlExpired {
995 flags = append(flags, "\"TtlExpired\": true")
996 }
997 if self&BSNPktinFlagL3Miss == BSNPktinFlagL3Miss {
998 flags = append(flags, "\"L3Miss\": true")
999 }
1000 if self&BSNPktinFlagL3Cpu == BSNPktinFlagL3Cpu {
1001 flags = append(flags, "\"L3Cpu\": true")
1002 }
1003 if self&BSNPktinFlagIngressAcl == BSNPktinFlagIngressAcl {
1004 flags = append(flags, "\"IngressAcl\": true")
1005 }
1006 if self&BSNPktinFlagSflow == BSNPktinFlagSflow {
1007 flags = append(flags, "\"Sflow\": true")
1008 }
1009 if self&BSNPktinFlagARPCache == BSNPktinFlagARPCache {
1010 flags = append(flags, "\"ArpCache\": true")
1011 }
1012 if self&BSNPktinFlagARPTarget == BSNPktinFlagARPTarget {
1013 flags = append(flags, "\"ArpTarget\": true")
1014 }
1015 if self&BSNPktinFlagIgmp == BSNPktinFlagIgmp {
1016 flags = append(flags, "\"Igmp\": true")
1017 }
1018 if self&BSNPktinFlagPim == BSNPktinFlagPim {
1019 flags = append(flags, "\"Pim\": true")
1020 }
1021 if self&BSNPktinFlagVxlanSipMiss == BSNPktinFlagVxlanSipMiss {
1022 flags = append(flags, "\"VxlanSipMiss\": true")
1023 }
1024 if self&BSNPktinFlagMcReserved == BSNPktinFlagMcReserved {
1025 flags = append(flags, "\"McReserved\": true")
1026 }
1027 if self&BSNPktinFlagAnalytics == BSNPktinFlagAnalytics {
1028 flags = append(flags, "\"Analytics\": true")
1029 }
1030 if self&BSNPktinFlagIcmpv6 == BSNPktinFlagIcmpv6 {
1031 flags = append(flags, "\"Icmpv6\": true")
1032 }
1033 if self&BSNPktinFlagIngressAclLocal == BSNPktinFlagIngressAclLocal {
1034 flags = append(flags, "\"IngressAclLocal\": true")
1035 }
1036 if self&BSNPktinFlagIpmcMiss == BSNPktinFlagIpmcMiss {
1037 flags = append(flags, "\"IpmcMiss\": true")
1038 }
1039 if self&BSNPktinFlagIpmcRpfFailed == BSNPktinFlagIpmcRpfFailed {
1040 flags = append(flags, "\"IpmcRpfFailed\": true")
1041 }
1042 if self&BSNPktinFlagBfdSlowpath == BSNPktinFlagBfdSlowpath {
1043 flags = append(flags, "\"BfdSlowpath\": true")
1044 }
Jonathan Hart828908c2020-04-15 14:23:45 -07001045 if self&BSNPktinFlagSflowEgress == BSNPktinFlagSflowEgress {
1046 flags = append(flags, "\"SflowEgress\": true")
1047 }
Don Newton98fd8812019-09-23 15:15:02 -04001048 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
1049}
1050
1051const (
1052 // Identifiers from group ofp_bsn_port_counter
1053 BSNPortCounterRxBytes = 0 // OFP_BSN_PORT_COUNTER_RX_BYTES
1054 BSNPortCounterRxPacketsUnicast = 1 // OFP_BSN_PORT_COUNTER_RX_PACKETS_UNICAST
1055 BSNPortCounterRxPacketsBroadcast = 2 // OFP_BSN_PORT_COUNTER_RX_PACKETS_BROADCAST
1056 BSNPortCounterRxPacketsMulticast = 3 // OFP_BSN_PORT_COUNTER_RX_PACKETS_MULTICAST
1057 BSNPortCounterRxDropped = 4 // OFP_BSN_PORT_COUNTER_RX_DROPPED
1058 BSNPortCounterRxErrors = 5 // OFP_BSN_PORT_COUNTER_RX_ERRORS
1059 BSNPortCounterTxBytes = 6 // OFP_BSN_PORT_COUNTER_TX_BYTES
1060 BSNPortCounterTxPacketsUnicast = 7 // OFP_BSN_PORT_COUNTER_TX_PACKETS_UNICAST
1061 BSNPortCounterTxPacketsBroadcast = 8 // OFP_BSN_PORT_COUNTER_TX_PACKETS_BROADCAST
1062 BSNPortCounterTxPacketsMulticast = 9 // OFP_BSN_PORT_COUNTER_TX_PACKETS_MULTICAST
1063 BSNPortCounterTxDropped = 10 // OFP_BSN_PORT_COUNTER_TX_DROPPED
1064 BSNPortCounterTxErrors = 11 // OFP_BSN_PORT_COUNTER_TX_ERRORS
1065 BSNPortCounterRxRunts = 12 // OFP_BSN_PORT_COUNTER_RX_RUNTS
1066 BSNPortCounterRxGiants = 13 // OFP_BSN_PORT_COUNTER_RX_GIANTS
1067 BSNPortCounterRxCrcErrors = 14 // OFP_BSN_PORT_COUNTER_RX_CRC_ERRORS
1068 BSNPortCounterRxAlignmentErrors = 15 // OFP_BSN_PORT_COUNTER_RX_ALIGNMENT_ERRORS
1069 BSNPortCounterRxSymbolErrors = 16 // OFP_BSN_PORT_COUNTER_RX_SYMBOL_ERRORS
1070 BSNPortCounterRxPauseInput = 17 // OFP_BSN_PORT_COUNTER_RX_PAUSE_INPUT
1071 BSNPortCounterTxCollisions = 18 // OFP_BSN_PORT_COUNTER_TX_COLLISIONS
1072 BSNPortCounterTxLateCollisions = 19 // OFP_BSN_PORT_COUNTER_TX_LATE_COLLISIONS
1073 BSNPortCounterTxDeferred = 20 // OFP_BSN_PORT_COUNTER_TX_DEFERRED
1074 BSNPortCounterTxPauseOutput = 21 // OFP_BSN_PORT_COUNTER_TX_PAUSE_OUTPUT
1075 BSNPortCounterRxPackets = 22 // OFP_BSN_PORT_COUNTER_RX_PACKETS
1076 BSNPortCounterTxPackets = 23 // OFP_BSN_PORT_COUNTER_TX_PACKETS
1077 BSNPortCounterRxLengthErrors = 24 // OFP_BSN_PORT_COUNTER_RX_LENGTH_ERRORS
1078 BSNPortCounterRxOverflowErrors = 25 // OFP_BSN_PORT_COUNTER_RX_OVERFLOW_ERRORS
1079 BSNPortCounterTxCarrierErrors = 26 // OFP_BSN_PORT_COUNTER_TX_CARRIER_ERRORS
1080 BSNPortCounterRxPacketsBadVLAN = 27 // OFP_BSN_PORT_COUNTER_RX_PACKETS_BAD_VLAN
1081 BSNPortCounterLinkUp = 28 // OFP_BSN_PORT_COUNTER_LINK_UP
1082 BSNPortCounterLinkDown = 29 // OFP_BSN_PORT_COUNTER_LINK_DOWN
1083 BSNPortCounterRxPfcControlFrame = 30 // OFP_BSN_PORT_COUNTER_RX_PFC_CONTROL_FRAME
1084 BSNPortCounterTxPfcControlFrame = 31 // OFP_BSN_PORT_COUNTER_TX_PFC_CONTROL_FRAME
1085 BSNPortCounterRxPfcFrameXonPriority0 = 32 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_XON_PRIORITY_0
1086 BSNPortCounterRxPfcFrameXonPriority1 = 33 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_XON_PRIORITY_1
1087 BSNPortCounterRxPfcFrameXonPriority2 = 34 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_XON_PRIORITY_2
1088 BSNPortCounterRxPfcFrameXonPriority3 = 35 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_XON_PRIORITY_3
1089 BSNPortCounterRxPfcFrameXonPriority4 = 36 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_XON_PRIORITY_4
1090 BSNPortCounterRxPfcFrameXonPriority5 = 37 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_XON_PRIORITY_5
1091 BSNPortCounterRxPfcFrameXonPriority6 = 38 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_XON_PRIORITY_6
1092 BSNPortCounterRxPfcFrameXonPriority7 = 39 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_XON_PRIORITY_7
1093 BSNPortCounterRxPfcFramePriority0 = 40 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_PRIORITY_0
1094 BSNPortCounterRxPfcFramePriority1 = 41 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_PRIORITY_1
1095 BSNPortCounterRxPfcFramePriority2 = 42 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_PRIORITY_2
1096 BSNPortCounterRxPfcFramePriority3 = 43 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_PRIORITY_3
1097 BSNPortCounterRxPfcFramePriority4 = 44 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_PRIORITY_4
1098 BSNPortCounterRxPfcFramePriority5 = 45 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_PRIORITY_5
1099 BSNPortCounterRxPfcFramePriority6 = 46 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_PRIORITY_6
1100 BSNPortCounterRxPfcFramePriority7 = 47 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_PRIORITY_7
1101 BSNPortCounterTxPfcFramePriority0 = 48 // OFP_BSN_PORT_COUNTER_TX_PFC_FRAME_PRIORITY_0
1102 BSNPortCounterTxPfcFramePriority1 = 49 // OFP_BSN_PORT_COUNTER_TX_PFC_FRAME_PRIORITY_1
1103 BSNPortCounterTxPfcFramePriority2 = 50 // OFP_BSN_PORT_COUNTER_TX_PFC_FRAME_PRIORITY_2
1104 BSNPortCounterTxPfcFramePriority3 = 51 // OFP_BSN_PORT_COUNTER_TX_PFC_FRAME_PRIORITY_3
1105 BSNPortCounterTxPfcFramePriority4 = 52 // OFP_BSN_PORT_COUNTER_TX_PFC_FRAME_PRIORITY_4
1106 BSNPortCounterTxPfcFramePriority5 = 53 // OFP_BSN_PORT_COUNTER_TX_PFC_FRAME_PRIORITY_5
1107 BSNPortCounterTxPfcFramePriority6 = 54 // OFP_BSN_PORT_COUNTER_TX_PFC_FRAME_PRIORITY_6
1108 BSNPortCounterTxPfcFramePriority7 = 55 // OFP_BSN_PORT_COUNTER_TX_PFC_FRAME_PRIORITY_7
1109)
1110
1111type BsnPortCounter uint8
1112
1113func (self BsnPortCounter) MarshalJSON() ([]byte, error) {
1114 return []byte(fmt.Sprintf("%d", self)), nil
1115}
1116
1117const (
1118 // Identifiers from group ofp_bsn_port_mode
1119 BSNPortModeNone = 0 // OFP_BSN_PORT_MODE_NONE
1120 BSNPortMode4Xx = 1 // OFP_BSN_PORT_MODE_4XX
1121 BSNPortMode4X1 = 2 // OFP_BSN_PORT_MODE_4X1
1122 BSNPortMode4X10 = 3 // OFP_BSN_PORT_MODE_4X10
1123 BSNPortMode4X25 = 4 // OFP_BSN_PORT_MODE_4X25
1124 BSNPortMode2X50 = 5 // OFP_BSN_PORT_MODE_2X50
1125 BSNPortMode1X1 = 6 // OFP_BSN_PORT_MODE_1X1
1126 BSNPortMode1X10 = 7 // OFP_BSN_PORT_MODE_1X10
1127 BSNPortMode1X25 = 8 // OFP_BSN_PORT_MODE_1X25
1128 BSNPortMode1X40 = 9 // OFP_BSN_PORT_MODE_1X40
1129 BSNPortMode1X100 = 10 // OFP_BSN_PORT_MODE_1X100
1130)
1131
1132type BsnPortMode uint16
1133
1134func (self BsnPortMode) MarshalJSON() ([]byte, error) {
1135 return []byte(fmt.Sprintf("%d", self)), nil
1136}
1137
1138const (
1139 // Identifiers from group ofp_bsn_port_speed_gbps_type
1140 BSNPortSpeedGbps1 = 1 // OFP_BSN_PORT_SPEED_GBPS_1
1141 BSNPortSpeedGbps10 = 10 // OFP_BSN_PORT_SPEED_GBPS_10
1142 BSNPortSpeedGbps25 = 25 // OFP_BSN_PORT_SPEED_GBPS_25
1143 BSNPortSpeedGbps40 = 40 // OFP_BSN_PORT_SPEED_GBPS_40
1144 BSNPortSpeedGbps50 = 50 // OFP_BSN_PORT_SPEED_GBPS_50
1145 BSNPortSpeedGbps100 = 100 // OFP_BSN_PORT_SPEED_GBPS_100
1146)
1147
1148type BsnPortSpeedGbpsType uint32
1149
1150func (self BsnPortSpeedGbpsType) MarshalJSON() ([]byte, error) {
1151 return []byte(fmt.Sprintf("%d", self)), nil
1152}
1153
1154const (
1155 // Identifiers from group ofp_bsn_port_usage
1156 BSNPortUnused = 0 // OFP_BSN_PORT_UNUSED
1157 BSNPortTransmitOnly = 1 // OFP_BSN_PORT_TRANSMIT_ONLY
1158 BSNPortReceiveOnly = 2 // OFP_BSN_PORT_RECEIVE_ONLY
1159 BSNPortBidirection = 3 // OFP_BSN_PORT_BIDIRECTION
1160)
1161
1162type BsnPortUsage uint16
1163
1164func (self BsnPortUsage) MarshalJSON() ([]byte, error) {
1165 return []byte(fmt.Sprintf("%d", self)), nil
1166}
1167
1168const (
1169 // Identifiers from group ofp_bsn_port_vxlan_mode
1170 BSNPortVxlanRecirculationEnable = 0 // OFP_BSN_PORT_VXLAN_RECIRCULATION_ENABLE
1171 BSNPortVxlanTerminationEnable = 1 // OFP_BSN_PORT_VXLAN_TERMINATION_ENABLE
1172)
1173
1174type BsnPortVxlanMode uint8
1175
1176func (self BsnPortVxlanMode) MarshalJSON() ([]byte, error) {
1177 return []byte(fmt.Sprintf("%d", self)), nil
1178}
1179
1180const (
1181 // Identifiers from group ofp_bsn_push_vlan
1182 BSNPushVLANUntagged = 1 // OFP_BSN_PUSH_VLAN_UNTAGGED
1183 BSNPushVLANSingleTagged = 2 // OFP_BSN_PUSH_VLAN_SINGLE_TAGGED
1184 BSNPushVLANDoubleTagged = 4 // OFP_BSN_PUSH_VLAN_DOUBLE_TAGGED
1185)
1186
1187type BsnPushVlan uint8
1188
1189func (self BsnPushVlan) MarshalJSON() ([]byte, error) {
1190 var flags []string
1191 if self&BSNPushVLANUntagged == BSNPushVLANUntagged {
1192 flags = append(flags, "\"Untagged\": true")
1193 }
1194 if self&BSNPushVLANSingleTagged == BSNPushVLANSingleTagged {
1195 flags = append(flags, "\"SingleTagged\": true")
1196 }
1197 if self&BSNPushVLANDoubleTagged == BSNPushVLANDoubleTagged {
1198 flags = append(flags, "\"DoubleTagged\": true")
1199 }
1200 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
1201}
1202
1203const (
1204 // Identifiers from group ofp_bsn_rate_unit
1205 BSNRateUnitPps = 0 // OFP_BSN_RATE_UNIT_PPS
1206 BSNRateUnitKbitps = 1 // OFP_BSN_RATE_UNIT_KBITPS
1207)
1208
1209type BsnRateUnit uint8
1210
1211func (self BsnRateUnit) MarshalJSON() ([]byte, error) {
1212 return []byte(fmt.Sprintf("%d", self)), nil
1213}
1214
1215const (
1216 // Identifiers from group ofp_bsn_routing_param
1217 BSNRoutingParamOspfUcast = 1 // OFP_BSN_ROUTING_PARAM_OSPF_UCAST
1218 BSNRoutingParamOspfMcast = 2 // OFP_BSN_ROUTING_PARAM_OSPF_MCAST
1219 BSNRoutingParamARPFrr = 3 // OFP_BSN_ROUTING_PARAM_ARP_FRR
1220 BSNRoutingParamIpv6OspfUcast = 4 // OFP_BSN_ROUTING_PARAM_IPV6_OSPF_UCAST
1221 BSNRoutingParamIpv6OspfMcast = 5 // OFP_BSN_ROUTING_PARAM_IPV6_OSPF_MCAST
1222 BSNRoutingParamIpv6NdpFrr = 6 // OFP_BSN_ROUTING_PARAM_IPV6_NDP_FRR
1223)
1224
1225type BsnRoutingParam uint16
1226
1227func (self BsnRoutingParam) MarshalJSON() ([]byte, error) {
1228 return []byte(fmt.Sprintf("%d", self)), nil
1229}
1230
1231const (
1232 // Identifiers from group ofp_bsn_status
1233 BSNStatusDisable = 0 // OFP_BSN_STATUS_DISABLE
1234 BSNStatusEnable = 1 // OFP_BSN_STATUS_ENABLE
1235)
1236
1237type BsnStatus uint8
1238
1239func (self BsnStatus) MarshalJSON() ([]byte, error) {
1240 return []byte(fmt.Sprintf("%d", self)), nil
1241}
1242
1243const (
1244 // Identifiers from group ofp_bsn_strip_vlan
1245 BSNStripVLANFirst = 1 // OFP_BSN_STRIP_VLAN_FIRST
1246 BSNStripVLANSecond = 2 // OFP_BSN_STRIP_VLAN_SECOND
1247 BSNStripVLANThird = 4 // OFP_BSN_STRIP_VLAN_THIRD
1248)
1249
1250type BsnStripVlan uint8
1251
1252func (self BsnStripVlan) MarshalJSON() ([]byte, error) {
1253 var flags []string
1254 if self&BSNStripVLANFirst == BSNStripVLANFirst {
1255 flags = append(flags, "\"First\": true")
1256 }
1257 if self&BSNStripVLANSecond == BSNStripVLANSecond {
1258 flags = append(flags, "\"Second\": true")
1259 }
1260 if self&BSNStripVLANThird == BSNStripVLANThird {
1261 flags = append(flags, "\"Third\": true")
1262 }
1263 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
1264}
1265
1266const (
1267 // Identifiers from group ofp_bsn_tcp_flag
1268 BSNTCPFlagFin = 1 // OFP_BSN_TCP_FLAG_FIN
1269 BSNTCPFlagSyn = 2 // OFP_BSN_TCP_FLAG_SYN
1270 BSNTCPFlagRst = 4 // OFP_BSN_TCP_FLAG_RST
1271 BSNTCPFlagPsh = 8 // OFP_BSN_TCP_FLAG_PSH
1272 BSNTCPFlagAck = 16 // OFP_BSN_TCP_FLAG_ACK
1273 BSNTCPFlagUrg = 32 // OFP_BSN_TCP_FLAG_URG
1274 BSNTCPFlagEce = 64 // OFP_BSN_TCP_FLAG_ECE
1275 BSNTCPFlagCwr = 128 // OFP_BSN_TCP_FLAG_CWR
1276 BSNTCPFlagNs = 256 // OFP_BSN_TCP_FLAG_NS
1277)
1278
1279type BsnTcpFlag uint16
1280
1281func (self BsnTcpFlag) MarshalJSON() ([]byte, error) {
1282 var flags []string
1283 if self&BSNTCPFlagFin == BSNTCPFlagFin {
1284 flags = append(flags, "\"Fin\": true")
1285 }
1286 if self&BSNTCPFlagSyn == BSNTCPFlagSyn {
1287 flags = append(flags, "\"Syn\": true")
1288 }
1289 if self&BSNTCPFlagRst == BSNTCPFlagRst {
1290 flags = append(flags, "\"Rst\": true")
1291 }
1292 if self&BSNTCPFlagPsh == BSNTCPFlagPsh {
1293 flags = append(flags, "\"Psh\": true")
1294 }
1295 if self&BSNTCPFlagAck == BSNTCPFlagAck {
1296 flags = append(flags, "\"Ack\": true")
1297 }
1298 if self&BSNTCPFlagUrg == BSNTCPFlagUrg {
1299 flags = append(flags, "\"Urg\": true")
1300 }
1301 if self&BSNTCPFlagEce == BSNTCPFlagEce {
1302 flags = append(flags, "\"Ece\": true")
1303 }
1304 if self&BSNTCPFlagCwr == BSNTCPFlagCwr {
1305 flags = append(flags, "\"Cwr\": true")
1306 }
1307 if self&BSNTCPFlagNs == BSNTCPFlagNs {
1308 flags = append(flags, "\"Ns\": true")
1309 }
1310 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
1311}
1312
1313const (
1314 // Identifiers from group ofp_bsn_tunnel_type
1315 BSNTunnelL2Gre = 1 // OFP_BSN_TUNNEL_L2GRE
Jonathan Hart828908c2020-04-15 14:23:45 -07001316 BSNTunnelVxlan = 2 // OFP_BSN_TUNNEL_VXLAN
Don Newton98fd8812019-09-23 15:15:02 -04001317)
1318
1319type BsnTunnelType uint64
1320
1321func (self BsnTunnelType) MarshalJSON() ([]byte, error) {
1322 var flags []string
1323 if self&BSNTunnelL2Gre == BSNTunnelL2Gre {
Jonathan Hart828908c2020-04-15 14:23:45 -07001324 flags = append(flags, "\"L2Gre\": true")
1325 }
1326 if self&BSNTunnelVxlan == BSNTunnelVxlan {
1327 flags = append(flags, "\"Vxlan\": true")
Don Newton98fd8812019-09-23 15:15:02 -04001328 }
1329 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
1330}
1331
1332const (
1333 // Identifiers from group ofp_bsn_udf_anchor
1334 BSNUdfAnchorPacketStart = 0 // OFP_BSN_UDF_ANCHOR_PACKET_START
1335 BSNUdfAnchorL3HeaderStart = 1 // OFP_BSN_UDF_ANCHOR_L3_HEADER_START
1336 BSNUdfAnchorL4HeaderStart = 2 // OFP_BSN_UDF_ANCHOR_L4_HEADER_START
1337)
1338
1339type BsnUdfAnchor uint16
1340
1341func (self BsnUdfAnchor) MarshalJSON() ([]byte, error) {
1342 return []byte(fmt.Sprintf("%d", self)), nil
1343}
1344
1345const (
1346 // Identifiers from group ofp_bsn_udf_mode
1347 BSNUdf8X2Bytes = 1 // OFP_BSN_UDF_8X2_BYTES
1348)
1349
1350type BsnUdfMode uint8
1351
1352func (self BsnUdfMode) MarshalJSON() ([]byte, error) {
1353 var flags []string
1354 if self&BSNUdf8X2Bytes == BSNUdf8X2Bytes {
1355 flags = append(flags, "\"BSNUdf8X2Bytes\": true")
1356 }
1357 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
1358}
1359
1360const (
1361 // Identifiers from group ofp_bsn_upgrade
1362 BSNUpgradeInvalid = 0 // OFP_BSN_UPGRADE_INVALID
1363 BSNUpgradeInProgress = 1 // OFP_BSN_UPGRADE_IN_PROGRESS
1364)
1365
1366type BsnUpgrade uint16
1367
1368func (self BsnUpgrade) MarshalJSON() ([]byte, error) {
1369 return []byte(fmt.Sprintf("%d", self)), nil
1370}
1371
1372const (
1373 // Identifiers from group ofp_bsn_vlan_counter_constants
1374 BSNVLANAll = 65535 // OFP_BSN_VLAN_ALL
1375)
1376
1377const (
1378 // Identifiers from group ofp_bsn_vport_l2gre_flags
1379 OFBSNVportL2GreLocalMACIsValid = 1 // OF_BSN_VPORT_L2GRE_LOCAL_MAC_IS_VALID
1380 OFBSNVportL2GreDSCPAssign = 2 // OF_BSN_VPORT_L2GRE_DSCP_ASSIGN
1381 OFBSNVportL2GreDSCPCopy = 4 // OF_BSN_VPORT_L2GRE_DSCP_COPY
1382 OFBSNVportL2GreLoopbackIsValid = 8 // OF_BSN_VPORT_L2GRE_LOOPBACK_IS_VALID
1383 OFBSNVportL2GreRateLimitIsValid = 16 // OF_BSN_VPORT_L2GRE_RATE_LIMIT_IS_VALID
1384)
1385
1386type BsnVportL2GreFlags uint32
1387
1388func (self BsnVportL2GreFlags) MarshalJSON() ([]byte, error) {
1389 var flags []string
1390 if self&OFBSNVportL2GreLocalMACIsValid == OFBSNVportL2GreLocalMACIsValid {
1391 flags = append(flags, "\"LocalMACIsValid\": true")
1392 }
1393 if self&OFBSNVportL2GreDSCPAssign == OFBSNVportL2GreDSCPAssign {
1394 flags = append(flags, "\"DscpAssign\": true")
1395 }
1396 if self&OFBSNVportL2GreDSCPCopy == OFBSNVportL2GreDSCPCopy {
1397 flags = append(flags, "\"DscpCopy\": true")
1398 }
1399 if self&OFBSNVportL2GreLoopbackIsValid == OFBSNVportL2GreLoopbackIsValid {
1400 flags = append(flags, "\"LoopbackIsValid\": true")
1401 }
1402 if self&OFBSNVportL2GreRateLimitIsValid == OFBSNVportL2GreRateLimitIsValid {
1403 flags = append(flags, "\"RateLimitIsValid\": true")
1404 }
1405 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
1406}
1407
1408const (
1409 // Identifiers from group ofp_bsn_vport_q_in_q_untagged
1410 OFBSNVportQInQUntagged = 65535 // OF_BSN_VPORT_Q_IN_Q_UNTAGGED
1411)
1412
1413type BsnVportQInQUntagged uint16
1414
1415func (self BsnVportQInQUntagged) MarshalJSON() ([]byte, error) {
1416 return []byte(fmt.Sprintf("%d", self)), nil
1417}
1418
1419const (
1420 // Identifiers from group ofp_bsn_vport_status
1421 OFBSNVportStatusOk = 0 // OF_BSN_VPORT_STATUS_OK
1422 OFBSNVportStatusFailed = 1 // OF_BSN_VPORT_STATUS_FAILED
1423)
1424
1425const (
1426 // Identifiers from group ofp_bsn_vrf_counter_constants
1427 BSNVrfAll = 4294967295 // OFP_BSN_VRF_ALL
1428)
1429
1430type BsnVrfCounterConstants uint32
1431
1432func (self BsnVrfCounterConstants) MarshalJSON() ([]byte, error) {
1433 return []byte(fmt.Sprintf("%d", self)), nil
1434}
1435
1436const (
1437 // Identifiers from group ofp_capabilities
1438 OFPCFlowStats = 1 // OFPC_FLOW_STATS
1439 OFPCTableStats = 2 // OFPC_TABLE_STATS
1440 OFPCPortStats = 4 // OFPC_PORT_STATS
1441 OFPCGroupStats = 8 // OFPC_GROUP_STATS
1442 OFPCIpReasm = 32 // OFPC_IP_REASM
1443 OFPCQueueStats = 64 // OFPC_QUEUE_STATS
1444 OFPCPortBlocked = 256 // OFPC_PORT_BLOCKED
1445)
1446
1447type Capabilities uint32
1448
1449func (self Capabilities) MarshalJSON() ([]byte, error) {
1450 var flags []string
1451 if self&OFPCFlowStats == OFPCFlowStats {
1452 flags = append(flags, "\"FlowStats\": true")
1453 }
1454 if self&OFPCTableStats == OFPCTableStats {
1455 flags = append(flags, "\"TableStats\": true")
1456 }
1457 if self&OFPCPortStats == OFPCPortStats {
1458 flags = append(flags, "\"PortStats\": true")
1459 }
1460 if self&OFPCGroupStats == OFPCGroupStats {
1461 flags = append(flags, "\"GroupStats\": true")
1462 }
1463 if self&OFPCIpReasm == OFPCIpReasm {
1464 flags = append(flags, "\"IpReasm\": true")
1465 }
1466 if self&OFPCQueueStats == OFPCQueueStats {
1467 flags = append(flags, "\"QueueStats\": true")
1468 }
1469 if self&OFPCPortBlocked == OFPCPortBlocked {
1470 flags = append(flags, "\"PortBlocked\": true")
1471 }
1472 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
1473}
1474
1475const (
1476 // Identifiers from group ofp_config_flags
1477 OFPCFragNormal = 0 // OFPC_FRAG_NORMAL
1478 OFPCFragDrop = 1 // OFPC_FRAG_DROP
1479 OFPCFragReasm = 2 // OFPC_FRAG_REASM
1480 OFPCFragMask = 3 // OFPC_FRAG_MASK
1481)
1482
1483type ConfigFlags uint16
1484
1485func (self ConfigFlags) MarshalJSON() ([]byte, error) {
1486 var flags []string
1487 if self&OFPCFragNormal == OFPCFragNormal {
1488 flags = append(flags, "\"Normal\": true")
1489 }
1490 if self&OFPCFragDrop == OFPCFragDrop {
1491 flags = append(flags, "\"Drop\": true")
1492 }
1493 if self&OFPCFragReasm == OFPCFragReasm {
1494 flags = append(flags, "\"Reasm\": true")
1495 }
1496 if self&OFPCFragMask == OFPCFragMask {
1497 flags = append(flags, "\"Mask\": true")
1498 }
1499 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
1500}
1501
1502const (
1503 // Identifiers from group ofp_controller_max_len
1504 OFPCMLMax = 65509 // OFPCML_MAX
1505 OFPCMLNoBuffer = 65535 // OFPCML_NO_BUFFER
1506)
1507
1508type ControllerMaxLen uint16
1509
1510func (self ControllerMaxLen) MarshalJSON() ([]byte, error) {
1511 return []byte(fmt.Sprintf("%d", self)), nil
1512}
1513
1514const (
1515 // Identifiers from group ofp_controller_role
1516 OFPCRRoleNochange = 0 // OFPCR_ROLE_NOCHANGE
1517 OFPCRRoleEqual = 1 // OFPCR_ROLE_EQUAL
1518 OFPCRRoleMaster = 2 // OFPCR_ROLE_MASTER
1519 OFPCRRoleSlave = 3 // OFPCR_ROLE_SLAVE
1520)
1521
1522type ControllerRole uint32
1523
1524func (self ControllerRole) MarshalJSON() ([]byte, error) {
1525 return []byte(fmt.Sprintf("%d", self)), nil
1526}
1527
1528const (
1529 // Identifiers from group ofp_cs_states
1530 CsNew = 1 // OFP_CS_NEW
1531 CsEstablished = 2 // OFP_CS_ESTABLISHED
1532 CsRelated = 4 // OFP_CS_RELATED
1533 CsReplyDir = 8 // OFP_CS_REPLY_DIR
1534 CsInvalid = 16 // OFP_CS_INVALID
1535 CsTracked = 32 // OFP_CS_TRACKED
1536 CsSrcNat = 64 // OFP_CS_SRC_NAT
1537 CsDstNat = 128 // OFP_CS_DST_NAT
1538)
1539
1540type CsStates uint32
1541
1542func (self CsStates) MarshalJSON() ([]byte, error) {
1543 var flags []string
1544 if self&CsNew == CsNew {
1545 flags = append(flags, "\"New\": true")
1546 }
1547 if self&CsEstablished == CsEstablished {
1548 flags = append(flags, "\"Established\": true")
1549 }
1550 if self&CsRelated == CsRelated {
1551 flags = append(flags, "\"Related\": true")
1552 }
1553 if self&CsReplyDir == CsReplyDir {
1554 flags = append(flags, "\"ReplyDir\": true")
1555 }
1556 if self&CsInvalid == CsInvalid {
1557 flags = append(flags, "\"Invalid\": true")
1558 }
1559 if self&CsTracked == CsTracked {
1560 flags = append(flags, "\"Tracked\": true")
1561 }
1562 if self&CsSrcNat == CsSrcNat {
1563 flags = append(flags, "\"SrcNat\": true")
1564 }
1565 if self&CsDstNat == CsDstNat {
1566 flags = append(flags, "\"DstNat\": true")
1567 }
1568 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
1569}
1570
1571const (
1572 // Identifiers from group ofp_ed_nsh_prop_type
1573 OFPPPTPropNshNone = 0 // OFPPPT_PROP_NSH_NONE
1574 OFPPPTPropNshMdtype = 1 // OFPPPT_PROP_NSH_MDTYPE
1575 OFPPPTPropNshTlv = 2 // OFPPPT_PROP_NSH_TLV
1576)
1577
1578type EdNshPropType uint8
1579
1580func (self EdNshPropType) MarshalJSON() ([]byte, error) {
1581 return []byte(fmt.Sprintf("%d", self)), nil
1582}
1583
1584const (
1585 // Identifiers from group ofp_ed_prop_class
1586 OFPPPCBasic = 0 // OFPPPC_BASIC
1587 OFPPPCMpls = 1 // OFPPPC_MPLS
1588 OFPPPCGRE = 2 // OFPPPC_GRE
1589 OFPPPCGtp = 3 // OFPPPC_GTP
1590 OFPPPCNsh = 4 // OFPPPC_NSH
1591 OFPPPCExperimenter = 65535 // OFPPPC_EXPERIMENTER
1592)
1593
1594type EdPropClass uint16
1595
1596func (self EdPropClass) MarshalJSON() ([]byte, error) {
1597 return []byte(fmt.Sprintf("%d", self)), nil
1598}
1599
1600const (
1601 // Identifiers from group ofp_error_type
1602 OFPETHelloFailed = 0 // OFPET_HELLO_FAILED
1603 OFPETBadRequest = 1 // OFPET_BAD_REQUEST
1604 OFPETBadAction = 2 // OFPET_BAD_ACTION
1605 OFPETBadInstruction = 3 // OFPET_BAD_INSTRUCTION
1606 OFPETBadMatch = 4 // OFPET_BAD_MATCH
1607 OFPETFlowModFailed = 5 // OFPET_FLOW_MOD_FAILED
1608 OFPETGroupModFailed = 6 // OFPET_GROUP_MOD_FAILED
1609 OFPETPortModFailed = 7 // OFPET_PORT_MOD_FAILED
1610 OFPETTableModFailed = 8 // OFPET_TABLE_MOD_FAILED
1611 OFPETQueueOpFailed = 9 // OFPET_QUEUE_OP_FAILED
1612 OFPETSwitchConfigFailed = 10 // OFPET_SWITCH_CONFIG_FAILED
1613 OFPETRoleRequestFailed = 11 // OFPET_ROLE_REQUEST_FAILED
1614 OFPETMeterModFailed = 12 // OFPET_METER_MOD_FAILED
1615 OFPETTableFeaturesFailed = 13 // OFPET_TABLE_FEATURES_FAILED
1616 OFPETExperimenter = 65535 // OFPET_EXPERIMENTER
1617)
1618
1619type ErrorType uint16
1620
1621func (self ErrorType) MarshalJSON() ([]byte, error) {
1622 return []byte(fmt.Sprintf("%d", self)), nil
1623}
1624
1625const (
1626 // Identifiers from group ofp_ethernet_type
1627 EthPLoop = 96 // ETH_P_LOOP
1628 EthPPup = 512 // ETH_P_PUP
1629 EthPPupat = 513 // ETH_P_PUPAT
1630 EthPIp = 2048 // ETH_P_IP
1631 EthPX25 = 2053 // ETH_P_X25
1632 EthPARP = 2054 // ETH_P_ARP
1633 EthPBpq = 2303 // ETH_P_BPQ
1634 EthPIeeepup = 2560 // ETH_P_IEEEPUP
1635 EthPIeeepupat = 2561 // ETH_P_IEEEPUPAT
1636 EthPDec = 24576 // ETH_P_DEC
1637 EthPDnaDl = 24577 // ETH_P_DNA_DL
1638 EthPDnaRc = 24578 // ETH_P_DNA_RC
1639 EthPDnaRt = 24579 // ETH_P_DNA_RT
1640 EthPLat = 24580 // ETH_P_LAT
1641 EthPDiag = 24581 // ETH_P_DIAG
1642 EthPCust = 24582 // ETH_P_CUST
1643 EthPSca = 24583 // ETH_P_SCA
1644 EthPTeb = 25944 // ETH_P_TEB
1645 EthPRarp = 32821 // ETH_P_RARP
1646 EthPAtalk = 32923 // ETH_P_ATALK
1647 EthPAarp = 33011 // ETH_P_AARP
1648 EthP8021Q = 33024 // ETH_P_8021Q
1649 EthPIpx = 33079 // ETH_P_IPX
1650 EthPIpv6 = 34525 // ETH_P_IPV6
1651 EthPPause = 34824 // ETH_P_PAUSE
1652 EthPSlow = 34825 // ETH_P_SLOW
1653 EthPWccp = 34878 // ETH_P_WCCP
1654 EthPPppDisc = 34915 // ETH_P_PPP_DISC
1655 EthPPppSes = 34916 // ETH_P_PPP_SES
1656 EthPMplsUc = 34887 // ETH_P_MPLS_UC
1657 EthPMplsMc = 34888 // ETH_P_MPLS_MC
1658 EthPAtmmpoa = 34892 // ETH_P_ATMMPOA
1659 EthPAtmfate = 34948 // ETH_P_ATMFATE
1660 EthPPae = 34958 // ETH_P_PAE
1661 EthPAoe = 34978 // ETH_P_AOE
1662 EthPTipc = 35018 // ETH_P_TIPC
1663 EthP1588 = 35063 // ETH_P_1588
1664 EthPFcoe = 35078 // ETH_P_FCOE
1665 EthPFip = 35092 // ETH_P_FIP
1666 EthPEdsa = 56026 // ETH_P_EDSA
1667)
1668
1669type EthernetType uint16
1670
1671func (self EthernetType) MarshalJSON() ([]byte, error) {
1672 return []byte(fmt.Sprintf("\"%s\"", self)), nil
1673}
1674
1675func (self EthernetType) String() string {
1676 switch self {
1677 case EthPLoop:
1678 return "loop"
1679 case EthPPup:
1680 return "pup"
1681 case EthPPupat:
1682 return "pupat"
1683 case EthPIp:
1684 return "ip"
1685 case EthPX25:
1686 return "x25"
1687 case EthPARP:
1688 return "arp"
1689 case EthPBpq:
1690 return "bpq"
1691 case EthPIeeepup:
1692 return "ieeepup"
1693 case EthPIeeepupat:
1694 return "ieeepupat"
1695 case EthPDec:
1696 return "dec"
1697 case EthPDnaDl:
1698 return "dna_dl"
1699 case EthPDnaRc:
1700 return "dna_rc"
1701 case EthPDnaRt:
1702 return "dna_rt"
1703 case EthPLat:
1704 return "lat"
1705 case EthPDiag:
1706 return "diag"
1707 case EthPCust:
1708 return "cust"
1709 case EthPSca:
1710 return "sca"
1711 case EthPTeb:
1712 return "teb"
1713 case EthPRarp:
1714 return "rarp"
1715 case EthPAtalk:
1716 return "atalk"
1717 case EthPAarp:
1718 return "aarp"
1719 case EthP8021Q:
1720 return "8021q"
1721 case EthPIpx:
1722 return "ipx"
1723 case EthPIpv6:
1724 return "ipv6"
1725 case EthPPause:
1726 return "pause"
1727 case EthPSlow:
1728 return "slow"
1729 case EthPWccp:
1730 return "wccp"
1731 case EthPPppDisc:
1732 return "ppp_disc"
1733 case EthPPppSes:
1734 return "ppp_ses"
1735 case EthPMplsUc:
1736 return "mpls_uc"
1737 case EthPMplsMc:
1738 return "mpls_mc"
1739 case EthPAtmmpoa:
1740 return "atmmpoa"
1741 case EthPAtmfate:
1742 return "atmfate"
1743 case EthPPae:
1744 return "pae"
1745 case EthPAoe:
1746 return "aoe"
1747 case EthPTipc:
1748 return "tipc"
1749 case EthP1588:
1750 return "1588"
1751 case EthPFcoe:
1752 return "fcoe"
1753 case EthPFip:
1754 return "fip"
1755 case EthPEdsa:
1756 return "edsa"
1757 default:
1758 return fmt.Sprintf("%d", self)
1759 }
1760}
1761
1762const (
1763 // Identifiers from group ofp_flow_mod_command
1764 OFPFCAdd = 0 // OFPFC_ADD
1765 OFPFCModify = 1 // OFPFC_MODIFY
1766 OFPFCModifyStrict = 2 // OFPFC_MODIFY_STRICT
1767 OFPFCDelete = 3 // OFPFC_DELETE
1768 OFPFCDeleteStrict = 4 // OFPFC_DELETE_STRICT
1769)
1770
1771type FlowModCommand uint8
1772
1773func (self FlowModCommand) MarshalJSON() ([]byte, error) {
1774 return []byte(fmt.Sprintf("%d", self)), nil
1775}
1776
1777const (
1778 // Identifiers from group ofp_flow_mod_failed_code
1779 OFPFMFCUnknown = 0 // OFPFMFC_UNKNOWN
1780 OFPFMFCTableFull = 1 // OFPFMFC_TABLE_FULL
1781 OFPFMFCBadTableID = 2 // OFPFMFC_BAD_TABLE_ID
1782 OFPFMFCOverlap = 3 // OFPFMFC_OVERLAP
1783 OFPFMFCEperm = 4 // OFPFMFC_EPERM
1784 OFPFMFCBadTimeout = 5 // OFPFMFC_BAD_TIMEOUT
1785 OFPFMFCBadCommand = 6 // OFPFMFC_BAD_COMMAND
1786 OFPFMFCBadFlags = 7 // OFPFMFC_BAD_FLAGS
1787)
1788
1789type FlowModFailedCode uint16
1790
1791func (self FlowModFailedCode) MarshalJSON() ([]byte, error) {
1792 return []byte(fmt.Sprintf("%d", self)), nil
1793}
1794
1795const (
1796 // Identifiers from group ofp_flow_mod_flags
1797 OFPFFSendFlowRem = 1 // OFPFF_SEND_FLOW_REM
1798 OFPFFCheckOverlap = 2 // OFPFF_CHECK_OVERLAP
1799 OFPFFResetCounts = 4 // OFPFF_RESET_COUNTS
1800 OFPFFNoPktCounts = 8 // OFPFF_NO_PKT_COUNTS
1801 OFPFFNoBytCounts = 16 // OFPFF_NO_BYT_COUNTS
1802 OFPFFBSNSendIdle = 128 // OFPFF_BSN_SEND_IDLE
1803)
1804
1805type FlowModFlags uint16
1806
1807func (self FlowModFlags) MarshalJSON() ([]byte, error) {
1808 var flags []string
1809 if self&OFPFFSendFlowRem == OFPFFSendFlowRem {
1810 flags = append(flags, "\"SendFlowRem\": true")
1811 }
1812 if self&OFPFFCheckOverlap == OFPFFCheckOverlap {
1813 flags = append(flags, "\"CheckOverlap\": true")
1814 }
1815 if self&OFPFFResetCounts == OFPFFResetCounts {
1816 flags = append(flags, "\"ResetCounts\": true")
1817 }
1818 if self&OFPFFNoPktCounts == OFPFFNoPktCounts {
1819 flags = append(flags, "\"NoPktCounts\": true")
1820 }
1821 if self&OFPFFNoBytCounts == OFPFFNoBytCounts {
1822 flags = append(flags, "\"NoBytCounts\": true")
1823 }
1824 if self&OFPFFBSNSendIdle == OFPFFBSNSendIdle {
1825 flags = append(flags, "\"BsnSendIdle\": true")
1826 }
1827 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
1828}
1829
1830const (
1831 // Identifiers from group ofp_flow_removed_reason
1832 OFPRRIdleTimeout = 0 // OFPRR_IDLE_TIMEOUT
1833 OFPRRHardTimeout = 1 // OFPRR_HARD_TIMEOUT
1834 OFPRRDelete = 2 // OFPRR_DELETE
1835 OFPRRGroupDelete = 3 // OFPRR_GROUP_DELETE
1836)
1837
1838type FlowRemovedReason uint8
1839
1840func (self FlowRemovedReason) MarshalJSON() ([]byte, error) {
1841 return []byte(fmt.Sprintf("%d", self)), nil
1842}
1843
1844const (
1845 // Identifiers from group ofp_group
1846 OFPGMax = 4294967040 // OFPG_MAX
1847 OFPGAll = 4294967292 // OFPG_ALL
1848 OFPGAny = 4294967295 // OFPG_ANY
1849)
1850
1851type Group uint32
1852
1853func (self Group) MarshalJSON() ([]byte, error) {
1854 return []byte(fmt.Sprintf("%d", self)), nil
1855}
1856
1857const (
1858 // Identifiers from group ofp_group_capabilities
1859 OFPGFCSelectWeight = 1 // OFPGFC_SELECT_WEIGHT
1860 OFPGFCSelectLiveness = 2 // OFPGFC_SELECT_LIVENESS
1861 OFPGFCChaining = 4 // OFPGFC_CHAINING
1862 OFPGFCChainingChecks = 8 // OFPGFC_CHAINING_CHECKS
1863)
1864
1865type GroupCapabilities uint32
1866
1867func (self GroupCapabilities) MarshalJSON() ([]byte, error) {
1868 var flags []string
1869 if self&OFPGFCSelectWeight == OFPGFCSelectWeight {
1870 flags = append(flags, "\"SelectWeight\": true")
1871 }
1872 if self&OFPGFCSelectLiveness == OFPGFCSelectLiveness {
1873 flags = append(flags, "\"SelectLiveness\": true")
1874 }
1875 if self&OFPGFCChaining == OFPGFCChaining {
1876 flags = append(flags, "\"Chaining\": true")
1877 }
1878 if self&OFPGFCChainingChecks == OFPGFCChainingChecks {
1879 flags = append(flags, "\"ChainingChecks\": true")
1880 }
1881 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
1882}
1883
1884const (
1885 // Identifiers from group ofp_group_mod_command
1886 OFPGCAdd = 0 // OFPGC_ADD
1887 OFPGCModify = 1 // OFPGC_MODIFY
1888 OFPGCDelete = 2 // OFPGC_DELETE
1889)
1890
1891type GroupModCommand uint16
1892
1893func (self GroupModCommand) MarshalJSON() ([]byte, error) {
1894 return []byte(fmt.Sprintf("%d", self)), nil
1895}
1896
1897const (
1898 // Identifiers from group ofp_group_mod_failed_code
1899 OFPGMFCGroupExists = 0 // OFPGMFC_GROUP_EXISTS
1900 OFPGMFCInvalidGroup = 1 // OFPGMFC_INVALID_GROUP
1901 OFPGMFCWeightUnsupported = 2 // OFPGMFC_WEIGHT_UNSUPPORTED
1902 OFPGMFCOutOfGroups = 3 // OFPGMFC_OUT_OF_GROUPS
1903 OFPGMFCOutOfBuckets = 4 // OFPGMFC_OUT_OF_BUCKETS
1904 OFPGMFCChainingUnsupported = 5 // OFPGMFC_CHAINING_UNSUPPORTED
1905 OFPGMFCWatchUnsupported = 6 // OFPGMFC_WATCH_UNSUPPORTED
1906 OFPGMFCLoop = 7 // OFPGMFC_LOOP
1907 OFPGMFCUnknownGroup = 8 // OFPGMFC_UNKNOWN_GROUP
1908 OFPGMFCChainedGroup = 9 // OFPGMFC_CHAINED_GROUP
1909 OFPGMFCBadType = 10 // OFPGMFC_BAD_TYPE
1910 OFPGMFCBadCommand = 11 // OFPGMFC_BAD_COMMAND
1911 OFPGMFCBadBucket = 12 // OFPGMFC_BAD_BUCKET
1912 OFPGMFCBadWatch = 13 // OFPGMFC_BAD_WATCH
1913 OFPGMFCEperm = 14 // OFPGMFC_EPERM
1914)
1915
1916type GroupModFailedCode uint16
1917
1918func (self GroupModFailedCode) MarshalJSON() ([]byte, error) {
1919 return []byte(fmt.Sprintf("%d", self)), nil
1920}
1921
1922const (
1923 // Identifiers from group ofp_group_type
1924 OFPGTAll = 0 // OFPGT_ALL
1925 OFPGTSelect = 1 // OFPGT_SELECT
1926 OFPGTIndirect = 2 // OFPGT_INDIRECT
1927 OFPGTFf = 3 // OFPGT_FF
1928)
1929
1930type GroupType uint8
1931
1932func (self GroupType) MarshalJSON() ([]byte, error) {
1933 return []byte(fmt.Sprintf("\"%s\"", self)), nil
1934}
1935
1936func (self GroupType) String() string {
1937 switch self {
1938 case OFPGTAll:
1939 return "all"
1940 case OFPGTSelect:
1941 return "select"
1942 case OFPGTIndirect:
1943 return "indirect"
1944 case OFPGTFf:
1945 return "ff"
1946 default:
1947 return fmt.Sprintf("%d", self)
1948 }
1949}
1950
1951const (
1952 // Identifiers from group ofp_hello_elem_type
1953 OFPHETVersionbitmap = 1 // OFPHET_VERSIONBITMAP
1954)
1955
1956type HelloElemType uint16
1957
1958func (self HelloElemType) MarshalJSON() ([]byte, error) {
1959 return []byte(fmt.Sprintf("%d", self)), nil
1960}
1961
1962const (
1963 // Identifiers from group ofp_hello_failed_code
1964 OFPHFCIncompatible = 0 // OFPHFC_INCOMPATIBLE
1965 OFPHFCEperm = 1 // OFPHFC_EPERM
1966)
1967
1968type HelloFailedCode uint16
1969
1970func (self HelloFailedCode) MarshalJSON() ([]byte, error) {
1971 return []byte(fmt.Sprintf("%d", self)), nil
1972}
1973
1974const (
1975 // Identifiers from group ofp_icmp_type
1976 IcmpEchoreply = 0 // ICMP_ECHOREPLY
1977 IcmpDestUnreach = 3 // ICMP_DEST_UNREACH
1978 IcmpSourceQuench = 4 // ICMP_SOURCE_QUENCH
1979 IcmpRedirect = 5 // ICMP_REDIRECT
1980 IcmpEcho = 8 // ICMP_ECHO
1981 IcmpTimeExceeded = 11 // ICMP_TIME_EXCEEDED
1982 IcmpParameterprob = 12 // ICMP_PARAMETERPROB
1983 IcmpTimestamp = 13 // ICMP_TIMESTAMP
1984 IcmpTimestampreply = 14 // ICMP_TIMESTAMPREPLY
1985 IcmpInfoRequest = 15 // ICMP_INFO_REQUEST
1986 IcmpInfoReply = 16 // ICMP_INFO_REPLY
1987 IcmpAddress = 17 // ICMP_ADDRESS
1988 IcmpAddressreply = 18 // ICMP_ADDRESSREPLY
1989)
1990
1991type IcmpType uint8
1992
1993func (self IcmpType) MarshalJSON() ([]byte, error) {
1994 return []byte(fmt.Sprintf("\"%s\"", self)), nil
1995}
1996
1997func (self IcmpType) String() string {
1998 switch self {
1999 case IcmpEchoreply:
2000 return "echoreply"
2001 case IcmpDestUnreach:
2002 return "dest_unreach"
2003 case IcmpSourceQuench:
2004 return "source_quench"
2005 case IcmpRedirect:
2006 return "redirect"
2007 case IcmpEcho:
2008 return "echo"
2009 case IcmpTimeExceeded:
2010 return "time_exceeded"
2011 case IcmpParameterprob:
2012 return "parameterprob"
2013 case IcmpTimestamp:
2014 return "timestamp"
2015 case IcmpTimestampreply:
2016 return "timestampreply"
2017 case IcmpInfoRequest:
2018 return "info_request"
2019 case IcmpInfoReply:
2020 return "info_reply"
2021 case IcmpAddress:
2022 return "address"
2023 case IcmpAddressreply:
2024 return "addressreply"
2025 default:
2026 return fmt.Sprintf("%d", self)
2027 }
2028}
2029
2030const (
2031 // Identifiers from group ofp_icmpv6_type
2032 Icmpv6EchoRequest = 128 // ICMPV6_ECHO_REQUEST
2033 Icmpv6EchoReply = 129 // ICMPV6_ECHO_REPLY
2034 Icmpv6MgmQuery = 130 // ICMPV6_MGM_QUERY
2035 Icmpv6MgmReport = 131 // ICMPV6_MGM_REPORT
2036 Icmpv6MgmReduction = 132 // ICMPV6_MGM_REDUCTION
2037 Icmpv6NiQuery = 139 // ICMPV6_NI_QUERY
2038 Icmpv6NiReply = 140 // ICMPV6_NI_REPLY
2039 Icmpv6Mld2Report = 143 // ICMPV6_MLD2_REPORT
2040 Icmpv6DhaadRequest = 144 // ICMPV6_DHAAD_REQUEST
2041 Icmpv6DhaadReply = 145 // ICMPV6_DHAAD_REPLY
2042 Icmpv6MobilePrefixSol = 146 // ICMPV6_MOBILE_PREFIX_SOL
2043 Icmpv6MobilePrefixAdv = 147 // ICMPV6_MOBILE_PREFIX_ADV
2044)
2045
2046type Icmpv6Type uint8
2047
2048func (self Icmpv6Type) MarshalJSON() ([]byte, error) {
2049 return []byte(fmt.Sprintf("\"%s\"", self)), nil
2050}
2051
2052func (self Icmpv6Type) String() string {
2053 switch self {
2054 case Icmpv6EchoRequest:
2055 return "echo_request"
2056 case Icmpv6EchoReply:
2057 return "echo_reply"
2058 case Icmpv6MgmQuery:
2059 return "mgm_query"
2060 case Icmpv6MgmReport:
2061 return "mgm_report"
2062 case Icmpv6MgmReduction:
2063 return "mgm_reduction"
2064 case Icmpv6NiQuery:
2065 return "ni_query"
2066 case Icmpv6NiReply:
2067 return "ni_reply"
2068 case Icmpv6Mld2Report:
2069 return "mld2_report"
2070 case Icmpv6DhaadRequest:
2071 return "dhaad_request"
2072 case Icmpv6DhaadReply:
2073 return "dhaad_reply"
2074 case Icmpv6MobilePrefixSol:
2075 return "mobile_prefix_sol"
2076 case Icmpv6MobilePrefixAdv:
2077 return "mobile_prefix_adv"
2078 default:
2079 return fmt.Sprintf("%d", self)
2080 }
2081}
2082
2083const (
2084 // Identifiers from group ofp_instruction_type
2085 OFPITGotoTable = 1 // OFPIT_GOTO_TABLE
2086 OFPITWriteMetadata = 2 // OFPIT_WRITE_METADATA
2087 OFPITWriteActions = 3 // OFPIT_WRITE_ACTIONS
2088 OFPITApplyActions = 4 // OFPIT_APPLY_ACTIONS
2089 OFPITClearActions = 5 // OFPIT_CLEAR_ACTIONS
2090 OFPITMeter = 6 // OFPIT_METER
2091 OFPITExperimenter = 65535 // OFPIT_EXPERIMENTER
2092)
2093
2094type InstructionType uint16
2095
2096func (self InstructionType) MarshalJSON() ([]byte, error) {
2097 var flags []string
2098 if self&OFPITGotoTable == OFPITGotoTable {
2099 flags = append(flags, "\"GotoTable\": true")
2100 }
2101 if self&OFPITWriteMetadata == OFPITWriteMetadata {
2102 flags = append(flags, "\"WriteMetadata\": true")
2103 }
2104 if self&OFPITWriteActions == OFPITWriteActions {
2105 flags = append(flags, "\"WriteActions\": true")
2106 }
2107 if self&OFPITApplyActions == OFPITApplyActions {
2108 flags = append(flags, "\"ApplyActions\": true")
2109 }
2110 if self&OFPITClearActions == OFPITClearActions {
2111 flags = append(flags, "\"ClearActions\": true")
2112 }
2113 if self&OFPITMeter == OFPITMeter {
2114 flags = append(flags, "\"Meter\": true")
2115 }
2116 if self&OFPITExperimenter == OFPITExperimenter {
2117 flags = append(flags, "\"Experimenter\": true")
2118 }
2119 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
2120}
2121
2122const (
2123 // Identifiers from group ofp_ip_prototype
2124 IpprotoIp = 0 // IPPROTO_IP
2125 IpprotoICMP = 1 // IPPROTO_ICMP
2126 IpprotoIgmp = 2 // IPPROTO_IGMP
2127 IpprotoIpip = 4 // IPPROTO_IPIP
2128 IpprotoTCP = 6 // IPPROTO_TCP
2129 IpprotoEgp = 8 // IPPROTO_EGP
2130 IpprotoPup = 12 // IPPROTO_PUP
2131 IpprotoUdp = 17 // IPPROTO_UDP
2132 IpprotoIdp = 22 // IPPROTO_IDP
2133 IpprotoTp = 29 // IPPROTO_TP
2134 IpprotoDccp = 33 // IPPROTO_DCCP
2135 IpprotoIpv6 = 41 // IPPROTO_IPV6
2136 IpprotoRsvp = 46 // IPPROTO_RSVP
2137 IpprotoGRE = 47 // IPPROTO_GRE
2138 IpprotoEsp = 50 // IPPROTO_ESP
2139 IpprotoAh = 51 // IPPROTO_AH
2140 IpprotoMtp = 92 // IPPROTO_MTP
2141 IpprotoBeetph = 94 // IPPROTO_BEETPH
2142 IpprotoEncap = 98 // IPPROTO_ENCAP
2143 IpprotoPim = 103 // IPPROTO_PIM
2144 IpprotoComp = 108 // IPPROTO_COMP
2145 IpprotoSctp = 132 // IPPROTO_SCTP
2146 IpprotoUdplite = 136 // IPPROTO_UDPLITE
2147 IpprotoMpls = 137 // IPPROTO_MPLS
2148 IpprotoRaw = 255 // IPPROTO_RAW
2149 IpprotoRouting = 43 // IPPROTO_ROUTING
2150 IpprotoFragment = 44 // IPPROTO_FRAGMENT
2151 IpprotoIcmpv6 = 58 // IPPROTO_ICMPV6
2152 IpprotoNone = 59 // IPPROTO_NONE
2153 IpprotoDstopts = 60 // IPPROTO_DSTOPTS
2154 IpprotoMh = 135 // IPPROTO_MH
2155 IpprotoL2Tp = 115 // IPPROTO_L2TP
2156)
2157
2158type IpPrototype uint8
2159
2160func (self IpPrototype) MarshalJSON() ([]byte, error) {
2161 return []byte(fmt.Sprintf("\"%s\"", self)), nil
2162}
2163
2164func (self IpPrototype) String() string {
2165 switch self {
2166 case IpprotoIp:
2167 return "ip"
2168 case IpprotoICMP:
2169 return "icmp"
2170 case IpprotoIgmp:
2171 return "igmp"
2172 case IpprotoIpip:
2173 return "ipip"
2174 case IpprotoTCP:
2175 return "tcp"
2176 case IpprotoEgp:
2177 return "egp"
2178 case IpprotoPup:
2179 return "pup"
2180 case IpprotoUdp:
2181 return "udp"
2182 case IpprotoIdp:
2183 return "idp"
2184 case IpprotoTp:
2185 return "tp"
2186 case IpprotoDccp:
2187 return "dccp"
2188 case IpprotoIpv6:
2189 return "ipv6"
2190 case IpprotoRsvp:
2191 return "rsvp"
2192 case IpprotoGRE:
2193 return "gre"
2194 case IpprotoEsp:
2195 return "esp"
2196 case IpprotoAh:
2197 return "ah"
2198 case IpprotoMtp:
2199 return "mtp"
2200 case IpprotoBeetph:
2201 return "beetph"
2202 case IpprotoEncap:
2203 return "encap"
2204 case IpprotoPim:
2205 return "pim"
2206 case IpprotoComp:
2207 return "comp"
2208 case IpprotoSctp:
2209 return "sctp"
2210 case IpprotoUdplite:
2211 return "udplite"
2212 case IpprotoMpls:
2213 return "mpls"
2214 case IpprotoRaw:
2215 return "raw"
2216 case IpprotoRouting:
2217 return "routing"
2218 case IpprotoFragment:
2219 return "fragment"
2220 case IpprotoIcmpv6:
2221 return "icmpv6"
2222 case IpprotoNone:
2223 return "none"
2224 case IpprotoDstopts:
2225 return "dstopts"
2226 case IpprotoMh:
2227 return "mh"
2228 case IpprotoL2Tp:
2229 return "l2tp"
2230 default:
2231 return fmt.Sprintf("%d", self)
2232 }
2233}
2234
2235const (
2236 // Identifiers from group ofp_ipv6exthdr_flags
2237 OFPIEHNonext = 1 // OFPIEH_NONEXT
2238 OFPIEHEsp = 2 // OFPIEH_ESP
2239 OFPIEHAuth = 4 // OFPIEH_AUTH
2240 OFPIEHDest = 8 // OFPIEH_DEST
2241 OFPIEHFrag = 16 // OFPIEH_FRAG
2242 OFPIEHRouter = 32 // OFPIEH_ROUTER
2243 OFPIEHHop = 64 // OFPIEH_HOP
2244 OFPIEHUnrep = 128 // OFPIEH_UNREP
2245 OFPIEHUnseq = 256 // OFPIEH_UNSEQ
2246)
2247
2248type Ipv6ExthdrFlags uint16
2249
2250func (self Ipv6ExthdrFlags) MarshalJSON() ([]byte, error) {
2251 var flags []string
2252 if self&OFPIEHNonext == OFPIEHNonext {
2253 flags = append(flags, "\"Nonext\": true")
2254 }
2255 if self&OFPIEHEsp == OFPIEHEsp {
2256 flags = append(flags, "\"Esp\": true")
2257 }
2258 if self&OFPIEHAuth == OFPIEHAuth {
2259 flags = append(flags, "\"Auth\": true")
2260 }
2261 if self&OFPIEHDest == OFPIEHDest {
2262 flags = append(flags, "\"Dest\": true")
2263 }
2264 if self&OFPIEHFrag == OFPIEHFrag {
2265 flags = append(flags, "\"Frag\": true")
2266 }
2267 if self&OFPIEHRouter == OFPIEHRouter {
2268 flags = append(flags, "\"Router\": true")
2269 }
2270 if self&OFPIEHHop == OFPIEHHop {
2271 flags = append(flags, "\"Hop\": true")
2272 }
2273 if self&OFPIEHUnrep == OFPIEHUnrep {
2274 flags = append(flags, "\"Unrep\": true")
2275 }
2276 if self&OFPIEHUnseq == OFPIEHUnseq {
2277 flags = append(flags, "\"Unseq\": true")
2278 }
2279 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
2280}
2281
2282const (
2283 // Identifiers from group ofp_match_type
2284 OFPMTStandard = 0 // OFPMT_STANDARD
2285 OFPMTOXM = 1 // OFPMT_OXM
2286)
2287
2288type MatchType uint16
2289
2290func (self MatchType) MarshalJSON() ([]byte, error) {
2291 return []byte(fmt.Sprintf("%d", self)), nil
2292}
2293
2294const (
2295 // Identifiers from group ofp_meter
2296 OFPMMax = 4294901760 // OFPM_MAX
2297 OFPMSlowpath = 4294967293 // OFPM_SLOWPATH
2298 OFPMController = 4294967294 // OFPM_CONTROLLER
2299 OFPMAll = 4294967295 // OFPM_ALL
2300)
2301
2302type Meter uint32
2303
2304func (self Meter) MarshalJSON() ([]byte, error) {
2305 return []byte(fmt.Sprintf("%d", self)), nil
2306}
2307
2308const (
2309 // Identifiers from group ofp_meter_band_type
2310 OFPMBTDrop = 1 // OFPMBT_DROP
2311 OFPMBTDSCPRemark = 2 // OFPMBT_DSCP_REMARK
2312 OFPMBTExperimenter = 65535 // OFPMBT_EXPERIMENTER
2313)
2314
2315type MeterBandType uint16
2316
2317func (self MeterBandType) MarshalJSON() ([]byte, error) {
2318 return []byte(fmt.Sprintf("%d", self)), nil
2319}
2320
2321const (
2322 // Identifiers from group ofp_meter_flags
2323 OFPMFKbps = 1 // OFPMF_KBPS
2324 OFPMFPktps = 2 // OFPMF_PKTPS
2325 OFPMFBurst = 4 // OFPMF_BURST
2326 OFPMFStats = 8 // OFPMF_STATS
2327)
2328
2329type MeterFlags uint16
2330
2331func (self MeterFlags) MarshalJSON() ([]byte, error) {
2332 var flags []string
2333 if self&OFPMFKbps == OFPMFKbps {
2334 flags = append(flags, "\"Kbps\": true")
2335 }
2336 if self&OFPMFPktps == OFPMFPktps {
2337 flags = append(flags, "\"Pktps\": true")
2338 }
2339 if self&OFPMFBurst == OFPMFBurst {
2340 flags = append(flags, "\"Burst\": true")
2341 }
2342 if self&OFPMFStats == OFPMFStats {
2343 flags = append(flags, "\"Stats\": true")
2344 }
2345 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
2346}
2347
2348const (
2349 // Identifiers from group ofp_meter_mod_command
2350 OFPMCAdd = 0 // OFPMC_ADD
2351 OFPMCModify = 1 // OFPMC_MODIFY
2352 OFPMCDelete = 2 // OFPMC_DELETE
2353)
2354
2355type MeterModCommand uint16
2356
2357func (self MeterModCommand) MarshalJSON() ([]byte, error) {
2358 return []byte(fmt.Sprintf("%d", self)), nil
2359}
2360
2361const (
2362 // Identifiers from group ofp_meter_mod_failed_code
2363 OFPMMFCUnknown = 0 // OFPMMFC_UNKNOWN
2364 OFPMMFCMeterExists = 1 // OFPMMFC_METER_EXISTS
2365 OFPMMFCInvalidMeter = 2 // OFPMMFC_INVALID_METER
2366 OFPMMFCUnknownMeter = 3 // OFPMMFC_UNKNOWN_METER
2367 OFPMMFCBadCommand = 4 // OFPMMFC_BAD_COMMAND
2368 OFPMMFCBadFlags = 5 // OFPMMFC_BAD_FLAGS
2369 OFPMMFCBadRate = 6 // OFPMMFC_BAD_RATE
2370 OFPMMFCBadBurst = 7 // OFPMMFC_BAD_BURST
2371 OFPMMFCBadBand = 8 // OFPMMFC_BAD_BAND
2372 OFPMMFCBadBandValue = 9 // OFPMMFC_BAD_BAND_VALUE
2373 OFPMMFCOutOfMeters = 10 // OFPMMFC_OUT_OF_METERS
2374 OFPMMFCOutOfBands = 11 // OFPMMFC_OUT_OF_BANDS
2375)
2376
2377type MeterModFailedCode uint16
2378
2379func (self MeterModFailedCode) MarshalJSON() ([]byte, error) {
2380 return []byte(fmt.Sprintf("%d", self)), nil
2381}
2382
2383const (
2384 // Identifiers from group ofp_ovs_tcp_flag
2385 OvsTCPFlagFin = 1 // OFP_OVS_TCP_FLAG_FIN
2386 OvsTCPFlagSyn = 2 // OFP_OVS_TCP_FLAG_SYN
2387 OvsTCPFlagRst = 4 // OFP_OVS_TCP_FLAG_RST
2388 OvsTCPFlagPsh = 8 // OFP_OVS_TCP_FLAG_PSH
2389 OvsTCPFlagAck = 16 // OFP_OVS_TCP_FLAG_ACK
2390 OvsTCPFlagUrg = 32 // OFP_OVS_TCP_FLAG_URG
2391 OvsTCPFlagEce = 64 // OFP_OVS_TCP_FLAG_ECE
2392 OvsTCPFlagCwr = 128 // OFP_OVS_TCP_FLAG_CWR
2393 OvsTCPFlagNs = 256 // OFP_OVS_TCP_FLAG_NS
2394)
2395
2396type OvsTcpFlag uint16
2397
2398func (self OvsTcpFlag) MarshalJSON() ([]byte, error) {
2399 var flags []string
2400 if self&OvsTCPFlagFin == OvsTCPFlagFin {
2401 flags = append(flags, "\"Fin\": true")
2402 }
2403 if self&OvsTCPFlagSyn == OvsTCPFlagSyn {
2404 flags = append(flags, "\"Syn\": true")
2405 }
2406 if self&OvsTCPFlagRst == OvsTCPFlagRst {
2407 flags = append(flags, "\"Rst\": true")
2408 }
2409 if self&OvsTCPFlagPsh == OvsTCPFlagPsh {
2410 flags = append(flags, "\"Psh\": true")
2411 }
2412 if self&OvsTCPFlagAck == OvsTCPFlagAck {
2413 flags = append(flags, "\"Ack\": true")
2414 }
2415 if self&OvsTCPFlagUrg == OvsTCPFlagUrg {
2416 flags = append(flags, "\"Urg\": true")
2417 }
2418 if self&OvsTCPFlagEce == OvsTCPFlagEce {
2419 flags = append(flags, "\"Ece\": true")
2420 }
2421 if self&OvsTCPFlagCwr == OvsTCPFlagCwr {
2422 flags = append(flags, "\"Cwr\": true")
2423 }
2424 if self&OvsTCPFlagNs == OvsTCPFlagNs {
2425 flags = append(flags, "\"Ns\": true")
2426 }
2427 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
2428}
2429
2430const (
2431 // Identifiers from group ofp_oxm_class
2432 OFPXMCNxm0 = 0 // OFPXMC_NXM_0
2433 OFPXMCNxm1 = 1 // OFPXMC_NXM_1
2434 OFPXMCOpenflowBasic = 32768 // OFPXMC_OPENFLOW_BASIC
2435 OFPXMCExperimenter = 65535 // OFPXMC_EXPERIMENTER
2436)
2437
2438type OxmClass uint16
2439
2440func (self OxmClass) MarshalJSON() ([]byte, error) {
2441 return []byte(fmt.Sprintf("%d", self)), nil
2442}
2443
2444const (
2445 // Identifiers from group ofp_packet_in_reason
2446 OFPRNoMatch = 0 // OFPR_NO_MATCH
2447 OFPRAction = 1 // OFPR_ACTION
2448 OFPRInvalidTtl = 2 // OFPR_INVALID_TTL
2449 OFPRBSNNewHost = 128 // OFPR_BSN_NEW_HOST
2450 OFPRBSNStationMove = 129 // OFPR_BSN_STATION_MOVE
2451 OFPRBSNBadVLAN = 130 // OFPR_BSN_BAD_VLAN
2452 OFPRBSNDestinationLookupFailure = 131 // OFPR_BSN_DESTINATION_LOOKUP_FAILURE
2453 OFPRBSNNoRoute = 132 // OFPR_BSN_NO_ROUTE
2454 OFPRBSNICMPEchoRequest = 133 // OFPR_BSN_ICMP_ECHO_REQUEST
2455 OFPRBSNDestNetworkUnreachable = 134 // OFPR_BSN_DEST_NETWORK_UNREACHABLE
2456 OFPRBSNDestHostUnreachable = 135 // OFPR_BSN_DEST_HOST_UNREACHABLE
2457 OFPRBSNDestPortUnreachable = 136 // OFPR_BSN_DEST_PORT_UNREACHABLE
2458 OFPRBSNFragmentationRequired = 137 // OFPR_BSN_FRAGMENTATION_REQUIRED
2459 OFPRBSNARP = 139 // OFPR_BSN_ARP
2460 OFPRBSNDhcp = 140 // OFPR_BSN_DHCP
2461 OFPRBSNDebug = 141 // OFPR_BSN_DEBUG
2462 OFPRBSNPacketOfDeath = 142 // OFPR_BSN_PACKET_OF_DEATH
2463)
2464
2465type PacketInReason uint8
2466
2467func (self PacketInReason) MarshalJSON() ([]byte, error) {
2468 return []byte(fmt.Sprintf("%d", self)), nil
2469}
2470
2471const (
2472 // Identifiers from group ofp_packet_type
2473 PtEthernet = 0 // OFP_PT_ETHERNET
2474 PtUseNextProto = 65534 // OFP_PT_USE_NEXT_PROTO
2475 PtIpv4 = 67584 // OFP_PT_IPV4
2476 PtMpls = 100423 // OFP_PT_MPLS
2477 PtMplsMc = 100424 // OFP_PT_MPLS_MC
2478 PtNsh = 100687 // OFP_PT_NSH
2479 PtUnknown = 4294967295 // OFP_PT_UNKNOWN
2480)
2481
2482type PacketType uint32
2483
2484func (self PacketType) MarshalJSON() ([]byte, error) {
2485 return []byte(fmt.Sprintf("\"%s\"", self)), nil
2486}
2487
2488func (self PacketType) String() string {
2489 switch self {
2490 case PtEthernet:
2491 return "ethernet"
2492 case PtUseNextProto:
2493 return "use_next_proto"
2494 case PtIpv4:
2495 return "ipv4"
2496 case PtMpls:
2497 return "mpls"
2498 case PtMplsMc:
2499 return "mpls_mc"
2500 case PtNsh:
2501 return "nsh"
2502 case PtUnknown:
2503 return "unknown"
2504 default:
2505 return fmt.Sprintf("%d", self)
2506 }
2507}
2508
2509const (
2510 // Identifiers from group ofp_port
2511 OFPPMax = 4294967040 // OFPP_MAX
2512 OFPPInPort = 4294967288 // OFPP_IN_PORT
2513 OFPPTable = 4294967289 // OFPP_TABLE
2514 OFPPNormal = 4294967290 // OFPP_NORMAL
2515 OFPPFlood = 4294967291 // OFPP_FLOOD
2516 OFPPAll = 4294967292 // OFPP_ALL
2517 OFPPController = 4294967293 // OFPP_CONTROLLER
2518 OFPPLocal = 4294967294 // OFPP_LOCAL
2519 OFPPAny = 4294967295 // OFPP_ANY
2520)
2521
2522type Port uint32
2523
2524func (self Port) MarshalJSON() ([]byte, error) {
2525 return []byte(fmt.Sprintf("%d", self)), nil
2526}
2527
2528const (
2529 // Identifiers from group ofp_port_config
2530 OFPPCPortDown = 1 // OFPPC_PORT_DOWN
2531 OFPPCNoRecv = 4 // OFPPC_NO_RECV
2532 OFPPCNoFwd = 32 // OFPPC_NO_FWD
2533 OFPPCNoPacketIn = 64 // OFPPC_NO_PACKET_IN
2534 OFPPCBSNMirrorDest = 2147483648 // OFPPC_BSN_MIRROR_DEST
2535)
2536
2537type PortConfig uint32
2538
2539func (self PortConfig) MarshalJSON() ([]byte, error) {
2540 var flags []string
2541 if self&OFPPCPortDown == OFPPCPortDown {
2542 flags = append(flags, "\"PortDown\": true")
2543 }
2544 if self&OFPPCNoRecv == OFPPCNoRecv {
2545 flags = append(flags, "\"NoRecv\": true")
2546 }
2547 if self&OFPPCNoFwd == OFPPCNoFwd {
2548 flags = append(flags, "\"NoFwd\": true")
2549 }
2550 if self&OFPPCNoPacketIn == OFPPCNoPacketIn {
2551 flags = append(flags, "\"NoPacketIn\": true")
2552 }
2553 if self&OFPPCBSNMirrorDest == OFPPCBSNMirrorDest {
2554 flags = append(flags, "\"BsnMirrorDest\": true")
2555 }
2556 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
2557}
2558
2559const (
2560 // Identifiers from group ofp_port_features
2561 OFPPF10MbHd = 1 // OFPPF_10MB_HD
2562 OFPPF10MbFd = 2 // OFPPF_10MB_FD
2563 OFPPF100MbHd = 4 // OFPPF_100MB_HD
2564 OFPPF100MbFd = 8 // OFPPF_100MB_FD
2565 OFPPF1GbHd = 16 // OFPPF_1GB_HD
2566 OFPPF1GbFd = 32 // OFPPF_1GB_FD
2567 OFPPF10GbFd = 64 // OFPPF_10GB_FD
2568 OFPPF40GbFd = 128 // OFPPF_40GB_FD
2569 OFPPF100GbFd = 256 // OFPPF_100GB_FD
2570 OFPPF1TbFd = 512 // OFPPF_1TB_FD
2571 OFPPFOther = 1024 // OFPPF_OTHER
2572 OFPPFCopper = 2048 // OFPPF_COPPER
2573 OFPPFFiber = 4096 // OFPPF_FIBER
2574 OFPPFAutoneg = 8192 // OFPPF_AUTONEG
2575 OFPPFPause = 16384 // OFPPF_PAUSE
2576 OFPPFPauseAsym = 32768 // OFPPF_PAUSE_ASYM
2577 OFPPFBSNBreakoutCapable = 2147483648 // OFPPF_BSN_BREAKOUT_CAPABLE
2578)
2579
2580type PortFeatures uint32
2581
2582func (self PortFeatures) MarshalJSON() ([]byte, error) {
2583 var flags []string
2584 if self&OFPPF10MbHd == OFPPF10MbHd {
2585 flags = append(flags, "\"10MbHd\": true")
2586 }
2587 if self&OFPPF10MbFd == OFPPF10MbFd {
2588 flags = append(flags, "\"10MbFd\": true")
2589 }
2590 if self&OFPPF100MbHd == OFPPF100MbHd {
2591 flags = append(flags, "\"100MbHd\": true")
2592 }
2593 if self&OFPPF100MbFd == OFPPF100MbFd {
2594 flags = append(flags, "\"100MbFd\": true")
2595 }
2596 if self&OFPPF1GbHd == OFPPF1GbHd {
2597 flags = append(flags, "\"1GbHd\": true")
2598 }
2599 if self&OFPPF1GbFd == OFPPF1GbFd {
2600 flags = append(flags, "\"1GbFd\": true")
2601 }
2602 if self&OFPPF10GbFd == OFPPF10GbFd {
2603 flags = append(flags, "\"10GbFd\": true")
2604 }
2605 if self&OFPPF40GbFd == OFPPF40GbFd {
2606 flags = append(flags, "\"40GbFd\": true")
2607 }
2608 if self&OFPPF100GbFd == OFPPF100GbFd {
2609 flags = append(flags, "\"100GbFd\": true")
2610 }
2611 if self&OFPPF1TbFd == OFPPF1TbFd {
2612 flags = append(flags, "\"1TbFd\": true")
2613 }
2614 if self&OFPPFOther == OFPPFOther {
2615 flags = append(flags, "\"Other\": true")
2616 }
2617 if self&OFPPFCopper == OFPPFCopper {
2618 flags = append(flags, "\"Copper\": true")
2619 }
2620 if self&OFPPFFiber == OFPPFFiber {
2621 flags = append(flags, "\"Fiber\": true")
2622 }
2623 if self&OFPPFAutoneg == OFPPFAutoneg {
2624 flags = append(flags, "\"Autoneg\": true")
2625 }
2626 if self&OFPPFPause == OFPPFPause {
2627 flags = append(flags, "\"Pause\": true")
2628 }
2629 if self&OFPPFPauseAsym == OFPPFPauseAsym {
2630 flags = append(flags, "\"PauseAsym\": true")
2631 }
2632 if self&OFPPFBSNBreakoutCapable == OFPPFBSNBreakoutCapable {
2633 flags = append(flags, "\"BsnBreakoutCapable\": true")
2634 }
2635 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
2636}
2637
2638const (
2639 // Identifiers from group ofp_port_mod_failed_code
2640 OFPPMFCBadPort = 0 // OFPPMFC_BAD_PORT
2641 OFPPMFCBadHwAddr = 1 // OFPPMFC_BAD_HW_ADDR
2642 OFPPMFCBadConfig = 2 // OFPPMFC_BAD_CONFIG
2643 OFPPMFCBadAdvertise = 3 // OFPPMFC_BAD_ADVERTISE
2644 OFPPMFCEperm = 4 // OFPPMFC_EPERM
2645)
2646
2647type PortModFailedCode uint16
2648
2649func (self PortModFailedCode) MarshalJSON() ([]byte, error) {
2650 return []byte(fmt.Sprintf("%d", self)), nil
2651}
2652
2653const (
2654 // Identifiers from group ofp_port_reason
2655 OFPPRAdd = 0 // OFPPR_ADD
2656 OFPPRDelete = 1 // OFPPR_DELETE
2657 OFPPRModify = 2 // OFPPR_MODIFY
2658)
2659
2660type PortReason uint8
2661
2662func (self PortReason) MarshalJSON() ([]byte, error) {
2663 return []byte(fmt.Sprintf("%d", self)), nil
2664}
2665
2666const (
2667 // Identifiers from group ofp_port_state
2668 OFPPSLinkDown = 1 // OFPPS_LINK_DOWN
2669 OFPPSBlocked = 2 // OFPPS_BLOCKED
2670 OFPPSLive = 4 // OFPPS_LIVE
2671)
2672
2673type PortState uint32
2674
2675func (self PortState) MarshalJSON() ([]byte, error) {
2676 var flags []string
2677 if self&OFPPSLinkDown == OFPPSLinkDown {
2678 flags = append(flags, "\"LinkDown\": true")
2679 }
2680 if self&OFPPSBlocked == OFPPSBlocked {
2681 flags = append(flags, "\"Blocked\": true")
2682 }
2683 if self&OFPPSLive == OFPPSLive {
2684 flags = append(flags, "\"Live\": true")
2685 }
2686 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
2687}
2688
2689const (
2690 // Identifiers from group ofp_queue_op_failed_code
2691 OFPQOFCBadPort = 0 // OFPQOFC_BAD_PORT
2692 OFPQOFCBadQueue = 1 // OFPQOFC_BAD_QUEUE
2693 OFPQOFCEperm = 2 // OFPQOFC_EPERM
2694)
2695
2696type QueueOpFailedCode uint16
2697
2698func (self QueueOpFailedCode) MarshalJSON() ([]byte, error) {
2699 return []byte(fmt.Sprintf("%d", self)), nil
2700}
2701
2702const (
2703 // Identifiers from group ofp_queue_properties
2704 OFPQTMinRate = 1 // OFPQT_MIN_RATE
2705 OFPQTMaxRate = 2 // OFPQT_MAX_RATE
2706 OFPQTExperimenter = 65535 // OFPQT_EXPERIMENTER
2707)
2708
2709type QueueProperties uint16
2710
2711func (self QueueProperties) MarshalJSON() ([]byte, error) {
2712 return []byte(fmt.Sprintf("%d", self)), nil
2713}
2714
2715const (
2716 // Identifiers from group ofp_role_request_failed_code
2717 OFPRRFCStale = 0 // OFPRRFC_STALE
2718 OFPRRFCUnsup = 1 // OFPRRFC_UNSUP
2719 OFPRRFCBadRole = 2 // OFPRRFC_BAD_ROLE
2720)
2721
2722type RoleRequestFailedCode uint16
2723
2724func (self RoleRequestFailedCode) MarshalJSON() ([]byte, error) {
2725 return []byte(fmt.Sprintf("%d", self)), nil
2726}
2727
2728const (
2729 // Identifiers from group ofp_stats_reply_flags
2730 OFPSFReplyMore = 1 // OFPSF_REPLY_MORE
2731)
2732
2733type StatsReplyFlags uint16
2734
2735func (self StatsReplyFlags) MarshalJSON() ([]byte, error) {
2736 var flags []string
2737 if self&OFPSFReplyMore == OFPSFReplyMore {
2738 flags = append(flags, "\"OFPSFReplyMore\": true")
2739 }
2740 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
2741}
2742
2743const (
2744 // Identifiers from group ofp_stats_request_flags
2745 OFPSFReqMore = 1 // OFPSF_REQ_MORE
2746)
2747
2748type StatsRequestFlags uint16
2749
2750func (self StatsRequestFlags) MarshalJSON() ([]byte, error) {
2751 var flags []string
2752 if self&OFPSFReqMore == OFPSFReqMore {
2753 flags = append(flags, "\"OFPSFReqMore\": true")
2754 }
2755 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
2756}
2757
2758const (
2759 // Identifiers from group ofp_stats_type
2760 OFPSTDesc = 0 // OFPST_DESC
2761 OFPSTFlow = 1 // OFPST_FLOW
2762 OFPSTAggregate = 2 // OFPST_AGGREGATE
2763 OFPSTTable = 3 // OFPST_TABLE
2764 OFPSTPort = 4 // OFPST_PORT
2765 OFPSTQueue = 5 // OFPST_QUEUE
2766 OFPSTGroup = 6 // OFPST_GROUP
2767 OFPSTGroupDesc = 7 // OFPST_GROUP_DESC
2768 OFPSTGroupFeatures = 8 // OFPST_GROUP_FEATURES
2769 OFPSTMeter = 9 // OFPST_METER
2770 OFPSTMeterConfig = 10 // OFPST_METER_CONFIG
2771 OFPSTMeterFeatures = 11 // OFPST_METER_FEATURES
2772 OFPSTTableFeatures = 12 // OFPST_TABLE_FEATURES
2773 OFPSTPortDesc = 13 // OFPST_PORT_DESC
2774 OFPSTExperimenter = 65535 // OFPST_EXPERIMENTER
2775)
2776
2777type StatsType uint16
2778
2779func (self StatsType) MarshalJSON() ([]byte, error) {
2780 return []byte(fmt.Sprintf("%d", self)), nil
2781}
2782
2783const (
2784 // Identifiers from group ofp_switch_config_failed_code
2785 OFPSCFCBadFlags = 0 // OFPSCFC_BAD_FLAGS
2786 OFPSCFCBadLen = 1 // OFPSCFC_BAD_LEN
2787 OFPSCFCEperm = 2 // OFPSCFC_EPERM
2788)
2789
2790type SwitchConfigFailedCode uint16
2791
2792func (self SwitchConfigFailedCode) MarshalJSON() ([]byte, error) {
2793 return []byte(fmt.Sprintf("%d", self)), nil
2794}
2795
2796const (
2797 // Identifiers from group ofp_table
2798 OFPTTMax = 254 // OFPTT_MAX
2799 OFPTTAll = 255 // OFPTT_ALL
2800)
2801
2802type Table uint8
2803
2804func (self Table) MarshalJSON() ([]byte, error) {
2805 return []byte(fmt.Sprintf("%d", self)), nil
2806}
2807
2808const (
2809 // Identifiers from group ofp_table_config
2810 OFPTCDeprecatedMask = 3 // OFPTC_DEPRECATED_MASK
2811)
2812
2813type TableConfig uint32
2814
2815func (self TableConfig) MarshalJSON() ([]byte, error) {
2816 var flags []string
2817 if self&OFPTCDeprecatedMask == OFPTCDeprecatedMask {
2818 flags = append(flags, "\"OFPTCDeprecatedMask\": true")
2819 }
2820 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
2821}
2822
2823const (
2824 // Identifiers from group ofp_table_feature_prop_type
2825 OFPTFPTInstructions = 0 // OFPTFPT_INSTRUCTIONS
2826 OFPTFPTInstructionsMiss = 1 // OFPTFPT_INSTRUCTIONS_MISS
2827 OFPTFPTNextTables = 2 // OFPTFPT_NEXT_TABLES
2828 OFPTFPTNextTablesMiss = 3 // OFPTFPT_NEXT_TABLES_MISS
2829 OFPTFPTWriteActions = 4 // OFPTFPT_WRITE_ACTIONS
2830 OFPTFPTWriteActionsMiss = 5 // OFPTFPT_WRITE_ACTIONS_MISS
2831 OFPTFPTApplyActions = 6 // OFPTFPT_APPLY_ACTIONS
2832 OFPTFPTApplyActionsMiss = 7 // OFPTFPT_APPLY_ACTIONS_MISS
2833 OFPTFPTMatch = 8 // OFPTFPT_MATCH
2834 OFPTFPTWildcards = 10 // OFPTFPT_WILDCARDS
2835 OFPTFPTWriteSetfield = 12 // OFPTFPT_WRITE_SETFIELD
2836 OFPTFPTWriteSetfieldMiss = 13 // OFPTFPT_WRITE_SETFIELD_MISS
2837 OFPTFPTApplySetfield = 14 // OFPTFPT_APPLY_SETFIELD
2838 OFPTFPTApplySetfieldMiss = 15 // OFPTFPT_APPLY_SETFIELD_MISS
2839 OFPTFPTExperimenter = 65534 // OFPTFPT_EXPERIMENTER
2840 OFPTFPTExperimenterMiss = 65535 // OFPTFPT_EXPERIMENTER_MISS
2841)
2842
2843type TableFeaturePropType uint16
2844
2845func (self TableFeaturePropType) MarshalJSON() ([]byte, error) {
2846 return []byte(fmt.Sprintf("%d", self)), nil
2847}
2848
2849const (
2850 // Identifiers from group ofp_table_features_failed_code
2851 OFPTFFCBadTable = 0 // OFPTFFC_BAD_TABLE
2852 OFPTFFCBadMetadata = 1 // OFPTFFC_BAD_METADATA
2853 OFPTFFCBadType = 2 // OFPTFFC_BAD_TYPE
2854 OFPTFFCBadLen = 3 // OFPTFFC_BAD_LEN
2855 OFPTFFCBadArgument = 4 // OFPTFFC_BAD_ARGUMENT
2856 OFPTFFCEperm = 5 // OFPTFFC_EPERM
2857)
2858
2859type TableFeaturesFailedCode uint16
2860
2861func (self TableFeaturesFailedCode) MarshalJSON() ([]byte, error) {
2862 return []byte(fmt.Sprintf("%d", self)), nil
2863}
2864
2865const (
2866 // Identifiers from group ofp_table_mod_failed_code
2867 OFPTMFCBadTable = 0 // OFPTMFC_BAD_TABLE
2868 OFPTMFCBadConfig = 1 // OFPTMFC_BAD_CONFIG
2869 OFPTMFCEperm = 2 // OFPTMFC_EPERM
2870)
2871
2872type TableModFailedCode uint16
2873
2874func (self TableModFailedCode) MarshalJSON() ([]byte, error) {
2875 return []byte(fmt.Sprintf("%d", self)), nil
2876}
2877
2878const (
2879 // Identifiers from group ofp_tcp_flags
2880 TcpFlagCwr = 128 // TCP_FLAG_CWR
2881 TcpFlagEce = 64 // TCP_FLAG_ECE
2882 TcpFlagUrg = 32 // TCP_FLAG_URG
2883 TcpFlagAck = 16 // TCP_FLAG_ACK
2884 TcpFlagPsh = 8 // TCP_FLAG_PSH
2885 TcpFlagRst = 4 // TCP_FLAG_RST
2886 TcpFlagSyn = 2 // TCP_FLAG_SYN
2887 TcpFlagFin = 1 // TCP_FLAG_FIN
2888)
2889
2890type TcpFlags uint16
2891
2892func (self TcpFlags) MarshalJSON() ([]byte, error) {
2893 var flags []string
2894 if self&TcpFlagCwr == TcpFlagCwr {
2895 flags = append(flags, "\"Cwr\": true")
2896 }
2897 if self&TcpFlagEce == TcpFlagEce {
2898 flags = append(flags, "\"Ece\": true")
2899 }
2900 if self&TcpFlagUrg == TcpFlagUrg {
2901 flags = append(flags, "\"Urg\": true")
2902 }
2903 if self&TcpFlagAck == TcpFlagAck {
2904 flags = append(flags, "\"Ack\": true")
2905 }
2906 if self&TcpFlagPsh == TcpFlagPsh {
2907 flags = append(flags, "\"Psh\": true")
2908 }
2909 if self&TcpFlagRst == TcpFlagRst {
2910 flags = append(flags, "\"Rst\": true")
2911 }
2912 if self&TcpFlagSyn == TcpFlagSyn {
2913 flags = append(flags, "\"Syn\": true")
2914 }
2915 if self&TcpFlagFin == TcpFlagFin {
2916 flags = append(flags, "\"Fin\": true")
2917 }
2918 return []byte("{" + strings.Join(flags, ", ") + "}"), nil
2919}
2920
2921const (
2922 // Identifiers from group ofp_type
2923 OFPTHello = 0 // OFPT_HELLO
2924 OFPTError = 1 // OFPT_ERROR
2925 OFPTEchoRequest = 2 // OFPT_ECHO_REQUEST
2926 OFPTEchoReply = 3 // OFPT_ECHO_REPLY
2927 OFPTExperimenter = 4 // OFPT_EXPERIMENTER
2928 OFPTFeaturesRequest = 5 // OFPT_FEATURES_REQUEST
2929 OFPTFeaturesReply = 6 // OFPT_FEATURES_REPLY
2930 OFPTGetConfigRequest = 7 // OFPT_GET_CONFIG_REQUEST
2931 OFPTGetConfigReply = 8 // OFPT_GET_CONFIG_REPLY
2932 OFPTSetConfig = 9 // OFPT_SET_CONFIG
2933 OFPTPacketIn = 10 // OFPT_PACKET_IN
2934 OFPTFlowRemoved = 11 // OFPT_FLOW_REMOVED
2935 OFPTPortStatus = 12 // OFPT_PORT_STATUS
2936 OFPTPacketOut = 13 // OFPT_PACKET_OUT
2937 OFPTFlowMod = 14 // OFPT_FLOW_MOD
2938 OFPTGroupMod = 15 // OFPT_GROUP_MOD
2939 OFPTPortMod = 16 // OFPT_PORT_MOD
2940 OFPTTableMod = 17 // OFPT_TABLE_MOD
2941 OFPTStatsRequest = 18 // OFPT_STATS_REQUEST
2942 OFPTStatsReply = 19 // OFPT_STATS_REPLY
2943 OFPTBarrierRequest = 20 // OFPT_BARRIER_REQUEST
2944 OFPTBarrierReply = 21 // OFPT_BARRIER_REPLY
2945 OFPTQueueGetConfigRequest = 22 // OFPT_QUEUE_GET_CONFIG_REQUEST
2946 OFPTQueueGetConfigReply = 23 // OFPT_QUEUE_GET_CONFIG_REPLY
2947 OFPTRoleRequest = 24 // OFPT_ROLE_REQUEST
2948 OFPTRoleReply = 25 // OFPT_ROLE_REPLY
2949 OFPTGetAsyncRequest = 26 // OFPT_GET_ASYNC_REQUEST
2950 OFPTGetAsyncReply = 27 // OFPT_GET_ASYNC_REPLY
2951 OFPTSetAsync = 28 // OFPT_SET_ASYNC
2952 OFPTMeterMod = 29 // OFPT_METER_MOD
2953)
2954
2955type Type uint8
2956
2957func (self Type) MarshalJSON() ([]byte, error) {
2958 return []byte(fmt.Sprintf("\"%s\"", self)), nil
2959}
2960
2961func (self Type) String() string {
2962 switch self {
2963 case OFPTHello:
2964 return "hello"
2965 case OFPTError:
2966 return "error"
2967 case OFPTEchoRequest:
2968 return "echo_request"
2969 case OFPTEchoReply:
2970 return "echo_reply"
2971 case OFPTExperimenter:
2972 return "experimenter"
2973 case OFPTFeaturesRequest:
2974 return "features_request"
2975 case OFPTFeaturesReply:
2976 return "features_reply"
2977 case OFPTGetConfigRequest:
2978 return "get_config_request"
2979 case OFPTGetConfigReply:
2980 return "get_config_reply"
2981 case OFPTSetConfig:
2982 return "set_config"
2983 case OFPTPacketIn:
2984 return "packet_in"
2985 case OFPTFlowRemoved:
2986 return "flow_removed"
2987 case OFPTPortStatus:
2988 return "port_status"
2989 case OFPTPacketOut:
2990 return "packet_out"
2991 case OFPTFlowMod:
2992 return "flow_mod"
2993 case OFPTGroupMod:
2994 return "group_mod"
2995 case OFPTPortMod:
2996 return "port_mod"
2997 case OFPTTableMod:
2998 return "table_mod"
2999 case OFPTStatsRequest:
3000 return "stats_request"
3001 case OFPTStatsReply:
3002 return "stats_reply"
3003 case OFPTBarrierRequest:
3004 return "barrier_request"
3005 case OFPTBarrierReply:
3006 return "barrier_reply"
3007 case OFPTQueueGetConfigRequest:
3008 return "queue_get_config_request"
3009 case OFPTQueueGetConfigReply:
3010 return "queue_get_config_reply"
3011 case OFPTRoleRequest:
3012 return "role_request"
3013 case OFPTRoleReply:
3014 return "role_reply"
3015 case OFPTGetAsyncRequest:
3016 return "get_async_request"
3017 case OFPTGetAsyncReply:
3018 return "get_async_reply"
3019 case OFPTSetAsync:
3020 return "set_async"
3021 case OFPTMeterMod:
3022 return "meter_mod"
3023 default:
3024 return fmt.Sprintf("%d", self)
3025 }
3026}
3027
3028const (
3029 // Identifiers from group ofp_vlan_id
3030 OFPVIDNone = 0 // OFPVID_NONE
3031 OFPVIDPresent = 4096 // OFPVID_PRESENT
3032)
3033
3034type VlanId uint16
3035
3036func (self VlanId) MarshalJSON() ([]byte, error) {
3037 return []byte(fmt.Sprintf("%d", self)), nil
3038}