Revert "VOL-1847-Add flow only if it does not exist in device,No delete here as delete flows/groups handled now in deleteFlowsAndGroups"
This reverts commit 33f779a44ddacea9ac3312a668ebb75c143f028a.
Change-Id: Id17a9a7d43fb1d894d9fb4aa43268febc9a232f8
diff --git a/rw_core/core/logical_device_agent.go b/rw_core/core/logical_device_agent.go
index 7e35b04..2c72b6d 100644
--- a/rw_core/core/logical_device_agent.go
+++ b/rw_core/core/logical_device_agent.go
@@ -855,7 +855,7 @@
// TODO: should this error be notified other than being logged?
log.Warnw("overlapped-flows", log.Fields{"logicaldeviceId": agent.logicalDeviceId})
} else {
- // Add new flow
+ // Add flow
flow = fu.FlowStatsEntryFromFlowModMessage(mod)
flows = append(flows, flow)
updatedFlows = append(updatedFlows, flow)
@@ -870,12 +870,13 @@
flow.ByteCount = oldFlow.ByteCount
flow.PacketCount = oldFlow.PacketCount
}
- // OF-1.3.1: If a flow entry with identical match fields and priority already resides , clear old flow and add new flow
- flows[idx] = flow
- updatedFlows = append(updatedFlows, flow)
- changed = true
- updated = true
- } else { // Add new flow
+ if !reflect.DeepEqual(oldFlow, flow) {
+ flows[idx] = flow
+ updatedFlows = append(updatedFlows, flow)
+ changed = true
+ updated = true
+ }
+ } else {
flows = append(flows, flow)
updatedFlows = append(updatedFlows, flow)
changed = true
@@ -902,7 +903,7 @@
log.Errorw("db-flow-update-failed", log.Fields{"logicalDeviceId": agent.logicalDeviceId})
return err
}
- if !updated { // Newly added
+ if !updated {
changedMeterStats := agent.updateFlowCountOfMeterStats(mod, meters, flow)
metersToUpdate := &ofp.Meters{}
if lDevice.Meters != nil {