New functions ds_put_uninit(), ds_put_char_multiple().
[sliver-openvswitch.git] / include / openflow.h
index a1ca791..3215b19 100644 (file)
 /* 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
 
-#define OFP_TCP_PORT  975
-#define OFP_SSL_PORT  976
+#define OFP_TCP_PORT  6633
+#define OFP_SSL_PORT  6633
 
 #define OFP_ETH_ALEN 6          /* Bytes in an Ethernet address. */
 
 /* 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
@@ -572,8 +572,9 @@ enum ofp_bad_request_code {
     OFPBRC_BAD_VERSION,         /* ofp_header.version not supported. */
     OFPBRC_BAD_TYPE,            /* ofp_header.type not supported. */
     OFPBRC_BAD_STAT,            /* ofp_stats_request.type not supported. */
-    OFPBRC_BAD_VENDOR           /* Vendor not supported (in ofp_vendor or
+    OFPBRC_BAD_VENDOR,          /* Vendor not supported (in ofp_vendor or
                                  * ofp_stats_request or ofp_stats_reply). */
+    OFPBRC_BAD_SUBTYPE          /* Vendor subtype not supported. */
 };
 
 /* ofp_error_msg 'code' values for OFPET_BAD_ACTION.  'data' contains at least 
@@ -583,7 +584,14 @@ enum ofp_bad_action_code {
     OFPBAC_BAD_LEN,            /* Length problem in actions. */
     OFPBAC_BAD_VENDOR,         /* Unknown vendor id specified. */
     OFPBAC_BAD_VENDOR_TYPE,    /* Unknown action type for vendor id. */
-    OFPBAC_BAD_OUT_PORT        /* Problem validating output action. */
+    OFPBAC_BAD_OUT_PORT,       /* Problem validating output action. */
+    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). */
@@ -746,7 +754,7 @@ struct ofp_port_stats {
 OFP_ASSERT(sizeof(struct ofp_port_stats) == 104);
 
 /* Vendor extension. */
-struct ofp_vendor {
+struct ofp_vendor_header {
     struct ofp_header header;   /* Type OFPT_VENDOR. */
     uint32_t vendor;            /* Vendor ID:
                                  * - MSB 0: low-order bytes are IEEE OUI.
@@ -754,6 +762,6 @@ struct ofp_vendor {
                                  *   consortium. */
     /* Vendor-defined arbitrary additional data. */
 };
-OFP_ASSERT(sizeof(struct ofp_vendor) == 12);
+OFP_ASSERT(sizeof(struct ofp_vendor_header) == 12);
 
 #endif /* openflow.h */