initial add - go fmt on grpc
Change-Id: Ib0afadd2fe5571d1456a091f94f5644458f7d3f4
diff --git a/vendor/github.com/skydive-project/goloxi/of13/const.go b/vendor/github.com/skydive-project/goloxi/of13/const.go
new file mode 100644
index 0000000..f1e830e
--- /dev/null
+++ b/vendor/github.com/skydive-project/goloxi/of13/const.go
@@ -0,0 +1,3016 @@
+/*
+ * Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+ * Copyright (c) 2011, 2012 Open Networking Foundation
+ * Copyright 2013, Big Switch Networks, Inc. This library was generated by the LoxiGen Compiler.
+ * Copyright 2018, Red Hat, Inc.
+ */
+// Automatically generated by LOXI from template const.go
+// Do not modify
+
+package of13
+
+import (
+ "fmt"
+ "strings"
+)
+
+const (
+ // Identifiers from group macro_definitions
+ MaxTableNameLen = 32 // OFP_MAX_TABLE_NAME_LEN
+ MaxPortNameLen = 16 // OFP_MAX_PORT_NAME_LEN
+ TCPPort = 6653 // OFP_TCP_PORT
+ SSLPort = 6653 // OFP_SSL_PORT
+ EthAlen = 6 // OFP_ETH_ALEN
+ DefaultMissSendLen = 128 // OFP_DEFAULT_MISS_SEND_LEN
+ VLANNone = 0 // OFP_VLAN_NONE
+ FlowPermanent = 0 // OFP_FLOW_PERMANENT
+ DefaultPriority = 32768 // OFP_DEFAULT_PRIORITY
+ NoBuffer = 4294967295 // OFP_NO_BUFFER
+ DescStrLen = 256 // DESC_STR_LEN
+ SerialNumLen = 32 // SERIAL_NUM_LEN
+ OFPQAll = 4294967295 // OFPQ_ALL
+ OFPQMaxRateUncfg = 65535 // OFPQ_MAX_RATE_UNCFG
+ OFPQMinRateUncfg = 65535 // OFPQ_MIN_RATE_UNCFG
+)
+
+const (
+ // Identifiers from group nx_action_controller2_prop_type
+ Nxac2PtMaxLen = 0 // NXAC2PT_MAX_LEN
+ Nxac2PtControllerID = 1 // NXAC2PT_CONTROLLER_ID
+ Nxac2PtReason = 2 // NXAC2PT_REASON
+ Nxac2PtUserdata = 3 // NXAC2PT_USERDATA
+ Nxac2PtPause = 4 // NXAC2PT_PAUSE
+ Nxac2PtMeterID = 5 // NXAC2PT_METER_ID
+)
+
+type NxActionController2PropType uint16
+
+func (self NxActionController2PropType) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group nx_bd_algorithms
+ NxBdAlgActiveBackup = 0 // NX_BD_ALG_ACTIVE_BACKUP
+ NxBdAlgHrw = 1 // NX_BD_ALG_HRW
+)
+
+type NxBdAlgorithms uint16
+
+func (self NxBdAlgorithms) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("\"%s\"", self)), nil
+}
+
+func (self NxBdAlgorithms) String() string {
+ switch self {
+ case NxBdAlgActiveBackup:
+ return "active_backup"
+ case NxBdAlgHrw:
+ return "hrw"
+ default:
+ return fmt.Sprintf("%d", self)
+ }
+}
+
+const (
+ // Identifiers from group nx_conntrack_flags
+ NxCtFCommit = 1 // NX_CT_F_COMMIT
+ NxCtFForce = 2 // NX_CT_F_FORCE
+)
+
+type NxConntrackFlags uint16
+
+func (self NxConntrackFlags) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&NxCtFCommit == NxCtFCommit {
+ flags = append(flags, "\"Commit\": true")
+ }
+ if self&NxCtFForce == NxCtFForce {
+ flags = append(flags, "\"Force\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group nx_flow_monitor_flags
+ NxfmfInitial = 1 // NXFMF_INITIAL
+ NxfmfAdd = 2 // NXFMF_ADD
+ NxfmfDelete = 4 // NXFMF_DELETE
+ NxfmfModify = 8 // NXFMF_MODIFY
+ NxfmfActions = 16 // NXFMF_ACTIONS
+ NxfmfOwn = 32 // NXFMF_OWN
+)
+
+type NxFlowMonitorFlags uint16
+
+func (self NxFlowMonitorFlags) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&NxfmfInitial == NxfmfInitial {
+ flags = append(flags, "\"Initial\": true")
+ }
+ if self&NxfmfAdd == NxfmfAdd {
+ flags = append(flags, "\"Add\": true")
+ }
+ if self&NxfmfDelete == NxfmfDelete {
+ flags = append(flags, "\"Delete\": true")
+ }
+ if self&NxfmfModify == NxfmfModify {
+ flags = append(flags, "\"Modify\": true")
+ }
+ if self&NxfmfActions == NxfmfActions {
+ flags = append(flags, "\"Actions\": true")
+ }
+ if self&NxfmfOwn == NxfmfOwn {
+ flags = append(flags, "\"Own\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group nx_hash_fields
+ NxHashFieldsEthSrc = 0 // NX_HASH_FIELDS_ETH_SRC
+ NxHashFieldsSymmetricL4 = 1 // NX_HASH_FIELDS_SYMMETRIC_L4
+ NxHashFieldsSymmetricL3L4 = 2 // NX_HASH_FIELDS_SYMMETRIC_L3L4
+ NxHashFieldsSymmetricL3L4Udp = 3 // NX_HASH_FIELDS_SYMMETRIC_L3L4_UDP
+ NxHashFieldsNwSrc = 4 // NX_HASH_FIELDS_NW_SRC
+ NxHashFieldsNwDst = 5 // NX_HASH_FIELDS_NW_DST
+ NxHashFieldsSymmetricL3 = 6 // NX_HASH_FIELDS_SYMMETRIC_L3
+)
+
+type NxHashFields uint16
+
+func (self NxHashFields) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("\"%s\"", self)), nil
+}
+
+func (self NxHashFields) String() string {
+ switch self {
+ case NxHashFieldsEthSrc:
+ return "eth_src"
+ case NxHashFieldsSymmetricL4:
+ return "symmetric_l4"
+ case NxHashFieldsSymmetricL3L4:
+ return "symmetric_l3l4"
+ case NxHashFieldsSymmetricL3L4Udp:
+ return "symmetric_l3l4_udp"
+ case NxHashFieldsNwSrc:
+ return "nw_src"
+ case NxHashFieldsNwDst:
+ return "nw_dst"
+ case NxHashFieldsSymmetricL3:
+ return "symmetric_l3"
+ default:
+ return fmt.Sprintf("%d", self)
+ }
+}
+
+const (
+ // Identifiers from group nx_mp_algorithm
+ NxMpAlgModuloN = 0 // NX_MP_ALG_MODULO_N
+ NxMpAlgHashThreshold = 1 // NX_MP_ALG_HASH_THRESHOLD
+ NxMpAlgHrw = 2 // NX_MP_ALG_HRW
+ NxMpAlgIterHash = 3 // NX_MP_ALG_ITER_HASH
+)
+
+type NxMpAlgorithm uint16
+
+func (self NxMpAlgorithm) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("\"%s\"", self)), nil
+}
+
+func (self NxMpAlgorithm) String() string {
+ switch self {
+ case NxMpAlgModuloN:
+ return "modulo_n"
+ case NxMpAlgHashThreshold:
+ return "hash_threshold"
+ case NxMpAlgHrw:
+ return "hrw"
+ case NxMpAlgIterHash:
+ return "iter_hash"
+ default:
+ return fmt.Sprintf("%d", self)
+ }
+}
+
+const (
+ // Identifiers from group of_action_nx_bundle_slave_type
+ NxmOfInPort = 2 // NXM_OF_IN_PORT
+ NxmOfJustThereToDefinePrefix = 10000 // NXM_OF_JUST_THERE_TO_DEFINE_PREFIX
+)
+
+type ActionNxBundleSlaveType uint32
+
+func (self ActionNxBundleSlaveType) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("\"%s\"", self)), nil
+}
+
+func (self ActionNxBundleSlaveType) String() string {
+ switch self {
+ case NxmOfInPort:
+ return "in_port"
+ case NxmOfJustThereToDefinePrefix:
+ return "just_there_to_define_prefix"
+ default:
+ return fmt.Sprintf("%d", self)
+ }
+}
+
+const (
+ // Identifiers from group of_bsn_gentable_error_code
+ OFBSNGentableErrorUnknown = 0 // OF_BSN_GENTABLE_ERROR_UNKNOWN
+ OFBSNGentableErrorParam = 1 // OF_BSN_GENTABLE_ERROR_PARAM
+ OFBSNGentableErrorTableFull = 2 // OF_BSN_GENTABLE_ERROR_TABLE_FULL
+)
+
+type BsnGentableErrorCode uint16
+
+func (self BsnGentableErrorCode) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group of_bsn_hash_gtp_port_match
+ OFBSNHashGtpPortMatchSrc = 1 // OF_BSN_HASH_GTP_PORT_MATCH_SRC
+ OFBSNHashGtpPortMatchDst = 2 // OF_BSN_HASH_GTP_PORT_MATCH_DST
+ OFBSNHashGtpPortMatchSrcOrDst = 3 // OF_BSN_HASH_GTP_PORT_MATCH_SRC_OR_DST
+ OFBSNHashGtpPortMatchSrcAndDst = 4 // OF_BSN_HASH_GTP_PORT_MATCH_SRC_AND_DST
+)
+
+type BsnHashGtpPortMatch uint8
+
+func (self BsnHashGtpPortMatch) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group of_bsn_hash_packet_field
+ BSNHashFieldDstMAC = 2 // OFP_BSN_HASH_FIELD_DST_MAC
+ BSNHashFieldSrcMAC = 4 // OFP_BSN_HASH_FIELD_SRC_MAC
+ BSNHashFieldEthType = 8 // OFP_BSN_HASH_FIELD_ETH_TYPE
+ BSNHashFieldVLANID = 16 // OFP_BSN_HASH_FIELD_VLAN_ID
+ BSNHashFieldInnerL2 = 32 // OFP_BSN_HASH_FIELD_INNER_L2
+ BSNHashFieldInnerL3 = 64 // OFP_BSN_HASH_FIELD_INNER_L3
+ BSNHashFieldSrcIp = 128 // OFP_BSN_HASH_FIELD_SRC_IP
+ BSNHashFieldDstIp = 256 // OFP_BSN_HASH_FIELD_DST_IP
+ BSNHashFieldIpProto = 512 // OFP_BSN_HASH_FIELD_IP_PROTO
+ BSNHashFieldSrcL4Port = 1024 // OFP_BSN_HASH_FIELD_SRC_L4_PORT
+ BSNHashFieldDstL4Port = 2048 // OFP_BSN_HASH_FIELD_DST_L4_PORT
+ BSNHashFieldMplsLabel1 = 4096 // OFP_BSN_HASH_FIELD_MPLS_LABEL1
+ BSNHashFieldMplsLabel2 = 8192 // OFP_BSN_HASH_FIELD_MPLS_LABEL2
+ BSNHashFieldMplsLabel3 = 16384 // OFP_BSN_HASH_FIELD_MPLS_LABEL3
+ BSNHashFieldMplsLabelHiBits = 32768 // OFP_BSN_HASH_FIELD_MPLS_LABEL_HI_BITS
+ BSNHashFieldMplsPayloadSrcIp = 65536 // OFP_BSN_HASH_FIELD_MPLS_PAYLOAD_SRC_IP
+ BSNHashFieldMplsPayloadDstIp = 131072 // OFP_BSN_HASH_FIELD_MPLS_PAYLOAD_DST_IP
+ BSNHashFieldSymmetric = 262144 // OFP_BSN_HASH_FIELD_SYMMETRIC
+)
+
+type BsnHashPacketField uint64
+
+func (self BsnHashPacketField) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&BSNHashFieldDstMAC == BSNHashFieldDstMAC {
+ flags = append(flags, "\"DstMAC\": true")
+ }
+ if self&BSNHashFieldSrcMAC == BSNHashFieldSrcMAC {
+ flags = append(flags, "\"SrcMAC\": true")
+ }
+ if self&BSNHashFieldEthType == BSNHashFieldEthType {
+ flags = append(flags, "\"EthType\": true")
+ }
+ if self&BSNHashFieldVLANID == BSNHashFieldVLANID {
+ flags = append(flags, "\"VlanID\": true")
+ }
+ if self&BSNHashFieldInnerL2 == BSNHashFieldInnerL2 {
+ flags = append(flags, "\"InnerL2\": true")
+ }
+ if self&BSNHashFieldInnerL3 == BSNHashFieldInnerL3 {
+ flags = append(flags, "\"InnerL3\": true")
+ }
+ if self&BSNHashFieldSrcIp == BSNHashFieldSrcIp {
+ flags = append(flags, "\"SrcIp\": true")
+ }
+ if self&BSNHashFieldDstIp == BSNHashFieldDstIp {
+ flags = append(flags, "\"DstIp\": true")
+ }
+ if self&BSNHashFieldIpProto == BSNHashFieldIpProto {
+ flags = append(flags, "\"IpProto\": true")
+ }
+ if self&BSNHashFieldSrcL4Port == BSNHashFieldSrcL4Port {
+ flags = append(flags, "\"SrcL4Port\": true")
+ }
+ if self&BSNHashFieldDstL4Port == BSNHashFieldDstL4Port {
+ flags = append(flags, "\"DstL4Port\": true")
+ }
+ if self&BSNHashFieldMplsLabel1 == BSNHashFieldMplsLabel1 {
+ flags = append(flags, "\"MplsLabel1\": true")
+ }
+ if self&BSNHashFieldMplsLabel2 == BSNHashFieldMplsLabel2 {
+ flags = append(flags, "\"MplsLabel2\": true")
+ }
+ if self&BSNHashFieldMplsLabel3 == BSNHashFieldMplsLabel3 {
+ flags = append(flags, "\"MplsLabel3\": true")
+ }
+ if self&BSNHashFieldMplsLabelHiBits == BSNHashFieldMplsLabelHiBits {
+ flags = append(flags, "\"MplsLabelHiBits\": true")
+ }
+ if self&BSNHashFieldMplsPayloadSrcIp == BSNHashFieldMplsPayloadSrcIp {
+ flags = append(flags, "\"MplsPayloadSrcIp\": true")
+ }
+ if self&BSNHashFieldMplsPayloadDstIp == BSNHashFieldMplsPayloadDstIp {
+ flags = append(flags, "\"MplsPayloadDstIp\": true")
+ }
+ if self&BSNHashFieldSymmetric == BSNHashFieldSymmetric {
+ flags = append(flags, "\"Symmetric\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group of_bsn_hash_packet_type
+ OFBSNHashPacketL2 = 0 // OF_BSN_HASH_PACKET_L2
+ OFBSNHashPacketL2Gre = 1 // OF_BSN_HASH_PACKET_L2GRE
+ OFBSNHashPacketIpv4 = 3 // OF_BSN_HASH_PACKET_IPV4
+ OFBSNHashPacketIpv6 = 4 // OF_BSN_HASH_PACKET_IPV6
+ OFBSNHashPacketMpls = 5 // OF_BSN_HASH_PACKET_MPLS
+ OFBSNHashPacketSymmetric = 6 // OF_BSN_HASH_PACKET_SYMMETRIC
+)
+
+type BsnHashPacketType uint8
+
+func (self BsnHashPacketType) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group of_bsn_hash_type
+ BSNHashTypeL2 = 0 // OFP_BSN_HASH_TYPE_L2
+ BSNHashTypeL3 = 1 // OFP_BSN_HASH_TYPE_L3
+ BSNHashTypeEnhanced = 2 // OFP_BSN_HASH_TYPE_ENHANCED
+)
+
+type BsnHashType uint8
+
+func (self BsnHashType) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group of_bsn_lacp_convergence_status
+ LacpSuccess = 0 // LACP_SUCCESS
+ LacpTimedout = 1 // LACP_TIMEDOUT
+ LacpOutOfSync = 2 // LACP_OUT_OF_SYNC
+)
+
+type BsnLacpConvergenceStatus uint8
+
+func (self BsnLacpConvergenceStatus) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group of_bsn_pdu_slot_num
+ BsnPduSlotNumAny = 255 // BSN_PDU_SLOT_NUM_ANY
+)
+
+type BsnPduSlotNum uint8
+
+func (self BsnPduSlotNum) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group of_bsn_vlan_counter
+ BSNVLANCounterRxBytes = 0 // OFP_BSN_VLAN_COUNTER_RX_BYTES
+ BSNVLANCounterRxPackets = 1 // OFP_BSN_VLAN_COUNTER_RX_PACKETS
+ BSNVLANCounterTxBytes = 2 // OFP_BSN_VLAN_COUNTER_TX_BYTES
+ BSNVLANCounterTxPackets = 3 // OFP_BSN_VLAN_COUNTER_TX_PACKETS
+)
+
+type BsnVlanCounter uint8
+
+func (self BsnVlanCounter) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group of_bsn_vrf_counter
+ BSNVrfCounterBytes = 0 // OFP_BSN_VRF_COUNTER_BYTES
+ BSNVrfCounterPackets = 1 // OFP_BSN_VRF_COUNTER_PACKETS
+)
+
+type BsnVrfCounter uint8
+
+func (self BsnVrfCounter) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group of_nx_nat_range
+ NxNatRangeIpv4Min = 1 // NX_NAT_RANGE_IPV4_MIN
+ NxNatRangeIpv4Max = 2 // NX_NAT_RANGE_IPV4_MAX
+ NxNatRangeIpv6Min = 4 // NX_NAT_RANGE_IPV6_MIN
+ NxNatRangeIpv6Max = 8 // NX_NAT_RANGE_IPV6_MAX
+ NxNatRangeProtoMin = 16 // NX_NAT_RANGE_PROTO_MIN
+ NxNatRangeProtoMax = 32 // NX_NAT_RANGE_PROTO_MAX
+)
+
+type NxNatRange uint16
+
+func (self NxNatRange) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&NxNatRangeIpv4Min == NxNatRangeIpv4Min {
+ flags = append(flags, "\"Ipv4Min\": true")
+ }
+ if self&NxNatRangeIpv4Max == NxNatRangeIpv4Max {
+ flags = append(flags, "\"Ipv4Max\": true")
+ }
+ if self&NxNatRangeIpv6Min == NxNatRangeIpv6Min {
+ flags = append(flags, "\"Ipv6Min\": true")
+ }
+ if self&NxNatRangeIpv6Max == NxNatRangeIpv6Max {
+ flags = append(flags, "\"Ipv6Max\": true")
+ }
+ if self&NxNatRangeProtoMin == NxNatRangeProtoMin {
+ flags = append(flags, "\"ProtoMin\": true")
+ }
+ if self&NxNatRangeProtoMax == NxNatRangeProtoMax {
+ flags = append(flags, "\"ProtoMax\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_action_type
+ OFPATOutput = 0 // OFPAT_OUTPUT
+ OFPATCopyTtlOut = 11 // OFPAT_COPY_TTL_OUT
+ OFPATCopyTtlIn = 12 // OFPAT_COPY_TTL_IN
+ OFPATSetMplsTtl = 15 // OFPAT_SET_MPLS_TTL
+ OFPATDecMplsTtl = 16 // OFPAT_DEC_MPLS_TTL
+ OFPATPushVLAN = 17 // OFPAT_PUSH_VLAN
+ OFPATPopVLAN = 18 // OFPAT_POP_VLAN
+ OFPATPushMpls = 19 // OFPAT_PUSH_MPLS
+ OFPATPopMpls = 20 // OFPAT_POP_MPLS
+ OFPATSetQueue = 21 // OFPAT_SET_QUEUE
+ OFPATGroup = 22 // OFPAT_GROUP
+ OFPATSetNwTtl = 23 // OFPAT_SET_NW_TTL
+ OFPATDecNwTtl = 24 // OFPAT_DEC_NW_TTL
+ OFPATSetField = 25 // OFPAT_SET_FIELD
+ OFPATPushPbb = 26 // OFPAT_PUSH_PBB
+ OFPATPopPbb = 27 // OFPAT_POP_PBB
+ OFPATExperimenter = 65535 // OFPAT_EXPERIMENTER
+)
+
+type ActionType uint16
+
+func (self ActionType) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bad_action_code
+ OFPBACBadType = 0 // OFPBAC_BAD_TYPE
+ OFPBACBadLen = 1 // OFPBAC_BAD_LEN
+ OFPBACBadExperimenter = 2 // OFPBAC_BAD_EXPERIMENTER
+ OFPBACBadExperimenterType = 3 // OFPBAC_BAD_EXPERIMENTER_TYPE
+ OFPBACBadOutPort = 4 // OFPBAC_BAD_OUT_PORT
+ OFPBACBadArgument = 5 // OFPBAC_BAD_ARGUMENT
+ OFPBACEperm = 6 // OFPBAC_EPERM
+ OFPBACTooMany = 7 // OFPBAC_TOO_MANY
+ OFPBACBadQueue = 8 // OFPBAC_BAD_QUEUE
+ OFPBACBadOutGroup = 9 // OFPBAC_BAD_OUT_GROUP
+ OFPBACMatchInconsistent = 10 // OFPBAC_MATCH_INCONSISTENT
+ OFPBACUnsupportedOrder = 11 // OFPBAC_UNSUPPORTED_ORDER
+ OFPBACBadTag = 12 // OFPBAC_BAD_TAG
+ OFPBACBadSetType = 13 // OFPBAC_BAD_SET_TYPE
+ OFPBACBadSetLen = 14 // OFPBAC_BAD_SET_LEN
+ OFPBACBadSetArgument = 15 // OFPBAC_BAD_SET_ARGUMENT
+)
+
+type BadActionCode uint16
+
+func (self BadActionCode) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bad_instruction_code
+ OFPBICUnknownInst = 0 // OFPBIC_UNKNOWN_INST
+ OFPBICUnsupInst = 1 // OFPBIC_UNSUP_INST
+ OFPBICBadTableID = 2 // OFPBIC_BAD_TABLE_ID
+ OFPBICUnsupMetadata = 3 // OFPBIC_UNSUP_METADATA
+ OFPBICUnsupMetadataMask = 4 // OFPBIC_UNSUP_METADATA_MASK
+ OFPBICBadExperimenter = 5 // OFPBIC_BAD_EXPERIMENTER
+ OFPBICBadExperimenterType = 6 // OFPBIC_BAD_EXPERIMENTER_TYPE
+ OFPBICBadLen = 7 // OFPBIC_BAD_LEN
+ OFPBICEperm = 8 // OFPBIC_EPERM
+)
+
+type BadInstructionCode uint16
+
+func (self BadInstructionCode) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bad_match_code
+ OFPBMCBadType = 0 // OFPBMC_BAD_TYPE
+ OFPBMCBadLen = 1 // OFPBMC_BAD_LEN
+ OFPBMCBadTag = 2 // OFPBMC_BAD_TAG
+ OFPBMCBadDlAddrMask = 3 // OFPBMC_BAD_DL_ADDR_MASK
+ OFPBMCBadNwAddrMask = 4 // OFPBMC_BAD_NW_ADDR_MASK
+ OFPBMCBadWildcards = 5 // OFPBMC_BAD_WILDCARDS
+ OFPBMCBadField = 6 // OFPBMC_BAD_FIELD
+ OFPBMCBadValue = 7 // OFPBMC_BAD_VALUE
+ OFPBMCBadMask = 8 // OFPBMC_BAD_MASK
+ OFPBMCBadPrereq = 9 // OFPBMC_BAD_PREREQ
+ OFPBMCDupField = 10 // OFPBMC_DUP_FIELD
+ OFPBMCEperm = 11 // OFPBMC_EPERM
+)
+
+type BadMatchCode uint16
+
+func (self BadMatchCode) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bad_request_code
+ OFPBRCBadVersion = 0 // OFPBRC_BAD_VERSION
+ OFPBRCBadType = 1 // OFPBRC_BAD_TYPE
+ OFPBRCBadStat = 2 // OFPBRC_BAD_STAT
+ OFPBRCBadExperimenter = 3 // OFPBRC_BAD_EXPERIMENTER
+ OFPBRCBadExperimenterType = 4 // OFPBRC_BAD_EXPERIMENTER_TYPE
+ OFPBRCEperm = 5 // OFPBRC_EPERM
+ OFPBRCBadLen = 6 // OFPBRC_BAD_LEN
+ OFPBRCBufferEmpty = 7 // OFPBRC_BUFFER_EMPTY
+ OFPBRCBufferUnknown = 8 // OFPBRC_BUFFER_UNKNOWN
+ OFPBRCBadTableID = 9 // OFPBRC_BAD_TABLE_ID
+ OFPBRCIsSlave = 10 // OFPBRC_IS_SLAVE
+ OFPBRCBadPort = 11 // OFPBRC_BAD_PORT
+ OFPBRCBadPacket = 12 // OFPBRC_BAD_PACKET
+ OFPBRCMultipartBufferOverflow = 13 // OFPBRC_MULTIPART_BUFFER_OVERFLOW
+)
+
+type BadRequestCode uint16
+
+func (self BadRequestCode) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_anchor
+ BSNAnchorPacketStart = 0 // OFP_BSN_ANCHOR_PACKET_START
+ BSNAnchorL3HeaderStart = 1 // OFP_BSN_ANCHOR_L3_HEADER_START
+ BSNAnchorL4HeaderStart = 2 // OFP_BSN_ANCHOR_L4_HEADER_START
+ BSNAnchorL4PayloadStart = 3 // OFP_BSN_ANCHOR_L4_PAYLOAD_START
+)
+
+type BsnAnchor uint16
+
+func (self BsnAnchor) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_auto_negotiation_type
+ BSNAutoNegotiationDefault = 0 // OFP_BSN_AUTO_NEGOTIATION_DEFAULT
+ BSNAutoNegotiationEnable = 1 // OFP_BSN_AUTO_NEGOTIATION_ENABLE
+ BSNAutoNegotiationDisable = 2 // OFP_BSN_AUTO_NEGOTIATION_DISABLE
+)
+
+type BsnAutoNegotiationType uint8
+
+func (self BsnAutoNegotiationType) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_bfd_endpoint
+ BSNBfdUnused = 0 // OFP_BSN_BFD_UNUSED
+ BSNBfdMicro = 1 // OFP_BSN_BFD_MICRO
+ BSNBfd1Hop = 2 // OFP_BSN_BFD_1_HOP
+ BSNBfdMultiHop = 3 // OFP_BSN_BFD_MULTI_HOP
+)
+
+type BsnBfdEndpoint uint8
+
+func (self BsnBfdEndpoint) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_bfd_endpoint_state
+ BSNBfdEndpointStateAdmindown = 0 // OFP_BSN_BFD_ENDPOINT_STATE_ADMINDOWN
+ BSNBfdEndpointStateDown = 1 // OFP_BSN_BFD_ENDPOINT_STATE_DOWN
+ BSNBfdEndpointStateInit = 2 // OFP_BSN_BFD_ENDPOINT_STATE_INIT
+ BSNBfdEndpointStateUp = 3 // OFP_BSN_BFD_ENDPOINT_STATE_UP
+ BSNBfdEndpointSessionError = 4 // OFP_BSN_BFD_ENDPOINT_SESSION_ERROR
+ BSNBfdEndpointRemoteAdmindown = 5 // OFP_BSN_BFD_ENDPOINT_REMOTE_ADMINDOWN
+ BSNBfdEndpointParamsChange = 6 // OFP_BSN_BFD_ENDPOINT_PARAMS_CHANGE
+)
+
+type BsnBfdEndpointState uint8
+
+func (self BsnBfdEndpointState) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_controller_connection_state
+ BSNControllerConnectionStateDisconnected = 0 // OFP_BSN_CONTROLLER_CONNECTION_STATE_DISCONNECTED
+ BSNControllerConnectionStateConnected = 1 // OFP_BSN_CONTROLLER_CONNECTION_STATE_CONNECTED
+)
+
+type BsnControllerConnectionState uint8
+
+func (self BsnControllerConnectionState) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_controller_role_reason
+ BSNControllerRoleReasonMasterRequest = 0 // OFP_BSN_CONTROLLER_ROLE_REASON_MASTER_REQUEST
+ BSNControllerRoleReasonConfig = 1 // OFP_BSN_CONTROLLER_ROLE_REASON_CONFIG
+ BSNControllerRoleReasonExperimenter = 2 // OFP_BSN_CONTROLLER_ROLE_REASON_EXPERIMENTER
+)
+
+type BsnControllerRoleReason uint8
+
+func (self BsnControllerRoleReason) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_decap
+ BSNDecapVxlan = 0 // OFP_BSN_DECAP_VXLAN
+ BSNDecapErspan = 1 // OFP_BSN_DECAP_ERSPAN
+ BSNDecapL2GRE = 2 // OFP_BSN_DECAP_L2_GRE
+ BSNDecapNvgre = 3 // OFP_BSN_DECAP_NVGRE
+ BSNDecapCapwap = 4 // OFP_BSN_DECAP_CAPWAP
+ BSNDecapL2Mpls = 5 // OFP_BSN_DECAP_L2_MPLS
+ BSNDecapL3GRE = 6 // OFP_BSN_DECAP_L3_GRE
+ BSNDecapGtp = 7 // OFP_BSN_DECAP_GTP
+ BSNDecapL3Mpls = 8 // OFP_BSN_DECAP_L3_MPLS
+)
+
+type BsnDecap uint16
+
+func (self BsnDecap) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_encap
+ BSNEncapUnused = 0 // OFP_BSN_ENCAP_UNUSED
+ BSNEncapIpv4Udp = 1 // OFP_BSN_ENCAP_IPV4_UDP
+ BSNEncapIpv6Udp = 2 // OFP_BSN_ENCAP_IPV6_UDP
+)
+
+type BsnEncap uint8
+
+func (self BsnEncap) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_enhanced_hash_type
+ BSNEnhancedHashL2 = 1 // OFP_BSN_ENHANCED_HASH_L2
+ BSNEnhancedHashL3 = 2 // OFP_BSN_ENHANCED_HASH_L3
+ BSNEnhancedHashL2Gre = 4 // OFP_BSN_ENHANCED_HASH_L2GRE
+ BSNEnhancedHashMpls = 8 // OFP_BSN_ENHANCED_HASH_MPLS
+ BSNEnhancedHashGtp = 16 // OFP_BSN_ENHANCED_HASH_GTP
+ BSNEnhancedHashSymmetric = 32 // OFP_BSN_ENHANCED_HASH_SYMMETRIC
+)
+
+type BsnEnhancedHashType uint64
+
+func (self BsnEnhancedHashType) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&BSNEnhancedHashL2 == BSNEnhancedHashL2 {
+ flags = append(flags, "\"L2\": true")
+ }
+ if self&BSNEnhancedHashL3 == BSNEnhancedHashL3 {
+ flags = append(flags, "\"L3\": true")
+ }
+ if self&BSNEnhancedHashL2Gre == BSNEnhancedHashL2Gre {
+ flags = append(flags, "\"L2Gre\": true")
+ }
+ if self&BSNEnhancedHashMpls == BSNEnhancedHashMpls {
+ flags = append(flags, "\"Mpls\": true")
+ }
+ if self&BSNEnhancedHashGtp == BSNEnhancedHashGtp {
+ flags = append(flags, "\"Gtp\": true")
+ }
+ if self&BSNEnhancedHashSymmetric == BSNEnhancedHashSymmetric {
+ flags = append(flags, "\"Symmetric\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_fabric_port_role
+ BSNFabricPortRolePartitionedSpine = 1 // OFP_BSN_FABRIC_PORT_ROLE_PARTITIONED_SPINE
+)
+
+type BsnFabricPortRole uint16
+
+func (self BsnFabricPortRole) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_flow_classifier
+ BSNFlowClassifierNone = 0 // OFP_BSN_FLOW_CLASSIFIER_NONE
+ BSNFlowClassifierL2Bc = 1 // OFP_BSN_FLOW_CLASSIFIER_L2BC
+ BSNFlowClassifierL2Uc = 2 // OFP_BSN_FLOW_CLASSIFIER_L2UC
+ BSNFlowClassifierL2Unknown = 3 // OFP_BSN_FLOW_CLASSIFIER_L2UNKNOWN
+ BSNFlowClassifierL2Mcknown = 4 // OFP_BSN_FLOW_CLASSIFIER_L2MCKNOWN
+ BSNFlowClassifierL2Mcunknown = 5 // OFP_BSN_FLOW_CLASSIFIER_L2MCUNKNOWN
+ BSNFlowClassifierL3Mcunknown = 6 // OFP_BSN_FLOW_CLASSIFIER_L3MCUNKNOWN
+ BSNFlowClassifierL3Mcknown = 7 // OFP_BSN_FLOW_CLASSIFIER_L3MCKNOWN
+ BSNFlowClassifierL3Ucknown = 8 // OFP_BSN_FLOW_CLASSIFIER_L3UCKNOWN
+ BSNFlowClassifierL3Ucunknown = 9 // OFP_BSN_FLOW_CLASSIFIER_L3UCUNKNOWN
+)
+
+type BsnFlowClassifier uint16
+
+func (self BsnFlowClassifier) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_forward_error_correction_type
+ BSNForwardErrorCorrectionDefault = 0 // OFP_BSN_FORWARD_ERROR_CORRECTION_DEFAULT
+ BSNForwardErrorCorrectionEnable = 1 // OFP_BSN_FORWARD_ERROR_CORRECTION_ENABLE
+ BSNForwardErrorCorrectionDisable = 2 // OFP_BSN_FORWARD_ERROR_CORRECTION_DISABLE
+)
+
+type BsnForwardErrorCorrectionType uint8
+
+func (self BsnForwardErrorCorrectionType) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_hash_algorithm_type
+ BSNHashAlgorithmCrc16Xor8 = 0 // OFP_BSN_HASH_ALGORITHM_CRC16XOR8
+ BSNHashAlgorithmCrc16Xor4 = 1 // OFP_BSN_HASH_ALGORITHM_CRC16XOR4
+ BSNHashAlgorithmCrc16Xor2 = 2 // OFP_BSN_HASH_ALGORITHM_CRC16XOR2
+ BSNHashAlgorithmCrc16Xor1 = 3 // OFP_BSN_HASH_ALGORITHM_CRC16XOR1
+ BSNHashAlgorithmCrc16 = 4 // OFP_BSN_HASH_ALGORITHM_CRC16
+ BSNHashAlgorithmXor16 = 5 // OFP_BSN_HASH_ALGORITHM_XOR16
+ BSNHashAlgorithmCrc16Ccitt = 6 // OFP_BSN_HASH_ALGORITHM_CRC16CCITT
+ BSNHashAlgorithmCrc32Lo = 7 // OFP_BSN_HASH_ALGORITHM_CRC32LO
+ BSNHashAlgorithmCrc32Hi = 8 // OFP_BSN_HASH_ALGORITHM_CRC32HI
+)
+
+type BsnHashAlgorithmType uint16
+
+func (self BsnHashAlgorithmType) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_hash_select_flags
+ BSNHashSelectSrcIp = 1 // OFP_BSN_HASH_SELECT_SRC_IP
+ BSNHashSelectDstIp = 2 // OFP_BSN_HASH_SELECT_DST_IP
+)
+
+type BsnHashSelectFlags uint32
+
+func (self BsnHashSelectFlags) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&BSNHashSelectSrcIp == BSNHashSelectSrcIp {
+ flags = append(flags, "\"SrcIp\": true")
+ }
+ if self&BSNHashSelectDstIp == BSNHashSelectDstIp {
+ flags = append(flags, "\"DstIp\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_ip_tunnel_type
+ BSNIpTunnelTypeNone = 0 // OFP_BSN_IP_TUNNEL_TYPE_NONE
+ BSNIpTunnelTypePim = 1 // OFP_BSN_IP_TUNNEL_TYPE_PIM
+)
+
+type BsnIpTunnelType uint16
+
+func (self BsnIpTunnelType) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_lacp_state
+ BSNLacpStateActivity = 1 // OFP_BSN_LACP_STATE_ACTIVITY
+ BSNLacpStateTimeout = 2 // OFP_BSN_LACP_STATE_TIMEOUT
+ BSNLacpStateAggregation = 4 // OFP_BSN_LACP_STATE_AGGREGATION
+ BSNLacpStateSynchronization = 8 // OFP_BSN_LACP_STATE_SYNCHRONIZATION
+ BSNLacpStateCollecting = 16 // OFP_BSN_LACP_STATE_COLLECTING
+ BSNLacpStateDistributing = 32 // OFP_BSN_LACP_STATE_DISTRIBUTING
+ BSNLacpStateDefaulted = 64 // OFP_BSN_LACP_STATE_DEFAULTED
+ BSNLacpStateExpired = 128 // OFP_BSN_LACP_STATE_EXPIRED
+)
+
+type BsnLacpState uint8
+
+func (self BsnLacpState) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&BSNLacpStateActivity == BSNLacpStateActivity {
+ flags = append(flags, "\"Activity\": true")
+ }
+ if self&BSNLacpStateTimeout == BSNLacpStateTimeout {
+ flags = append(flags, "\"Timeout\": true")
+ }
+ if self&BSNLacpStateAggregation == BSNLacpStateAggregation {
+ flags = append(flags, "\"Aggregation\": true")
+ }
+ if self&BSNLacpStateSynchronization == BSNLacpStateSynchronization {
+ flags = append(flags, "\"Synchronization\": true")
+ }
+ if self&BSNLacpStateCollecting == BSNLacpStateCollecting {
+ flags = append(flags, "\"Collecting\": true")
+ }
+ if self&BSNLacpStateDistributing == BSNLacpStateDistributing {
+ flags = append(flags, "\"Distributing\": true")
+ }
+ if self&BSNLacpStateDefaulted == BSNLacpStateDefaulted {
+ flags = append(flags, "\"Defaulted\": true")
+ }
+ if self&BSNLacpStateExpired == BSNLacpStateExpired {
+ flags = append(flags, "\"Expired\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_lag_flag
+ BSNLagFlagAutoRecovery = 1 // OFP_BSN_LAG_FLAG_AUTO_RECOVERY
+)
+
+type BsnLagFlag uint16
+
+func (self BsnLagFlag) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&BSNLagFlagAutoRecovery == BSNLagFlagAutoRecovery {
+ flags = append(flags, "\"BSNLagFlagAutoRecovery\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_loglevel
+ BSNLoglevelMsg = 0 // OFP_BSN_LOGLEVEL_MSG
+ BSNLoglevelError = 1 // OFP_BSN_LOGLEVEL_ERROR
+ BSNLoglevelWarn = 2 // OFP_BSN_LOGLEVEL_WARN
+ BSNLoglevelInfo = 3 // OFP_BSN_LOGLEVEL_INFO
+ BSNLoglevelVerbose = 4 // OFP_BSN_LOGLEVEL_VERBOSE
+ BSNLoglevelTrace = 5 // OFP_BSN_LOGLEVEL_TRACE
+)
+
+type BsnLoglevel uint8
+
+func (self BsnLoglevel) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_loopback_mode
+ BSNLoopbackModeNone = 0 // OFP_BSN_LOOPBACK_MODE_NONE
+ BSNLoopbackModeMAC = 1 // OFP_BSN_LOOPBACK_MODE_MAC
+ BSNLoopbackModePhy = 2 // OFP_BSN_LOOPBACK_MODE_PHY
+ BSNLoopbackModePhyRemote = 3 // OFP_BSN_LOOPBACK_MODE_PHY_REMOTE
+)
+
+type BsnLoopbackMode uint8
+
+func (self BsnLoopbackMode) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_lua_upload_flags
+ BSNLuaUploadMore = 1 // OFP_BSN_LUA_UPLOAD_MORE
+ BSNLuaUploadForce = 2 // OFP_BSN_LUA_UPLOAD_FORCE
+)
+
+type BsnLuaUploadFlags uint16
+
+func (self BsnLuaUploadFlags) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&BSNLuaUploadMore == BSNLuaUploadMore {
+ flags = append(flags, "\"More\": true")
+ }
+ if self&BSNLuaUploadForce == BSNLuaUploadForce {
+ flags = append(flags, "\"Force\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_multicast_packet
+ BSNMulticastPacketNone = 0 // OFP_BSN_MULTICAST_PACKET_NONE
+ BSNMulticastPacketPimHello = 1 // OFP_BSN_MULTICAST_PACKET_PIM_HELLO
+ BSNMulticastPacketPimJoinPrune = 2 // OFP_BSN_MULTICAST_PACKET_PIM_JOIN_PRUNE
+ BSNMulticastPacketPimAssert = 3 // OFP_BSN_MULTICAST_PACKET_PIM_ASSERT
+)
+
+type BsnMulticastPacket uint16
+
+func (self BsnMulticastPacket) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_pktin_flag
+ BSNPktinFlagPdu = 1 // OFP_BSN_PKTIN_FLAG_PDU
+ BSNPktinFlagNewHost = 2 // OFP_BSN_PKTIN_FLAG_NEW_HOST
+ BSNPktinFlagStationMove = 4 // OFP_BSN_PKTIN_FLAG_STATION_MOVE
+ BSNPktinFlagARP = 8 // OFP_BSN_PKTIN_FLAG_ARP
+ BSNPktinFlagDhcp = 16 // OFP_BSN_PKTIN_FLAG_DHCP
+ BSNPktinFlagL2Cpu = 32 // OFP_BSN_PKTIN_FLAG_L2_CPU
+ BSNPktinFlagDebug = 64 // OFP_BSN_PKTIN_FLAG_DEBUG
+ BSNPktinFlagTtlExpired = 128 // OFP_BSN_PKTIN_FLAG_TTL_EXPIRED
+ BSNPktinFlagL3Miss = 256 // OFP_BSN_PKTIN_FLAG_L3_MISS
+ BSNPktinFlagL3Cpu = 512 // OFP_BSN_PKTIN_FLAG_L3_CPU
+ BSNPktinFlagIngressAcl = 1024 // OFP_BSN_PKTIN_FLAG_INGRESS_ACL
+ BSNPktinFlagSflow = 2048 // OFP_BSN_PKTIN_FLAG_SFLOW
+ BSNPktinFlagARPCache = 4096 // OFP_BSN_PKTIN_FLAG_ARP_CACHE
+ BSNPktinFlagARPTarget = 8192 // OFP_BSN_PKTIN_FLAG_ARP_TARGET
+ BSNPktinFlagIgmp = 16384 // OFP_BSN_PKTIN_FLAG_IGMP
+ BSNPktinFlagPim = 32768 // OFP_BSN_PKTIN_FLAG_PIM
+ BSNPktinFlagVxlanSipMiss = 65536 // OFP_BSN_PKTIN_FLAG_VXLAN_SIP_MISS
+ BSNPktinFlagMcReserved = 131072 // OFP_BSN_PKTIN_FLAG_MC_RESERVED
+ BSNPktinFlagAnalytics = 262144 // OFP_BSN_PKTIN_FLAG_ANALYTICS
+ BSNPktinFlagIcmpv6 = 524288 // OFP_BSN_PKTIN_FLAG_ICMPV6
+ BSNPktinFlagIngressAclLocal = 1048576 // OFP_BSN_PKTIN_FLAG_INGRESS_ACL_LOCAL
+ BSNPktinFlagIpmcMiss = 2097152 // OFP_BSN_PKTIN_FLAG_IPMC_MISS
+ BSNPktinFlagIpmcRpfFailed = 4194304 // OFP_BSN_PKTIN_FLAG_IPMC_RPF_FAILED
+ BSNPktinFlagBfdSlowpath = 8388608 // OFP_BSN_PKTIN_FLAG_BFD_SLOWPATH
+)
+
+type BsnPktinFlag uint64
+
+func (self BsnPktinFlag) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&BSNPktinFlagPdu == BSNPktinFlagPdu {
+ flags = append(flags, "\"Pdu\": true")
+ }
+ if self&BSNPktinFlagNewHost == BSNPktinFlagNewHost {
+ flags = append(flags, "\"NewHost\": true")
+ }
+ if self&BSNPktinFlagStationMove == BSNPktinFlagStationMove {
+ flags = append(flags, "\"StationMove\": true")
+ }
+ if self&BSNPktinFlagARP == BSNPktinFlagARP {
+ flags = append(flags, "\"Arp\": true")
+ }
+ if self&BSNPktinFlagDhcp == BSNPktinFlagDhcp {
+ flags = append(flags, "\"Dhcp\": true")
+ }
+ if self&BSNPktinFlagL2Cpu == BSNPktinFlagL2Cpu {
+ flags = append(flags, "\"L2Cpu\": true")
+ }
+ if self&BSNPktinFlagDebug == BSNPktinFlagDebug {
+ flags = append(flags, "\"Debug\": true")
+ }
+ if self&BSNPktinFlagTtlExpired == BSNPktinFlagTtlExpired {
+ flags = append(flags, "\"TtlExpired\": true")
+ }
+ if self&BSNPktinFlagL3Miss == BSNPktinFlagL3Miss {
+ flags = append(flags, "\"L3Miss\": true")
+ }
+ if self&BSNPktinFlagL3Cpu == BSNPktinFlagL3Cpu {
+ flags = append(flags, "\"L3Cpu\": true")
+ }
+ if self&BSNPktinFlagIngressAcl == BSNPktinFlagIngressAcl {
+ flags = append(flags, "\"IngressAcl\": true")
+ }
+ if self&BSNPktinFlagSflow == BSNPktinFlagSflow {
+ flags = append(flags, "\"Sflow\": true")
+ }
+ if self&BSNPktinFlagARPCache == BSNPktinFlagARPCache {
+ flags = append(flags, "\"ArpCache\": true")
+ }
+ if self&BSNPktinFlagARPTarget == BSNPktinFlagARPTarget {
+ flags = append(flags, "\"ArpTarget\": true")
+ }
+ if self&BSNPktinFlagIgmp == BSNPktinFlagIgmp {
+ flags = append(flags, "\"Igmp\": true")
+ }
+ if self&BSNPktinFlagPim == BSNPktinFlagPim {
+ flags = append(flags, "\"Pim\": true")
+ }
+ if self&BSNPktinFlagVxlanSipMiss == BSNPktinFlagVxlanSipMiss {
+ flags = append(flags, "\"VxlanSipMiss\": true")
+ }
+ if self&BSNPktinFlagMcReserved == BSNPktinFlagMcReserved {
+ flags = append(flags, "\"McReserved\": true")
+ }
+ if self&BSNPktinFlagAnalytics == BSNPktinFlagAnalytics {
+ flags = append(flags, "\"Analytics\": true")
+ }
+ if self&BSNPktinFlagIcmpv6 == BSNPktinFlagIcmpv6 {
+ flags = append(flags, "\"Icmpv6\": true")
+ }
+ if self&BSNPktinFlagIngressAclLocal == BSNPktinFlagIngressAclLocal {
+ flags = append(flags, "\"IngressAclLocal\": true")
+ }
+ if self&BSNPktinFlagIpmcMiss == BSNPktinFlagIpmcMiss {
+ flags = append(flags, "\"IpmcMiss\": true")
+ }
+ if self&BSNPktinFlagIpmcRpfFailed == BSNPktinFlagIpmcRpfFailed {
+ flags = append(flags, "\"IpmcRpfFailed\": true")
+ }
+ if self&BSNPktinFlagBfdSlowpath == BSNPktinFlagBfdSlowpath {
+ flags = append(flags, "\"BfdSlowpath\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_port_counter
+ BSNPortCounterRxBytes = 0 // OFP_BSN_PORT_COUNTER_RX_BYTES
+ BSNPortCounterRxPacketsUnicast = 1 // OFP_BSN_PORT_COUNTER_RX_PACKETS_UNICAST
+ BSNPortCounterRxPacketsBroadcast = 2 // OFP_BSN_PORT_COUNTER_RX_PACKETS_BROADCAST
+ BSNPortCounterRxPacketsMulticast = 3 // OFP_BSN_PORT_COUNTER_RX_PACKETS_MULTICAST
+ BSNPortCounterRxDropped = 4 // OFP_BSN_PORT_COUNTER_RX_DROPPED
+ BSNPortCounterRxErrors = 5 // OFP_BSN_PORT_COUNTER_RX_ERRORS
+ BSNPortCounterTxBytes = 6 // OFP_BSN_PORT_COUNTER_TX_BYTES
+ BSNPortCounterTxPacketsUnicast = 7 // OFP_BSN_PORT_COUNTER_TX_PACKETS_UNICAST
+ BSNPortCounterTxPacketsBroadcast = 8 // OFP_BSN_PORT_COUNTER_TX_PACKETS_BROADCAST
+ BSNPortCounterTxPacketsMulticast = 9 // OFP_BSN_PORT_COUNTER_TX_PACKETS_MULTICAST
+ BSNPortCounterTxDropped = 10 // OFP_BSN_PORT_COUNTER_TX_DROPPED
+ BSNPortCounterTxErrors = 11 // OFP_BSN_PORT_COUNTER_TX_ERRORS
+ BSNPortCounterRxRunts = 12 // OFP_BSN_PORT_COUNTER_RX_RUNTS
+ BSNPortCounterRxGiants = 13 // OFP_BSN_PORT_COUNTER_RX_GIANTS
+ BSNPortCounterRxCrcErrors = 14 // OFP_BSN_PORT_COUNTER_RX_CRC_ERRORS
+ BSNPortCounterRxAlignmentErrors = 15 // OFP_BSN_PORT_COUNTER_RX_ALIGNMENT_ERRORS
+ BSNPortCounterRxSymbolErrors = 16 // OFP_BSN_PORT_COUNTER_RX_SYMBOL_ERRORS
+ BSNPortCounterRxPauseInput = 17 // OFP_BSN_PORT_COUNTER_RX_PAUSE_INPUT
+ BSNPortCounterTxCollisions = 18 // OFP_BSN_PORT_COUNTER_TX_COLLISIONS
+ BSNPortCounterTxLateCollisions = 19 // OFP_BSN_PORT_COUNTER_TX_LATE_COLLISIONS
+ BSNPortCounterTxDeferred = 20 // OFP_BSN_PORT_COUNTER_TX_DEFERRED
+ BSNPortCounterTxPauseOutput = 21 // OFP_BSN_PORT_COUNTER_TX_PAUSE_OUTPUT
+ BSNPortCounterRxPackets = 22 // OFP_BSN_PORT_COUNTER_RX_PACKETS
+ BSNPortCounterTxPackets = 23 // OFP_BSN_PORT_COUNTER_TX_PACKETS
+ BSNPortCounterRxLengthErrors = 24 // OFP_BSN_PORT_COUNTER_RX_LENGTH_ERRORS
+ BSNPortCounterRxOverflowErrors = 25 // OFP_BSN_PORT_COUNTER_RX_OVERFLOW_ERRORS
+ BSNPortCounterTxCarrierErrors = 26 // OFP_BSN_PORT_COUNTER_TX_CARRIER_ERRORS
+ BSNPortCounterRxPacketsBadVLAN = 27 // OFP_BSN_PORT_COUNTER_RX_PACKETS_BAD_VLAN
+ BSNPortCounterLinkUp = 28 // OFP_BSN_PORT_COUNTER_LINK_UP
+ BSNPortCounterLinkDown = 29 // OFP_BSN_PORT_COUNTER_LINK_DOWN
+ BSNPortCounterRxPfcControlFrame = 30 // OFP_BSN_PORT_COUNTER_RX_PFC_CONTROL_FRAME
+ BSNPortCounterTxPfcControlFrame = 31 // OFP_BSN_PORT_COUNTER_TX_PFC_CONTROL_FRAME
+ BSNPortCounterRxPfcFrameXonPriority0 = 32 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_XON_PRIORITY_0
+ BSNPortCounterRxPfcFrameXonPriority1 = 33 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_XON_PRIORITY_1
+ BSNPortCounterRxPfcFrameXonPriority2 = 34 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_XON_PRIORITY_2
+ BSNPortCounterRxPfcFrameXonPriority3 = 35 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_XON_PRIORITY_3
+ BSNPortCounterRxPfcFrameXonPriority4 = 36 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_XON_PRIORITY_4
+ BSNPortCounterRxPfcFrameXonPriority5 = 37 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_XON_PRIORITY_5
+ BSNPortCounterRxPfcFrameXonPriority6 = 38 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_XON_PRIORITY_6
+ BSNPortCounterRxPfcFrameXonPriority7 = 39 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_XON_PRIORITY_7
+ BSNPortCounterRxPfcFramePriority0 = 40 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_PRIORITY_0
+ BSNPortCounterRxPfcFramePriority1 = 41 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_PRIORITY_1
+ BSNPortCounterRxPfcFramePriority2 = 42 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_PRIORITY_2
+ BSNPortCounterRxPfcFramePriority3 = 43 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_PRIORITY_3
+ BSNPortCounterRxPfcFramePriority4 = 44 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_PRIORITY_4
+ BSNPortCounterRxPfcFramePriority5 = 45 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_PRIORITY_5
+ BSNPortCounterRxPfcFramePriority6 = 46 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_PRIORITY_6
+ BSNPortCounterRxPfcFramePriority7 = 47 // OFP_BSN_PORT_COUNTER_RX_PFC_FRAME_PRIORITY_7
+ BSNPortCounterTxPfcFramePriority0 = 48 // OFP_BSN_PORT_COUNTER_TX_PFC_FRAME_PRIORITY_0
+ BSNPortCounterTxPfcFramePriority1 = 49 // OFP_BSN_PORT_COUNTER_TX_PFC_FRAME_PRIORITY_1
+ BSNPortCounterTxPfcFramePriority2 = 50 // OFP_BSN_PORT_COUNTER_TX_PFC_FRAME_PRIORITY_2
+ BSNPortCounterTxPfcFramePriority3 = 51 // OFP_BSN_PORT_COUNTER_TX_PFC_FRAME_PRIORITY_3
+ BSNPortCounterTxPfcFramePriority4 = 52 // OFP_BSN_PORT_COUNTER_TX_PFC_FRAME_PRIORITY_4
+ BSNPortCounterTxPfcFramePriority5 = 53 // OFP_BSN_PORT_COUNTER_TX_PFC_FRAME_PRIORITY_5
+ BSNPortCounterTxPfcFramePriority6 = 54 // OFP_BSN_PORT_COUNTER_TX_PFC_FRAME_PRIORITY_6
+ BSNPortCounterTxPfcFramePriority7 = 55 // OFP_BSN_PORT_COUNTER_TX_PFC_FRAME_PRIORITY_7
+)
+
+type BsnPortCounter uint8
+
+func (self BsnPortCounter) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_port_mode
+ BSNPortModeNone = 0 // OFP_BSN_PORT_MODE_NONE
+ BSNPortMode4Xx = 1 // OFP_BSN_PORT_MODE_4XX
+ BSNPortMode4X1 = 2 // OFP_BSN_PORT_MODE_4X1
+ BSNPortMode4X10 = 3 // OFP_BSN_PORT_MODE_4X10
+ BSNPortMode4X25 = 4 // OFP_BSN_PORT_MODE_4X25
+ BSNPortMode2X50 = 5 // OFP_BSN_PORT_MODE_2X50
+ BSNPortMode1X1 = 6 // OFP_BSN_PORT_MODE_1X1
+ BSNPortMode1X10 = 7 // OFP_BSN_PORT_MODE_1X10
+ BSNPortMode1X25 = 8 // OFP_BSN_PORT_MODE_1X25
+ BSNPortMode1X40 = 9 // OFP_BSN_PORT_MODE_1X40
+ BSNPortMode1X100 = 10 // OFP_BSN_PORT_MODE_1X100
+)
+
+type BsnPortMode uint16
+
+func (self BsnPortMode) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_port_speed_gbps_type
+ BSNPortSpeedGbps1 = 1 // OFP_BSN_PORT_SPEED_GBPS_1
+ BSNPortSpeedGbps10 = 10 // OFP_BSN_PORT_SPEED_GBPS_10
+ BSNPortSpeedGbps25 = 25 // OFP_BSN_PORT_SPEED_GBPS_25
+ BSNPortSpeedGbps40 = 40 // OFP_BSN_PORT_SPEED_GBPS_40
+ BSNPortSpeedGbps50 = 50 // OFP_BSN_PORT_SPEED_GBPS_50
+ BSNPortSpeedGbps100 = 100 // OFP_BSN_PORT_SPEED_GBPS_100
+)
+
+type BsnPortSpeedGbpsType uint32
+
+func (self BsnPortSpeedGbpsType) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_port_usage
+ BSNPortUnused = 0 // OFP_BSN_PORT_UNUSED
+ BSNPortTransmitOnly = 1 // OFP_BSN_PORT_TRANSMIT_ONLY
+ BSNPortReceiveOnly = 2 // OFP_BSN_PORT_RECEIVE_ONLY
+ BSNPortBidirection = 3 // OFP_BSN_PORT_BIDIRECTION
+)
+
+type BsnPortUsage uint16
+
+func (self BsnPortUsage) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_port_vxlan_mode
+ BSNPortVxlanRecirculationEnable = 0 // OFP_BSN_PORT_VXLAN_RECIRCULATION_ENABLE
+ BSNPortVxlanTerminationEnable = 1 // OFP_BSN_PORT_VXLAN_TERMINATION_ENABLE
+)
+
+type BsnPortVxlanMode uint8
+
+func (self BsnPortVxlanMode) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_push_vlan
+ BSNPushVLANUntagged = 1 // OFP_BSN_PUSH_VLAN_UNTAGGED
+ BSNPushVLANSingleTagged = 2 // OFP_BSN_PUSH_VLAN_SINGLE_TAGGED
+ BSNPushVLANDoubleTagged = 4 // OFP_BSN_PUSH_VLAN_DOUBLE_TAGGED
+)
+
+type BsnPushVlan uint8
+
+func (self BsnPushVlan) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&BSNPushVLANUntagged == BSNPushVLANUntagged {
+ flags = append(flags, "\"Untagged\": true")
+ }
+ if self&BSNPushVLANSingleTagged == BSNPushVLANSingleTagged {
+ flags = append(flags, "\"SingleTagged\": true")
+ }
+ if self&BSNPushVLANDoubleTagged == BSNPushVLANDoubleTagged {
+ flags = append(flags, "\"DoubleTagged\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_rate_unit
+ BSNRateUnitPps = 0 // OFP_BSN_RATE_UNIT_PPS
+ BSNRateUnitKbitps = 1 // OFP_BSN_RATE_UNIT_KBITPS
+)
+
+type BsnRateUnit uint8
+
+func (self BsnRateUnit) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_routing_param
+ BSNRoutingParamOspfUcast = 1 // OFP_BSN_ROUTING_PARAM_OSPF_UCAST
+ BSNRoutingParamOspfMcast = 2 // OFP_BSN_ROUTING_PARAM_OSPF_MCAST
+ BSNRoutingParamARPFrr = 3 // OFP_BSN_ROUTING_PARAM_ARP_FRR
+ BSNRoutingParamIpv6OspfUcast = 4 // OFP_BSN_ROUTING_PARAM_IPV6_OSPF_UCAST
+ BSNRoutingParamIpv6OspfMcast = 5 // OFP_BSN_ROUTING_PARAM_IPV6_OSPF_MCAST
+ BSNRoutingParamIpv6NdpFrr = 6 // OFP_BSN_ROUTING_PARAM_IPV6_NDP_FRR
+)
+
+type BsnRoutingParam uint16
+
+func (self BsnRoutingParam) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_status
+ BSNStatusDisable = 0 // OFP_BSN_STATUS_DISABLE
+ BSNStatusEnable = 1 // OFP_BSN_STATUS_ENABLE
+)
+
+type BsnStatus uint8
+
+func (self BsnStatus) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_strip_vlan
+ BSNStripVLANFirst = 1 // OFP_BSN_STRIP_VLAN_FIRST
+ BSNStripVLANSecond = 2 // OFP_BSN_STRIP_VLAN_SECOND
+ BSNStripVLANThird = 4 // OFP_BSN_STRIP_VLAN_THIRD
+)
+
+type BsnStripVlan uint8
+
+func (self BsnStripVlan) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&BSNStripVLANFirst == BSNStripVLANFirst {
+ flags = append(flags, "\"First\": true")
+ }
+ if self&BSNStripVLANSecond == BSNStripVLANSecond {
+ flags = append(flags, "\"Second\": true")
+ }
+ if self&BSNStripVLANThird == BSNStripVLANThird {
+ flags = append(flags, "\"Third\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_tcp_flag
+ BSNTCPFlagFin = 1 // OFP_BSN_TCP_FLAG_FIN
+ BSNTCPFlagSyn = 2 // OFP_BSN_TCP_FLAG_SYN
+ BSNTCPFlagRst = 4 // OFP_BSN_TCP_FLAG_RST
+ BSNTCPFlagPsh = 8 // OFP_BSN_TCP_FLAG_PSH
+ BSNTCPFlagAck = 16 // OFP_BSN_TCP_FLAG_ACK
+ BSNTCPFlagUrg = 32 // OFP_BSN_TCP_FLAG_URG
+ BSNTCPFlagEce = 64 // OFP_BSN_TCP_FLAG_ECE
+ BSNTCPFlagCwr = 128 // OFP_BSN_TCP_FLAG_CWR
+ BSNTCPFlagNs = 256 // OFP_BSN_TCP_FLAG_NS
+)
+
+type BsnTcpFlag uint16
+
+func (self BsnTcpFlag) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&BSNTCPFlagFin == BSNTCPFlagFin {
+ flags = append(flags, "\"Fin\": true")
+ }
+ if self&BSNTCPFlagSyn == BSNTCPFlagSyn {
+ flags = append(flags, "\"Syn\": true")
+ }
+ if self&BSNTCPFlagRst == BSNTCPFlagRst {
+ flags = append(flags, "\"Rst\": true")
+ }
+ if self&BSNTCPFlagPsh == BSNTCPFlagPsh {
+ flags = append(flags, "\"Psh\": true")
+ }
+ if self&BSNTCPFlagAck == BSNTCPFlagAck {
+ flags = append(flags, "\"Ack\": true")
+ }
+ if self&BSNTCPFlagUrg == BSNTCPFlagUrg {
+ flags = append(flags, "\"Urg\": true")
+ }
+ if self&BSNTCPFlagEce == BSNTCPFlagEce {
+ flags = append(flags, "\"Ece\": true")
+ }
+ if self&BSNTCPFlagCwr == BSNTCPFlagCwr {
+ flags = append(flags, "\"Cwr\": true")
+ }
+ if self&BSNTCPFlagNs == BSNTCPFlagNs {
+ flags = append(flags, "\"Ns\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_tunnel_type
+ BSNTunnelL2Gre = 1 // OFP_BSN_TUNNEL_L2GRE
+)
+
+type BsnTunnelType uint64
+
+func (self BsnTunnelType) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&BSNTunnelL2Gre == BSNTunnelL2Gre {
+ flags = append(flags, "\"BSNTunnelL2Gre\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_udf_anchor
+ BSNUdfAnchorPacketStart = 0 // OFP_BSN_UDF_ANCHOR_PACKET_START
+ BSNUdfAnchorL3HeaderStart = 1 // OFP_BSN_UDF_ANCHOR_L3_HEADER_START
+ BSNUdfAnchorL4HeaderStart = 2 // OFP_BSN_UDF_ANCHOR_L4_HEADER_START
+)
+
+type BsnUdfAnchor uint16
+
+func (self BsnUdfAnchor) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_udf_mode
+ BSNUdf8X2Bytes = 1 // OFP_BSN_UDF_8X2_BYTES
+)
+
+type BsnUdfMode uint8
+
+func (self BsnUdfMode) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&BSNUdf8X2Bytes == BSNUdf8X2Bytes {
+ flags = append(flags, "\"BSNUdf8X2Bytes\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_upgrade
+ BSNUpgradeInvalid = 0 // OFP_BSN_UPGRADE_INVALID
+ BSNUpgradeInProgress = 1 // OFP_BSN_UPGRADE_IN_PROGRESS
+)
+
+type BsnUpgrade uint16
+
+func (self BsnUpgrade) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_vlan_counter_constants
+ BSNVLANAll = 65535 // OFP_BSN_VLAN_ALL
+)
+
+const (
+ // Identifiers from group ofp_bsn_vport_l2gre_flags
+ OFBSNVportL2GreLocalMACIsValid = 1 // OF_BSN_VPORT_L2GRE_LOCAL_MAC_IS_VALID
+ OFBSNVportL2GreDSCPAssign = 2 // OF_BSN_VPORT_L2GRE_DSCP_ASSIGN
+ OFBSNVportL2GreDSCPCopy = 4 // OF_BSN_VPORT_L2GRE_DSCP_COPY
+ OFBSNVportL2GreLoopbackIsValid = 8 // OF_BSN_VPORT_L2GRE_LOOPBACK_IS_VALID
+ OFBSNVportL2GreRateLimitIsValid = 16 // OF_BSN_VPORT_L2GRE_RATE_LIMIT_IS_VALID
+)
+
+type BsnVportL2GreFlags uint32
+
+func (self BsnVportL2GreFlags) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&OFBSNVportL2GreLocalMACIsValid == OFBSNVportL2GreLocalMACIsValid {
+ flags = append(flags, "\"LocalMACIsValid\": true")
+ }
+ if self&OFBSNVportL2GreDSCPAssign == OFBSNVportL2GreDSCPAssign {
+ flags = append(flags, "\"DscpAssign\": true")
+ }
+ if self&OFBSNVportL2GreDSCPCopy == OFBSNVportL2GreDSCPCopy {
+ flags = append(flags, "\"DscpCopy\": true")
+ }
+ if self&OFBSNVportL2GreLoopbackIsValid == OFBSNVportL2GreLoopbackIsValid {
+ flags = append(flags, "\"LoopbackIsValid\": true")
+ }
+ if self&OFBSNVportL2GreRateLimitIsValid == OFBSNVportL2GreRateLimitIsValid {
+ flags = append(flags, "\"RateLimitIsValid\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_vport_q_in_q_untagged
+ OFBSNVportQInQUntagged = 65535 // OF_BSN_VPORT_Q_IN_Q_UNTAGGED
+)
+
+type BsnVportQInQUntagged uint16
+
+func (self BsnVportQInQUntagged) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_bsn_vport_status
+ OFBSNVportStatusOk = 0 // OF_BSN_VPORT_STATUS_OK
+ OFBSNVportStatusFailed = 1 // OF_BSN_VPORT_STATUS_FAILED
+)
+
+const (
+ // Identifiers from group ofp_bsn_vrf_counter_constants
+ BSNVrfAll = 4294967295 // OFP_BSN_VRF_ALL
+)
+
+type BsnVrfCounterConstants uint32
+
+func (self BsnVrfCounterConstants) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_capabilities
+ OFPCFlowStats = 1 // OFPC_FLOW_STATS
+ OFPCTableStats = 2 // OFPC_TABLE_STATS
+ OFPCPortStats = 4 // OFPC_PORT_STATS
+ OFPCGroupStats = 8 // OFPC_GROUP_STATS
+ OFPCIpReasm = 32 // OFPC_IP_REASM
+ OFPCQueueStats = 64 // OFPC_QUEUE_STATS
+ OFPCPortBlocked = 256 // OFPC_PORT_BLOCKED
+)
+
+type Capabilities uint32
+
+func (self Capabilities) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&OFPCFlowStats == OFPCFlowStats {
+ flags = append(flags, "\"FlowStats\": true")
+ }
+ if self&OFPCTableStats == OFPCTableStats {
+ flags = append(flags, "\"TableStats\": true")
+ }
+ if self&OFPCPortStats == OFPCPortStats {
+ flags = append(flags, "\"PortStats\": true")
+ }
+ if self&OFPCGroupStats == OFPCGroupStats {
+ flags = append(flags, "\"GroupStats\": true")
+ }
+ if self&OFPCIpReasm == OFPCIpReasm {
+ flags = append(flags, "\"IpReasm\": true")
+ }
+ if self&OFPCQueueStats == OFPCQueueStats {
+ flags = append(flags, "\"QueueStats\": true")
+ }
+ if self&OFPCPortBlocked == OFPCPortBlocked {
+ flags = append(flags, "\"PortBlocked\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_config_flags
+ OFPCFragNormal = 0 // OFPC_FRAG_NORMAL
+ OFPCFragDrop = 1 // OFPC_FRAG_DROP
+ OFPCFragReasm = 2 // OFPC_FRAG_REASM
+ OFPCFragMask = 3 // OFPC_FRAG_MASK
+)
+
+type ConfigFlags uint16
+
+func (self ConfigFlags) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&OFPCFragNormal == OFPCFragNormal {
+ flags = append(flags, "\"Normal\": true")
+ }
+ if self&OFPCFragDrop == OFPCFragDrop {
+ flags = append(flags, "\"Drop\": true")
+ }
+ if self&OFPCFragReasm == OFPCFragReasm {
+ flags = append(flags, "\"Reasm\": true")
+ }
+ if self&OFPCFragMask == OFPCFragMask {
+ flags = append(flags, "\"Mask\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_controller_max_len
+ OFPCMLMax = 65509 // OFPCML_MAX
+ OFPCMLNoBuffer = 65535 // OFPCML_NO_BUFFER
+)
+
+type ControllerMaxLen uint16
+
+func (self ControllerMaxLen) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_controller_role
+ OFPCRRoleNochange = 0 // OFPCR_ROLE_NOCHANGE
+ OFPCRRoleEqual = 1 // OFPCR_ROLE_EQUAL
+ OFPCRRoleMaster = 2 // OFPCR_ROLE_MASTER
+ OFPCRRoleSlave = 3 // OFPCR_ROLE_SLAVE
+)
+
+type ControllerRole uint32
+
+func (self ControllerRole) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_cs_states
+ CsNew = 1 // OFP_CS_NEW
+ CsEstablished = 2 // OFP_CS_ESTABLISHED
+ CsRelated = 4 // OFP_CS_RELATED
+ CsReplyDir = 8 // OFP_CS_REPLY_DIR
+ CsInvalid = 16 // OFP_CS_INVALID
+ CsTracked = 32 // OFP_CS_TRACKED
+ CsSrcNat = 64 // OFP_CS_SRC_NAT
+ CsDstNat = 128 // OFP_CS_DST_NAT
+)
+
+type CsStates uint32
+
+func (self CsStates) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&CsNew == CsNew {
+ flags = append(flags, "\"New\": true")
+ }
+ if self&CsEstablished == CsEstablished {
+ flags = append(flags, "\"Established\": true")
+ }
+ if self&CsRelated == CsRelated {
+ flags = append(flags, "\"Related\": true")
+ }
+ if self&CsReplyDir == CsReplyDir {
+ flags = append(flags, "\"ReplyDir\": true")
+ }
+ if self&CsInvalid == CsInvalid {
+ flags = append(flags, "\"Invalid\": true")
+ }
+ if self&CsTracked == CsTracked {
+ flags = append(flags, "\"Tracked\": true")
+ }
+ if self&CsSrcNat == CsSrcNat {
+ flags = append(flags, "\"SrcNat\": true")
+ }
+ if self&CsDstNat == CsDstNat {
+ flags = append(flags, "\"DstNat\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_ed_nsh_prop_type
+ OFPPPTPropNshNone = 0 // OFPPPT_PROP_NSH_NONE
+ OFPPPTPropNshMdtype = 1 // OFPPPT_PROP_NSH_MDTYPE
+ OFPPPTPropNshTlv = 2 // OFPPPT_PROP_NSH_TLV
+)
+
+type EdNshPropType uint8
+
+func (self EdNshPropType) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_ed_prop_class
+ OFPPPCBasic = 0 // OFPPPC_BASIC
+ OFPPPCMpls = 1 // OFPPPC_MPLS
+ OFPPPCGRE = 2 // OFPPPC_GRE
+ OFPPPCGtp = 3 // OFPPPC_GTP
+ OFPPPCNsh = 4 // OFPPPC_NSH
+ OFPPPCExperimenter = 65535 // OFPPPC_EXPERIMENTER
+)
+
+type EdPropClass uint16
+
+func (self EdPropClass) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_error_type
+ OFPETHelloFailed = 0 // OFPET_HELLO_FAILED
+ OFPETBadRequest = 1 // OFPET_BAD_REQUEST
+ OFPETBadAction = 2 // OFPET_BAD_ACTION
+ OFPETBadInstruction = 3 // OFPET_BAD_INSTRUCTION
+ OFPETBadMatch = 4 // OFPET_BAD_MATCH
+ OFPETFlowModFailed = 5 // OFPET_FLOW_MOD_FAILED
+ OFPETGroupModFailed = 6 // OFPET_GROUP_MOD_FAILED
+ OFPETPortModFailed = 7 // OFPET_PORT_MOD_FAILED
+ OFPETTableModFailed = 8 // OFPET_TABLE_MOD_FAILED
+ OFPETQueueOpFailed = 9 // OFPET_QUEUE_OP_FAILED
+ OFPETSwitchConfigFailed = 10 // OFPET_SWITCH_CONFIG_FAILED
+ OFPETRoleRequestFailed = 11 // OFPET_ROLE_REQUEST_FAILED
+ OFPETMeterModFailed = 12 // OFPET_METER_MOD_FAILED
+ OFPETTableFeaturesFailed = 13 // OFPET_TABLE_FEATURES_FAILED
+ OFPETExperimenter = 65535 // OFPET_EXPERIMENTER
+)
+
+type ErrorType uint16
+
+func (self ErrorType) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_ethernet_type
+ EthPLoop = 96 // ETH_P_LOOP
+ EthPPup = 512 // ETH_P_PUP
+ EthPPupat = 513 // ETH_P_PUPAT
+ EthPIp = 2048 // ETH_P_IP
+ EthPX25 = 2053 // ETH_P_X25
+ EthPARP = 2054 // ETH_P_ARP
+ EthPBpq = 2303 // ETH_P_BPQ
+ EthPIeeepup = 2560 // ETH_P_IEEEPUP
+ EthPIeeepupat = 2561 // ETH_P_IEEEPUPAT
+ EthPDec = 24576 // ETH_P_DEC
+ EthPDnaDl = 24577 // ETH_P_DNA_DL
+ EthPDnaRc = 24578 // ETH_P_DNA_RC
+ EthPDnaRt = 24579 // ETH_P_DNA_RT
+ EthPLat = 24580 // ETH_P_LAT
+ EthPDiag = 24581 // ETH_P_DIAG
+ EthPCust = 24582 // ETH_P_CUST
+ EthPSca = 24583 // ETH_P_SCA
+ EthPTeb = 25944 // ETH_P_TEB
+ EthPRarp = 32821 // ETH_P_RARP
+ EthPAtalk = 32923 // ETH_P_ATALK
+ EthPAarp = 33011 // ETH_P_AARP
+ EthP8021Q = 33024 // ETH_P_8021Q
+ EthPIpx = 33079 // ETH_P_IPX
+ EthPIpv6 = 34525 // ETH_P_IPV6
+ EthPPause = 34824 // ETH_P_PAUSE
+ EthPSlow = 34825 // ETH_P_SLOW
+ EthPWccp = 34878 // ETH_P_WCCP
+ EthPPppDisc = 34915 // ETH_P_PPP_DISC
+ EthPPppSes = 34916 // ETH_P_PPP_SES
+ EthPMplsUc = 34887 // ETH_P_MPLS_UC
+ EthPMplsMc = 34888 // ETH_P_MPLS_MC
+ EthPAtmmpoa = 34892 // ETH_P_ATMMPOA
+ EthPAtmfate = 34948 // ETH_P_ATMFATE
+ EthPPae = 34958 // ETH_P_PAE
+ EthPAoe = 34978 // ETH_P_AOE
+ EthPTipc = 35018 // ETH_P_TIPC
+ EthP1588 = 35063 // ETH_P_1588
+ EthPFcoe = 35078 // ETH_P_FCOE
+ EthPFip = 35092 // ETH_P_FIP
+ EthPEdsa = 56026 // ETH_P_EDSA
+)
+
+type EthernetType uint16
+
+func (self EthernetType) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("\"%s\"", self)), nil
+}
+
+func (self EthernetType) String() string {
+ switch self {
+ case EthPLoop:
+ return "loop"
+ case EthPPup:
+ return "pup"
+ case EthPPupat:
+ return "pupat"
+ case EthPIp:
+ return "ip"
+ case EthPX25:
+ return "x25"
+ case EthPARP:
+ return "arp"
+ case EthPBpq:
+ return "bpq"
+ case EthPIeeepup:
+ return "ieeepup"
+ case EthPIeeepupat:
+ return "ieeepupat"
+ case EthPDec:
+ return "dec"
+ case EthPDnaDl:
+ return "dna_dl"
+ case EthPDnaRc:
+ return "dna_rc"
+ case EthPDnaRt:
+ return "dna_rt"
+ case EthPLat:
+ return "lat"
+ case EthPDiag:
+ return "diag"
+ case EthPCust:
+ return "cust"
+ case EthPSca:
+ return "sca"
+ case EthPTeb:
+ return "teb"
+ case EthPRarp:
+ return "rarp"
+ case EthPAtalk:
+ return "atalk"
+ case EthPAarp:
+ return "aarp"
+ case EthP8021Q:
+ return "8021q"
+ case EthPIpx:
+ return "ipx"
+ case EthPIpv6:
+ return "ipv6"
+ case EthPPause:
+ return "pause"
+ case EthPSlow:
+ return "slow"
+ case EthPWccp:
+ return "wccp"
+ case EthPPppDisc:
+ return "ppp_disc"
+ case EthPPppSes:
+ return "ppp_ses"
+ case EthPMplsUc:
+ return "mpls_uc"
+ case EthPMplsMc:
+ return "mpls_mc"
+ case EthPAtmmpoa:
+ return "atmmpoa"
+ case EthPAtmfate:
+ return "atmfate"
+ case EthPPae:
+ return "pae"
+ case EthPAoe:
+ return "aoe"
+ case EthPTipc:
+ return "tipc"
+ case EthP1588:
+ return "1588"
+ case EthPFcoe:
+ return "fcoe"
+ case EthPFip:
+ return "fip"
+ case EthPEdsa:
+ return "edsa"
+ default:
+ return fmt.Sprintf("%d", self)
+ }
+}
+
+const (
+ // Identifiers from group ofp_flow_mod_command
+ OFPFCAdd = 0 // OFPFC_ADD
+ OFPFCModify = 1 // OFPFC_MODIFY
+ OFPFCModifyStrict = 2 // OFPFC_MODIFY_STRICT
+ OFPFCDelete = 3 // OFPFC_DELETE
+ OFPFCDeleteStrict = 4 // OFPFC_DELETE_STRICT
+)
+
+type FlowModCommand uint8
+
+func (self FlowModCommand) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_flow_mod_failed_code
+ OFPFMFCUnknown = 0 // OFPFMFC_UNKNOWN
+ OFPFMFCTableFull = 1 // OFPFMFC_TABLE_FULL
+ OFPFMFCBadTableID = 2 // OFPFMFC_BAD_TABLE_ID
+ OFPFMFCOverlap = 3 // OFPFMFC_OVERLAP
+ OFPFMFCEperm = 4 // OFPFMFC_EPERM
+ OFPFMFCBadTimeout = 5 // OFPFMFC_BAD_TIMEOUT
+ OFPFMFCBadCommand = 6 // OFPFMFC_BAD_COMMAND
+ OFPFMFCBadFlags = 7 // OFPFMFC_BAD_FLAGS
+)
+
+type FlowModFailedCode uint16
+
+func (self FlowModFailedCode) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_flow_mod_flags
+ OFPFFSendFlowRem = 1 // OFPFF_SEND_FLOW_REM
+ OFPFFCheckOverlap = 2 // OFPFF_CHECK_OVERLAP
+ OFPFFResetCounts = 4 // OFPFF_RESET_COUNTS
+ OFPFFNoPktCounts = 8 // OFPFF_NO_PKT_COUNTS
+ OFPFFNoBytCounts = 16 // OFPFF_NO_BYT_COUNTS
+ OFPFFBSNSendIdle = 128 // OFPFF_BSN_SEND_IDLE
+)
+
+type FlowModFlags uint16
+
+func (self FlowModFlags) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&OFPFFSendFlowRem == OFPFFSendFlowRem {
+ flags = append(flags, "\"SendFlowRem\": true")
+ }
+ if self&OFPFFCheckOverlap == OFPFFCheckOverlap {
+ flags = append(flags, "\"CheckOverlap\": true")
+ }
+ if self&OFPFFResetCounts == OFPFFResetCounts {
+ flags = append(flags, "\"ResetCounts\": true")
+ }
+ if self&OFPFFNoPktCounts == OFPFFNoPktCounts {
+ flags = append(flags, "\"NoPktCounts\": true")
+ }
+ if self&OFPFFNoBytCounts == OFPFFNoBytCounts {
+ flags = append(flags, "\"NoBytCounts\": true")
+ }
+ if self&OFPFFBSNSendIdle == OFPFFBSNSendIdle {
+ flags = append(flags, "\"BsnSendIdle\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_flow_removed_reason
+ OFPRRIdleTimeout = 0 // OFPRR_IDLE_TIMEOUT
+ OFPRRHardTimeout = 1 // OFPRR_HARD_TIMEOUT
+ OFPRRDelete = 2 // OFPRR_DELETE
+ OFPRRGroupDelete = 3 // OFPRR_GROUP_DELETE
+)
+
+type FlowRemovedReason uint8
+
+func (self FlowRemovedReason) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_group
+ OFPGMax = 4294967040 // OFPG_MAX
+ OFPGAll = 4294967292 // OFPG_ALL
+ OFPGAny = 4294967295 // OFPG_ANY
+)
+
+type Group uint32
+
+func (self Group) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_group_capabilities
+ OFPGFCSelectWeight = 1 // OFPGFC_SELECT_WEIGHT
+ OFPGFCSelectLiveness = 2 // OFPGFC_SELECT_LIVENESS
+ OFPGFCChaining = 4 // OFPGFC_CHAINING
+ OFPGFCChainingChecks = 8 // OFPGFC_CHAINING_CHECKS
+)
+
+type GroupCapabilities uint32
+
+func (self GroupCapabilities) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&OFPGFCSelectWeight == OFPGFCSelectWeight {
+ flags = append(flags, "\"SelectWeight\": true")
+ }
+ if self&OFPGFCSelectLiveness == OFPGFCSelectLiveness {
+ flags = append(flags, "\"SelectLiveness\": true")
+ }
+ if self&OFPGFCChaining == OFPGFCChaining {
+ flags = append(flags, "\"Chaining\": true")
+ }
+ if self&OFPGFCChainingChecks == OFPGFCChainingChecks {
+ flags = append(flags, "\"ChainingChecks\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_group_mod_command
+ OFPGCAdd = 0 // OFPGC_ADD
+ OFPGCModify = 1 // OFPGC_MODIFY
+ OFPGCDelete = 2 // OFPGC_DELETE
+)
+
+type GroupModCommand uint16
+
+func (self GroupModCommand) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_group_mod_failed_code
+ OFPGMFCGroupExists = 0 // OFPGMFC_GROUP_EXISTS
+ OFPGMFCInvalidGroup = 1 // OFPGMFC_INVALID_GROUP
+ OFPGMFCWeightUnsupported = 2 // OFPGMFC_WEIGHT_UNSUPPORTED
+ OFPGMFCOutOfGroups = 3 // OFPGMFC_OUT_OF_GROUPS
+ OFPGMFCOutOfBuckets = 4 // OFPGMFC_OUT_OF_BUCKETS
+ OFPGMFCChainingUnsupported = 5 // OFPGMFC_CHAINING_UNSUPPORTED
+ OFPGMFCWatchUnsupported = 6 // OFPGMFC_WATCH_UNSUPPORTED
+ OFPGMFCLoop = 7 // OFPGMFC_LOOP
+ OFPGMFCUnknownGroup = 8 // OFPGMFC_UNKNOWN_GROUP
+ OFPGMFCChainedGroup = 9 // OFPGMFC_CHAINED_GROUP
+ OFPGMFCBadType = 10 // OFPGMFC_BAD_TYPE
+ OFPGMFCBadCommand = 11 // OFPGMFC_BAD_COMMAND
+ OFPGMFCBadBucket = 12 // OFPGMFC_BAD_BUCKET
+ OFPGMFCBadWatch = 13 // OFPGMFC_BAD_WATCH
+ OFPGMFCEperm = 14 // OFPGMFC_EPERM
+)
+
+type GroupModFailedCode uint16
+
+func (self GroupModFailedCode) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_group_type
+ OFPGTAll = 0 // OFPGT_ALL
+ OFPGTSelect = 1 // OFPGT_SELECT
+ OFPGTIndirect = 2 // OFPGT_INDIRECT
+ OFPGTFf = 3 // OFPGT_FF
+)
+
+type GroupType uint8
+
+func (self GroupType) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("\"%s\"", self)), nil
+}
+
+func (self GroupType) String() string {
+ switch self {
+ case OFPGTAll:
+ return "all"
+ case OFPGTSelect:
+ return "select"
+ case OFPGTIndirect:
+ return "indirect"
+ case OFPGTFf:
+ return "ff"
+ default:
+ return fmt.Sprintf("%d", self)
+ }
+}
+
+const (
+ // Identifiers from group ofp_hello_elem_type
+ OFPHETVersionbitmap = 1 // OFPHET_VERSIONBITMAP
+)
+
+type HelloElemType uint16
+
+func (self HelloElemType) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_hello_failed_code
+ OFPHFCIncompatible = 0 // OFPHFC_INCOMPATIBLE
+ OFPHFCEperm = 1 // OFPHFC_EPERM
+)
+
+type HelloFailedCode uint16
+
+func (self HelloFailedCode) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_icmp_type
+ IcmpEchoreply = 0 // ICMP_ECHOREPLY
+ IcmpDestUnreach = 3 // ICMP_DEST_UNREACH
+ IcmpSourceQuench = 4 // ICMP_SOURCE_QUENCH
+ IcmpRedirect = 5 // ICMP_REDIRECT
+ IcmpEcho = 8 // ICMP_ECHO
+ IcmpTimeExceeded = 11 // ICMP_TIME_EXCEEDED
+ IcmpParameterprob = 12 // ICMP_PARAMETERPROB
+ IcmpTimestamp = 13 // ICMP_TIMESTAMP
+ IcmpTimestampreply = 14 // ICMP_TIMESTAMPREPLY
+ IcmpInfoRequest = 15 // ICMP_INFO_REQUEST
+ IcmpInfoReply = 16 // ICMP_INFO_REPLY
+ IcmpAddress = 17 // ICMP_ADDRESS
+ IcmpAddressreply = 18 // ICMP_ADDRESSREPLY
+)
+
+type IcmpType uint8
+
+func (self IcmpType) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("\"%s\"", self)), nil
+}
+
+func (self IcmpType) String() string {
+ switch self {
+ case IcmpEchoreply:
+ return "echoreply"
+ case IcmpDestUnreach:
+ return "dest_unreach"
+ case IcmpSourceQuench:
+ return "source_quench"
+ case IcmpRedirect:
+ return "redirect"
+ case IcmpEcho:
+ return "echo"
+ case IcmpTimeExceeded:
+ return "time_exceeded"
+ case IcmpParameterprob:
+ return "parameterprob"
+ case IcmpTimestamp:
+ return "timestamp"
+ case IcmpTimestampreply:
+ return "timestampreply"
+ case IcmpInfoRequest:
+ return "info_request"
+ case IcmpInfoReply:
+ return "info_reply"
+ case IcmpAddress:
+ return "address"
+ case IcmpAddressreply:
+ return "addressreply"
+ default:
+ return fmt.Sprintf("%d", self)
+ }
+}
+
+const (
+ // Identifiers from group ofp_icmpv6_type
+ Icmpv6EchoRequest = 128 // ICMPV6_ECHO_REQUEST
+ Icmpv6EchoReply = 129 // ICMPV6_ECHO_REPLY
+ Icmpv6MgmQuery = 130 // ICMPV6_MGM_QUERY
+ Icmpv6MgmReport = 131 // ICMPV6_MGM_REPORT
+ Icmpv6MgmReduction = 132 // ICMPV6_MGM_REDUCTION
+ Icmpv6NiQuery = 139 // ICMPV6_NI_QUERY
+ Icmpv6NiReply = 140 // ICMPV6_NI_REPLY
+ Icmpv6Mld2Report = 143 // ICMPV6_MLD2_REPORT
+ Icmpv6DhaadRequest = 144 // ICMPV6_DHAAD_REQUEST
+ Icmpv6DhaadReply = 145 // ICMPV6_DHAAD_REPLY
+ Icmpv6MobilePrefixSol = 146 // ICMPV6_MOBILE_PREFIX_SOL
+ Icmpv6MobilePrefixAdv = 147 // ICMPV6_MOBILE_PREFIX_ADV
+)
+
+type Icmpv6Type uint8
+
+func (self Icmpv6Type) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("\"%s\"", self)), nil
+}
+
+func (self Icmpv6Type) String() string {
+ switch self {
+ case Icmpv6EchoRequest:
+ return "echo_request"
+ case Icmpv6EchoReply:
+ return "echo_reply"
+ case Icmpv6MgmQuery:
+ return "mgm_query"
+ case Icmpv6MgmReport:
+ return "mgm_report"
+ case Icmpv6MgmReduction:
+ return "mgm_reduction"
+ case Icmpv6NiQuery:
+ return "ni_query"
+ case Icmpv6NiReply:
+ return "ni_reply"
+ case Icmpv6Mld2Report:
+ return "mld2_report"
+ case Icmpv6DhaadRequest:
+ return "dhaad_request"
+ case Icmpv6DhaadReply:
+ return "dhaad_reply"
+ case Icmpv6MobilePrefixSol:
+ return "mobile_prefix_sol"
+ case Icmpv6MobilePrefixAdv:
+ return "mobile_prefix_adv"
+ default:
+ return fmt.Sprintf("%d", self)
+ }
+}
+
+const (
+ // Identifiers from group ofp_instruction_type
+ OFPITGotoTable = 1 // OFPIT_GOTO_TABLE
+ OFPITWriteMetadata = 2 // OFPIT_WRITE_METADATA
+ OFPITWriteActions = 3 // OFPIT_WRITE_ACTIONS
+ OFPITApplyActions = 4 // OFPIT_APPLY_ACTIONS
+ OFPITClearActions = 5 // OFPIT_CLEAR_ACTIONS
+ OFPITMeter = 6 // OFPIT_METER
+ OFPITExperimenter = 65535 // OFPIT_EXPERIMENTER
+)
+
+type InstructionType uint16
+
+func (self InstructionType) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&OFPITGotoTable == OFPITGotoTable {
+ flags = append(flags, "\"GotoTable\": true")
+ }
+ if self&OFPITWriteMetadata == OFPITWriteMetadata {
+ flags = append(flags, "\"WriteMetadata\": true")
+ }
+ if self&OFPITWriteActions == OFPITWriteActions {
+ flags = append(flags, "\"WriteActions\": true")
+ }
+ if self&OFPITApplyActions == OFPITApplyActions {
+ flags = append(flags, "\"ApplyActions\": true")
+ }
+ if self&OFPITClearActions == OFPITClearActions {
+ flags = append(flags, "\"ClearActions\": true")
+ }
+ if self&OFPITMeter == OFPITMeter {
+ flags = append(flags, "\"Meter\": true")
+ }
+ if self&OFPITExperimenter == OFPITExperimenter {
+ flags = append(flags, "\"Experimenter\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_ip_prototype
+ IpprotoIp = 0 // IPPROTO_IP
+ IpprotoICMP = 1 // IPPROTO_ICMP
+ IpprotoIgmp = 2 // IPPROTO_IGMP
+ IpprotoIpip = 4 // IPPROTO_IPIP
+ IpprotoTCP = 6 // IPPROTO_TCP
+ IpprotoEgp = 8 // IPPROTO_EGP
+ IpprotoPup = 12 // IPPROTO_PUP
+ IpprotoUdp = 17 // IPPROTO_UDP
+ IpprotoIdp = 22 // IPPROTO_IDP
+ IpprotoTp = 29 // IPPROTO_TP
+ IpprotoDccp = 33 // IPPROTO_DCCP
+ IpprotoIpv6 = 41 // IPPROTO_IPV6
+ IpprotoRsvp = 46 // IPPROTO_RSVP
+ IpprotoGRE = 47 // IPPROTO_GRE
+ IpprotoEsp = 50 // IPPROTO_ESP
+ IpprotoAh = 51 // IPPROTO_AH
+ IpprotoMtp = 92 // IPPROTO_MTP
+ IpprotoBeetph = 94 // IPPROTO_BEETPH
+ IpprotoEncap = 98 // IPPROTO_ENCAP
+ IpprotoPim = 103 // IPPROTO_PIM
+ IpprotoComp = 108 // IPPROTO_COMP
+ IpprotoSctp = 132 // IPPROTO_SCTP
+ IpprotoUdplite = 136 // IPPROTO_UDPLITE
+ IpprotoMpls = 137 // IPPROTO_MPLS
+ IpprotoRaw = 255 // IPPROTO_RAW
+ IpprotoRouting = 43 // IPPROTO_ROUTING
+ IpprotoFragment = 44 // IPPROTO_FRAGMENT
+ IpprotoIcmpv6 = 58 // IPPROTO_ICMPV6
+ IpprotoNone = 59 // IPPROTO_NONE
+ IpprotoDstopts = 60 // IPPROTO_DSTOPTS
+ IpprotoMh = 135 // IPPROTO_MH
+ IpprotoL2Tp = 115 // IPPROTO_L2TP
+)
+
+type IpPrototype uint8
+
+func (self IpPrototype) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("\"%s\"", self)), nil
+}
+
+func (self IpPrototype) String() string {
+ switch self {
+ case IpprotoIp:
+ return "ip"
+ case IpprotoICMP:
+ return "icmp"
+ case IpprotoIgmp:
+ return "igmp"
+ case IpprotoIpip:
+ return "ipip"
+ case IpprotoTCP:
+ return "tcp"
+ case IpprotoEgp:
+ return "egp"
+ case IpprotoPup:
+ return "pup"
+ case IpprotoUdp:
+ return "udp"
+ case IpprotoIdp:
+ return "idp"
+ case IpprotoTp:
+ return "tp"
+ case IpprotoDccp:
+ return "dccp"
+ case IpprotoIpv6:
+ return "ipv6"
+ case IpprotoRsvp:
+ return "rsvp"
+ case IpprotoGRE:
+ return "gre"
+ case IpprotoEsp:
+ return "esp"
+ case IpprotoAh:
+ return "ah"
+ case IpprotoMtp:
+ return "mtp"
+ case IpprotoBeetph:
+ return "beetph"
+ case IpprotoEncap:
+ return "encap"
+ case IpprotoPim:
+ return "pim"
+ case IpprotoComp:
+ return "comp"
+ case IpprotoSctp:
+ return "sctp"
+ case IpprotoUdplite:
+ return "udplite"
+ case IpprotoMpls:
+ return "mpls"
+ case IpprotoRaw:
+ return "raw"
+ case IpprotoRouting:
+ return "routing"
+ case IpprotoFragment:
+ return "fragment"
+ case IpprotoIcmpv6:
+ return "icmpv6"
+ case IpprotoNone:
+ return "none"
+ case IpprotoDstopts:
+ return "dstopts"
+ case IpprotoMh:
+ return "mh"
+ case IpprotoL2Tp:
+ return "l2tp"
+ default:
+ return fmt.Sprintf("%d", self)
+ }
+}
+
+const (
+ // Identifiers from group ofp_ipv6exthdr_flags
+ OFPIEHNonext = 1 // OFPIEH_NONEXT
+ OFPIEHEsp = 2 // OFPIEH_ESP
+ OFPIEHAuth = 4 // OFPIEH_AUTH
+ OFPIEHDest = 8 // OFPIEH_DEST
+ OFPIEHFrag = 16 // OFPIEH_FRAG
+ OFPIEHRouter = 32 // OFPIEH_ROUTER
+ OFPIEHHop = 64 // OFPIEH_HOP
+ OFPIEHUnrep = 128 // OFPIEH_UNREP
+ OFPIEHUnseq = 256 // OFPIEH_UNSEQ
+)
+
+type Ipv6ExthdrFlags uint16
+
+func (self Ipv6ExthdrFlags) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&OFPIEHNonext == OFPIEHNonext {
+ flags = append(flags, "\"Nonext\": true")
+ }
+ if self&OFPIEHEsp == OFPIEHEsp {
+ flags = append(flags, "\"Esp\": true")
+ }
+ if self&OFPIEHAuth == OFPIEHAuth {
+ flags = append(flags, "\"Auth\": true")
+ }
+ if self&OFPIEHDest == OFPIEHDest {
+ flags = append(flags, "\"Dest\": true")
+ }
+ if self&OFPIEHFrag == OFPIEHFrag {
+ flags = append(flags, "\"Frag\": true")
+ }
+ if self&OFPIEHRouter == OFPIEHRouter {
+ flags = append(flags, "\"Router\": true")
+ }
+ if self&OFPIEHHop == OFPIEHHop {
+ flags = append(flags, "\"Hop\": true")
+ }
+ if self&OFPIEHUnrep == OFPIEHUnrep {
+ flags = append(flags, "\"Unrep\": true")
+ }
+ if self&OFPIEHUnseq == OFPIEHUnseq {
+ flags = append(flags, "\"Unseq\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_match_type
+ OFPMTStandard = 0 // OFPMT_STANDARD
+ OFPMTOXM = 1 // OFPMT_OXM
+)
+
+type MatchType uint16
+
+func (self MatchType) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_meter
+ OFPMMax = 4294901760 // OFPM_MAX
+ OFPMSlowpath = 4294967293 // OFPM_SLOWPATH
+ OFPMController = 4294967294 // OFPM_CONTROLLER
+ OFPMAll = 4294967295 // OFPM_ALL
+)
+
+type Meter uint32
+
+func (self Meter) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_meter_band_type
+ OFPMBTDrop = 1 // OFPMBT_DROP
+ OFPMBTDSCPRemark = 2 // OFPMBT_DSCP_REMARK
+ OFPMBTExperimenter = 65535 // OFPMBT_EXPERIMENTER
+)
+
+type MeterBandType uint16
+
+func (self MeterBandType) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_meter_flags
+ OFPMFKbps = 1 // OFPMF_KBPS
+ OFPMFPktps = 2 // OFPMF_PKTPS
+ OFPMFBurst = 4 // OFPMF_BURST
+ OFPMFStats = 8 // OFPMF_STATS
+)
+
+type MeterFlags uint16
+
+func (self MeterFlags) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&OFPMFKbps == OFPMFKbps {
+ flags = append(flags, "\"Kbps\": true")
+ }
+ if self&OFPMFPktps == OFPMFPktps {
+ flags = append(flags, "\"Pktps\": true")
+ }
+ if self&OFPMFBurst == OFPMFBurst {
+ flags = append(flags, "\"Burst\": true")
+ }
+ if self&OFPMFStats == OFPMFStats {
+ flags = append(flags, "\"Stats\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_meter_mod_command
+ OFPMCAdd = 0 // OFPMC_ADD
+ OFPMCModify = 1 // OFPMC_MODIFY
+ OFPMCDelete = 2 // OFPMC_DELETE
+)
+
+type MeterModCommand uint16
+
+func (self MeterModCommand) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_meter_mod_failed_code
+ OFPMMFCUnknown = 0 // OFPMMFC_UNKNOWN
+ OFPMMFCMeterExists = 1 // OFPMMFC_METER_EXISTS
+ OFPMMFCInvalidMeter = 2 // OFPMMFC_INVALID_METER
+ OFPMMFCUnknownMeter = 3 // OFPMMFC_UNKNOWN_METER
+ OFPMMFCBadCommand = 4 // OFPMMFC_BAD_COMMAND
+ OFPMMFCBadFlags = 5 // OFPMMFC_BAD_FLAGS
+ OFPMMFCBadRate = 6 // OFPMMFC_BAD_RATE
+ OFPMMFCBadBurst = 7 // OFPMMFC_BAD_BURST
+ OFPMMFCBadBand = 8 // OFPMMFC_BAD_BAND
+ OFPMMFCBadBandValue = 9 // OFPMMFC_BAD_BAND_VALUE
+ OFPMMFCOutOfMeters = 10 // OFPMMFC_OUT_OF_METERS
+ OFPMMFCOutOfBands = 11 // OFPMMFC_OUT_OF_BANDS
+)
+
+type MeterModFailedCode uint16
+
+func (self MeterModFailedCode) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_ovs_tcp_flag
+ OvsTCPFlagFin = 1 // OFP_OVS_TCP_FLAG_FIN
+ OvsTCPFlagSyn = 2 // OFP_OVS_TCP_FLAG_SYN
+ OvsTCPFlagRst = 4 // OFP_OVS_TCP_FLAG_RST
+ OvsTCPFlagPsh = 8 // OFP_OVS_TCP_FLAG_PSH
+ OvsTCPFlagAck = 16 // OFP_OVS_TCP_FLAG_ACK
+ OvsTCPFlagUrg = 32 // OFP_OVS_TCP_FLAG_URG
+ OvsTCPFlagEce = 64 // OFP_OVS_TCP_FLAG_ECE
+ OvsTCPFlagCwr = 128 // OFP_OVS_TCP_FLAG_CWR
+ OvsTCPFlagNs = 256 // OFP_OVS_TCP_FLAG_NS
+)
+
+type OvsTcpFlag uint16
+
+func (self OvsTcpFlag) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&OvsTCPFlagFin == OvsTCPFlagFin {
+ flags = append(flags, "\"Fin\": true")
+ }
+ if self&OvsTCPFlagSyn == OvsTCPFlagSyn {
+ flags = append(flags, "\"Syn\": true")
+ }
+ if self&OvsTCPFlagRst == OvsTCPFlagRst {
+ flags = append(flags, "\"Rst\": true")
+ }
+ if self&OvsTCPFlagPsh == OvsTCPFlagPsh {
+ flags = append(flags, "\"Psh\": true")
+ }
+ if self&OvsTCPFlagAck == OvsTCPFlagAck {
+ flags = append(flags, "\"Ack\": true")
+ }
+ if self&OvsTCPFlagUrg == OvsTCPFlagUrg {
+ flags = append(flags, "\"Urg\": true")
+ }
+ if self&OvsTCPFlagEce == OvsTCPFlagEce {
+ flags = append(flags, "\"Ece\": true")
+ }
+ if self&OvsTCPFlagCwr == OvsTCPFlagCwr {
+ flags = append(flags, "\"Cwr\": true")
+ }
+ if self&OvsTCPFlagNs == OvsTCPFlagNs {
+ flags = append(flags, "\"Ns\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_oxm_class
+ OFPXMCNxm0 = 0 // OFPXMC_NXM_0
+ OFPXMCNxm1 = 1 // OFPXMC_NXM_1
+ OFPXMCOpenflowBasic = 32768 // OFPXMC_OPENFLOW_BASIC
+ OFPXMCExperimenter = 65535 // OFPXMC_EXPERIMENTER
+)
+
+type OxmClass uint16
+
+func (self OxmClass) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_packet_in_reason
+ OFPRNoMatch = 0 // OFPR_NO_MATCH
+ OFPRAction = 1 // OFPR_ACTION
+ OFPRInvalidTtl = 2 // OFPR_INVALID_TTL
+ OFPRBSNNewHost = 128 // OFPR_BSN_NEW_HOST
+ OFPRBSNStationMove = 129 // OFPR_BSN_STATION_MOVE
+ OFPRBSNBadVLAN = 130 // OFPR_BSN_BAD_VLAN
+ OFPRBSNDestinationLookupFailure = 131 // OFPR_BSN_DESTINATION_LOOKUP_FAILURE
+ OFPRBSNNoRoute = 132 // OFPR_BSN_NO_ROUTE
+ OFPRBSNICMPEchoRequest = 133 // OFPR_BSN_ICMP_ECHO_REQUEST
+ OFPRBSNDestNetworkUnreachable = 134 // OFPR_BSN_DEST_NETWORK_UNREACHABLE
+ OFPRBSNDestHostUnreachable = 135 // OFPR_BSN_DEST_HOST_UNREACHABLE
+ OFPRBSNDestPortUnreachable = 136 // OFPR_BSN_DEST_PORT_UNREACHABLE
+ OFPRBSNFragmentationRequired = 137 // OFPR_BSN_FRAGMENTATION_REQUIRED
+ OFPRBSNARP = 139 // OFPR_BSN_ARP
+ OFPRBSNDhcp = 140 // OFPR_BSN_DHCP
+ OFPRBSNDebug = 141 // OFPR_BSN_DEBUG
+ OFPRBSNPacketOfDeath = 142 // OFPR_BSN_PACKET_OF_DEATH
+)
+
+type PacketInReason uint8
+
+func (self PacketInReason) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_packet_type
+ PtEthernet = 0 // OFP_PT_ETHERNET
+ PtUseNextProto = 65534 // OFP_PT_USE_NEXT_PROTO
+ PtIpv4 = 67584 // OFP_PT_IPV4
+ PtMpls = 100423 // OFP_PT_MPLS
+ PtMplsMc = 100424 // OFP_PT_MPLS_MC
+ PtNsh = 100687 // OFP_PT_NSH
+ PtUnknown = 4294967295 // OFP_PT_UNKNOWN
+)
+
+type PacketType uint32
+
+func (self PacketType) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("\"%s\"", self)), nil
+}
+
+func (self PacketType) String() string {
+ switch self {
+ case PtEthernet:
+ return "ethernet"
+ case PtUseNextProto:
+ return "use_next_proto"
+ case PtIpv4:
+ return "ipv4"
+ case PtMpls:
+ return "mpls"
+ case PtMplsMc:
+ return "mpls_mc"
+ case PtNsh:
+ return "nsh"
+ case PtUnknown:
+ return "unknown"
+ default:
+ return fmt.Sprintf("%d", self)
+ }
+}
+
+const (
+ // Identifiers from group ofp_port
+ OFPPMax = 4294967040 // OFPP_MAX
+ OFPPInPort = 4294967288 // OFPP_IN_PORT
+ OFPPTable = 4294967289 // OFPP_TABLE
+ OFPPNormal = 4294967290 // OFPP_NORMAL
+ OFPPFlood = 4294967291 // OFPP_FLOOD
+ OFPPAll = 4294967292 // OFPP_ALL
+ OFPPController = 4294967293 // OFPP_CONTROLLER
+ OFPPLocal = 4294967294 // OFPP_LOCAL
+ OFPPAny = 4294967295 // OFPP_ANY
+)
+
+type Port uint32
+
+func (self Port) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_port_config
+ OFPPCPortDown = 1 // OFPPC_PORT_DOWN
+ OFPPCNoRecv = 4 // OFPPC_NO_RECV
+ OFPPCNoFwd = 32 // OFPPC_NO_FWD
+ OFPPCNoPacketIn = 64 // OFPPC_NO_PACKET_IN
+ OFPPCBSNMirrorDest = 2147483648 // OFPPC_BSN_MIRROR_DEST
+)
+
+type PortConfig uint32
+
+func (self PortConfig) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&OFPPCPortDown == OFPPCPortDown {
+ flags = append(flags, "\"PortDown\": true")
+ }
+ if self&OFPPCNoRecv == OFPPCNoRecv {
+ flags = append(flags, "\"NoRecv\": true")
+ }
+ if self&OFPPCNoFwd == OFPPCNoFwd {
+ flags = append(flags, "\"NoFwd\": true")
+ }
+ if self&OFPPCNoPacketIn == OFPPCNoPacketIn {
+ flags = append(flags, "\"NoPacketIn\": true")
+ }
+ if self&OFPPCBSNMirrorDest == OFPPCBSNMirrorDest {
+ flags = append(flags, "\"BsnMirrorDest\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_port_features
+ OFPPF10MbHd = 1 // OFPPF_10MB_HD
+ OFPPF10MbFd = 2 // OFPPF_10MB_FD
+ OFPPF100MbHd = 4 // OFPPF_100MB_HD
+ OFPPF100MbFd = 8 // OFPPF_100MB_FD
+ OFPPF1GbHd = 16 // OFPPF_1GB_HD
+ OFPPF1GbFd = 32 // OFPPF_1GB_FD
+ OFPPF10GbFd = 64 // OFPPF_10GB_FD
+ OFPPF40GbFd = 128 // OFPPF_40GB_FD
+ OFPPF100GbFd = 256 // OFPPF_100GB_FD
+ OFPPF1TbFd = 512 // OFPPF_1TB_FD
+ OFPPFOther = 1024 // OFPPF_OTHER
+ OFPPFCopper = 2048 // OFPPF_COPPER
+ OFPPFFiber = 4096 // OFPPF_FIBER
+ OFPPFAutoneg = 8192 // OFPPF_AUTONEG
+ OFPPFPause = 16384 // OFPPF_PAUSE
+ OFPPFPauseAsym = 32768 // OFPPF_PAUSE_ASYM
+ OFPPFBSNBreakoutCapable = 2147483648 // OFPPF_BSN_BREAKOUT_CAPABLE
+)
+
+type PortFeatures uint32
+
+func (self PortFeatures) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&OFPPF10MbHd == OFPPF10MbHd {
+ flags = append(flags, "\"10MbHd\": true")
+ }
+ if self&OFPPF10MbFd == OFPPF10MbFd {
+ flags = append(flags, "\"10MbFd\": true")
+ }
+ if self&OFPPF100MbHd == OFPPF100MbHd {
+ flags = append(flags, "\"100MbHd\": true")
+ }
+ if self&OFPPF100MbFd == OFPPF100MbFd {
+ flags = append(flags, "\"100MbFd\": true")
+ }
+ if self&OFPPF1GbHd == OFPPF1GbHd {
+ flags = append(flags, "\"1GbHd\": true")
+ }
+ if self&OFPPF1GbFd == OFPPF1GbFd {
+ flags = append(flags, "\"1GbFd\": true")
+ }
+ if self&OFPPF10GbFd == OFPPF10GbFd {
+ flags = append(flags, "\"10GbFd\": true")
+ }
+ if self&OFPPF40GbFd == OFPPF40GbFd {
+ flags = append(flags, "\"40GbFd\": true")
+ }
+ if self&OFPPF100GbFd == OFPPF100GbFd {
+ flags = append(flags, "\"100GbFd\": true")
+ }
+ if self&OFPPF1TbFd == OFPPF1TbFd {
+ flags = append(flags, "\"1TbFd\": true")
+ }
+ if self&OFPPFOther == OFPPFOther {
+ flags = append(flags, "\"Other\": true")
+ }
+ if self&OFPPFCopper == OFPPFCopper {
+ flags = append(flags, "\"Copper\": true")
+ }
+ if self&OFPPFFiber == OFPPFFiber {
+ flags = append(flags, "\"Fiber\": true")
+ }
+ if self&OFPPFAutoneg == OFPPFAutoneg {
+ flags = append(flags, "\"Autoneg\": true")
+ }
+ if self&OFPPFPause == OFPPFPause {
+ flags = append(flags, "\"Pause\": true")
+ }
+ if self&OFPPFPauseAsym == OFPPFPauseAsym {
+ flags = append(flags, "\"PauseAsym\": true")
+ }
+ if self&OFPPFBSNBreakoutCapable == OFPPFBSNBreakoutCapable {
+ flags = append(flags, "\"BsnBreakoutCapable\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_port_mod_failed_code
+ OFPPMFCBadPort = 0 // OFPPMFC_BAD_PORT
+ OFPPMFCBadHwAddr = 1 // OFPPMFC_BAD_HW_ADDR
+ OFPPMFCBadConfig = 2 // OFPPMFC_BAD_CONFIG
+ OFPPMFCBadAdvertise = 3 // OFPPMFC_BAD_ADVERTISE
+ OFPPMFCEperm = 4 // OFPPMFC_EPERM
+)
+
+type PortModFailedCode uint16
+
+func (self PortModFailedCode) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_port_reason
+ OFPPRAdd = 0 // OFPPR_ADD
+ OFPPRDelete = 1 // OFPPR_DELETE
+ OFPPRModify = 2 // OFPPR_MODIFY
+)
+
+type PortReason uint8
+
+func (self PortReason) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_port_state
+ OFPPSLinkDown = 1 // OFPPS_LINK_DOWN
+ OFPPSBlocked = 2 // OFPPS_BLOCKED
+ OFPPSLive = 4 // OFPPS_LIVE
+)
+
+type PortState uint32
+
+func (self PortState) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&OFPPSLinkDown == OFPPSLinkDown {
+ flags = append(flags, "\"LinkDown\": true")
+ }
+ if self&OFPPSBlocked == OFPPSBlocked {
+ flags = append(flags, "\"Blocked\": true")
+ }
+ if self&OFPPSLive == OFPPSLive {
+ flags = append(flags, "\"Live\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_queue_op_failed_code
+ OFPQOFCBadPort = 0 // OFPQOFC_BAD_PORT
+ OFPQOFCBadQueue = 1 // OFPQOFC_BAD_QUEUE
+ OFPQOFCEperm = 2 // OFPQOFC_EPERM
+)
+
+type QueueOpFailedCode uint16
+
+func (self QueueOpFailedCode) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_queue_properties
+ OFPQTMinRate = 1 // OFPQT_MIN_RATE
+ OFPQTMaxRate = 2 // OFPQT_MAX_RATE
+ OFPQTExperimenter = 65535 // OFPQT_EXPERIMENTER
+)
+
+type QueueProperties uint16
+
+func (self QueueProperties) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_role_request_failed_code
+ OFPRRFCStale = 0 // OFPRRFC_STALE
+ OFPRRFCUnsup = 1 // OFPRRFC_UNSUP
+ OFPRRFCBadRole = 2 // OFPRRFC_BAD_ROLE
+)
+
+type RoleRequestFailedCode uint16
+
+func (self RoleRequestFailedCode) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_stats_reply_flags
+ OFPSFReplyMore = 1 // OFPSF_REPLY_MORE
+)
+
+type StatsReplyFlags uint16
+
+func (self StatsReplyFlags) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&OFPSFReplyMore == OFPSFReplyMore {
+ flags = append(flags, "\"OFPSFReplyMore\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_stats_request_flags
+ OFPSFReqMore = 1 // OFPSF_REQ_MORE
+)
+
+type StatsRequestFlags uint16
+
+func (self StatsRequestFlags) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&OFPSFReqMore == OFPSFReqMore {
+ flags = append(flags, "\"OFPSFReqMore\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_stats_type
+ OFPSTDesc = 0 // OFPST_DESC
+ OFPSTFlow = 1 // OFPST_FLOW
+ OFPSTAggregate = 2 // OFPST_AGGREGATE
+ OFPSTTable = 3 // OFPST_TABLE
+ OFPSTPort = 4 // OFPST_PORT
+ OFPSTQueue = 5 // OFPST_QUEUE
+ OFPSTGroup = 6 // OFPST_GROUP
+ OFPSTGroupDesc = 7 // OFPST_GROUP_DESC
+ OFPSTGroupFeatures = 8 // OFPST_GROUP_FEATURES
+ OFPSTMeter = 9 // OFPST_METER
+ OFPSTMeterConfig = 10 // OFPST_METER_CONFIG
+ OFPSTMeterFeatures = 11 // OFPST_METER_FEATURES
+ OFPSTTableFeatures = 12 // OFPST_TABLE_FEATURES
+ OFPSTPortDesc = 13 // OFPST_PORT_DESC
+ OFPSTExperimenter = 65535 // OFPST_EXPERIMENTER
+)
+
+type StatsType uint16
+
+func (self StatsType) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_switch_config_failed_code
+ OFPSCFCBadFlags = 0 // OFPSCFC_BAD_FLAGS
+ OFPSCFCBadLen = 1 // OFPSCFC_BAD_LEN
+ OFPSCFCEperm = 2 // OFPSCFC_EPERM
+)
+
+type SwitchConfigFailedCode uint16
+
+func (self SwitchConfigFailedCode) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_table
+ OFPTTMax = 254 // OFPTT_MAX
+ OFPTTAll = 255 // OFPTT_ALL
+)
+
+type Table uint8
+
+func (self Table) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_table_config
+ OFPTCDeprecatedMask = 3 // OFPTC_DEPRECATED_MASK
+)
+
+type TableConfig uint32
+
+func (self TableConfig) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&OFPTCDeprecatedMask == OFPTCDeprecatedMask {
+ flags = append(flags, "\"OFPTCDeprecatedMask\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_table_feature_prop_type
+ OFPTFPTInstructions = 0 // OFPTFPT_INSTRUCTIONS
+ OFPTFPTInstructionsMiss = 1 // OFPTFPT_INSTRUCTIONS_MISS
+ OFPTFPTNextTables = 2 // OFPTFPT_NEXT_TABLES
+ OFPTFPTNextTablesMiss = 3 // OFPTFPT_NEXT_TABLES_MISS
+ OFPTFPTWriteActions = 4 // OFPTFPT_WRITE_ACTIONS
+ OFPTFPTWriteActionsMiss = 5 // OFPTFPT_WRITE_ACTIONS_MISS
+ OFPTFPTApplyActions = 6 // OFPTFPT_APPLY_ACTIONS
+ OFPTFPTApplyActionsMiss = 7 // OFPTFPT_APPLY_ACTIONS_MISS
+ OFPTFPTMatch = 8 // OFPTFPT_MATCH
+ OFPTFPTWildcards = 10 // OFPTFPT_WILDCARDS
+ OFPTFPTWriteSetfield = 12 // OFPTFPT_WRITE_SETFIELD
+ OFPTFPTWriteSetfieldMiss = 13 // OFPTFPT_WRITE_SETFIELD_MISS
+ OFPTFPTApplySetfield = 14 // OFPTFPT_APPLY_SETFIELD
+ OFPTFPTApplySetfieldMiss = 15 // OFPTFPT_APPLY_SETFIELD_MISS
+ OFPTFPTExperimenter = 65534 // OFPTFPT_EXPERIMENTER
+ OFPTFPTExperimenterMiss = 65535 // OFPTFPT_EXPERIMENTER_MISS
+)
+
+type TableFeaturePropType uint16
+
+func (self TableFeaturePropType) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_table_features_failed_code
+ OFPTFFCBadTable = 0 // OFPTFFC_BAD_TABLE
+ OFPTFFCBadMetadata = 1 // OFPTFFC_BAD_METADATA
+ OFPTFFCBadType = 2 // OFPTFFC_BAD_TYPE
+ OFPTFFCBadLen = 3 // OFPTFFC_BAD_LEN
+ OFPTFFCBadArgument = 4 // OFPTFFC_BAD_ARGUMENT
+ OFPTFFCEperm = 5 // OFPTFFC_EPERM
+)
+
+type TableFeaturesFailedCode uint16
+
+func (self TableFeaturesFailedCode) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_table_mod_failed_code
+ OFPTMFCBadTable = 0 // OFPTMFC_BAD_TABLE
+ OFPTMFCBadConfig = 1 // OFPTMFC_BAD_CONFIG
+ OFPTMFCEperm = 2 // OFPTMFC_EPERM
+)
+
+type TableModFailedCode uint16
+
+func (self TableModFailedCode) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}
+
+const (
+ // Identifiers from group ofp_tcp_flags
+ TcpFlagCwr = 128 // TCP_FLAG_CWR
+ TcpFlagEce = 64 // TCP_FLAG_ECE
+ TcpFlagUrg = 32 // TCP_FLAG_URG
+ TcpFlagAck = 16 // TCP_FLAG_ACK
+ TcpFlagPsh = 8 // TCP_FLAG_PSH
+ TcpFlagRst = 4 // TCP_FLAG_RST
+ TcpFlagSyn = 2 // TCP_FLAG_SYN
+ TcpFlagFin = 1 // TCP_FLAG_FIN
+)
+
+type TcpFlags uint16
+
+func (self TcpFlags) MarshalJSON() ([]byte, error) {
+ var flags []string
+ if self&TcpFlagCwr == TcpFlagCwr {
+ flags = append(flags, "\"Cwr\": true")
+ }
+ if self&TcpFlagEce == TcpFlagEce {
+ flags = append(flags, "\"Ece\": true")
+ }
+ if self&TcpFlagUrg == TcpFlagUrg {
+ flags = append(flags, "\"Urg\": true")
+ }
+ if self&TcpFlagAck == TcpFlagAck {
+ flags = append(flags, "\"Ack\": true")
+ }
+ if self&TcpFlagPsh == TcpFlagPsh {
+ flags = append(flags, "\"Psh\": true")
+ }
+ if self&TcpFlagRst == TcpFlagRst {
+ flags = append(flags, "\"Rst\": true")
+ }
+ if self&TcpFlagSyn == TcpFlagSyn {
+ flags = append(flags, "\"Syn\": true")
+ }
+ if self&TcpFlagFin == TcpFlagFin {
+ flags = append(flags, "\"Fin\": true")
+ }
+ return []byte("{" + strings.Join(flags, ", ") + "}"), nil
+}
+
+const (
+ // Identifiers from group ofp_type
+ OFPTHello = 0 // OFPT_HELLO
+ OFPTError = 1 // OFPT_ERROR
+ OFPTEchoRequest = 2 // OFPT_ECHO_REQUEST
+ OFPTEchoReply = 3 // OFPT_ECHO_REPLY
+ OFPTExperimenter = 4 // OFPT_EXPERIMENTER
+ OFPTFeaturesRequest = 5 // OFPT_FEATURES_REQUEST
+ OFPTFeaturesReply = 6 // OFPT_FEATURES_REPLY
+ OFPTGetConfigRequest = 7 // OFPT_GET_CONFIG_REQUEST
+ OFPTGetConfigReply = 8 // OFPT_GET_CONFIG_REPLY
+ OFPTSetConfig = 9 // OFPT_SET_CONFIG
+ OFPTPacketIn = 10 // OFPT_PACKET_IN
+ OFPTFlowRemoved = 11 // OFPT_FLOW_REMOVED
+ OFPTPortStatus = 12 // OFPT_PORT_STATUS
+ OFPTPacketOut = 13 // OFPT_PACKET_OUT
+ OFPTFlowMod = 14 // OFPT_FLOW_MOD
+ OFPTGroupMod = 15 // OFPT_GROUP_MOD
+ OFPTPortMod = 16 // OFPT_PORT_MOD
+ OFPTTableMod = 17 // OFPT_TABLE_MOD
+ OFPTStatsRequest = 18 // OFPT_STATS_REQUEST
+ OFPTStatsReply = 19 // OFPT_STATS_REPLY
+ OFPTBarrierRequest = 20 // OFPT_BARRIER_REQUEST
+ OFPTBarrierReply = 21 // OFPT_BARRIER_REPLY
+ OFPTQueueGetConfigRequest = 22 // OFPT_QUEUE_GET_CONFIG_REQUEST
+ OFPTQueueGetConfigReply = 23 // OFPT_QUEUE_GET_CONFIG_REPLY
+ OFPTRoleRequest = 24 // OFPT_ROLE_REQUEST
+ OFPTRoleReply = 25 // OFPT_ROLE_REPLY
+ OFPTGetAsyncRequest = 26 // OFPT_GET_ASYNC_REQUEST
+ OFPTGetAsyncReply = 27 // OFPT_GET_ASYNC_REPLY
+ OFPTSetAsync = 28 // OFPT_SET_ASYNC
+ OFPTMeterMod = 29 // OFPT_METER_MOD
+)
+
+type Type uint8
+
+func (self Type) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("\"%s\"", self)), nil
+}
+
+func (self Type) String() string {
+ switch self {
+ case OFPTHello:
+ return "hello"
+ case OFPTError:
+ return "error"
+ case OFPTEchoRequest:
+ return "echo_request"
+ case OFPTEchoReply:
+ return "echo_reply"
+ case OFPTExperimenter:
+ return "experimenter"
+ case OFPTFeaturesRequest:
+ return "features_request"
+ case OFPTFeaturesReply:
+ return "features_reply"
+ case OFPTGetConfigRequest:
+ return "get_config_request"
+ case OFPTGetConfigReply:
+ return "get_config_reply"
+ case OFPTSetConfig:
+ return "set_config"
+ case OFPTPacketIn:
+ return "packet_in"
+ case OFPTFlowRemoved:
+ return "flow_removed"
+ case OFPTPortStatus:
+ return "port_status"
+ case OFPTPacketOut:
+ return "packet_out"
+ case OFPTFlowMod:
+ return "flow_mod"
+ case OFPTGroupMod:
+ return "group_mod"
+ case OFPTPortMod:
+ return "port_mod"
+ case OFPTTableMod:
+ return "table_mod"
+ case OFPTStatsRequest:
+ return "stats_request"
+ case OFPTStatsReply:
+ return "stats_reply"
+ case OFPTBarrierRequest:
+ return "barrier_request"
+ case OFPTBarrierReply:
+ return "barrier_reply"
+ case OFPTQueueGetConfigRequest:
+ return "queue_get_config_request"
+ case OFPTQueueGetConfigReply:
+ return "queue_get_config_reply"
+ case OFPTRoleRequest:
+ return "role_request"
+ case OFPTRoleReply:
+ return "role_reply"
+ case OFPTGetAsyncRequest:
+ return "get_async_request"
+ case OFPTGetAsyncReply:
+ return "get_async_reply"
+ case OFPTSetAsync:
+ return "set_async"
+ case OFPTMeterMod:
+ return "meter_mod"
+ default:
+ return fmt.Sprintf("%d", self)
+ }
+}
+
+const (
+ // Identifiers from group ofp_vlan_id
+ OFPVIDNone = 0 // OFPVID_NONE
+ OFPVIDPresent = 4096 // OFPVID_PRESENT
+)
+
+type VlanId uint16
+
+func (self VlanId) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%d", self)), nil
+}