VOL-2179: The o_vid on the DL Action field for the Downstream
          flow on openolt.proto interface is incorrect.

Change-Id: Ia3243eed30429d2e89b73bb9140d53ceaf95b0f0
diff --git a/adaptercore/openolt_flowmgr.go b/adaptercore/openolt_flowmgr.go
index 63ee913..900f442 100644
--- a/adaptercore/openolt_flowmgr.go
+++ b/adaptercore/openolt_flowmgr.go
@@ -551,7 +551,14 @@
 
 	/* Already this info available classifier? */
 	downlinkAction[PopVlan] = true
-	downlinkAction[VlanVid] = downlinkClassifier[VlanVid]
+	dlClVid, ok := downlinkClassifier[VlanVid].(int)
+	if ok {
+		downlinkAction[VlanVid] = dlClVid & 0xfff
+	} else {
+		log.Error("dl-classifier-vid-type-conversion-failed")
+		return
+	}
+
 	f.addHSIAFlow(intfID, onuID, uniID, portNo, downlinkClassifier, downlinkAction,
 		Downstream, logicalFlow, allocID, gemportID)
 }
@@ -1670,7 +1677,7 @@
 			classifierInfo[InPort] = field.GetPort()
 			log.Debug("field-type-in-port", log.Fields{"classifierInfo[IN_PORT]": classifierInfo[InPort].(uint32)})
 		} else if field.Type == flows.VLAN_VID {
-			classifierInfo[VlanVid] = field.GetVlanVid()
+			classifierInfo[VlanVid] = field.GetVlanVid() & 0xfff
 			log.Debug("field-type-vlan-vid", log.Fields{"classifierInfo[VLAN_VID]": classifierInfo[VlanVid].(uint32)})
 		} else if field.Type == flows.VLAN_PCP {
 			classifierInfo[VlanPcp] = field.GetVlanPcp()