VOL-2408 - Refactor / Use voltha-lib-go Logging
Change-Id: I6e7d9eaba49c104cd50bb5692a2ff9733014fac4
diff --git a/openflow/stats.go b/openflow/stats.go
index 54a23de..8b12294 100644
--- a/openflow/stats.go
+++ b/openflow/stats.go
@@ -20,10 +20,12 @@
"context"
"encoding/json"
- "log"
"net"
+
"unsafe"
+ "github.com/opencord/ofagent-go/settings"
+ l "github.com/opencord/voltha-lib-go/v2/pkg/log"
"github.com/opencord/voltha-protos/v2/go/openflow_13"
"github.com/donNewtonAlpha/goloxi"
@@ -31,11 +33,12 @@
"github.com/opencord/voltha-protos/v2/go/common"
)
-func handleStatsRequest(request ofp.IHeader, statType uint16, deviceId string, client *Client) error {
- message, _ := json.Marshal(request)
- log.Printf("handleStatsRequest called with %s\n ", message)
- var id = common.ID{Id: deviceId}
-
+func handleStatsRequest(request ofp.IHeader, statType uint16, DeviceID string, client *Client) error {
+ if settings.GetDebug(DeviceID) {
+ js, _ := json.Marshal(request)
+ logger.Debugw("handleStatsRequest called", l.Fields{"DeviceID": DeviceID, "StatType": statType, "rquest": js})
+ }
+ var id = common.ID{Id: DeviceID}
switch statType {
case ofp.OFPSTDesc:
statsReq := request.(*ofp.DescStatsRequest)
@@ -43,43 +46,62 @@
if err != nil {
return err
}
- client.SendMessage(response)
-
+ if settings.GetDebug(DeviceID) {
+ reqJs, _ := json.Marshal(statsReq)
+ resJs, _ := json.Marshal(response)
+ logger.Debugw("HandleStatsRequest GRPC", l.Fields{"DeviceID": DeviceID, "Req": reqJs, "Res": resJs})
+ }
+ return client.SendMessage(response)
case ofp.OFPSTFlow:
statsReq := request.(*ofp.FlowStatsRequest)
- response, err := handleFlowStatsRequest(statsReq, id)
+ response, err := handleFlowStatsRequest(statsReq, id, DeviceID)
if err != nil {
return err
}
response.Length = uint16(unsafe.Sizeof(*response))
- jResponse, _ := json.Marshal(response)
- log.Printf("HANDLE FLOW STATS REQUEST response\n\n\n %s \n\n\n", jResponse)
- err = client.SendMessage(response)
- if err != nil {
- return err
+ if settings.GetDebug(DeviceID) {
+ reqJs, _ := json.Marshal(statsReq)
+ resJs, _ := json.Marshal(response)
+ logger.Debugw("HandleStatsRequest GRPC", l.Fields{"DeviceID": DeviceID, "Req": reqJs, "Res": resJs})
}
+ return client.SendMessage(response)
case ofp.OFPSTAggregate:
statsReq := request.(*ofp.AggregateStatsRequest)
- aggregateStatsReply, err := handleAggregateStatsRequest(statsReq, id)
+ response, err := handleAggregateStatsRequest(statsReq, id)
if err != nil {
return err
}
- client.SendMessage(aggregateStatsReply)
+ if settings.GetDebug(DeviceID) {
+ reqJs, _ := json.Marshal(statsReq)
+ resJs, _ := json.Marshal(response)
+ logger.Debugw("HandleStatsRequest GRPC", l.Fields{"DeviceID": DeviceID, "Req": reqJs, "Res": resJs})
+ }
+ return client.SendMessage(response)
case ofp.OFPSTTable:
statsReq := request.(*ofp.TableStatsRequest)
- tableStatsReply, e := handleTableStatsRequest(statsReq, id)
+ response, e := handleTableStatsRequest(statsReq, id)
+ if settings.GetDebug(DeviceID) {
+ reqJs, _ := json.Marshal(statsReq)
+ resJs, _ := json.Marshal(response)
+ logger.Debugw("HandleStatsRequest GRPC", l.Fields{"DeviceID": DeviceID, "Req": reqJs, "Res": resJs})
+ }
if e != nil {
return e
}
- client.SendMessage(tableStatsReply)
+ return client.SendMessage(response)
case ofp.OFPSTPort:
statsReq := request.(*ofp.PortStatsRequest)
response, err := handlePortStatsRequest(statsReq, id)
if err != nil {
return err
}
- client.SendMessage(response)
+ if settings.GetDebug(DeviceID) {
+ reqJs, _ := json.Marshal(statsReq)
+ resJs, _ := json.Marshal(response)
+ logger.Debugw("HandleStatsRequest GRPC", l.Fields{"DeviceID": DeviceID, "Req": reqJs, "Res": resJs})
+ }
+ return client.SendMessage(response)
case ofp.OFPSTQueue:
statsReq := request.(*ofp.QueueStatsRequest)
@@ -87,14 +109,23 @@
if err != nil {
return err
}
- client.SendMessage(response)
+ if settings.GetDebug(DeviceID) {
+ reqJs, _ := json.Marshal(statsReq)
+ resJs, _ := json.Marshal(response)
+ logger.Debugw("HandleStatsRequest GRPC", l.Fields{"DeviceID": DeviceID, "Req": reqJs, "Res": resJs})
+ }
+ return client.SendMessage(response)
case ofp.OFPSTGroup:
statsReq := request.(*ofp.GroupStatsRequest)
response, err := handleGroupStatsRequest(statsReq, id)
if err != nil {
return err
}
-
+ if settings.GetDebug(DeviceID) {
+ reqJs, _ := json.Marshal(statsReq)
+ resJs, _ := json.Marshal(response)
+ logger.Debugw("HandleStatsRequest GRPC", l.Fields{"DeviceID": DeviceID, "Req": reqJs, "Res": resJs})
+ }
client.SendMessage(response)
case ofp.OFPSTGroupDesc:
statsReq := request.(*ofp.GroupDescStatsRequest)
@@ -102,7 +133,12 @@
if err != nil {
return err
}
- client.SendMessage(response)
+ if settings.GetDebug(DeviceID) {
+ reqJs, _ := json.Marshal(statsReq)
+ resJs, _ := json.Marshal(response)
+ logger.Debugw("HandleStatsRequest GRPC", l.Fields{"DeviceID": DeviceID, "Req": reqJs, "Res": resJs})
+ }
+ return client.SendMessage(response)
case ofp.OFPSTGroupFeatures:
statsReq := request.(*ofp.GroupFeaturesStatsRequest)
@@ -110,43 +146,72 @@
if err != nil {
return err
}
- client.SendMessage(response)
+ if settings.GetDebug(DeviceID) {
+ reqJs, _ := json.Marshal(statsReq)
+ resJs, _ := json.Marshal(response)
+ logger.Debugw("HandleStatsRequest GRPC", l.Fields{"DeviceID": DeviceID, "Req": reqJs, "Res": resJs})
+ }
+ return client.SendMessage(response)
case ofp.OFPSTMeter:
statsReq := request.(*ofp.MeterStatsRequest)
response, err := handleMeterStatsRequest(statsReq, id)
if err != nil {
- log.Printf("ERROR HANDLE METER STATS REQUEST %v", err)
return err
}
- client.SendMessage(response)
+ if settings.GetDebug(DeviceID) {
+ reqJs, _ := json.Marshal(statsReq)
+ resJs, _ := json.Marshal(response)
+ logger.Debugw("HandleStatsRequest GRPC", l.Fields{"DeviceID": DeviceID, "Req": reqJs, "Res": resJs})
+ }
+ return client.SendMessage(response)
case ofp.OFPSTMeterConfig:
statsReq := request.(*ofp.MeterConfigStatsRequest)
response, err := handleMeterConfigStatsRequest(statsReq, id)
if err != nil {
return err
}
- client.SendMessage(response)
+ if settings.GetDebug(DeviceID) {
+ reqJs, _ := json.Marshal(statsReq)
+ resJs, _ := json.Marshal(response)
+ logger.Debugw("HandleStatsRequest GRPC", l.Fields{"DeviceID": DeviceID, "Req": reqJs, "Res": resJs})
+ }
+ return client.SendMessage(response)
case ofp.OFPSTMeterFeatures:
statsReq := request.(*ofp.MeterFeaturesStatsRequest)
response, err := handleMeterFeatureStatsRequest(statsReq)
if err != nil {
return err
}
- client.SendMessage(response)
+ if settings.GetDebug(DeviceID) {
+ reqJs, _ := json.Marshal(statsReq)
+ resJs, _ := json.Marshal(response)
+ logger.Debugw("HandleStatsRequest GRPC", l.Fields{"DeviceID": DeviceID, "Req": reqJs, "Res": resJs})
+ }
+ return client.SendMessage(response)
case ofp.OFPSTTableFeatures:
statsReq := request.(*ofp.TableFeaturesStatsRequest)
response, err := handleTableFeaturesStatsRequest(statsReq, id)
if err != nil {
return err
}
- client.SendMessage(response)
+ if settings.GetDebug(DeviceID) {
+ reqJs, _ := json.Marshal(statsReq)
+ resJs, _ := json.Marshal(response)
+ logger.Debugw("HandleStatsRequest GRPC", l.Fields{"DeviceID": DeviceID, "Req": reqJs, "Res": resJs})
+ }
+ return client.SendMessage(response)
case ofp.OFPSTPortDesc:
statsReq := request.(*ofp.PortDescStatsRequest)
- response, err := handlePortDescStatsRequest(statsReq, deviceId)
+ response, err := handlePortDescStatsRequest(statsReq, DeviceID)
if err != nil {
return err
}
- client.SendMessage(response)
+ if settings.GetDebug(DeviceID) {
+ reqJs, _ := json.Marshal(statsReq)
+ resJs, _ := json.Marshal(response)
+ logger.Debugw("HandleStatsRequest GRPC", l.Fields{"DeviceID": DeviceID, "Req": reqJs, "Res": resJs})
+ }
+ return client.SendMessage(response)
case ofp.OFPSTExperimenter:
statsReq := request.(*ofp.ExperimenterStatsRequest)
@@ -154,7 +219,12 @@
if err != nil {
return err
}
- client.SendMessage(response)
+ if settings.GetDebug(DeviceID) {
+ reqJs, _ := json.Marshal(statsReq)
+ resJs, _ := json.Marshal(response)
+ logger.Debugw("HandleStatsRequest GRPC", l.Fields{"DeviceID": DeviceID, "Req": reqJs, "Res": resJs})
+ }
+ return client.SendMessage(response)
}
return nil
}
@@ -179,8 +249,7 @@
response.SetDpDesc(PadString(desc.GetDpDesc(), 256))
return response, nil
}
-func handleFlowStatsRequest(request *ofp.FlowStatsRequest, id common.ID) (*ofp.FlowStatsReply, error) {
- log.Println("****************************************\n***********************************")
+func handleFlowStatsRequest(request *ofp.FlowStatsRequest, id common.ID, DeviceID string) (*ofp.FlowStatsReply, error) {
response := ofp.NewFlowStatsReply()
response.SetXid(request.GetXid())
response.SetVersion(4)
@@ -188,18 +257,13 @@
client := *getGrpcClient()
resp, err := client.ListLogicalDeviceFlows(context.Background(), &id)
if err != nil {
- log.Printf("err in handleFlowStatsRequest calling ListLogicalDeviceFlows %v", err)
return nil, err
}
- js, _ := json.Marshal(resp)
- log.Printf("HandleFlowStats response: %s", js)
var flow []*ofp.FlowStatsEntry
items := resp.GetItems()
-
for i := 0; i < len(items); i++ {
item := items[i]
entry := ofp.NewFlowStatsEntry()
-
entry.SetTableId(uint8(item.GetTableId()))
entry.SetDurationSec(item.GetDurationSec())
entry.SetDurationNsec(item.GetDurationNsec())
@@ -223,40 +287,30 @@
oxmField := oxFields[i]
field := oxmField.GetField()
ofbField := field.(*openflow_13.OfpOxmField_OfbField).OfbField
- iOxm, oxmSize := parseOxm(ofbField)
- log.Printf("OXMSIZE %d", oxmSize)
+ iOxm, oxmSize := parseOxm(ofbField, DeviceID)
fields = append(fields, iOxm)
if oxmSize > 0 {
size += 4 //header for oxm
}
size += oxmSize
- log.Printf("SIZE %d", size)
}
- log.Printf("entrySize %d += size %d", entrySize, size)
- log.Printf("new entrySize %d", entrySize)
match.OxmList = fields
match.Length = uint16(size)
//account for 8 byte alignment
- log.Printf("Size was %d", size)
if size%8 != 0 {
size = ((size / 8) + 1) * 8
}
-
- log.Printf("Size is %d", size)
entrySize += size
entry.SetMatch(*match)
var instructions []ofp.IInstruction
ofpInstructions := item.Instructions
for i := 0; i < len(ofpInstructions); i++ {
- instruction, size := parseInstructions(ofpInstructions[i])
+ instruction, size := parseInstructions(ofpInstructions[i], DeviceID)
instructions = append(instructions, instruction)
entrySize += size
}
entry.Instructions = instructions
- log.Printf("entrysize was %d", entrySize)
- entrySizeMeasured := uint16(unsafe.Sizeof(*entry))
- log.Printf("entrysize measure %d", entrySizeMeasured)
entry.Length = entrySize
entrySize = 0
flow = append(flow, entry)
@@ -420,7 +474,6 @@
return response, nil
}
func handlePortStatsRequest(request *ofp.PortStatsRequest, id common.ID) (*ofp.PortStatsReply, error) {
- log.Println("HERE")
response := ofp.NewPortStatsReply()
response.SetXid(request.GetXid())
response.SetVersion(request.GetVersion())
@@ -429,11 +482,8 @@
reply, err := client.ListLogicalDevicePorts(context.Background(), &id)
//reply,err := client.GetLogicalDevicePort(context.Background(),&id)
if err != nil {
- log.Printf("error calling ListDevicePorts %v", err)
return nil, err
}
- js, _ := json.Marshal(reply)
- log.Printf("PORT STATS REPLY %s", js)
ports := reply.GetItems()
var entries []*ofp.PortStatsEntry
if request.GetPortNo() == 0xffffffff { //all ports
@@ -451,19 +501,16 @@
}
}
response.SetEntries(entries)
- js, _ = json.Marshal(response)
- log.Printf("handlePortStatsResponse %s", js)
return response, nil
-
}
-func handlePortDescStatsRequest(request *ofp.PortDescStatsRequest, deviceId string) (*ofp.PortDescStatsReply, error) {
+func handlePortDescStatsRequest(request *ofp.PortDescStatsRequest, DeviceID string) (*ofp.PortDescStatsReply, error) {
response := ofp.NewPortDescStatsReply()
response.SetVersion(request.GetVersion())
response.SetXid(request.GetXid())
response.SetFlags(ofp.StatsReplyFlags(request.GetFlags()))
var grpcClient = *getGrpcClient()
- var id = common.ID{Id: deviceId}
+ var id = common.ID{Id: DeviceID}
logicalDevice, err := grpcClient.GetLogicalDevice(context.Background(), &id)
if err != nil {
return nil, err