--- openflow-2011-10-25.h	2015-07-23 09:54:16.764479346 -0700
+++ openflow-2011-10-12-7.h	2015-07-23 09:54:16.772479347 -0700
@@ -1051,7 +1051,8 @@
     uint16_t idle_timeout;        /* Idle time before discarding (seconds). */
     uint16_t hard_timeout;        /* Max time before discarding (seconds). */
     uint16_t priority;            /* Priority level of flow entry. */
-    uint32_t buffer_id;           /* Buffered packet to apply to (or -1).
+    uint32_t buffer_id;           /* Buffered packet to apply to, or
+                                     OFP_NO_BUFFER.
                                      Not meaningful for OFPFC_DELETE*. */
     uint32_t out_port;            /* For OFPFC_DELETE* commands, require
                                      matching entries to include this as an
@@ -1130,10 +1131,14 @@
     OFPGT_FF        /* Fast failover group. */
 };
 
+/* Special buffer-id to indicate 'no buffer' */
+#define OFP_NO_BUFFER 0xffffffff
+
 /* Send packet (controller -> datapath). */
 struct ofp_packet_out {
     struct ofp_header header;
-    uint32_t buffer_id;           /* ID assigned by datapath (-1 if none). */
+    uint32_t buffer_id;           /* ID assigned by datapath (OFP_NO_BUFFER
+                                     if none). */
     uint32_t in_port;             /* Packet's input port or OFPP_CONTROLLER. */
     uint16_t actions_len;         /* Size of action array in bytes. */
     uint8_t pad[6];
