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;