diff --git a/dp-core/vr_datapath.c b/dp-core/vr_datapath.c index 03eaeff0e..01b8e5eb1 100644 --- a/dp-core/vr_datapath.c +++ b/dp-core/vr_datapath.c @@ -363,7 +363,7 @@ vr_pkt_type(struct vr_packet *pkt, unsigned short offset, return -1; vlan = (struct vr_vlan_hdr *)(eth + pull_len); if (fmd && (fmd->fmd_vlan == VLAN_ID_INVALID)) - fmd->fmd_vlan = vlan->vlan_tag & 0xFFF; + fmd->fmd_vlan = ntohs(vlan->vlan_tag) & 0xFFF; eth_proto = ntohs(vlan->vlan_proto); pull_len += sizeof(*vlan); }