[VOL-3187]Pass Context down the execution call hierarchy across ofagent codebase
Change-Id: Ia5f2fa1509beefe0ddc427b83e39d2702782db8f
diff --git a/internal/pkg/openflow/stats.go b/internal/pkg/openflow/stats.go
index 0a0c8c8..78a9b93 100644
--- a/internal/pkg/openflow/stats.go
+++ b/internal/pkg/openflow/stats.go
@@ -28,10 +28,10 @@
"github.com/opencord/voltha-protos/v3/go/openflow_13"
)
-func (ofc *OFConnection) handleStatsRequest(request ofp.IHeader, statType uint16) error {
+func (ofc *OFConnection) handleStatsRequest(ctx context.Context, request ofp.IHeader, statType uint16) error {
if logger.V(log.DebugLevel) {
js, _ := json.Marshal(request)
- logger.Debugw("handleStatsRequest called",
+ logger.Debugw(ctx, "handleStatsRequest called",
log.Fields{
"device-id": ofc.DeviceID,
"stat-type": statType,
@@ -48,23 +48,23 @@
if logger.V(log.DebugLevel) {
reqJs, _ := json.Marshal(statsReq)
resJs, _ := json.Marshal(response)
- logger.Debugw("handle-stats-request-desc",
+ logger.Debugw(ctx, "handle-stats-request-desc",
log.Fields{
"device-id": ofc.DeviceID,
"request": reqJs,
"response": resJs})
}
- return ofc.SendMessage(response)
+ return ofc.SendMessage(ctx, response)
case ofp.OFPSTFlow:
statsReq := request.(*ofp.FlowStatsRequest)
- responses, err := ofc.handleFlowStatsRequest(statsReq)
+ responses, err := ofc.handleFlowStatsRequest(ctx, statsReq)
if err != nil {
return err
}
if logger.V(log.DebugLevel) {
reqJs, _ := json.Marshal(statsReq)
resJs, _ := json.Marshal(responses)
- logger.Debugw("handle-stats-request-flow",
+ logger.Debugw(ctx, "handle-stats-request-flow",
log.Fields{
"device-id": ofc.DeviceID,
"request": reqJs,
@@ -72,7 +72,7 @@
"response": resJs})
}
for _, response := range responses {
- err := ofc.SendMessage(response)
+ err := ofc.SendMessage(ctx, response)
if err != nil {
return err
}
@@ -88,20 +88,20 @@
if logger.V(log.DebugLevel) {
reqJs, _ := json.Marshal(statsReq)
resJs, _ := json.Marshal(response)
- logger.Debugw("handle-stats-request-aggregate",
+ logger.Debugw(ctx, "handle-stats-request-aggregate",
log.Fields{
"device-id": ofc.DeviceID,
"request": reqJs,
"response": resJs})
}
- return ofc.SendMessage(response)
+ return ofc.SendMessage(ctx, response)
case ofp.OFPSTTable:
statsReq := request.(*ofp.TableStatsRequest)
response, e := ofc.handleTableStatsRequest(statsReq)
if logger.V(log.DebugLevel) {
reqJs, _ := json.Marshal(statsReq)
resJs, _ := json.Marshal(response)
- logger.Debugw("handle-stats-request-table",
+ logger.Debugw(ctx, "handle-stats-request-table",
log.Fields{
"device-id": ofc.DeviceID,
"request": reqJs,
@@ -110,7 +110,7 @@
if e != nil {
return e
}
- return ofc.SendMessage(response)
+ return ofc.SendMessage(ctx, response)
case ofp.OFPSTPort:
statsReq := request.(*ofp.PortStatsRequest)
responses, err := ofc.handlePortStatsRequest(statsReq)
@@ -120,14 +120,14 @@
if logger.V(log.DebugLevel) {
reqJs, _ := json.Marshal(statsReq)
resJs, _ := json.Marshal(responses)
- logger.Debugw("handle-stats-request-port",
+ logger.Debugw(ctx, "handle-stats-request-port",
log.Fields{
"device-id": ofc.DeviceID,
"request": reqJs,
"response": resJs})
}
for _, response := range responses {
- err := ofc.SendMessage(response)
+ err := ofc.SendMessage(ctx, response)
if err != nil {
return err
}
@@ -142,13 +142,13 @@
if logger.V(log.DebugLevel) {
reqJs, _ := json.Marshal(statsReq)
resJs, _ := json.Marshal(response)
- logger.Debugw("handle-stats-request-queue",
+ logger.Debugw(ctx, "handle-stats-request-queue",
log.Fields{
"device-id": ofc.DeviceID,
"request": reqJs,
"response": resJs})
}
- return ofc.SendMessage(response)
+ return ofc.SendMessage(ctx, response)
case ofp.OFPSTGroup:
statsReq := request.(*ofp.GroupStatsRequest)
response, err := ofc.handleGroupStatsRequest(statsReq)
@@ -158,29 +158,29 @@
if logger.V(log.DebugLevel) {
reqJs, _ := json.Marshal(statsReq)
resJs, _ := json.Marshal(response)
- logger.Debugw("handle-stats-request-group",
+ logger.Debugw(ctx, "handle-stats-request-group",
log.Fields{
"device-id": ofc.DeviceID,
"request": reqJs,
"response": resJs})
}
- return ofc.SendMessage(response)
+ return ofc.SendMessage(ctx, response)
case ofp.OFPSTGroupDesc:
statsReq := request.(*ofp.GroupDescStatsRequest)
- response, err := ofc.handleGroupStatsDescRequest(statsReq)
+ response, err := ofc.handleGroupStatsDescRequest(ctx, statsReq)
if err != nil {
return err
}
if logger.V(log.DebugLevel) {
reqJs, _ := json.Marshal(statsReq)
resJs, _ := json.Marshal(response)
- logger.Debugw("handle-stats-request-group-desc",
+ logger.Debugw(ctx, "handle-stats-request-group-desc",
log.Fields{
"device-id": ofc.DeviceID,
"request": reqJs,
"response": resJs})
}
- return ofc.SendMessage(response)
+ return ofc.SendMessage(ctx, response)
case ofp.OFPSTGroupFeatures:
statsReq := request.(*ofp.GroupFeaturesStatsRequest)
@@ -191,13 +191,13 @@
if logger.V(log.DebugLevel) {
reqJs, _ := json.Marshal(statsReq)
resJs, _ := json.Marshal(response)
- logger.Debugw("handle-stats-request-group-features",
+ logger.Debugw(ctx, "handle-stats-request-group-features",
log.Fields{
"device-id": ofc.DeviceID,
"request": reqJs,
"response": resJs})
}
- return ofc.SendMessage(response)
+ return ofc.SendMessage(ctx, response)
case ofp.OFPSTMeter:
statsReq := request.(*ofp.MeterStatsRequest)
response, err := ofc.handleMeterStatsRequest(statsReq)
@@ -207,13 +207,13 @@
if logger.V(log.DebugLevel) {
reqJs, _ := json.Marshal(statsReq)
resJs, _ := json.Marshal(response)
- logger.Debugw("handle-stats-request-meter",
+ logger.Debugw(ctx, "handle-stats-request-meter",
log.Fields{
"device-id": ofc.DeviceID,
"request": reqJs,
"response": resJs})
}
- return ofc.SendMessage(response)
+ return ofc.SendMessage(ctx, response)
case ofp.OFPSTMeterConfig:
statsReq := request.(*ofp.MeterConfigStatsRequest)
response, err := ofc.handleMeterConfigStatsRequest(statsReq)
@@ -223,13 +223,13 @@
if logger.V(log.DebugLevel) {
reqJs, _ := json.Marshal(statsReq)
resJs, _ := json.Marshal(response)
- logger.Debugw("handle-stats-request-meter-config",
+ logger.Debugw(ctx, "handle-stats-request-meter-config",
log.Fields{
"device-id": ofc.DeviceID,
"request": reqJs,
"response": resJs})
}
- return ofc.SendMessage(response)
+ return ofc.SendMessage(ctx, response)
case ofp.OFPSTMeterFeatures:
statsReq := request.(*ofp.MeterFeaturesStatsRequest)
response, err := ofc.handleMeterFeatureStatsRequest(statsReq)
@@ -239,13 +239,13 @@
if logger.V(log.DebugLevel) {
reqJs, _ := json.Marshal(statsReq)
resJs, _ := json.Marshal(response)
- logger.Debugw("handle-stats-request-meter-features",
+ logger.Debugw(ctx, "handle-stats-request-meter-features",
log.Fields{
"device-id": ofc.DeviceID,
"request": reqJs,
"response": resJs})
}
- return ofc.SendMessage(response)
+ return ofc.SendMessage(ctx, response)
case ofp.OFPSTTableFeatures:
statsReq := request.(*ofp.TableFeaturesStatsRequest)
response, err := ofc.handleTableFeaturesStatsRequest(statsReq)
@@ -255,13 +255,13 @@
if logger.V(log.DebugLevel) {
reqJs, _ := json.Marshal(statsReq)
resJs, _ := json.Marshal(response)
- logger.Debugw("handle-stats-request-table-features",
+ logger.Debugw(ctx, "handle-stats-request-table-features",
log.Fields{
"device-id": ofc.DeviceID,
"request": reqJs,
"response": resJs})
}
- return ofc.SendMessage(response)
+ return ofc.SendMessage(ctx, response)
case ofp.OFPSTPortDesc:
statsReq := request.(*ofp.PortDescStatsRequest)
responses, err := ofc.handlePortDescStatsRequest(statsReq)
@@ -271,14 +271,14 @@
if logger.V(log.DebugLevel) {
reqJs, _ := json.Marshal(statsReq)
resJs, _ := json.Marshal(responses)
- logger.Debugw("handle-stats-request-port-desc",
+ logger.Debugw(ctx, "handle-stats-request-port-desc",
log.Fields{
"device-id": ofc.DeviceID,
"request": reqJs,
"response": resJs})
}
for _, response := range responses {
- err := ofc.SendMessage(response)
+ err := ofc.SendMessage(ctx, response)
if err != nil {
return err
}
@@ -294,13 +294,13 @@
if logger.V(log.DebugLevel) {
reqJs, _ := json.Marshal(statsReq)
resJs, _ := json.Marshal(response)
- logger.Debugw("handle-stats-request-experimenter",
+ logger.Debugw(ctx, "handle-stats-request-experimenter",
log.Fields{
"device-id": ofc.DeviceID,
"request": reqJs,
"response": resJs})
}
- return ofc.SendMessage(response)
+ return ofc.SendMessage(ctx, response)
}
return nil
}
@@ -330,7 +330,7 @@
return response, nil
}
-func (ofc *OFConnection) handleFlowStatsRequest(request *ofp.FlowStatsRequest) ([]*ofp.FlowStatsReply, error) {
+func (ofc *OFConnection) handleFlowStatsRequest(ctx context.Context, request *ofp.FlowStatsRequest) ([]*ofp.FlowStatsReply, error) {
volthaClient := ofc.VolthaClient.Get()
if volthaClient == nil {
return nil, NoVolthaConnectionError
@@ -360,7 +360,7 @@
for _, oxmField := range pbMatch.GetOxmFields() {
field := oxmField.GetField()
ofbField := field.(*openflow_13.OfpOxmField_OfbField).OfbField
- iOxm := parseOxm(ofbField)
+ iOxm := parseOxm(ctx, ofbField)
fields = append(fields, iOxm)
}
@@ -368,7 +368,7 @@
entry.SetMatch(*match)
var instructions []ofp.IInstruction
for _, ofpInstruction := range item.Instructions {
- instruction := parseInstructions(ofpInstruction)
+ instruction := parseInstructions(ctx, ofpInstruction)
instructions = append(instructions, instruction)
}
entry.Instructions = instructions
@@ -452,7 +452,7 @@
return response, nil
}
-func (ofc *OFConnection) handleGroupStatsDescRequest(request *ofp.GroupDescStatsRequest) (*ofp.GroupDescStatsReply, error) {
+func (ofc *OFConnection) handleGroupStatsDescRequest(ctx context.Context, request *ofp.GroupDescStatsRequest) (*ofp.GroupDescStatsReply, error) {
volthaClient := ofc.VolthaClient.Get()
if volthaClient == nil {
return nil, NoVolthaConnectionError
@@ -470,10 +470,10 @@
for _, item := range reply.GetItems() {
desc := item.GetDesc()
- buckets := volthaBucketsToOpenflow(desc.Buckets)
+ buckets := volthaBucketsToOpenflow(ctx, desc.Buckets)
groupDesc := &ofp.GroupDescStatsEntry{
- GroupType: volthaGroupTypeToOpenflow(desc.Type),
+ GroupType: volthaGroupTypeToOpenflow(ctx, desc.Type),
GroupId: desc.GroupId,
Buckets: buckets,
}