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