Segment Routing ONS demo fixes: Includes traffic visualization fix

Change-Id: I5119271464b696fd145c6b63bee09d7f3ef109bd
diff --git a/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java b/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java
index 7ae6db1..5f0efa5 100644
--- a/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java
+++ b/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java
@@ -105,7 +105,7 @@
     private final InternalDeviceProvider listener = new InternalDeviceProvider();
 
     // TODO: We need to make the poll interval configurable.
-    static final int POLL_INTERVAL = 10;
+    static final int POLL_INTERVAL = 5;
 
     private HashMap<Dpid, PortStatsCollector> collectors = Maps.newHashMap();
 
@@ -245,7 +245,7 @@
 
     private class InternalDeviceProvider implements OpenFlowSwitchListener, OpenFlowEventListener {
 
-        private List<OFPortStatsEntry> portStatsReplies = Lists.newArrayList();
+        private HashMap<Dpid, List<OFPortStatsEntry>> portStatsReplies = new HashMap<>();
 
         @Override
         public void switchAdded(Dpid dpid) {
@@ -450,10 +450,15 @@
                 case STATS_REPLY:
                     if (((OFStatsReply) msg).getStatsType() == OFStatsType.PORT) {
                         OFPortStatsReply portStatsReply = (OFPortStatsReply) msg;
-                        portStatsReplies.addAll(portStatsReply.getEntries());
+                        List<OFPortStatsEntry> portStatsReplyList = portStatsReplies.get(dpid);
+                        if (portStatsReplyList == null) {
+                            portStatsReplyList = Lists.newArrayList();
+                        }
+                        portStatsReplyList.addAll(portStatsReply.getEntries());
+                        portStatsReplies.put(dpid, portStatsReplyList);
                         if (!portStatsReply.getFlags().contains(OFStatsReplyFlags.REPLY_MORE)) {
-                            pushPortMetrics(dpid, portStatsReplies);
-                            portStatsReplies.clear();
+                            pushPortMetrics(dpid, portStatsReplies.get(dpid));
+                            portStatsReplies.get(dpid).clear();
                         }
                     }
                     break;