PicOS Support for OpenFlow 1.3.0
This document contains OpenFlow 1.3.0 features supported by the Pica8 PicOS software. For clarity, the feature names in this table are identical to the feature names found in OpenFlow Switch Specification Version 1.3.0.
OpenFlow Messages
Each OpenFlow message begins with the OpenFlow header. The OpenFlow header has several fields, including the type field. The type field identifies the type of OpenFlow message.
The OpenFlow protocol has three message types: symmetric, controller-to-switch, asynchronous. Each message type has multiple sub-types.
Symmetric Messages
Symmetric messages are unsolicited messages that may be initiated by either the switch or the controller. Symmetric messages are sent without explicit solicitation, in either direction. The following table describes PicOS support for symmetric messages:
Table 1 PicOS Support for OpenFlow Symmetric Messages
Message | Support | Comments |
---|---|---|
OFPT_HELLO | Supported | |
OFPT_ERROR | Supported | |
OFPT_ECHO_REQUEST | Supported | |
OFPT_ECHO_REPLY | Supported | |
OFPT_EXPERIMENTER | Not Supported |
Controller-to-Switch Messages
Controller-to-switch messages are sent from the controller to the switch. These messages are used to directly manage the state of a switch. Controller-to-switch messages may or may not require a response from the switch.
The following table describes PicOS support for controller-to-switch messages:
Table 2 PicOS Support for OpenFlow Controller-to-Switch Messages
Message | Support | Comments |
---|---|---|
OFPT_FEATURES_REQUEST | Supported | |
OFPT_FEATURES_REPLY | ||
OFPT_GET_CONFIG_REQUEST | Supported | |
OFPT_GET_CONFIG_REPLY | ||
OFPT_SET_CONFIG | Supported | |
OFPT_PACKET_OUT | Supported | |
OFPT_FLOW_MOD | Supported | |
OFPT_GROUP_MOD | Supported | |
OFPT_PORT_MOD | Supported | |
OFPT_TABLE_MOD | Supported | |
OFPT_MULTIPART_REQUEST | Supported | |
OFPT_MULTIPART_REPLY | Supported | |
OFPT_BARRIER_REQUEST | Supported | |
OFPT_BARRIER_REPLY | ||
OFPT_QUEUE_GET_CONFIG_REQUEST | Supported | |
OFPT_QUEUE_GET_CONFIG_REPLY | Supported | |
OFPT_ROLE_REQUEST | Supported | |
OFPT_ROLE_REPLY | ||
OFPT_GET_ASYNC_REQUEST | Supported | |
OFPT_GET_ASYNC_REPLY | Supported | |
OFPT_SET_ASYNC | Supported | |
OFPT_METER_MOD | Supported |
Asynchronous Messages
Asynchronous messages are sent from the switch to the controller. These messages are used to communicate network events and switch state changes to the controller. Asynchronous messages are sent without a controller explicitly requesting them from a switch.
The following table describes PicOS support for asynchronous messages:
Table 3 PicOS Support for OpenFlow Asynchronous Messages
Message | Support | Comments |
---|---|---|
OFPT_PACKET_IN | Supported | |
OFPT_FLOW_REMOVED | Supported | |
OFPT_PORT_STATUS | Supported |
Multipart Messages
The following table describes PicOS support for multipart messages: a single OpenFlow message cannot be larger than 64 kilobytes. Multipart messages are used to encode requests or replies that would carry a large amount of data, and would not always fit in a single OpenFlow message. The sender encodes the request or reply as a sequence of multipart messages, with a specific multipart type. The receiver re-assembles the request or reply.
Table 4 PicOS Support for OpenFlow Multipart Messages
Message | Support | Comments |
---|---|---|
OFPMP_DESC | Supported | |
OFPMP_FLOW | Supported | |
OFPMP_AGGREGATE | ||
OFPMP_TABLE | Supported | |
OFPMP_PORT_STATS | Supported | |
OFPMP_QUEUE | Supported | |
OFPMP_GROUP | Supported | |
OFPMP_GROUP_DESC | Supported | |
OFPMP_GROUP_FEATURES | Not Supported | |
OFPMP_METER | Supported | |
OFPMP_METER_CONFIG | Supported | |
OFPMP_METER_FEATURES | Supported | |
OFPMP_TABLE_FEATURES | Supported | |
OFPMT_PORT_DESC | Supported | |
OFPMP_EXPERIMENTER | Not Supported |
Capabilities Supported by Datapath
The controller sends an OFPT_FEATURES_REQUEST message to the switch, once a session is established. The switch responds to the OFPT_FEATURES_REQUEST message with an OFPT_FEATURES_REPLY message. The OFPT_FEATURES_REPLY message has several fields, including the capabilities field. The capabilities field identifies the capabilities supported by the switch datapath.
The capabilties field is a combination of the following bits/flags:
Table 5 PicOS Support for OpenFlow Capabilities Supported by Datapath
Specification | Support | Comments |
---|---|---|
OFPC_FLOW_STATS | Supported | |
OFPC_TABLE_STATS | Supported | |
OFPC_PORT_STATS | Supported | |
OFPC_GROUP_STATS | Supported | |
OFPC_IP_REASM | ||
OFPC_QUEUE_STATS | ||
OFPC_PORT_BLOCKED |
OpenFlow Ports
OpenFlow ports are abstract network interfaces used for passing traffic between the OpenFlow switch and the rest of the network. An OpenFlow switch makes a number of OpenFlow ports available. The set of OpenFlow ports does not have to be identical to the set of physical network interfaces on the switch hardware.
Port Descriptions
The OpenFlow switch receives and sends packets on OpenFlow ports. The switch may define physical and logical ports, and the OpenFlow specification also defines some reserved ports.
Table 6 PicOS Support for OpenFlow Ports
Specification | Support | Comments |
---|---|---|
OFPP_MAX | ||
OFPP_IN_PORT | Supported | |
OFPP_TABLE | Supported | |
OFPP_NORMAL | Supported | |
OFPP_FLOOD | Supported | |
OFPP_ALL | Supported | |
OFPP_CONTROLLER | Supported | |
OFPP_LOCAL | Supported | |
OFPP_ANY | Supported |
Port Administrative Settings
The following table describes PicOS support for administrative settings of OpenFlow ports:
Table 7 PicOS Support for OpenFlow Port Administrative Settings
Specification | Support | Comments |
---|---|---|
OFPPC_PORT_DOWN | Supported | |
OFPPC_NO_STP | Supported | |
OFPPC_NO_RECV | Supported | |
OFPPC_NO_RECV_STP | Supported | |
OFPPC_NO_FLOOD | ||
OFPPC_NO_FWD | ||
OFPPC_NO_PACKET_IN |
Port States
The following table describes PicOS support for OpenFlow port states:
Table 8 PicOS Support for OpenFlow Port States
Specification | Support | Comments |
---|---|---|
OFPPS_LINK_DOWN | Supported | |
OFPPS_BLOCKED | ||
OFPPS_LIVE |
Port Features
The following table describes PicOS support for OpenFlow port features available in the datapath:
Table 9 PicOS Support for OpenFlow Port Features
Specification | Support | Comments |
---|---|---|
OFPPF_10MB_HD | Supported | |
OFPPF_10MB_FD | Supported | |
OFPPF_100MB_HD | Supported | |
OFPPF_100MB_FD | Supported | |
OFPPF_1GB_HD | Supported | |
OFPPF_1GB_FD | Supported | |
OFPPF_10GB_FD | Supported | |
OFPPF_40GB_FD | Supported | |
OFPPF_100GB_FD | Supported | |
OFPPF_1TB_FD | ||
OFPPF_OTHER | ||
OFPPF_COPPER | Supported | |
OFPPF_FIBER | Supported | |
OFPPF_AUTONEG | Supported | |
OFPPF_PAUSE | Supported | |
OFPPF_PAUSE_ASYM |
OpenFlow Instructions
Each flow entry contains a set of instructions that are executed when a packets matches the entry. The following table details OpenFlow instructions supported by PicOS:
Table 10 PicOS Support for OpenFlow Instructions
Specification | Support | Comments |
---|---|---|
OFPIT_GOTO_TABLE | Supported | |
OFPIT_WRITE_METADATA | Supported | |
OFPIT_WRITE_ACTIONS | Supported | |
OFPIT_APPLY_ACTIONS | Supported | |
OFPIT_CLEAR_ACTIONS | Supported | |
OFPIT_METER | Supported | |
OFPIT_EXPERIMENTER |
OpenFlow Action Types
The following table details OpenFlow action types supported by PicOS:
Table 11 PicOS Support for OpenFlow Action Types
Specification | Support | Comments |
---|---|---|
OFPAT_OUTPUT | Supported | |
OFPAT_COPY_TTL_OUT | Supported | |
OFPAT_COPY_TTL_IN | Supported | |
OFPAT_SET_MPLS_TTL | Supported | |
OFPAT_DEC_MPLS_TTL | Not Supported | |
OFPAT_PUSH_VLAN | Supported | |
OFPAT_POP_VLAN | Supported | |
OFPAT_PUSH_MPLS | Supported | |
OFPAT_POP_MPLS | Supported | |
OFPAT_SET_QUEUE | Supported | |
OFPAT_GROUP | Supported | |
OFPAT_SET_NW_TTL | Not Supported | |
OFPAT_DEC_NW_TTL | Not Supported | |
OFPAT_SET_FIELD | Supported | |
OFPAT_PUSH_PBB | Supported | |
OFPAT_POP_PBB | Supported | |
OFPAT_EXPERIMENTER | Not Supported |
OpenFlow Match Fields
A match field may include the packet header, the ingress port, and the metadata value. A match field may use wildcards to match any value, and in some cases bitmasks. A packet is matched against a match field.
The following table details the OXM flow match field types supported by PicOS:
Table 12 PicOS Support for OpenFlow Flow Match Fields
Specification | Support | Comments |
---|---|---|
OFPXMT_OFB_IN_PORT | Supported | |
OFPXMT_OFB_IN_PHY_PORT | Supported | |
OFPXMT_OFB_METADATA | ||
OFPXMT_OFB_ETH_DST | Supported | |
OFPXMT_OFB_ETH_SRC | Supported | |
OFPXMT_OFB_ETH_TYPE | Supported | |
OFPXMT_OFB_VLAN_VID | Supported | |
OFPXMT_OFB_VLAN_PCP | Supported | |
OFPXMT_OFB_IP_DSCP | Supported | |
OFPXMT_OFB_IP_ECN | ||
OFPXMT_OFB_IP_PROTO | Supported | |
OFPXMT_OFB_IPV4_SRC | Supported | |
OFPXMT_OFB_IPV4_DST | Supported | |
OFPXMT_OFB_TCP_SRC | Supported | |
OFPXMT_OFB_TCP_DST | Supported | |
OFPXMT_OFB_UDP_SRC | Supported | |
OFPXMT_OFB_UDP_DST | Supported | |
OFPXMT_OFB_SCTP_SRC | ||
OFPXMT_OFB_SCTP_DST | ||
OFPXMT_OFB_ICMPV4_TYPE | Supported | |
OFPXMT_OFB_ICMPV4_CODE | Supported | |
OFPXMT_OFB_ARP_OP | Supported | |
OFPXMT_OFB_ARP_SPA | Supported | |
OFPXMT_OFB_ARP_TPA | Supported | |
OFPXMT_OFB_ARP_SHA | ||
OFPXMT_OFB_ARP_THA | ||
OFPXMT_OFB_IPV6_SRC | Supported | |
OFPXMT_OFB_IPV6_DST | Supported | |
OFPXMT_OFB_IPV6_FLABEL | ||
OFPXMT_OFB_ICMPV6_TYPE | ||
OFPXMT_OFB_ICMPV6_CODE | ||
OFPXMT_OFB_IPV6_ND_TARGET | ||
OFPXMT_OFB_IPV6_ND_SLL | ||
OFPXMT_OFB_IPV6_ND_TLL | ||
OFPXMT_OFB_MPLS_LABEL | Supported | |
OFPXMT_OFB_MPLS_TC | Supported | |
OFPXMT_OFP_MPLS_BOS | ||
OFPXMT_OFB_PBB_ISID | Supported | |
OFPXMT_OFB_TUNNEL_ID | Supported | |
OFPXMT_OFB_IPV6_EXTHDR |
OpenFlow Group Types
The following table describes PicOS support for OpenFlow group types:
Table 13 PicOS Support for OpenFlow Group Types
Specification | Support | Comments |
---|---|---|
OFPGT_ALL | Supported | |
OFPGT_SELECT | Supported | |
OFPGT_INDIRECT | Supported | |
OFPGT_FF | Supported |
Copyright © 2024 Pica8 Inc. All Rights Reserved.