[VOL-5598] Send delete event with key
Change-Id: I4245d3c7e723b5339f339306dca4745a714246a7
Signed-off-by: madhumatigouda <madhumati.gouda@radisys.com>
diff --git a/VERSION b/VERSION
index 972d41a..7707ee0 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-3.7.18
+3.7.19
diff --git a/rw_core/core/device/agent_port.go b/rw_core/core/device/agent_port.go
index 5984f0a..fd5c945 100644
--- a/rw_core/core/device/agent_port.go
+++ b/rw_core/core/device/agent_port.go
@@ -166,7 +166,7 @@
}
func (agent *Agent) addPort(ctx context.Context, port *voltha.Port) error {
- logger.Debugw(ctx, "addPort", log.Fields{"device-id": agent.deviceID})
+ logger.Debugw(ctx, "addPort", log.Fields{"device-id": agent.deviceID, "port": port})
var desc string
var err error
operStatus := &common.OperationResp{Code: common.OperationResp_OPERATION_FAILURE}
diff --git a/rw_core/core/device/event/event.go b/rw_core/core/device/event/event.go
index db1dc42..60db08e 100644
--- a/rw_core/core/device/event/event.go
+++ b/rw_core/core/device/event/event.go
@@ -307,7 +307,7 @@
if device.Root {
subCategory = voltha.EventSubCategory_OLT
}
- if err := q.eventProxy.SendDeviceEvent(ctx, de, voltha.EventCategory_EQUIPMENT, subCategory, raisedTs); err != nil {
+ if err := q.eventProxy.SendDeviceEventWithKey(ctx, de, voltha.EventCategory_EQUIPMENT, subCategory, raisedTs, device.Id); err != nil {
logger.Errorw(ctx, "error-sending-device-event", log.Fields{"id": device.Id, "err": err})
return err
}
@@ -334,8 +334,8 @@
de := ev.CreateDeviceDeletedEvent(device.SerialNumber, device.Id, device.ParentId,
onuId, ponId, device.Root, parentSerialNumber)
- if err := q.eventProxy.SendDeviceEvent(ctx, de, voltha.EventCategory_EQUIPMENT,
- subCategory, raisedTs); err != nil {
+ if err := q.eventProxy.SendDeviceEventWithKey(ctx, de, voltha.EventCategory_EQUIPMENT,
+ subCategory, raisedTs, device.Id); err != nil {
logger.Errorw(ctx, "error-sending-device-deleted-event", log.Fields{"id": device.Id, "err": err})
return err
}
diff --git a/rw_core/core/device/logical_agent.go b/rw_core/core/device/logical_agent.go
index 6f60817..6f9429d 100644
--- a/rw_core/core/device/logical_agent.go
+++ b/rw_core/core/device/logical_agent.go
@@ -304,7 +304,7 @@
}
func (agent *LogicalAgent) deleteFlowsAndGroupsFromDevices(ctx context.Context, deviceRules *fu.DeviceRules, mod *ofp.OfpFlowMod) []coreutils.Response {
- logger.Debugw(ctx, "send-delete-flows-to-device-manager", log.Fields{"logical-device-id": agent.logicalDeviceID})
+ logger.Debugw(ctx, "send-delete-flows-to-device-manager", log.Fields{"logical-device-id": agent.logicalDeviceID, "cookie": mod.Cookie})
responses := make([]coreutils.Response, 0)
for deviceID, value := range deviceRules.GetRules() {
@@ -360,7 +360,7 @@
}
func (agent *LogicalAgent) deleteFlowsFromParentDevice(ctx context.Context, flows map[uint64]*ofp.OfpFlowStats, mod *ofp.OfpFlowMod) []coreutils.Response {
- logger.Debugw(ctx, "deleting-flows-from-parent-device", log.Fields{"logical-device-id": agent.logicalDeviceID, "flows": flows})
+ logger.Debugw(ctx, "deleting-flows-from-parent-device", log.Fields{"logical-device-id": agent.logicalDeviceID, "cookie": mod.Cookie})
responses := make([]coreutils.Response, 0)
for _, flow := range flows {
response := coreutils.NewResponse()
@@ -379,7 +379,7 @@
response.Done()
continue
}
- logger.Debugw(ctx, "uni-port", log.Fields{"flows": flows, "uni-port": uniPort})
+ logger.Debugw(ctx, "uni-port", log.Fields{"flows": flows, "uni-port": uniPort, "device-id": agent.rootDeviceID})
go func(uniPort uint32, metadata *ofp.FlowMetadata) {
subCtx, cancel := context.WithTimeout(log.WithSpanFromContext(context.Background(), ctx), agent.internalTimeout)
subCtx = coreutils.WithRPCMetadataFromContext(subCtx, ctx)
diff --git a/rw_core/core/device/logical_agent_flow.go b/rw_core/core/device/logical_agent_flow.go
index c197503..6cd1e3c 100644
--- a/rw_core/core/device/logical_agent_flow.go
+++ b/rw_core/core/device/logical_agent_flow.go
@@ -415,10 +415,10 @@
var have bool
mod := flowUpdate.FlowMod
- logger.Debugw(ctx, "flow-delete-strict", log.Fields{"mod": mod})
if mod == nil {
return nil
}
+ logger.Debugw(ctx, "flow-delete-strict", log.Fields{"flow-mod": mod})
flow, err := fu.FlowStatsEntryFromFlowModMessage(mod)
if err != nil {
@@ -434,7 +434,7 @@
logger.Debugw(ctx, "flow-id-in-flow-delete-strict", log.Fields{"flow-id": flow.Id})
flowHandle, have = agent.flowCache.Lock(flow.Id)
if !have {
- logger.Debugw(ctx, "flow-delete-strict-request-no-flow-found-continuing", log.Fields{"flow-mod": mod})
+ logger.Debugw(ctx, "flow-delete-strict-request-no-flow-found-continuing", log.Fields{"flow-mod-cookie": mod.Cookie})
}
groups := make(map[uint32]*ofp.OfpGroupEntry)
@@ -450,6 +450,7 @@
flowsToDelete = map[uint64]*ofp.OfpFlowStats{flow.Id: flowHandle.GetReadOnly()}
}
+ logger.Debugw(ctx, "flow-delete-strict-matching-flows-found", log.Fields{"flow-id": flow.Id, "flows-to-delete": flowsToDelete, "cookie": mod.Cookie})
var respChnls []coreutils.Response
var partialRoute bool
deviceRules, err := agent.flowDecomposer.DecomposeRules(ctx, agent, flowsToDelete, groups)
@@ -518,6 +519,7 @@
// Update meter count
if changedMeter := agent.updateFlowCountOfMeterStats(ctx, mod, flow, false); !changedMeter {
+ logger.Warnw(ctx, "flow-delete-strict-meter-update-failed", log.Fields{"flow-id": flow.Id, "cookie": mod.Cookie})
return fmt.Errorf("cannot delete flow - %s. Meter update failed", flow)
}
@@ -527,7 +529,6 @@
return err
}
}
-
return nil
}
diff --git a/rw_core/core/device/logical_agent_port.go b/rw_core/core/device/logical_agent_port.go
index 3dd2e06..6f908da 100644
--- a/rw_core/core/device/logical_agent_port.go
+++ b/rw_core/core/device/logical_agent_port.go
@@ -240,6 +240,7 @@
portHandle.Unlock()
return err
}
+ logger.Debugw(ctx, "deleted-logical-port", log.Fields{"logical-device-id": agent.logicalDeviceID, "port": oldPort})
// and send event
agent.orderedEvents.send(ctx, agent, agent.logicalDeviceID, ofp.OfpPortReason_OFPPR_DELETE, oldPort.OfpPort)
}
@@ -355,7 +356,7 @@
// (true, nil). If the device is not in the correct state it will return (false, nil) as this is a valid
// scenario. This also applies to the case where the port was already added.
func (agent *LogicalAgent) addUNILogicalPort(ctx context.Context, deviceID string, deviceAdminState voltha.AdminState_Types, deviceOperStatus voltha.OperStatus_Types, devicePorts map[uint32]*voltha.Port, port *voltha.Port) error {
- logger.Debugw(ctx, "add-uni-logical-port", log.Fields{"port": port})
+ logger.Debugw(ctx, "add-uni-logical-port", log.Fields{"port": port, "device-id": deviceID})
if deviceAdminState != voltha.AdminState_ENABLED || deviceOperStatus != voltha.OperStatus_ACTIVE {
logger.Warnw(ctx, "device-not-ready", log.Fields{"device-id": deviceID, "admin": deviceAdminState, "oper": deviceOperStatus})
return nil
diff --git a/rw_core/core/device/logical_manager.go b/rw_core/core/device/logical_manager.go
index 0d58cbb..4f64e53 100644
--- a/rw_core/core/device/logical_manager.go
+++ b/rw_core/core/device/logical_manager.go
@@ -432,7 +432,7 @@
}
func (ldMgr *LogicalManager) setupUNILogicalPorts(ctx context.Context, childDevice *voltha.Device, childDevicePorts map[uint32]*voltha.Port) error {
- logger.Debugw(ctx, "setup-uni-logical-ports", log.Fields{"child-device-id": childDevice.Id, "parent-device-id": childDevice.ParentId, "current-data": childDevice})
+ logger.Debugw(ctx, "setup-uni-logical-ports", log.Fields{"child-device-id": childDevice.Id, "parent-device-id": childDevice.ParentId, "current-data": childDevice, "ports": childDevicePorts})
// Sanity check
if childDevice.Root {
return errors.New("Device-root")
@@ -442,7 +442,7 @@
parentID := childDevice.ParentId
logDeviceID := ldMgr.deviceMgr.GetParentDeviceID(ctx, parentID)
- logger.Debugw(ctx, "setup-uni-logical-ports", log.Fields{"logical-device-id": logDeviceID, "parentId": parentID})
+ logger.Debugw(ctx, "setup-uni-logical-ports", log.Fields{"logical-device-id": logDeviceID, "parentId": parentID, "ports": childDevicePorts})
if parentID == "" || logDeviceID == "" {
return errors.New("device-in-invalid-state")