Signed-off-by: Simon Horman <ho...@verge.net.au>
---
 lib/meta-flow.c | 8 +++++---
 lib/meta-flow.h | 1 +
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/lib/meta-flow.c b/lib/meta-flow.c
index 72ed108..a8b296a 100644
--- a/lib/meta-flow.c
+++ b/lib/meta-flow.c
@@ -149,9 +149,9 @@ static const struct mf_field mf_fields[MFF_N_IDS] = {
         NXM_OF_VLAN_TCI, "NXM_OF_VLAN_TCI",
         0, NULL,
     }, {
-        MFF_VLAN_VID, "dl_vlan", NULL,
+        MFF_VLAN_VID, "dl_vlan_vid", NULL,
         sizeof(ovs_be16), 12,
-        MFM_NONE, 0,
+        MFM_FULLY, 0,
         MFS_DECIMAL,
         MFP_NONE,
         true,
@@ -162,7 +162,7 @@ static const struct mf_field mf_fields[MFF_N_IDS] = {
         1, 3,
         MFM_NONE, 0,
         MFS_DECIMAL,
-        MFP_NONE,
+        MFP_VLAN_VID,
         true,
         0, NULL,
         OXM_OF_VLAN_PCP, "OXM_OF_VLAN_PCP",
@@ -878,6 +878,8 @@ mf_are_prereqs_ok(const struct mf_field *mf, const struct 
flow *flow)
         return flow->dl_type == htons(ETH_TYPE_IP);
     case MFP_IPV6:
         return flow->dl_type == htons(ETH_TYPE_IPV6);
+    case MFP_VLAN_VID:
+        return (flow->vlan_tci & VLAN_CFI) == htons(VLAN_CFI);
     case MFP_VLAN_TPID:
         return (flow->vlan_tpid == htons(ETH_TYPE_VLAN) ||
                 flow->vlan_tpid == htons(ETH_TYPE_VLAN_8021AD));
diff --git a/lib/meta-flow.h b/lib/meta-flow.h
index 27ae989..3582770 100644
--- a/lib/meta-flow.h
+++ b/lib/meta-flow.h
@@ -163,6 +163,7 @@ enum mf_prereqs {
 
     /* L2 requirements. */
     MFP_ARP,
+    MFP_VLAN_VID,
     MFP_VLAN_TPID,
     MFP_MPLS,
     MFP_IPV4,
-- 
1.7.10.2.484.gcd07cc5

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to