Committed by
Gerrit Code Review
Adding multi-instance support for flow stats.
Change-Id: I428c5a7cb58f4f9773a125fc94fb368ed846cb0d
Showing
8 changed files
with
46 additions
and
6 deletions
... | @@ -61,6 +61,22 @@ public final class DefaultPortStatistics implements PortStatistics { | ... | @@ -61,6 +61,22 @@ public final class DefaultPortStatistics implements PortStatistics { |
61 | this.durationNano = durationNano; | 61 | this.durationNano = durationNano; |
62 | } | 62 | } |
63 | 63 | ||
64 | + // Constructor for serializer | ||
65 | + private DefaultPortStatistics() { | ||
66 | + this.deviceId = null; | ||
67 | + this.port = 0; | ||
68 | + this.packetsReceived = 0; | ||
69 | + this.packetsSent = 0; | ||
70 | + this.bytesReceived = 0; | ||
71 | + this.bytesSent = 0; | ||
72 | + this.packetsRxDropped = 0; | ||
73 | + this.packetsTxDropped = 0; | ||
74 | + this.packetsRxErrors = 0; | ||
75 | + this.packetsTxErrors = 0; | ||
76 | + this.durationSec = 0; | ||
77 | + this.durationNano = 0; | ||
78 | + } | ||
79 | + | ||
64 | /** | 80 | /** |
65 | * Creates a builder for DefaultPortStatistics object. | 81 | * Creates a builder for DefaultPortStatistics object. |
66 | * | 82 | * | ... | ... |
This diff is collapsed. Click to expand it.
... | @@ -55,6 +55,7 @@ import org.onosproject.store.cluster.messaging.ClusterCommunicationService; | ... | @@ -55,6 +55,7 @@ import org.onosproject.store.cluster.messaging.ClusterCommunicationService; |
55 | import org.onosproject.store.cluster.messaging.ClusterMessage; | 55 | import org.onosproject.store.cluster.messaging.ClusterMessage; |
56 | import org.onosproject.store.cluster.messaging.ClusterMessageHandler; | 56 | import org.onosproject.store.cluster.messaging.ClusterMessageHandler; |
57 | import org.onosproject.store.cluster.messaging.MessageSubject; | 57 | import org.onosproject.store.cluster.messaging.MessageSubject; |
58 | +import org.onosproject.store.consistent.impl.DatabaseManager; | ||
58 | 59 | ||
59 | import java.io.IOException; | 60 | import java.io.IOException; |
60 | import java.util.Arrays; | 61 | import java.util.Arrays; |
... | @@ -157,7 +158,7 @@ public class GossipDeviceStoreTest { | ... | @@ -157,7 +158,7 @@ public class GossipDeviceStoreTest { |
157 | 158 | ||
158 | clusterCommunicator = createNiceMock(ClusterCommunicationService.class); | 159 | clusterCommunicator = createNiceMock(ClusterCommunicationService.class); |
159 | clusterCommunicator.addSubscriber(anyObject(MessageSubject.class), | 160 | clusterCommunicator.addSubscriber(anyObject(MessageSubject.class), |
160 | - anyObject(ClusterMessageHandler.class), anyObject(ExecutorService.class)); | 161 | + anyObject(ClusterMessageHandler.class), anyObject(ExecutorService.class)); |
161 | expectLastCall().anyTimes(); | 162 | expectLastCall().anyTimes(); |
162 | replay(clusterCommunicator); | 163 | replay(clusterCommunicator); |
163 | ClusterService clusterService = new TestClusterService(); | 164 | ClusterService clusterService = new TestClusterService(); |
... | @@ -165,6 +166,10 @@ public class GossipDeviceStoreTest { | ... | @@ -165,6 +166,10 @@ public class GossipDeviceStoreTest { |
165 | testGossipDeviceStore = new TestGossipDeviceStore(deviceClockService, clusterService, clusterCommunicator); | 166 | testGossipDeviceStore = new TestGossipDeviceStore(deviceClockService, clusterService, clusterCommunicator); |
166 | testGossipDeviceStore.mastershipService = new TestMastershipService(); | 167 | testGossipDeviceStore.mastershipService = new TestMastershipService(); |
167 | 168 | ||
169 | + TestDatabaseManager testDatabaseManager = new TestDatabaseManager(); | ||
170 | + testDatabaseManager.init(clusterService, clusterCommunicator); | ||
171 | + testGossipDeviceStore.storageService = testDatabaseManager; | ||
172 | + | ||
168 | gossipDeviceStore = testGossipDeviceStore; | 173 | gossipDeviceStore = testGossipDeviceStore; |
169 | gossipDeviceStore.activate(); | 174 | gossipDeviceStore.activate(); |
170 | deviceStore = gossipDeviceStore; | 175 | deviceStore = gossipDeviceStore; |
... | @@ -885,4 +890,12 @@ public class GossipDeviceStoreTest { | ... | @@ -885,4 +890,12 @@ public class GossipDeviceStoreTest { |
885 | nodeStates.put(NID2, ACTIVE); | 890 | nodeStates.put(NID2, ACTIVE); |
886 | } | 891 | } |
887 | } | 892 | } |
893 | + | ||
894 | + private class TestDatabaseManager extends DatabaseManager { | ||
895 | + void init(ClusterService clusterService, | ||
896 | + ClusterCommunicationService clusterCommunicator) { | ||
897 | + this.clusterService = clusterService; | ||
898 | + this.clusterCommunicator = clusterCommunicator; | ||
899 | + } | ||
900 | + } | ||
888 | } | 901 | } | ... | ... |
... | @@ -71,9 +71,11 @@ import org.onosproject.net.Port; | ... | @@ -71,9 +71,11 @@ import org.onosproject.net.Port; |
71 | import org.onosproject.net.PortNumber; | 71 | import org.onosproject.net.PortNumber; |
72 | import org.onosproject.net.device.DefaultDeviceDescription; | 72 | import org.onosproject.net.device.DefaultDeviceDescription; |
73 | import org.onosproject.net.device.DefaultPortDescription; | 73 | import org.onosproject.net.device.DefaultPortDescription; |
74 | +import org.onosproject.net.device.DefaultPortStatistics; | ||
74 | import org.onosproject.net.device.OchPortDescription; | 75 | import org.onosproject.net.device.OchPortDescription; |
75 | import org.onosproject.net.device.OduCltPortDescription; | 76 | import org.onosproject.net.device.OduCltPortDescription; |
76 | import org.onosproject.net.device.OmsPortDescription; | 77 | import org.onosproject.net.device.OmsPortDescription; |
78 | +import org.onosproject.net.device.PortStatistics; | ||
77 | import org.onosproject.net.flow.CompletedBatchOperation; | 79 | import org.onosproject.net.flow.CompletedBatchOperation; |
78 | import org.onosproject.net.flow.DefaultFlowEntry; | 80 | import org.onosproject.net.flow.DefaultFlowEntry; |
79 | import org.onosproject.net.flow.DefaultFlowRule; | 81 | import org.onosproject.net.flow.DefaultFlowRule; |
... | @@ -380,7 +382,9 @@ public final class KryoNamespaces { | ... | @@ -380,7 +382,9 @@ public final class KryoNamespaces { |
380 | IntentOperation.class, | 382 | IntentOperation.class, |
381 | FlowRuleExtPayLoad.class, | 383 | FlowRuleExtPayLoad.class, |
382 | Frequency.class, | 384 | Frequency.class, |
383 | - DefaultAnnotations.class | 385 | + DefaultAnnotations.class, |
386 | + PortStatistics.class, | ||
387 | + DefaultPortStatistics.class | ||
384 | ) | 388 | ) |
385 | .register(new DefaultApplicationIdSerializer(), DefaultApplicationId.class) | 389 | .register(new DefaultApplicationIdSerializer(), DefaultApplicationId.class) |
386 | .register(new URISerializer(), URI.class) | 390 | .register(new URISerializer(), URI.class) | ... | ... |
... | @@ -14,7 +14,7 @@ cut -c7- $aux | cut -d\ -f1 | sort > $aux.1 | ... | @@ -14,7 +14,7 @@ cut -c7- $aux | cut -d\ -f1 | sort > $aux.1 |
14 | 14 | ||
15 | # Normalize the expected apps | 15 | # Normalize the expected apps |
16 | apps=${ONOS_APPS:-drivers,openflow} | 16 | apps=${ONOS_APPS:-drivers,openflow} |
17 | -(for app in ${apps/,/ }; do echo org.onosproject.$app; done) | sort > $aux.2 | 17 | +(for app in ${apps//,/ }; do echo org.onosproject.$app; done) | sort > $aux.2 |
18 | 18 | ||
19 | # Check for differences | 19 | # Check for differences |
20 | diff $aux.1 $aux.2 | 20 | diff $aux.1 $aux.2 | ... | ... |
tools/test/cells/madan3
0 → 100644
1 | -# Office ProxMox ONOS instances 1,2,3 & ONOS mininet box | 1 | +# Tom's ProxMox ONOS instances 1,2,3 & ONOS mininet box |
2 | 2 | ||
3 | -export ONOS_NIC=10.128.11.* | 3 | +export ONOS_NIC="10.128.11.*" |
4 | export OC1="10.128.11.1" | 4 | export OC1="10.128.11.1" |
5 | export OC2="10.128.11.2" | 5 | export OC2="10.128.11.2" |
6 | export OC3="10.128.11.3" | 6 | export OC3="10.128.11.3" | ... | ... |
... | @@ -850,7 +850,7 @@ public abstract class TopologyViewMessageHandlerBase extends UiMessageHandler { | ... | @@ -850,7 +850,7 @@ public abstract class TopologyViewMessageHandlerBase extends UiMessageHandler { |
850 | if (load != null) { | 850 | if (load != null) { |
851 | this.hasTraffic = hasTraffic || load.rate() > threshold; | 851 | this.hasTraffic = hasTraffic || load.rate() > threshold; |
852 | this.bytes += load.latest(); | 852 | this.bytes += load.latest(); |
853 | - this.rate = load.rate(); | 853 | + this.rate += load.rate(); |
854 | } | 854 | } |
855 | } | 855 | } |
856 | 856 | ... | ... |
-
Please register or login to post a comment