Rework STP implementation in controller.
[sliver-openvswitch.git] / include / openflow.h
index c45b926..202fd5a 100644 (file)
@@ -63,7 +63,7 @@
 /* The most significant bit being set in the version field indicates an
  * experimental OpenFlow version.  
  */
-#define OFP_VERSION   0x95
+#define OFP_VERSION   0x96
 
 #define OFP_MAX_TABLE_NAME_LEN 32
 #define OFP_MAX_PORT_NAME_LEN  16
@@ -76,7 +76,7 @@
 /* Port numbering.  Physical ports are numbered starting from 0. */
 enum ofp_port {
     /* Maximum number of physical switch ports. */
-    OFPP_MAX = 255,
+    OFPP_MAX = 0xff00,
 
     /* Fake output "ports". */
     OFPP_IN_PORT    = 0xfff8,  /* Send the packet out the input port.  This 
@@ -119,7 +119,6 @@ enum ofp_type {
     OFPT_PACKET_OUT,          /* Controller/switch message */
     OFPT_FLOW_MOD,            /* Controller/switch message */
     OFPT_PORT_MOD,            /* Controller/switch message */
-    OFPT_TABLE,               /* Controller/switch message */
 
     /* Statistics messages. */
     OFPT_STATS_REQUEST,       /* Controller/switch message */
@@ -343,7 +342,7 @@ enum ofp_action_type {
 struct ofp_action_output {
     uint16_t type;                  /* OFPAT_OUTPUT. */
     uint16_t len;                   /* Length is 8. */
-    uint16_t port;                  /* Ouptut port. */
+    uint16_t port;                  /* Output port. */
     uint16_t max_len;               /* Max length to send to controller. */
 };
 OFP_ASSERT(sizeof(struct ofp_action_output) == 8);
@@ -557,7 +556,8 @@ OFP_ASSERT(sizeof(struct ofp_flow_expired) == 72);
 enum ofp_error_type {
     OFPET_HELLO_FAILED,         /* Hello protocol failed. */
     OFPET_BAD_REQUEST,          /* Request was not understood. */
-    OFPET_BAD_ACTION            /* Error in action description. */
+    OFPET_BAD_ACTION,           /* Error in action description. */
+    OFPET_FLOW_MOD_FAILED       /* Problem modifying flow entry. */
 };
 
 /* ofp_error_msg 'code' values for OFPET_HELLO_FAILED.  'data' contains an
@@ -588,6 +588,12 @@ enum ofp_bad_action_code {
     OFPBAC_BAD_ARGUMENT        /* Bad action argument. */
 };
 
+/* ofp_error_msg 'code' values for OFPET_FLOW_MOD_FAILED.  'data' contains 
+ * at least the first 64 bytes of the failed request. */
+enum ofp_flow_mod_failed_code {
+    OFPFMFC_ALL_TABLES_FULL    /* Flow not added because of full tables. */
+};
+
 /* OFPT_ERROR: Error message (datapath -> controller). */
 struct ofp_error_msg {
     struct ofp_header header;