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()