Fixing scale test manager and CLIs.
Change-Id: I3d4120e68076cce0df33476dc15ee3cfcf4dfbc8
diff --git a/apps/test/route-scale/src/main/java/org/onosproject/routescale/CreateFlows.java b/apps/test/route-scale/src/main/java/org/onosproject/routescale/CreateFlows.java
index 8ab8e8f..9e5baf9 100644
--- a/apps/test/route-scale/src/main/java/org/onosproject/routescale/CreateFlows.java
+++ b/apps/test/route-scale/src/main/java/org/onosproject/routescale/CreateFlows.java
@@ -34,7 +34,7 @@
@Override
protected void execute() {
ComponentConfigService service = get(ComponentConfigService.class);
- service.setProperty("org.onosproject.routescale.ScaleManager",
+ service.setProperty("org.onosproject.routescale.ScaleTestManager",
"flowCount", String.valueOf(flowCount));
}
diff --git a/apps/test/route-scale/src/main/java/org/onosproject/routescale/CreateRoutes.java b/apps/test/route-scale/src/main/java/org/onosproject/routescale/CreateRoutes.java
index d738b74..608fc53 100644
--- a/apps/test/route-scale/src/main/java/org/onosproject/routescale/CreateRoutes.java
+++ b/apps/test/route-scale/src/main/java/org/onosproject/routescale/CreateRoutes.java
@@ -34,7 +34,7 @@
@Override
protected void execute() {
ComponentConfigService service = get(ComponentConfigService.class);
- service.setProperty("org.onosproject.routescale.ScaleManager",
+ service.setProperty("org.onosproject.routescale.ScaleTestManager",
"routeCount", String.valueOf(routeCount));
}
diff --git a/apps/test/route-scale/src/main/java/org/onosproject/routescale/ScaleTestManager.java b/apps/test/route-scale/src/main/java/org/onosproject/routescale/ScaleTestManager.java
index 25550f8..cfc7ad6 100644
--- a/apps/test/route-scale/src/main/java/org/onosproject/routescale/ScaleTestManager.java
+++ b/apps/test/route-scale/src/main/java/org/onosproject/routescale/ScaleTestManager.java
@@ -103,6 +103,8 @@
private ApplicationId appId;
+ private long macBase = System.currentTimeMillis();
+
@Activate
protected void activate() {
appId = applicationService.getId("org.onosproject.routescale");
@@ -172,11 +174,12 @@
FlowRuleOperations.Builder ops = FlowRuleOperations.builder();
for (int i = 0; i < c; i++) {
FlowRule.Builder frb = DefaultFlowRule.builder();
- frb.fromApp(appId).makePermanent().withPriority(1000 + i);
+ frb.fromApp(appId).makePermanent().withPriority((currentFlowCount + i) % FlowRule.MAX_PRIORITY);
TrafficSelector.Builder tsb = DefaultTrafficSelector.builder();
TrafficTreatment.Builder ttb = DefaultTrafficTreatment.builder();
tsb.matchEthType(Ethernet.TYPE_IPV4);
+ tsb.matchEthDst(randomMac());
ttb.setEthDst(randomMac()).setEthSrc(randomMac());
ttb.setOutput(randomPort(ports));
frb.withSelector(tsb.build()).withTreatment(ttb.build());
@@ -188,12 +191,14 @@
private void removeExcessFlows(int flowsPerDevice, DeviceId id,
int currentFlowCount) {
FlowRuleOperations.Builder ops = FlowRuleOperations.builder();
- int c = flowsPerDevice - currentFlowCount;
+ int c = currentFlowCount - flowsPerDevice;
log.info("Removing {} flows from device {}", c, id);
for (FlowEntry e : flowRuleService.getFlowEntries(id)) {
if (Objects.equals(e.appId(), appId.id()) && c > 0) {
ops.remove(e);
c--;
+ } else if (c == 0) {
+ break;
}
}
flowRuleService.apply(ops.build());
@@ -252,9 +257,7 @@
// Generates a random MAC address.
private MacAddress randomMac() {
- byte[] bytes = new byte[6];
- random.nextBytes(bytes);
- return MacAddress.valueOf(bytes);
+ return MacAddress.valueOf(macBase++);
}
// Returns IP address of a host randomly chosen from the specified list.