functional version

Change-Id: Ic089d1fc7a2c6bc51e00371c993a6fc6aaa17863
diff --git a/openflow/parseGrpcReturn.go b/openflow/parseGrpcReturn.go
index 706e9a7..072bdcf 100644
--- a/openflow/parseGrpcReturn.go
+++ b/openflow/parseGrpcReturn.go
@@ -17,15 +17,17 @@
 
 import (
 	"encoding/json"
-	"github.com/donNewtonAlpha/goloxi"
-	ofp "github.com/donNewtonAlpha/goloxi/of13"
-	"github.com/opencord/voltha-protos/go/openflow_13"
-	pb "github.com/opencord/voltha-protos/go/voltha"
 	"log"
 	"unsafe"
+
+	"github.com/donNewtonAlpha/goloxi"
+	ofp "github.com/donNewtonAlpha/goloxi/of13"
+	"github.com/opencord/voltha-protos/v2/go/openflow_13"
+	pb "github.com/opencord/voltha-protos/v2/go/voltha"
 )
 
 func parseOxm(ofbField *openflow_13.OfpOxmOfbField) (goloxi.IOxm, uint16) {
+	log.Printf("PARSE OXM")
 	switch ofbField.Type {
 	case pb.OxmOfbFieldTypes_OFPXMT_OFB_IN_PORT:
 		ofpInPort := ofp.NewOxmInPort()
@@ -62,10 +64,12 @@
 		val := ofbField.GetValue()
 		if val != nil {
 			vlanId := val.(*openflow_13.OfpOxmOfbField_VlanVid)
-			ofpVlanVid.Value = uint16(vlanId.VlanVid) + 0x1000
+			ofpVlanVid.Value = uint16(vlanId.VlanVid) | 0x1000
 		} else {
 			ofpVlanVid.Value = uint16(0)
 		}
+		js, _ := json.Marshal(ofpVlanVid)
+		log.Printf("PARSE OXM VLAN VID %s", js)
 		return ofpVlanVid, 2
 	case pb.OxmOfbFieldTypes_OFPXMT_OFB_METADATA:
 		ofpMetadata := ofp.NewOxmMetadata()
@@ -153,8 +157,8 @@
 
 		iOxm, _ := parseOxm(ofpActionSetField.GetField().GetOfbField())
 		setFieldAction.Field = iOxm
-		setFieldAction.Len = 10
-		return setFieldAction, 10
+		setFieldAction.Len = 16
+		return setFieldAction, 16
 	default:
 		js, _ := json.Marshal(ofpAction)
 		log.Printf("UNKNOWN ACTION %s", js)