classifier: Add support for conjunctive matches.
[cascardo/ovs.git] / lib / meta-flow.h
index 9518ba0..1ee5c75 100644 (file)
@@ -299,6 +299,20 @@ enum OVS_PACKED_ENUM mf_field_id {
      */
     MFF_RECIRC_ID,
 
+    /* "conj_id".
+     *
+     * ID for "conjunction" actions.  Please refer to ovs-ofctl(8)
+     * documentation of "conjunction" for details.
+     *
+     * Type: be32.
+     * Maskable: no.
+     * Formatting: decimal.
+     * Prerequisites: none.
+     * Access: read-only.
+     * NXM: NXM_NX_CONJ_ID(37) since v2.4.
+     * OXM: none. */
+    MFF_CONJ_ID,
+
     /* "tun_id" (aka "tunnel_id").
      *
      * The "key" or "tunnel ID" or "VNI" in a packet received via a keyed
@@ -450,6 +464,19 @@ enum OVS_PACKED_ENUM mf_field_id {
      */
     MFF_IN_PORT_OXM,
 
+    /* "actset_output".
+     *
+     * Type: be32.
+     * Maskable: no.
+     * Formatting: OpenFlow 1.1+ port.
+     * Prerequisites: none.
+     * Access: read-only.
+     * NXM: none.
+     * OXM: ONFOXM_ET_ACTSET_OUTPUT(43) since OF1.3 and v2.4,
+     *      OXM_OF_ACTSET_OUTPUT(43) since OF1.5 and v2.4.
+     */
+    MFF_ACTSET_OUTPUT,
+
     /* "skb_priority".
      *
      * Designates the queue to which output will be directed.  The value in
@@ -528,13 +555,17 @@ enum OVS_PACKED_ENUM mf_field_id {
      * and reg1 the least-significant.  xreg1 similarly overlays reg2 and reg3,
      * and so on.
      *
+     * These registers were introduced in OpenFlow 1.5, but EXT-244 in the ONF
+     * JIRA also publishes them as a (draft) OpenFlow extension to OpenFlow
+     * 1.3.
+     *
      * Type: be64.
      * Maskable: bitwise.
      * Formatting: hexadecimal.
      * Prerequisites: none.
      * Access: read/write.
      * NXM: none.
-     * OXM: OXM_OF_PKT_REG<N>(<N>) since OF1.5 and v2.4.
+     * OXM: OXM_OF_PKT_REG<N>(<N>) since OF1.3 and v2.4.
      */
     MFF_XREG0,
     MFF_XREG1,
@@ -1159,7 +1190,8 @@ enum OVS_PACKED_ENUM mf_field_id {
      * Prerequisites: TCP.
      * Access: read-only.
      * NXM: NXM_NX_TCP_FLAGS(34) since v2.1.
-     * OXM: OXM_OF_TCP_FLAGS(42) since OF1.5 and v2.3.
+     * OXM: ONFOXM_ET_TCP_FLAGS(42) since OF1.3 and v2.4,
+     *      OXM_OF_TCP_FLAGS(42) since OF1.5 and v2.3.
      */
     MFF_TCP_FLAGS,
 
@@ -1490,7 +1522,9 @@ union mf_value {
 };
 BUILD_ASSERT_DECL(sizeof(union mf_value) == 16);
 
+/* An all-1-bits mf_value.  Needs to be updated if struct mf_value grows.*/
 #define MF_EXACT_MASK_INITIALIZER { IN6ADDR_EXACT_INIT }
+BUILD_ASSERT_DECL(sizeof(union mf_value) == sizeof(struct in6_addr));
 
 /* Part of a field. */
 struct mf_subfield {