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 {