initial add - go fmt on grpc
Change-Id: Ib0afadd2fe5571d1456a091f94f5644458f7d3f4
diff --git a/grpc/packetIn.go b/grpc/packetIn.go
new file mode 100644
index 0000000..938dabe
--- /dev/null
+++ b/grpc/packetIn.go
@@ -0,0 +1,71 @@
+/*
+ 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 grpc
+
+import (
+ "context"
+ "github.com/golang/protobuf/ptypes/empty"
+ "github.com/opencord/ofagent-go/openflow"
+ pb "github.com/opencord/voltha-protos/go/voltha"
+ ofp "github.com/skydive-project/goloxi/of13"
+ "google.golang.org/grpc"
+ "log"
+)
+
+func receivePacketIn(client pb.VolthaServiceClient) {
+ opt := grpc.EmptyCallOption{}
+ stream, err := client.ReceivePacketsIn(context.Background(), &empty.Empty{}, opt)
+ if err != nil {
+ log.Fatalln("Unable to establish stream")
+ }
+ for {
+ packet, err := stream.Recv()
+ packetIn := packet.GetPacketIn()
+
+ if err != nil {
+ log.Fatalf("error on stream.Rec %v", err)
+ }
+ ofPacketIn := ofp.NewPacketIn()
+ ofPacketIn.SetVersion(uint8(4))
+ ofPacketIn.SetXid(openflow.GetXid())
+ ofPacketIn.SetBufferId(packetIn.GetBufferId())
+ ofPacketIn.SetCookie(packetIn.GetCookie())
+ ofPacketIn.SetData(packetIn.GetData())
+ var outMatch ofp.Match
+ inMatch := packetIn.GetMatch()
+ outMatch.SetType(uint16(inMatch.GetType()))
+ /*
+ TODO not sure if anything further is needed
+ fields := inMatch.GetOxmFields()
+ var outFields []ofp.Oxm
+ for i:=0;i< len(fields);i++{
+ field := fields[i]
+ outField := ofp.Oxm{}
+ outField.SetTypeLen(field.OxmClass.)
+ outField.SetTypeLen(field)
+ }
+ outMatch.SetOxmList(inMatch.GetOxmFields())
+ */
+
+ ofPacketIn.SetMatch(outMatch)
+ ofPacketIn.SetReason(uint8(packetIn.GetReason()))
+ ofPacketIn.SetTableId(uint8(packetIn.GetTableId()))
+ ofPacketIn.SetTotalLen(uint16(len(ofPacketIn.GetData())))
+ //ofPacketIn.
+ }
+
+}