+ // Structures under this line are needed to support OpenFlow version 1.0
+ // wire protocol 0x01;
+
+ typedef error-type-v10 {
+ type enumeration {
+ enum HELLO_FAILED {
+ value 0;
+ description "Hello Protocol failed.";
+ }
+ enum BAD_REQUEST {
+ value 1;
+ description "Request was not understood.";
+ }
+ enum BAD_ACTION {
+ value 2;
+ description "Error in action description.";
+ }
+ enum FLOW_MOD_FAILED {
+ value 3;
+ description "Problem modifying flow entry.";
+ }
+ enum PORT_MOD_FAILED {
+ value 4;
+ description "Port mod request failed.";
+ }
+ enum QUEUE_OP_FAILED {
+ value 5;
+ description "Queue operation failed.";
+ }
+ }
+ }
+
+ typedef hello-failed-code-v10 {
+ type enumeration {
+ enum INCOMPATIBLE {
+ value 0;
+ description "Hello Protocol failed.";
+ }
+ enum EPERM {
+ value 1;
+ description "Request was not understood.";
+ }
+ }
+ }
+
+ typedef bad-request-code-v10 {
+ type enumeration {
+ enum BAD_VERSION {
+ value 0;
+ }
+ enum BAD_TYPE {
+ value 1;
+ }
+ enum BAD_STAT {
+ value 2;
+ }
+ enum BAD_VENDOR {
+ value 3;
+ }
+ enum BAD_SUBTYPE {
+ value 4;
+ }
+ enum EPERM {
+ value 5;
+ }
+ enum BAD_LEN {
+ value 6;
+ }
+ enum BUFFER_EMPTY {
+ value 7;
+ }
+ enum BUFFER_UNKNOWN {
+ value 8;
+ }
+ }
+ }
+
+ typedef bad-action-code-v10 {
+ type enumeration {
+ enum BAD_TYPE {
+ value 0;
+ }
+ enum BAD_LEN {
+ value 1;
+ }
+ enum VENDOR {
+ value 2;
+ }
+ enum BAD_VENDOR_TYPE {
+ value 3;
+ }
+ enum BAD_OUT_PORT {
+ value 4;
+ }
+ enum BAD_ARGUMENT {
+ value 5;
+ }
+ enum EPERM {
+ value 6;
+ }
+ enum TOO_MANY {
+ value 7;
+ }
+ enum BAD_QUEUE {
+ value 8;
+ }
+ }
+ }
+
+ typedef flow-mod-failed-code-v10 {
+ type enumeration {
+ enum ALL_TABLES_FULL {
+ value 0;
+ }
+ enum OVERLAP {
+ value 1;
+ }
+ enum EPERM {
+ value 2;
+ }
+ enum BAD_EMERG_TIMEOUT {
+ value 3;
+ }
+ enum BAD_COMMAND {
+ value 4;
+ }
+ enum UNSUPPORTED {
+ value 5;
+ }
+ }
+ }
+
+ typedef port-mod-failed-code-v10 {
+ type enumeration {
+ enum BAD_PORT {
+ value 0;
+ }
+ enum BAD_HW_ADDR {
+ value 1;
+ }
+ }
+ }
+
+ typedef queue-op-failed-code-v10 {
+ type enumeration {
+ enum BAD_PORT {
+ value 0;
+ }
+ enum BAD_QUEUE {
+ value 1;
+ }
+ enum EPERM {
+ value 2;
+ }
+ }
+ }
+
+ typedef port-number-values-v10 {
+ description "Port numbering. Physical ports are numbered starting from 1.";
+ type enumeration {
+ enum MAX {
+ value 65280; // 0xff00
+ }
+ enum IN_PORT {
+ description "Send the packet out the input port. This
+ virtual port must be explicitly used
+ in order to send back out of the input
+ port.";
+ value 65528; // 0xfff8
+ }
+ enum TABLE {
+ description "Perform actions in flow table.
+ NB: This can only be the destination
+ port for packet-out messages.";
+ value 65529; // 0xfff9
+ }
+ enum NORMAL {
+ description "Process with normal L2/L3 switching.";
+ value 65530; // 0xfffa
+ }
+ enum FLOOD {
+ description "All physical ports except input port and
+ those disabled by STP.";
+ value 65531; // 0xfffb
+ }
+ enum ALL {
+ description "All physical ports except input port.";
+ value 65532; // 0xfffc
+ }
+ enum CONTROLLER {
+ description "Send to controller.";
+ value 65533; // 0xfffd
+ }
+ enum LOCAL {
+ description "Local openflow \"port\".";
+ value 65534; // 0xfffe
+ }
+ enum NONE {
+ description "Not associated with a physical port.";
+ value 65535; // 0xffff
+ }
+ }
+ }
+