Documentation ¶
Index ¶
- Constants
- Variables
- func DecodeMatchField(class uint16, field uint8, data []byte) util.Message
- func NewConfigRequest() *common.Header
- func NewEchoReply() *common.Header
- func NewEchoRequest() *common.Header
- func NewFeaturesRequest() *common.Header
- func Parse(b []byte) (message util.Message, err error)
- type Action
- type ActionGroup
- type ActionHeader
- type ActionMplsTtl
- type ActionNwTtl
- type ActionOutput
- type ActionPopMpls
- type ActionPopVlan
- type ActionPush
- type ActionSetField
- type ActionSetqueue
- type AggregateStats
- type AggregateStatsRequest
- type Bucket
- type DescStats
- type ErrorMsg
- type EthDstField
- type EthSrcField
- type EthTypeField
- type FlowMod
- type FlowRemoved
- type FlowStats
- type FlowStatsRequest
- type GroupMod
- type InPortField
- type InstrActions
- type InstrGotoTable
- type InstrHeader
- type InstrMeter
- type InstrWriteMetadata
- type Instruction
- type Ipv4DstField
- type Ipv4SrcField
- type Match
- type MatchField
- func NewEthDstField(ethDst net.HardwareAddr, ethDstMask *net.HardwareAddr) *MatchField
- func NewEthSrcField(ethSrc net.HardwareAddr, ethSrcMask *net.HardwareAddr) *MatchField
- func NewEthTypeField(ethType uint16) *MatchField
- func NewInPortField(inPort uint32) *MatchField
- func NewIpv4DstField(ipDst net.IP, ipDstMask *net.IP) *MatchField
- func NewIpv4SrcField(ipSrc net.IP, ipSrcMask *net.IP) *MatchField
- func NewMetadataField(metadata uint64, metadataMask *uint64) *MatchField
- func NewTunnelIdField(tunnelId uint64) *MatchField
- func NewVlanIdField(vlanId uint16) *MatchField
- type MetadataField
- type MultipartReply
- type MultipartRequest
- type PacketIn
- type PacketOut
- type PhyPort
- type PortMod
- type PortStats
- type PortStatsRequest
- type PortStatus
- type QueueStats
- type QueueStatsRequest
- type SwitchConfig
- type SwitchFeatures
- type TableStats
- type TunnelIdField
- type VendorHeader
- type VlanIdField
Constants ¶
const ( ActionType_Output = 0 ActionType_CopyTtlOut = 11 ActionType_CopyTtlIn = 12 ActionType_SetMplsTtl = 15 ActionType_DecMplsTtl = 16 ActionType_PushVlan = 17 ActionType_PopVlan = 18 ActionType_PushMpls = 19 ActionType_PopMpls = 20 ActionType_SetQueue = 21 ActionType_Group = 22 ActionType_SetNwTtl = 23 ActionType_DecNwTtl = 24 ActionType_SetField = 25 ActionType_PushPbb = 26 ActionType_PopPbb = 27 ActionType_Experimenter = 0xffff )
ofp_action_type 1.3
const ( OFPCML_MAX = 0xffe5 /* maximum max_len value which can be used to request a specific byte length. */ OFPCML_NO_BUFFER = 0xffff /* indicates that no buffering should be applied and the whole packet is to be sent to the controller. */ )
ofp_controller_max_len 1.3
const ( FC_ADD = iota // OFPFC_ADD = 0 FC_MODIFY FC_MODIFY_STRICT FC_DELETE FC_DELETE_STRICT )
ofp_flow_mod_command 1.3
const ( FF_SEND_FLOW_REM = 1 << 0 /* Send flow removed message when flow expires or is deleted. */ FF_CHECK_OVERLAP = 1 << 1 /* Check for overlapping entries first */ FF_RESET_COUNTS = 1 << 2 /* Reset flow packet and byte counts */ FF_NO_PKT_COUNTS = 1 << 3 /* Don’t keep track of packet count */ FF_NO_BYT_COUNTS = 1 << 4 /* Don’t keep track of byte count */ )
ofp_flow_mod_flags 1.3
const ( RR_IDLE_TIMEOUT = iota /* Flow idle time exceeded idle_timeout. */ RR_HARD_TIMEOUT /* Time exceeded hard_timeout. */ RR_DELETE /* Evicted by a DELETE flow mod. */ RR_GROUP_DELETE /* Group was removed. */ )
ofp_flow_removed_reason 1.3
const ( OFPG_MAX = 0xffffff00 /* Last usable group number. */ /* Fake groups. */ OFPG_ALL = 0xfffffffc /* Represents all groups for group delete commands. */ OFPG_ANY = 0xffffffff /* Wildcard group used only for flow stats requests. Selects all flows regardless of group (including flows with no group). */ )
const ( OFPGC_ADD = 0 /* New group. */ OFPGC_MODIFY = 1 /* Modify all matching groups. */ OFPGC_DELETE = 2 /* Delete all matching groups. */ )
const ( OFPGT_ALL = 0 /* All (multicast/broadcast) group. */ OFPGT_SELECT = 1 /* Select group. */ OFPGT_INDIRECT = 2 /* Indirect group. */ OFPGT_FF = 3 /* Fast failover group. */ )
const ( InstrType_GOTO_TABLE = 1 /* Setup the next table in the lookup pipeline */ InstrType_WRITE_METADATA = 2 /* Setup the metadata field for use later in pipeline */ InstrType_WRITE_ACTIONS = 3 /* Write the action(s) onto the datapath action set */ InstrType_APPLY_ACTIONS = 4 /* Applies the action(s) immediately */ InstrType_CLEAR_ACTIONS = 5 /* Clears all actions from the datapath action set */ InstrType_METER = 6 /* Apply meter (rate limiter) */ InstrType_EXPERIMENTER = 0xFFFF /* Experimenter instruction */ )
ofp_instruction_type 1.3
const ( MatchType_Standard = iota /* Deprecated. */ MatchType_OXM )
ofp_match_type 1.3
const ( OXM_CLASS_NXM_0 = 0x0000 /* Backward compatibility with NXM */ OXM_CLASS_NXM_1 = 0x0001 /* Backward compatibility with NXM */ OXM_CLASS_OPENFLOW_BASIC = 0x8000 /* Basic class for OpenFlow */ OXM_CLASS_EXPERIMENTER = 0xFFFF /* Experimenter class */ )
ofp_oxm_class 1.3
const ( OXM_FIELD_IN_PORT = 0 /* Switch input port. */ OXM_FIELD_IN_PHY_PORT = 1 /* Switch physical input port. */ OXM_FIELD_METADATA = 2 /* Metadata passed between tables. */ OXM_FIELD_ETH_DST = 3 /* Ethernet destination address. */ OXM_FIELD_ETH_SRC = 4 /* Ethernet source address. */ OXM_FIELD_ETH_TYPE = 5 /* Ethernet frame type. */ OXM_FIELD_VLAN_VID = 6 /* VLAN id. */ OXM_FIELD_VLAN_PCP = 7 /* VLAN priority. */ OXM_FIELD_IP_DSCP = 8 /* IP DSCP (6 bits in ToS field). */ OXM_FIELD_IP_ECN = 9 /* IP ECN (2 bits in ToS field). */ OXM_FIELD_IP_PROTO = 10 /* IP protocol. */ OXM_FIELD_IPV4_SRC = 11 /* IPv4 source address. */ OXM_FIELD_IPV4_DST = 12 /* IPv4 destination address. */ OXM_FIELD_TCP_SRC = 13 /* TCP source port. */ OXM_FIELD_TCP_DST = 14 /* TCP destination port. */ OXM_FIELD_UDP_SRC = 15 /* UDP source port. */ OXM_FIELD_UDP_DST = 16 /* UDP destination port. */ OXM_FIELD_SCTP_SRC = 17 /* SCTP source port. */ OXM_FIELD_SCTP_DST = 18 /* SCTP destination port. */ OXM_FIELD_ICMPV4_TYPE = 19 /* ICMP type. */ OXM_FIELD_ICMPV4_CODE = 20 /* ICMP code. */ OXM_FIELD_ARP_OP = 21 /* ARP opcode. */ OXM_FIELD_ARP_SPA = 22 /* ARP source IPv4 address. */ OXM_FIELD_ARP_TPA = 23 /* ARP target IPv4 address. */ OXM_FIELD_ARP_SHA = 24 /* ARP source hardware address. */ OXM_FIELD_ARP_THA = 25 /* ARP target hardware address. */ OXM_FIELD_IPV6_SRC = 26 /* IPv6 source address. */ OXM_FIELD_IPV6_DST = 27 /* IPv6 destination address. */ OXM_FIELD_IPV6_FLABEL = 28 /* IPv6 Flow Label */ OXM_FIELD_ICMPV6_TYPE = 29 /* ICMPv6 type. */ OXM_FIELD_ICMPV6_CODE = 30 /* ICMPv6 code. */ OXM_FIELD_IPV6_ND_TARGET = 31 /* Target address for ND. */ OXM_FIELD_IPV6_ND_SLL = 32 /* Source link-layer for ND. */ OXM_FIELD_IPV6_ND_TLL = 33 /* Target link-layer for ND. */ OXM_FIELD_MPLS_LABEL = 34 /* MPLS label. */ OXM_FIELD_MPLS_TC = 35 /* MPLS TC. */ OXM_FIELD_MPLS_BOS = 36 /* MPLS BoS bit. */ OXM_FIELD_PBB_ISID = 37 /* PBB I-SID. */ OXM_FIELD_TUNNEL_ID = 38 /* Logical Port Metadata. */ OXM_FIELD_IPV6_EXTHDR = 39 /* IPv6 Extension Header pseudo-field */ )
const ( OFPMPF_REQ_MORE = 1 << 0 /* More requests to follow. */ OFPMPF_REPLY_MORE = 1 << 0 /* More replies to follow. */ )
ofp_multipart_request_flags & ofp_multipart_reply_flags 1.3
const ( /* Description of this OpenFlow switch. * The request body is empty. * The reply body is struct ofp_desc_stats. */ MultipartType_Desc = iota /* Individual flow statistics. * The request body is struct ofp_flow_stats_request. * The reply body is an array of struct ofp_flow_stats. */ MultipartType_Flow /* Aggregate flow statistics. * The request body is struct ofp_aggregate_stats_request. * The reply body is struct ofp_aggregate_stats_reply. */ MultipartType_Aggregate /* Flow table statistics. * The request body is empty. * The reply body is an array of struct ofp_table_stats. */ MultipartType_Table /* Port statistics. * The request body is struct ofp_port_stats_request. * The reply body is an array of struct ofp_port_stats. */ MultipartType_Port /* Queue statistics for a port * The request body is struct _queue_stats_request. * The reply body is an array of struct ofp_queue_stats */ MultipartType_Queue /* Group counter statistics. * The request body is struct ofp_group_stats_request. * The reply is an array of struct ofp_group_stats. */ MultipartType_Group /* Group description. * The request body is empty. * The reply body is an array of struct ofp_group_desc. */ MultipartType_GroupDesc /* Group features. * The request body is empty. * The reply body is struct ofp_group_features. */ MultipartType_GroupFeatures /* Meter statistics. * The request body is struct ofp_meter_multipart_requests. * The reply body is an array of struct ofp_meter_stats. */ MultipartType_Meter /* Meter configuration. * The request body is struct ofp_meter_multipart_requests. * The reply body is an array of struct ofp_meter_config. */ MultipartType_MeterConfig /* Meter features. * The request body is empty. * The reply body is struct ofp_meter_features. */ MultipartType_MeterFeatures /* Table features. * The request body is either empty or contains an array of * struct ofp_table_features containing the controller’s * desired view of the switch. If the switch is unable to * set the specified view an error is returned. * The reply body is an array of struct ofp_table_features. */ MultipartType_TableFeatures /* Port description. * The request body is empty. * The reply body is an array of struct ofp_port. */ MultipartType_PortDesc /* Experimenter extension. * The request and reply bodies begin with * struct ofp_experimenter_multipart_header. * The request and reply bodies are otherwise experimenter-defined. */ MultipartType_Experimenter = 0xffff )
_stats_types
const ( DESC_STR_LEN = 256 SERIAL_NUM_LEN = 32 )
const ( OFPTT_MAX = 0xfe /* Fake tables. */ OFPTT_ALL = 0xff /* Wildcard table used for table config, flow stats and flow deletes. */ )
const ( PR_ADD = iota PR_DELETE PR_MODIFY )
ofp_port_reason 1.0
const ( /* Immutable messages. */ Type_Hello = 0 Type_Error = 1 Type_EchoRequest = 2 Type_EchoReply = 3 Type_Experimenter = 4 /* Switch configuration messages. */ Type_FeaturesRequest = 5 Type_FeaturesReply = 6 Type_GetConfigRequest = 7 Type_GetConfigReply = 8 Type_SetConfig = 9 /* Asynchronous messages. */ Type_PacketIn = 10 Type_FlowRemoved = 11 Type_PortStatus = 12 /* Controller command messages. */ Type_PacketOut = 13 Type_FlowMod = 14 Type_GroupMod = 15 Type_PortMod = 16 Type_TableMod = 17 /* Multipart messages. */ Type_MultiPartRequest = 18 Type_MultiPartReply = 19 /* Barrier messages. */ Type_BarrierRequest = 20 Type_BarrierReply = 21 /* Queue Configuration messages. */ Type_QueueGetConfigRequest = 22 Type_QueueGetConfigReply = 23 /* Controller role change request messages. */ Type_RoleRequest = 24 Type_RoleReply = 25 /* Asynchronous message configuration. */ Type_GetAsyncRequest = 26 Type_GetAsyncReply = 27 Type_SetAsync = 28 /* Meters and rate limiters configuration messages. */ Type_MeterMod = 29 )
ofp_type 1.3
const ( R_NO_MATCH = iota /* No matching flow (table-miss flow entry). */ R_ACTION /* Action explicitly output to controller. */ R_INVALID_TTL /* Packet has invalid TTL */ )
ofp_packet_in_reason 1.3
const ( C_FRAG_NORMAL = 0 C_FRAG_DROP = 1 C_FRAG_REASM = 2 C_FRAG_MASK = 3 )
ofp_config_flags 1.3
const ( ET_HELLO_FAILED = 0 /* Hello protocol failed. */ ET_BAD_REQUEST = 1 /* Request was not understood. */ ET_BAD_ACTION = 2 /* Error in action description. */ ET_BAD_INSTRUCTION = 3 /* Error in instruction list. */ PET_BAD_MATCH = 4 /* Error in match. */ ET_FLOW_MOD_FAILED = 5 /* Problem modifying flow entry. */ ET_GROUP_MOD_FAILED = 6 /* Problem modifying group entry. */ ET_PORT_MOD_FAILED = 7 /* Port mod request failed. */ ET_TABLE_MOD_FAILED = 8 /* Table mod request failed. */ ET_QUEUE_OP_FAILED = 9 /* Queue operation failed. */ ET_ROLE_REQUEST_FAILED = 11 /* Controller Role request failed. */ ET_METER_MOD_FAILED = 12 /* Error in meter. */ ET_TABLE_FEATURES_FAILED = 13 /* Setting table features failed. */ ET_EXPERIMENTER = 0xffff /* Experimenter error messages. */ )
ofp_error_type 1.3
const ( HFC_INCOMPATIBLE = iota HFC_EPERM )
ofp_hello_failed_code 1.3
const ( BRC_BAD_VERSION = iota BRC_BAD_TYPE BRC_BAD_MULTIPART BRC_BAD_EXPERIMENTER BRC_BAD_EXP_TYPE BRC_EPERM BRC_BAD_LEN BRC_BUFFER_EMPTY BRC_BUFFER_UNKNOWN BRC_BAD_TABLE_ID BRC_IS_SLAVE BRC_BAD_PORT BRC_BAD_PACKET BRC_MULTIPART_BUFFER_OVERFLOW )
ofp_bad_request_code 1.3
const ( BAC_BAD_TYPE = iota BAC_BAD_LEN BAC_BAD_EXPERIMENTER BAC_BAD_EXP_TYPE BAC_BAD_OUT_PORT BAC_BAD_ARGUMENT BAC_EPERM BAC_TOO_MANY BAC_BAD_QUEUE BAC_BAD_OUT_GROUP BAC_MATCH_INCONSISTENT BAC_UNSUPPORTED_ORDER BAC_BAD_TAG BAC_BAD_SET_TYPE BAC_BAD_SET_LEN BAC_BAD_SET_ARGUMENT )
ofp_bad_action_code 1.3
const ( BIC_UNKNOWN_INST = 0 /* Unknown instruction. */ BIC_UNSUP_INST = 1 /* Switch or table does not support the instruction. */ BIC_BAD_TABLE_ID = 2 /* Invalid Table-ID specified. */ BIC_UNSUP_METADATA = 3 /* Metadata value unsupported by datapath. */ BIC_UNSUP_METADATA_MASK = 4 /* Metadata mask value unsupported by datapath. */ BIC_BAD_EXPERIMENTER = 5 /* Unknown experimenter id specified. */ BIC_BAD_EXP_TYPE = 6 /* Unknown instruction for experimenter id. */ BIC_BAD_LEN = 7 /* Length problem in instructions. */ BIC_EPERM = 8 /* Permissions error. */ )
ofp_bad_instruction_code 1.3
const ( FMFC_UNKNOWN = 0 /* Unspecified error. */ FMFC_TABLE_FULL = 1 /* Flow not added because table was full. */ FMFC_BAD_TABLE_ID = 2 /* Table does not exist */ FMFC_OVERLAP = 3 /* Attempted to add overlapping flow with CHECK_OVERLAP flag set. */ FMFC_EPERM = 4 /* Permissions error. */ FMFC_BAD_TIMEOUT = 5 /* Flow not added because of unsupported idle/hard timeout. */ FMFC_BAD_COMMAND = 6 /* Unsupported or unknown command. */ FMFC_BAD_FLAGS = 7 /* Unsupported or unknown flags. */ )
ofp_flow_mod_failed_code 1.3
const ( BMC_BAD_TYPE = 0 /* Unsupported match type specified by the match */ BMC_BAD_LEN = 1 /* Length problem in match. */ BMC_BAD_TAG = 2 /* Match uses an unsupported tag/encap. */ BMC_BAD_DL_ADDR_MASK = 3 /* Unsupported datalink addr mask - switch does not support arbitrary datalink address mask. */ BMC_BAD_NW_ADDR_MASK = 4 /* Unsupported network addr mask - switch does not support arbitrary network address mask. */ BMC_BAD_WILDCARDS = 5 /* Unsupported combination of fields masked or omitted in the match. */ BMC_BAD_FIELD = 6 /* Unsupported field type in the match. */ BMC_BAD_VALUE = 7 /* Unsupported value in a match field. */ BMC_BAD_MASK = 8 /* Unsupported mask specified in the match, field is not dl-address or nw-address. */ BMC_BAD_PREREQ = 9 /* A prerequisite was not met. */ BMC_DUP_FIELD = 10 /* A field type was duplicated. */ BMC_EPERM = 11 /* Permissions error. */ )
ofp_bad_match_code 1.3
const ( GMFC_GROUP_EXISTS = 0 /* Group not added because a group ADD attempted to replace an already-present group. */ GMFC_INVALID_GROUP = 1 /* Group not added because Group specified is invalid. */ GMFC_WEIGHT_UNSUPPORTED = 2 /* Switch does not support unequal load 105 ➞ 2013; The Open Networking Foundation OpenFlow Switch Specification Version 1.3.3 sharing with select groups. */ GMFC_OUT_OF_GROUPS = 3 /* The group table is full. */ GMFC_OUT_OF_BUCKETS = 4 /* The maximum number of action buckets for a group has been exceeded. */ GMFC_CHAINING_UNSUPPORTED = 5 /* Switch does not support groups that forward to groups. */ GMFC_WATCH_UNSUPPORTED = 6 /* This group cannot watch the watch_port or watch_group specified. */ GMFC_LOOP = 7 /* Group entry would cause a loop. */ GMFC_UNKNOWN_GROUP = 8 /* Group not modified because a group MODIFY attempted to modify a non-existent group. */ GMFC_CHAINED_GROUP = 9 /* Group not deleted because another group is forwarding to it. */ GMFC_BAD_TYPE = 10 /* Unsupported or unknown group type. */ GMFC_BAD_COMMAND = 11 /* Unsupported or unknown command. */ GMFC_BAD_BUCKET = 12 /* Error in bucket. */ GMFC_BAD_WATCH = 13 /* Error in watch port/group. */ GMFC_EPERM = 14 /* Permissions error. */ )
ofp_group_mod_failed_code 1.3
const ( PMFC_BAD_PORT = iota PMFC_BAD_HW_ADDR PMFC_BAD_CONFIG PMFC_BAD_ADVERTISE PMFC_EPERM )
ofp_port_mod_failed_code 1.0
const ( TMFC_BAD_TABLE = 0 /* Specified table does not exist. */ TMFC_BAD_CONFIG = 1 /* Specified config is invalid. */ TMFC_EPERM = 2 /* Permissions error. */ )
ofp_table_mod_failed_code
const ( QOFC_BAD_PORT = iota QOFC_BAD_QUEUE QOFC_EPERM )
ofp_queue_op_failed_code 1.0
const ( C_FLOW_STATS = 1 << 0 C_TABLE_STATS = 1 << 1 C_PORT_STATS = 1 << 2 C_GROUP_STATS = 1 << 3 C_RESERVED = 1 << 4 C_IP_REASM = 1 << 5 C_QUEUE_STATS = 1 << 6 C_PORT_BLOCKED = 1 << 8 )
ofp_capabilities 1.3
const ( ETH_ALEN = 6 MAX_PORT_NAME_LEN = 16 )
const ( PC_PORT_DOWN = 1 << 0 PC_NO_RECV = 1 << 2 PC_NO_FWD = 1 << 5 PC_NO_PACKET_IN = 1 << 6 )
ofp_port_config 1.3
const ( PS_LINK_DOWN = 1 << 0 PS_BLOCKED = 1 << 1 PS_LIVE = 1 << 2 )
ofp_port_state 1.3
const ( P_MAX = 0xffffff00 P_IN_PORT = 0xfffffff8 P_TABLE = 0xfffffff9 P_NORMAL = 0xfffffffa P_FLOOD = 0xfffffffb P_ALL = 0xfffffffc P_CONTROLLER = 0xfffffffd P_LOCAL = 0xfffffffe P_ANY = 0xffffffff )
ofp_port_no 1.3
const ( PF_10MB_HD = 1 << 0 PF_10MB_FD = 1 << 1 PF_100MB_HD = 1 << 2 PF_100MB_FD = 1 << 3 PF_1GB_HD = 1 << 4 PF_1GB_FD = 1 << 5 PF_10GB_FD = 1 << 6 PF_40GB_FD = 1 << 7 PF_100GB_FD = 1 << 8 PF_1TB_FD = 1 << 9 PF_OTHER = 1 << 10 PF_COPPER = 1 << 11 PF_FIBER = 1 << 12 PF_AUTONEG = 1 << 13 PF_PAUSE = 1 << 14 PF_PAUSE_ASYM = 1 << 15 )
ofp_port_features 1.3
const (
MAX_TABLE_NAME_LEN = 32
)
const OFPVID_NONE = 0x0000 /* No VLAN id was set. */
const OFPVID_PRESENT = 0x1000 /* Bit that indicate that a VLAN id is set */
const (
VERSION = 4
)
Variables ¶
var NewOfp13Header func() common.Header = common.NewHeaderGenerator(VERSION)
Returns a new OpenFlow header with version field set to v1.3.
Functions ¶
func NewConfigRequest ¶
func NewEchoReply ¶
Echo request/reply messages can be sent from either the switch or the controller, and must return an echo reply. They can be used to indicate the latency, bandwidth, and/or liveness of a controller-switch connection.
func NewEchoRequest ¶
Echo request/reply messages can be sent from either the switch or the controller, and must return an echo reply. They can be used to indicate the latency, bandwidth, and/or liveness of a controller-switch connection.
Types ¶
type Action ¶
type Action interface { Header() *ActionHeader util.Message }
type ActionGroup ¶
type ActionGroup struct { ActionHeader GroupId uint32 }
func NewActionGroup ¶
func NewActionGroup(group uint32) *ActionGroup
func (*ActionGroup) Len ¶
func (a *ActionGroup) Len() (n uint16)
func (*ActionGroup) MarshalBinary ¶
func (a *ActionGroup) MarshalBinary() (data []byte, err error)
func (*ActionGroup) UnmarshalBinary ¶
func (a *ActionGroup) UnmarshalBinary(data []byte) error
type ActionHeader ¶
func (*ActionHeader) Header ¶
func (a *ActionHeader) Header() *ActionHeader
func (*ActionHeader) Len ¶
func (a *ActionHeader) Len() (n uint16)
func (*ActionHeader) MarshalBinary ¶
func (a *ActionHeader) MarshalBinary() (data []byte, err error)
func (*ActionHeader) UnmarshalBinary ¶
func (a *ActionHeader) UnmarshalBinary(data []byte) error
type ActionMplsTtl ¶
type ActionMplsTtl struct { ActionHeader MplsTtl uint8 // contains filtered or unexported fields }
type ActionNwTtl ¶
type ActionNwTtl struct { ActionHeader NwTtl uint8 // contains filtered or unexported fields }
type ActionOutput ¶
type ActionOutput struct { ActionHeader Port uint32 MaxLen uint16 // contains filtered or unexported fields }
Action structure for OFPAT_OUTPUT, which sends packets out ’port’. When the ’port’ is the OFPP_CONTROLLER, ’max_len’ indicates the max number of bytes to send. A ’max_len’ of zero means no bytes of the packet should be sent.
func NewActionOutput ¶
func NewActionOutput(portNum uint32) *ActionOutput
Returns a new Action Output message which sends packets out port number.
func (*ActionOutput) Len ¶
func (a *ActionOutput) Len() (n uint16)
func (*ActionOutput) MarshalBinary ¶
func (a *ActionOutput) MarshalBinary() (data []byte, err error)
func (*ActionOutput) UnmarshalBinary ¶
func (a *ActionOutput) UnmarshalBinary(data []byte) error
type ActionPopMpls ¶
type ActionPopMpls struct { ActionHeader EtherType uint16 // contains filtered or unexported fields }
type ActionPopVlan ¶
type ActionPopVlan struct { ActionHeader // contains filtered or unexported fields }
func NewActionPopVlan ¶
func NewActionPopVlan() *ActionPopVlan
func (*ActionPopVlan) Len ¶
func (a *ActionPopVlan) Len() (n uint16)
func (*ActionPopVlan) MarshalBinary ¶
func (a *ActionPopVlan) MarshalBinary() (data []byte, err error)
func (*ActionPopVlan) UnmarshalBinary ¶
func (a *ActionPopVlan) UnmarshalBinary(data []byte) error
type ActionPush ¶
type ActionPush struct { ActionHeader EtherType uint16 // contains filtered or unexported fields }
func NewActionPushMpls ¶
func NewActionPushMpls(etherType uint16) *ActionPush
func NewActionPushVlan ¶
func NewActionPushVlan(etherType uint16) *ActionPush
func (*ActionPush) Len ¶
func (a *ActionPush) Len() (n uint16)
func (*ActionPush) MarshalBinary ¶
func (a *ActionPush) MarshalBinary() (data []byte, err error)
func (*ActionPush) UnmarshalBinary ¶
func (a *ActionPush) UnmarshalBinary(data []byte) error
type ActionSetField ¶
type ActionSetField struct { ActionHeader Field MatchField }
func NewActionSetField ¶
func NewActionSetField(field MatchField) *ActionSetField
func (*ActionSetField) Len ¶
func (a *ActionSetField) Len() (n uint16)
func (*ActionSetField) MarshalBinary ¶
func (a *ActionSetField) MarshalBinary() (data []byte, err error)
func (*ActionSetField) UnmarshalBinary ¶
func (a *ActionSetField) UnmarshalBinary(data []byte) error
type ActionSetqueue ¶
type ActionSetqueue struct { ActionHeader QueueId uint32 }
func NewActionSetQueue ¶
func NewActionSetQueue(queue uint32) *ActionSetqueue
func (*ActionSetqueue) Len ¶
func (a *ActionSetqueue) Len() (n uint16)
func (*ActionSetqueue) MarshalBinary ¶
func (a *ActionSetqueue) MarshalBinary() (data []byte, err error)
func (*ActionSetqueue) UnmarshalBinary ¶
func (a *ActionSetqueue) UnmarshalBinary(data []byte) error
type AggregateStats ¶
type AggregateStats struct { PacketCount uint64 ByteCount uint64 FlowCount uint32 // contains filtered or unexported fields }
ofp_aggregate_stats_reply 1.3
func NewAggregateStats ¶
func NewAggregateStats() *AggregateStats
func (*AggregateStats) Len ¶
func (s *AggregateStats) Len() (n uint16)
func (*AggregateStats) MarshalBinary ¶
func (s *AggregateStats) MarshalBinary() (data []byte, err error)
func (*AggregateStats) UnmarshalBinary ¶
func (s *AggregateStats) UnmarshalBinary(data []byte) error
type AggregateStatsRequest ¶
type AggregateStatsRequest struct { TableId uint8 OutPort uint32 OutGroup uint32 Cookie uint64 CookieMask uint64 Match // contains filtered or unexported fields }
ofp_aggregate_stats_request 1.3
func NewAggregateStatsRequest ¶
func NewAggregateStatsRequest() *AggregateStatsRequest
func (*AggregateStatsRequest) Len ¶
func (s *AggregateStatsRequest) Len() (n uint16)
func (*AggregateStatsRequest) MarshalBinary ¶
func (s *AggregateStatsRequest) MarshalBinary() (data []byte, err error)
func (*AggregateStatsRequest) UnmarshalBinary ¶
func (s *AggregateStatsRequest) UnmarshalBinary(data []byte) error
type Bucket ¶
type Bucket struct { Length uint16 /* Length the bucket in bytes, including this header and any padding to make it 64-bit aligned. */ Weight uint16 /* Relative weight of bucket. Only defined for select groups. */ WatchPort uint32 /* Used for FRR groups */ WatchGroup uint32 /* Used for FRR groups */ Actions []Action /* zero or more actions */ // contains filtered or unexported fields }
func (*Bucket) MarshalBinary ¶
func (*Bucket) UnmarshalBinary ¶
type DescStats ¶
type DescStats struct { MfrDesc []byte // Size DESC_STR_LEN HWDesc []byte // Size DESC_STR_LEN SWDesc []byte // Size DESC_STR_LEN SerialNum []byte // Size SERIAL_NUM_LEN DPDesc []byte // Size DESC_STR_LEN }
ofp_desc_stats 1.3
func NewDescStats ¶
func NewDescStats() *DescStats
func (*DescStats) MarshalBinary ¶
func (*DescStats) UnmarshalBinary ¶
type ErrorMsg ¶
BEGIN: ofp13 - 7.4.4 ofp_error_msg 1.3
func NewErrorMsg ¶
func NewErrorMsg() *ErrorMsg
func (*ErrorMsg) MarshalBinary ¶
func (*ErrorMsg) UnmarshalBinary ¶
type EthDstField ¶
type EthDstField struct {
EthDst net.HardwareAddr
}
ETH_DST field
func (*EthDstField) Len ¶
func (m *EthDstField) Len() uint16
func (*EthDstField) MarshalBinary ¶
func (m *EthDstField) MarshalBinary() (data []byte, err error)
func (*EthDstField) UnmarshalBinary ¶
func (m *EthDstField) UnmarshalBinary(data []byte) error
type EthSrcField ¶
type EthSrcField struct {
EthSrc net.HardwareAddr
}
ETH_SRC field
func (*EthSrcField) Len ¶
func (m *EthSrcField) Len() uint16
func (*EthSrcField) MarshalBinary ¶
func (m *EthSrcField) MarshalBinary() (data []byte, err error)
func (*EthSrcField) UnmarshalBinary ¶
func (m *EthSrcField) UnmarshalBinary(data []byte) error
type EthTypeField ¶
type EthTypeField struct {
EthType uint16
}
ETH_TYPE field
func (*EthTypeField) Len ¶
func (m *EthTypeField) Len() uint16
func (*EthTypeField) MarshalBinary ¶
func (m *EthTypeField) MarshalBinary() (data []byte, err error)
func (*EthTypeField) UnmarshalBinary ¶
func (m *EthTypeField) UnmarshalBinary(data []byte) error
type FlowMod ¶
type FlowMod struct { common.Header Cookie uint64 CookieMask uint64 TableId uint8 /* ID of the table to put the flow in */ Command uint8 /* flowmod command */ IdleTimeout uint16 /* Idle time before discarding (seconds). */ HardTimeout uint16 /* Max time before discarding (seconds). */ Priority uint16 /* Priority level of flow entry. */ BufferId uint32 /* Buffered packet to apply to */ OutPort uint32 OutGroup uint32 Flags uint16 Match Match // Fields to match Instructions []Instruction // Instruction set - 0 or more. // contains filtered or unexported fields }
ofp_flow_mod 1.3
func NewFlowMod ¶
func NewFlowMod() *FlowMod
func (*FlowMod) AddInstruction ¶
func (f *FlowMod) AddInstruction(instr Instruction)
func (*FlowMod) MarshalBinary ¶
func (*FlowMod) UnmarshalBinary ¶
type FlowRemoved ¶
type FlowRemoved struct { common.Header Cookie uint64 Priority uint16 Reason uint8 TableId uint8 DurationSec uint32 DurationNSec uint32 IdleTimeout uint16 HardTimeout uint16 PacketCount uint64 ByteCount uint64 Match Match }
BEGIN: ofp13 - 7.4.2
func NewFlowRemoved ¶
func NewFlowRemoved() *FlowRemoved
func (*FlowRemoved) Len ¶
func (f *FlowRemoved) Len() (n uint16)
func (*FlowRemoved) MarshalBinary ¶
func (f *FlowRemoved) MarshalBinary() (data []byte, err error)
func (*FlowRemoved) UnmarshalBinary ¶
func (f *FlowRemoved) UnmarshalBinary(data []byte) error
type FlowStats ¶
type FlowStats struct { Length uint16 TableId uint8 DurationSec uint32 DurationNSec uint32 Priority uint16 IdleTimeout uint16 HardTimeout uint16 Flags uint16 Cookie uint64 PacketCount uint64 ByteCount uint64 Match Match Instructions []Instruction // contains filtered or unexported fields }
ofp_flow_stats 1.3
func NewFlowStats ¶
func NewFlowStats() *FlowStats
func (*FlowStats) MarshalBinary ¶
func (*FlowStats) UnmarshalBinary ¶
type FlowStatsRequest ¶
type FlowStatsRequest struct { TableId uint8 OutPort uint32 OutGroup uint32 Cookie uint64 CookieMask uint64 Match Match // contains filtered or unexported fields }
ofp_flow_stats_request 1.3
func NewFlowStatsRequest ¶
func NewFlowStatsRequest() *FlowStatsRequest
func (*FlowStatsRequest) Len ¶
func (s *FlowStatsRequest) Len() (n uint16)
func (*FlowStatsRequest) MarshalBinary ¶
func (s *FlowStatsRequest) MarshalBinary() (data []byte, err error)
func (*FlowStatsRequest) UnmarshalBinary ¶
func (s *FlowStatsRequest) UnmarshalBinary(data []byte) error
type GroupMod ¶
type GroupMod struct { common.Header Command uint16 /* One of OFPGC_*. */ Type uint8 /* One of OFPGT_*. */ GroupId uint32 /* Group identifier. */ Buckets []Bucket /* List of buckets */ // contains filtered or unexported fields }
GroupMod message
func (*GroupMod) MarshalBinary ¶
func (*GroupMod) UnmarshalBinary ¶
type InPortField ¶
type InPortField struct {
InPort uint32
}
IN_PORT field
func (*InPortField) Len ¶
func (m *InPortField) Len() uint16
func (*InPortField) MarshalBinary ¶
func (m *InPortField) MarshalBinary() (data []byte, err error)
func (*InPortField) UnmarshalBinary ¶
func (m *InPortField) UnmarshalBinary(data []byte) error
type InstrActions ¶
type InstrActions struct { InstrHeader Actions []Action /* 0 or more actions associated with OFPIT_WRITE_ACTIONS and OFPIT_APPLY_ACTIONS */ // contains filtered or unexported fields }
*_ACTION instructions
func NewInstrApplyActions ¶
func NewInstrApplyActions() *InstrActions
func NewInstrWriteActions ¶
func NewInstrWriteActions() *InstrActions
func (*InstrActions) AddAction ¶
func (instr *InstrActions) AddAction(act Action, prepend bool) error
func (*InstrActions) Len ¶
func (instr *InstrActions) Len() (n uint16)
func (*InstrActions) MarshalBinary ¶
func (instr *InstrActions) MarshalBinary() (data []byte, err error)
func (*InstrActions) UnmarshalBinary ¶
func (instr *InstrActions) UnmarshalBinary(data []byte) error
type InstrGotoTable ¶
type InstrGotoTable struct { InstrHeader TableId uint8 // contains filtered or unexported fields }
func NewInstrGotoTable ¶
func NewInstrGotoTable(tableId uint8) *InstrGotoTable
func (*InstrGotoTable) AddAction ¶
func (instr *InstrGotoTable) AddAction(act Action, prepend bool) error
func (*InstrGotoTable) Len ¶
func (instr *InstrGotoTable) Len() (n uint16)
func (*InstrGotoTable) MarshalBinary ¶
func (instr *InstrGotoTable) MarshalBinary() (data []byte, err error)
func (*InstrGotoTable) UnmarshalBinary ¶
func (instr *InstrGotoTable) UnmarshalBinary(data []byte) error
type InstrHeader ¶
Generic instruction header
func (*InstrHeader) Len ¶
func (a *InstrHeader) Len() (n uint16)
func (*InstrHeader) MarshalBinary ¶
func (a *InstrHeader) MarshalBinary() (data []byte, err error)
func (*InstrHeader) UnmarshalBinary ¶
func (a *InstrHeader) UnmarshalBinary(data []byte) error
type InstrMeter ¶
type InstrMeter struct { InstrHeader MeterId uint32 }
type InstrWriteMetadata ¶
type InstrWriteMetadata struct { InstrHeader Metadata uint64 /* Metadata value to write */ MetadataMask uint64 /* Metadata write bitmask */ // contains filtered or unexported fields }
func NewInstrWriteMetadata ¶
func NewInstrWriteMetadata(metadata, metadataMask uint64) *InstrWriteMetadata
func (*InstrWriteMetadata) AddAction ¶
func (instr *InstrWriteMetadata) AddAction(act Action, prepend bool) error
func (*InstrWriteMetadata) Len ¶
func (instr *InstrWriteMetadata) Len() (n uint16)
FIXME: we need marshall/unmarshall/len/new functions for write metadata instr
func (*InstrWriteMetadata) MarshalBinary ¶
func (instr *InstrWriteMetadata) MarshalBinary() (data []byte, err error)
func (*InstrWriteMetadata) UnmarshalBinary ¶
func (instr *InstrWriteMetadata) UnmarshalBinary(data []byte) error
type Instruction ¶
func DecodeInstr ¶
func DecodeInstr(data []byte) Instruction
type Ipv4DstField ¶
IPV4_DST field
func (*Ipv4DstField) Len ¶
func (m *Ipv4DstField) Len() uint16
func (*Ipv4DstField) MarshalBinary ¶
func (m *Ipv4DstField) MarshalBinary() (data []byte, err error)
func (*Ipv4DstField) UnmarshalBinary ¶
func (m *Ipv4DstField) UnmarshalBinary(data []byte) error
type Ipv4SrcField ¶
IPV4_SRC field
func (*Ipv4SrcField) Len ¶
func (m *Ipv4SrcField) Len() uint16
func (*Ipv4SrcField) MarshalBinary ¶
func (m *Ipv4SrcField) MarshalBinary() (data []byte, err error)
func (*Ipv4SrcField) UnmarshalBinary ¶
func (m *Ipv4SrcField) UnmarshalBinary(data []byte) error
type Match ¶
type Match struct { Type uint16 Length uint16 Fields []MatchField }
ofp_match 1.3
func (*Match) AddField ¶
func (m *Match) AddField(f MatchField)
func (*Match) MarshalBinary ¶
func (*Match) UnmarshalBinary ¶
type MatchField ¶
type MatchField struct { Class uint16 Field uint8 HasMask bool Length uint8 Value util.Message Mask util.Message }
One match field TLV
func NewEthDstField ¶
func NewEthDstField(ethDst net.HardwareAddr, ethDstMask *net.HardwareAddr) *MatchField
Return a MatchField for ethernet dest addr
func NewEthSrcField ¶
func NewEthSrcField(ethSrc net.HardwareAddr, ethSrcMask *net.HardwareAddr) *MatchField
Return a MatchField for ethernet src addr
func NewEthTypeField ¶
func NewEthTypeField(ethType uint16) *MatchField
Return a MatchField for ethertype matching
func NewInPortField ¶
func NewInPortField(inPort uint32) *MatchField
Return a MatchField for Input port matching
func NewIpv4DstField ¶
func NewIpv4DstField(ipDst net.IP, ipDstMask *net.IP) *MatchField
Return a MatchField for ipv4 dest addr
func NewIpv4SrcField ¶
func NewIpv4SrcField(ipSrc net.IP, ipSrcMask *net.IP) *MatchField
Return a MatchField for ipv4 src addr
func NewMetadataField ¶
func NewMetadataField(metadata uint64, metadataMask *uint64) *MatchField
Return a MatchField for tunel id matching
func NewTunnelIdField ¶
func NewTunnelIdField(tunnelId uint64) *MatchField
Return a MatchField for tunel id matching
func NewVlanIdField ¶
func NewVlanIdField(vlanId uint16) *MatchField
Return a MatchField for vlan id matching
func (*MatchField) Len ¶
func (m *MatchField) Len() (n uint16)
func (*MatchField) MarshalBinary ¶
func (m *MatchField) MarshalBinary() (data []byte, err error)
func (*MatchField) UnmarshalBinary ¶
func (m *MatchField) UnmarshalBinary(data []byte) error
type MetadataField ¶
type MetadataField struct {
Metadata uint64
}
METADATA field
func (*MetadataField) Len ¶
func (m *MetadataField) Len() uint16
func (*MetadataField) MarshalBinary ¶
func (m *MetadataField) MarshalBinary() (data []byte, err error)
func (*MetadataField) UnmarshalBinary ¶
func (m *MetadataField) UnmarshalBinary(data []byte) error
type MultipartReply ¶
type MultipartReply struct { common.Header Type uint16 Flags uint16 Body []util.Message // contains filtered or unexported fields }
ofp_multipart_reply 1.3
func (*MultipartReply) Len ¶
func (s *MultipartReply) Len() (n uint16)
func (*MultipartReply) MarshalBinary ¶
func (s *MultipartReply) MarshalBinary() (data []byte, err error)
func (*MultipartReply) UnmarshalBinary ¶
func (s *MultipartReply) UnmarshalBinary(data []byte) error
type MultipartRequest ¶
type MultipartRequest struct { common.Header Type uint16 Flags uint16 Body util.Message // contains filtered or unexported fields }
ofp_multipart_request 1.3
func (*MultipartRequest) Len ¶
func (s *MultipartRequest) Len() (n uint16)
func (*MultipartRequest) MarshalBinary ¶
func (s *MultipartRequest) MarshalBinary() (data []byte, err error)
func (*MultipartRequest) UnmarshalBinary ¶
func (s *MultipartRequest) UnmarshalBinary(data []byte) error
type PacketIn ¶
type PacketIn struct { common.Header BufferId uint32 TotalLen uint16 Reason uint8 TableId uint8 Cookie uint64 Match Match Data protocol.Ethernet // contains filtered or unexported fields }
ofp_packet_in 1.3
func NewPacketIn ¶
func NewPacketIn() *PacketIn
func (*PacketIn) MarshalBinary ¶
func (*PacketIn) UnmarshalBinary ¶
type PacketOut ¶
type PacketOut struct { common.Header BufferId uint32 InPort uint32 ActionsLen uint16 Actions []Action Data util.Message // contains filtered or unexported fields }
When the controller wishes to send a packet out through the datapath, it uses the OFPT_PACKET_OUT message: The buffer_id is the same given in the ofp_packet_in message. If the buffer_id is -1, then the packet data is included in the data array. If OFPP_TABLE is specified as the output port of an action, the in_port in the packet_out message is used in the flow table lookup.
func NewPacketOut ¶
func NewPacketOut() *PacketOut
func (*PacketOut) MarshalBinary ¶
func (*PacketOut) UnmarshalBinary ¶
type PhyPort ¶
type PhyPort struct { PortNo uint32 HWAddr net.HardwareAddr Name []byte // Size 16 Config uint32 State uint32 Curr uint32 Advertised uint32 Supported uint32 Peer uint32 CurrSpeed uint32 MaxSpeed uint32 // contains filtered or unexported fields }
ofp_port 1.3
func NewPhyPort ¶
func NewPhyPort() *PhyPort
func (*PhyPort) MarshalBinary ¶
func (*PhyPort) UnmarshalBinary ¶
type PortMod ¶
type PortMod struct { common.Header PortNo uint32 HWAddr []uint8 Config uint32 Mask uint32 Advertise uint32 // contains filtered or unexported fields }
ofp_port_mod 1.3
func NewPortMod ¶
func (*PortMod) MarshalBinary ¶
func (*PortMod) UnmarshalBinary ¶
type PortStats ¶
type PortStats struct { PortNo uint16 RxPackets uint64 TxPackets uint64 RxBytes uint64 TxBytes uint64 RxDropped uint64 TxDropped uint64 RxErrors uint64 TxErrors uint64 RxFrameErr uint64 RxOverErr uint64 RxCRCErr uint64 Collisions uint64 // contains filtered or unexported fields }
ofp_port_stats 1.0
func NewPortStats ¶
func NewPortStats() *PortStats
func (*PortStats) MarshalBinary ¶
func (*PortStats) UnmarshalBinary ¶
type PortStatsRequest ¶
type PortStatsRequest struct { PortNo uint16 // contains filtered or unexported fields }
ofp_port_stats_request 1.0
func NewPortStatsRequest ¶
func NewPortStatsRequest() *PortStatsRequest
func (*PortStatsRequest) Len ¶
func (s *PortStatsRequest) Len() (n uint16)
func (*PortStatsRequest) MarshalBinary ¶
func (s *PortStatsRequest) MarshalBinary() (data []byte, err error)
func (*PortStatsRequest) UnmarshalBinary ¶
func (s *PortStatsRequest) UnmarshalBinary(data []byte) error
type PortStatus ¶
type PortStatus struct { common.Header Reason uint8 Desc PhyPort // contains filtered or unexported fields }
ofp_port_status
func NewPortStatus ¶
func NewPortStatus() *PortStatus
func (*PortStatus) Len ¶
func (p *PortStatus) Len() (n uint16)
func (*PortStatus) MarshalBinary ¶
func (s *PortStatus) MarshalBinary() (data []byte, err error)
func (*PortStatus) UnmarshalBinary ¶
func (s *PortStatus) UnmarshalBinary(data []byte) error
type QueueStats ¶
type QueueStats struct { PortNo uint16 QueueId uint32 TxBytes uint64 TxPackets uint64 TxErrors uint64 // contains filtered or unexported fields }
ofp_queue_stats 1.0
func (*QueueStats) Len ¶
func (s *QueueStats) Len() (n uint16)
func (*QueueStats) MarshalBinary ¶
func (s *QueueStats) MarshalBinary() (data []byte, err error)
func (*QueueStats) UnmarshalBinary ¶
func (s *QueueStats) UnmarshalBinary(data []byte) error
type QueueStatsRequest ¶
type QueueStatsRequest struct { PortNo uint16 QueueId uint32 // contains filtered or unexported fields }
ofp_queue_stats_request 1.0
func NewQueueStatsRequest ¶
func NewQueueStatsRequest() *QueueStatsRequest
func (*QueueStatsRequest) Len ¶
func (s *QueueStatsRequest) Len() (n uint16)
func (*QueueStatsRequest) MarshalBinary ¶
func (s *QueueStatsRequest) MarshalBinary() (data []byte, err error)
func (*QueueStatsRequest) UnmarshalBinary ¶
func (s *QueueStatsRequest) UnmarshalBinary(data []byte) error
type SwitchConfig ¶
ofp_switch_config 1.3
func NewSetConfig ¶
func NewSetConfig() *SwitchConfig
func (*SwitchConfig) Len ¶
func (c *SwitchConfig) Len() (n uint16)
func (*SwitchConfig) MarshalBinary ¶
func (c *SwitchConfig) MarshalBinary() (data []byte, err error)
func (*SwitchConfig) UnmarshalBinary ¶
func (c *SwitchConfig) UnmarshalBinary(data []byte) error
type SwitchFeatures ¶
type SwitchFeatures struct { common.Header DPID net.HardwareAddr // Size 8 Buffers uint32 NumTables uint8 AuxilaryId uint8 Capabilities uint32 Actions uint32 Ports []PhyPort // contains filtered or unexported fields }
func (*SwitchFeatures) Len ¶
func (s *SwitchFeatures) Len() (n uint16)
func (*SwitchFeatures) MarshalBinary ¶
func (s *SwitchFeatures) MarshalBinary() (data []byte, err error)
func (*SwitchFeatures) UnmarshalBinary ¶
func (s *SwitchFeatures) UnmarshalBinary(data []byte) error
type TableStats ¶
type TableStats struct { TableId uint8 Name []byte // Size MAX_TABLE_NAME_LEN Wildcards uint32 MaxEntries uint32 ActiveCount uint32 LookupCount uint64 MatchedCount uint64 // contains filtered or unexported fields }
FIXME: Everything below this needs to be changed for ofp1.3 ofp_table_stats 1.0
func NewTableStats ¶
func NewTableStats() *TableStats
func (*TableStats) Len ¶
func (s *TableStats) Len() (n uint16)
func (*TableStats) MarshalBinary ¶
func (s *TableStats) MarshalBinary() (data []byte, err error)
func (*TableStats) UnmarshalBinary ¶
func (s *TableStats) UnmarshalBinary(data []byte) error
type TunnelIdField ¶
type TunnelIdField struct {
TunnelId uint64
}
TUNNEL_ID field
func (*TunnelIdField) Len ¶
func (m *TunnelIdField) Len() uint16
func (*TunnelIdField) MarshalBinary ¶
func (m *TunnelIdField) MarshalBinary() (data []byte, err error)
func (*TunnelIdField) UnmarshalBinary ¶
func (m *TunnelIdField) UnmarshalBinary(data []byte) error
type VendorHeader ¶
ofp_vendor 1.3
func (*VendorHeader) Len ¶
func (v *VendorHeader) Len() (n uint16)
func (*VendorHeader) MarshalBinary ¶
func (v *VendorHeader) MarshalBinary() (data []byte, err error)
func (*VendorHeader) UnmarshalBinary ¶
func (v *VendorHeader) UnmarshalBinary(data []byte) error
type VlanIdField ¶
type VlanIdField struct {
VlanId uint16
}
VLAN_ID field
func (*VlanIdField) Len ¶
func (m *VlanIdField) Len() uint16
func (*VlanIdField) MarshalBinary ¶
func (m *VlanIdField) MarshalBinary() (data []byte, err error)
func (*VlanIdField) UnmarshalBinary ¶
func (m *VlanIdField) UnmarshalBinary(data []byte) error