--- openflow-2011-09-30-2.h	2015-07-23 09:54:16.652479342 -0700
+++ openflow-2011-09-30-3.h	2015-07-23 09:54:16.656479342 -0700
@@ -734,10 +734,8 @@
  * special conditions.
  */
 enum ofp_vlan_id {
-    OFPVID_ANY  = 0xfffe, /* Indicate that a VLAN id is set but don't care
-                             about it's value. Note: only valid when specifying
-                             the VLAN id in a match */
-    OFPVID_NONE = 0xffff, /* No VLAN id was set. */
+    OFPVID_PRESENT = 0x1000, /* Bit that indicate that a VLAN id is set */
+    OFPVID_NONE    = 0x0000, /* No VLAN id was set. */
 };
 /* Define for compatibility */
 #define OFP_VLAN_NONE      OFPVID_NONE
@@ -745,13 +743,14 @@
 /* 802.1Q VID.
  *
  * For a packet with an 802.1Q header, this is the VLAN-ID (VID) from the
- * outermost tag.  For a packet with no 802.1Q header, this has value
- * OFPVID_NONE.
+ * outermost tag, with the CFI bit forced to 1. For a packet with no 802.1Q
+ * header, this has value OFPVID_NONE.
  *
  * Prereqs: None.
  *
- * Format: 16-bit integer in network byte order with 4 most-significant
- * bits forced to 0. Only the lower 12 bits have meaning.
+ * Format: 16-bit integer in network byte order with bit 13 indicating
+ * presence of VLAN header and 3 most-significant bits forced to 0.
+ * Only the lower 13 bits have meaning.
  *
  * Masking: Arbitrary masks.
  *
@@ -760,14 +759,20 @@
  *   - If it is not constrained at all, the nx_match matches packets without
  *     an 802.1Q header or with an 802.1Q header that has any VID value.
  *
- *   - Testing for an exact match with OFPVID_NONE matches only packets
- *     without an 802.1Q header.
+ *   - Testing for an exact match with 0x0 matches only packets without
+ *     an 802.1Q header.
  *
- *   - Testing for an exact match with OFPVID_ANY matches only packets
- *     with an 802.1Q header that has any VID value.
- *
- *   - Testing for an exact match with a VID value matches packets
+ *   - Testing for an exact match with a VID value with CFI=1 matches packets
  *     that have an 802.1Q header with a specified VID.
+ *
+ *   - Testing for an exact match with a nonzero VID value with CFI=0 does
+ *     not make sense.  The switch may reject this combination.
+ *
+ *   - Testing with nxm_value=0, nxm_mask=0x0fff matches packets with no 802.1Q
+ *     header or with an 802.1Q header with a VID of 0.
+ *
+ *   - Testing with nxm_value=0x1000, nxm_mask=0x1000 matches packets with
+ *     an 802.1Q header that has any VID value.
  */
 #define OXM_OF_VLAN_VID   OXM_HEADER  (0x0000, OFPXMT_OF_VLAN_VID, 2)
 #define OXM_OF_VLAN_VID_W OXM_HEADER_W(0x0000, OFPXMT_OF_VLAN_VID, 2)
