initial add - go fmt on grpc

Change-Id: Ib0afadd2fe5571d1456a091f94f5644458f7d3f4
diff --git a/openflow/packet.go b/openflow/packet.go
new file mode 100644
index 0000000..2bd46cd
--- /dev/null
+++ b/openflow/packet.go
@@ -0,0 +1,46 @@
+/*
+   Copyright 2017 the original author or authors.
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+*/
+
+package openflow
+
+import (
+	"encoding/json"
+	pb "github.com/opencord/voltha-protos/go/voltha"
+	ofp "github.com/skydive-project/goloxi/of13"
+	"log"
+)
+
+func handlePacketOut(packetOut *ofp.PacketOut, deviceId string) {
+	jsonMessage, _ := json.Marshal(packetOut)
+	log.Printf("handlePacketOut called with %s", jsonMessage)
+	pktOut := pb.OfpPacketOut{}
+	pktOut.BufferId = packetOut.GetBufferId()
+	pktOut.InPort = uint32(packetOut.GetInPort())
+	var actions []*pb.OfpAction
+	inActions := packetOut.GetActions()
+	for i := 0; i < len(inActions); i++ {
+		action := inActions[i]
+		var newAction = pb.OfpAction{}
+		newAction.Type = pb.OfpActionType(action.GetType())
+		actions = append(actions, &newAction)
+	}
+	pktOut.Actions = actions
+	pktOut.Data = packetOut.GetData()
+	pbPacketOut := pb.PacketOut{}
+	pbPacketOut.PacketOut = &pktOut
+	pbPacketOut.Id = deviceId
+	packetOutChannel <- pbPacketOut
+}