--- openflow-2012-02-29-2.h	2015-07-23 09:54:16.908479352 -0700
+++ openflow-2012-03-07.h	2015-07-23 09:54:16.912479352 -0700
@@ -447,11 +447,12 @@
     OFPXMT_OFB_IPV6_ND_TLL    = 33, /* Target link-layer for ND. */
     OFPXMT_OFB_MPLS_LABEL     = 34, /* MPLS label. */
     OFPXMT_OFB_MPLS_TC        = 35, /* MPLS TC. */
-    OFPXMT_OFB_PBB_ISID       = 36, /* PBB I-SID. */
-    OFPXMT_OFB_TUNNEL_ID      = 37, /* Logical Port Metadata. */
+    OFPXMT_OFP_MPLS_BOS       = 36, /* MPLS BoS bit. */
+    OFPXMT_OFB_PBB_ISID       = 37, /* PBB I-SID. */
+    OFPXMT_OFB_TUNNEL_ID      = 38, /* Logical Port Metadata. */
 };
 
-#define OFPXMT_OFB_ALL    ((UINT64_C(1) << 38) - 1)
+#define OFPXMT_OFB_ALL    ((UINT64_C(1) << 39) - 1)
 
 /* OpenFlow port on which the packet was received.
  * May be a physical port, a logical port, or the reserved port OFPP_LOCAL
@@ -804,6 +805,17 @@
  * Masking: Not maskable. */
 #define OXM_OF_MPLS_TC     OXM_HEADER  (0x8000, OFPXMT_OFB_MPLS_TC, 1)
 
+/* The BoS bit in the first MPLS shim header.
+ *
+ * Prereqs:
+ *   OXM_OF_ETH_TYPE must match 0x8847 or 0x8848 exactly.
+ *
+ * Format: 8-bit integer with 7 most-significant bits forced to 0.
+ * Only the lowest bit have a meaning.
+ *
+ * Masking: Not maskable. */
+#define OXM_OF_MPLS_BOS     OXM_HEADER  (0x8000, OFPXMT_OFB_MPLS_BOS, 1)
+
 /* IEEE 802.1ah I-SID.
  *
  * For a packet with a PBB header, this is the I-SID from the
