building flowrules
diff --git a/core/trivial/src/main/java/org/onlab/onos/net/trivial/flow/impl/SimpleFlowRuleManager.java b/core/trivial/src/main/java/org/onlab/onos/net/trivial/flow/impl/SimpleFlowRuleManager.java
index b7c5b15..7003271 100644
--- a/core/trivial/src/main/java/org/onlab/onos/net/trivial/flow/impl/SimpleFlowRuleManager.java
+++ b/core/trivial/src/main/java/org/onlab/onos/net/trivial/flow/impl/SimpleFlowRuleManager.java
@@ -17,7 +17,6 @@
import org.onlab.onos.net.Device;
import org.onlab.onos.net.DeviceId;
import org.onlab.onos.net.device.DeviceService;
-import org.onlab.onos.net.flow.FlowEntry;
import org.onlab.onos.net.flow.FlowRule;
import org.onlab.onos.net.flow.FlowRuleEvent;
import org.onlab.onos.net.flow.FlowRuleListener;
@@ -62,13 +61,13 @@
}
@Override
- public Iterable<FlowEntry> getFlowEntries(DeviceId deviceId) {
+ public Iterable<FlowRule> getFlowEntries(DeviceId deviceId) {
return store.getFlowEntries(deviceId);
}
@Override
- public List<FlowEntry> applyFlowRules(FlowRule... flowRules) {
- List<FlowEntry> entries = new ArrayList<FlowEntry>();
+ public List<FlowRule> applyFlowRules(FlowRule... flowRules) {
+ List<FlowRule> entries = new ArrayList<FlowRule>();
for (int i = 0; i < flowRules.length; i++) {
FlowRule f = flowRules[i];
@@ -159,7 +158,7 @@
}
@Override
- public void pushFlowMetrics(Iterable<FlowEntry> flowEntries) {
+ public void pushFlowMetrics(Iterable<FlowRule> flowEntries) {
// TODO Auto-generated method stub
}
diff --git a/core/trivial/src/main/java/org/onlab/onos/net/trivial/flow/impl/SimpleFlowRuleStore.java b/core/trivial/src/main/java/org/onlab/onos/net/trivial/flow/impl/SimpleFlowRuleStore.java
index 4f23ff4..dd8dce8 100644
--- a/core/trivial/src/main/java/org/onlab/onos/net/trivial/flow/impl/SimpleFlowRuleStore.java
+++ b/core/trivial/src/main/java/org/onlab/onos/net/trivial/flow/impl/SimpleFlowRuleStore.java
@@ -1,8 +1,7 @@
package org.onlab.onos.net.trivial.flow.impl;
import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.flow.DefaultFlowEntry;
-import org.onlab.onos.net.flow.FlowEntry;
+import org.onlab.onos.net.flow.DefaultFlowRule;
import org.onlab.onos.net.flow.FlowRule;
import org.onlab.onos.net.flow.FlowRuleEvent;
@@ -18,7 +17,7 @@
public class SimpleFlowRuleStore {
// store entries as a pile of rules, no info about device tables
- private final Multimap<DeviceId, FlowEntry> flowEntries = HashMultimap.create();
+ private final Multimap<DeviceId, FlowRule> flowEntries = HashMultimap.create();
/**
* Returns the flow entries associated with a device.
@@ -26,19 +25,19 @@
* @param deviceId the device ID
* @return the flow entries
*/
- Iterable<FlowEntry> getFlowEntries(DeviceId deviceId) {
+ Iterable<FlowRule> getFlowEntries(DeviceId deviceId) {
return ImmutableSet.copyOf(flowEntries.get(deviceId));
}
/**
- * Stores a new flow rule, and generates a FlowEntry for it.
+ * Stores a new flow rule, and generates a FlowRule for it.
*
* @param rule the flow rule to add
* @return a flow entry
*/
- FlowEntry storeFlowRule(FlowRule rule) {
+ FlowRule storeFlowRule(FlowRule rule) {
DeviceId did = rule.deviceId();
- FlowEntry entry = new DefaultFlowEntry(did,
+ FlowRule entry = new DefaultFlowRule(did,
rule.selector(), rule.treatment(), rule.priority());
flowEntries.put(did, entry);
return entry;
@@ -53,20 +52,14 @@
FlowRuleEvent addOrUpdateFlowRule(FlowRule rule) {
DeviceId did = rule.deviceId();
- FlowEntry entry = new DefaultFlowEntry(
- did,
- rule.selector(),
- rule.treatment(),
- rule.priority());
-
// check if this new rule is an update to an existing entry
- for (FlowEntry fe : flowEntries.get(did)) {
- if (entry.equals(fe)) {
- // TODO update the stats on this flowEntry?
+ for (FlowRule fe : flowEntries.get(did)) {
+ if (rule.equals(fe)) {
+ // TODO update the stats on this FlowRule?
return null;
}
}
- flowEntries.put(did, entry);
+ flowEntries.put(did, rule);
return new FlowRuleEvent(RULE_ADDED, rule);
}
@@ -77,10 +70,8 @@
*/
FlowRuleEvent removeFlowRule(FlowRule rule) {
- FlowEntry rem = new DefaultFlowEntry(rule.deviceId(),
- rule.selector(), rule.treatment(), rule.priority());
synchronized (this) {
- if (flowEntries.remove(rem.deviceId(), rem)) {
+ if (flowEntries.remove(rule.deviceId(), rule)) {
return new FlowRuleEvent(RULE_REMOVED, rule);
} else {
return null;
diff --git a/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/DefaultTopology.java b/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/DefaultTopology.java
index 7213497..efbe6af 100644
--- a/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/DefaultTopology.java
+++ b/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/DefaultTopology.java
@@ -45,7 +45,7 @@
private static final TarjanGraphSearch<TopologyVertex, TopologyEdge> TARJAN =
new TarjanGraphSearch<>();
- private static final ProviderId PID = new ProviderId("org.onlab.onos.net");
+ private static final ProviderId PID = new ProviderId("core", "org.onlab.onos.net");
private final long time;
private final TopologyGraph graph;
diff --git a/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/DefaultTopologyProvider.java b/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/DefaultTopologyProvider.java
index b6efba9..6e6a917 100644
--- a/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/DefaultTopologyProvider.java
+++ b/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/DefaultTopologyProvider.java
@@ -74,7 +74,7 @@
* Creates a provider with the supplier identifier.
*/
public DefaultTopologyProvider() {
- super(new ProviderId("org.onlab.onos.provider.topology"));
+ super(new ProviderId("core", "org.onlab.onos.provider.topology"));
}
@Activate
diff --git a/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/SimplePathManager.java b/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/SimplePathManager.java
index f495057..5fe7793 100644
--- a/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/SimplePathManager.java
+++ b/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/SimplePathManager.java
@@ -45,7 +45,7 @@
private static final String ELEMENT_ID_NULL = "Element ID cannot be null";
- private static final ProviderId PID = new ProviderId("org.onlab.onos.core");
+ private static final ProviderId PID = new ProviderId("core", "org.onlab.onos.core");
private static final PortNumber P0 = PortNumber.portNumber(0);
private static final EdgeLink NOT_HOST = new NotHost();
diff --git a/core/trivial/src/test/java/org/onlab/onos/net/trivial/device/impl/SimpleDeviceManagerTest.java b/core/trivial/src/test/java/org/onlab/onos/net/trivial/device/impl/SimpleDeviceManagerTest.java
index 4c1aff4..4d531d3 100644
--- a/core/trivial/src/test/java/org/onlab/onos/net/trivial/device/impl/SimpleDeviceManagerTest.java
+++ b/core/trivial/src/test/java/org/onlab/onos/net/trivial/device/impl/SimpleDeviceManagerTest.java
@@ -38,7 +38,7 @@
*/
public class SimpleDeviceManagerTest {
- private static final ProviderId PID = new ProviderId("foo");
+ private static final ProviderId PID = new ProviderId("of", "foo");
private static final DeviceId DID1 = deviceId("of:foo");
private static final DeviceId DID2 = deviceId("of:bar");
private static final String MFR = "whitebox";
diff --git a/core/trivial/src/test/java/org/onlab/onos/net/trivial/flow/impl/SimpleFlowRuleManagerTest.java b/core/trivial/src/test/java/org/onlab/onos/net/trivial/flow/impl/SimpleFlowRuleManagerTest.java
index bb0a496..0bee5b3 100644
--- a/core/trivial/src/test/java/org/onlab/onos/net/trivial/flow/impl/SimpleFlowRuleManagerTest.java
+++ b/core/trivial/src/test/java/org/onlab/onos/net/trivial/flow/impl/SimpleFlowRuleManagerTest.java
@@ -4,6 +4,8 @@
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
+import static org.onlab.onos.net.flow.FlowRuleEvent.Type.RULE_ADDED;
+import static org.onlab.onos.net.flow.FlowRuleEvent.Type.RULE_REMOVED;
import java.util.ArrayList;
import java.util.List;
@@ -21,9 +23,7 @@
import org.onlab.onos.net.PortNumber;
import org.onlab.onos.net.device.DeviceListener;
import org.onlab.onos.net.device.DeviceService;
-import org.onlab.onos.net.flow.DefaultFlowEntry;
import org.onlab.onos.net.flow.DefaultFlowRule;
-import org.onlab.onos.net.flow.FlowEntry;
import org.onlab.onos.net.flow.FlowRule;
import org.onlab.onos.net.flow.FlowRuleEvent;
import org.onlab.onos.net.flow.FlowRuleListener;
@@ -41,14 +41,12 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
-import static org.onlab.onos.net.flow.FlowRuleEvent.Type.*;
-
/**
* Test codifying the flow rule service & flow rule provider service contracts.
*/
public class SimpleFlowRuleManagerTest {
- private static final ProviderId PID = new ProviderId("foo");
+ private static final ProviderId PID = new ProviderId("of", "foo");
private static final DeviceId DID = DeviceId.deviceId("of:001");
private static final Device DEV = new DefaultDevice(
PID, DID, Type.SWITCH, "", "", "", "");
@@ -81,7 +79,7 @@
public void tearDown() {
registry.unregister(provider);
assertFalse("provider should not be registered",
- registry.getProviders().contains(provider.id()));
+ registry.getProviders().contains(provider.id()));
service.removeListener(listener);
mgr.deactivate();
mgr.eventDispatcher = null;
@@ -91,7 +89,7 @@
private FlowRule flowRule(int tsval, int trval) {
TestSelector ts = new TestSelector(tsval);
TestTreatment tr = new TestTreatment(trval);
- return new DefaultFlowRule(DID, ts, tr);
+ return new DefaultFlowRule(DID, ts, tr, 0);
}
private void addFlowRule(int hval) {
@@ -142,14 +140,14 @@
FlowRule r3 = flowRule(1, 3);
//current FlowRules always return 0. FlowEntries inherit the value
- FlowEntry e1 = new DefaultFlowEntry(DID, ts, r1.treatment(), 0);
- FlowEntry e2 = new DefaultFlowEntry(DID, ts, r2.treatment(), 0);
- FlowEntry e3 = new DefaultFlowEntry(DID, ts, r3.treatment(), 0);
- List<FlowEntry> fel = Lists.newArrayList(e1, e2, e3);
+ FlowRule e1 = new DefaultFlowRule(DID, ts, r1.treatment(), 0);
+ FlowRule e2 = new DefaultFlowRule(DID, ts, r2.treatment(), 0);
+ FlowRule e3 = new DefaultFlowRule(DID, ts, r3.treatment(), 0);
+ List<FlowRule> fel = Lists.newArrayList(e1, e2, e3);
assertTrue("store should be empty",
Sets.newHashSet(service.getFlowEntries(DID)).isEmpty());
- List<FlowEntry> ret = mgr.applyFlowRules(r1, r2, r3);
+ List<FlowRule> ret = mgr.applyFlowRules(r1, r2, r3);
assertEquals("3 rules should exist", 3, flowCount());
assertTrue("3 entries should result", fel.containsAll(ret));
}
@@ -255,17 +253,12 @@
public void removeFlowRule(FlowRule... flowRules) {
}
- @Override
- public Iterable<FlowEntry> getFlowMetrics(DeviceId deviceId) {
- return null;
- }
-
}
private class TestSelector implements TrafficSelector {
//for controlling hashcode uniqueness;
- private int testval;
+ private final int testval;
public TestSelector(int val) {
testval = val;
@@ -293,7 +286,7 @@
private class TestTreatment implements TrafficTreatment {
//for controlling hashcode uniqueness;
- private int testval;
+ private final int testval;
public TestTreatment(int val) {
testval = val;
diff --git a/core/trivial/src/test/java/org/onlab/onos/net/trivial/host/impl/SimpleHostManagerTest.java b/core/trivial/src/test/java/org/onlab/onos/net/trivial/host/impl/SimpleHostManagerTest.java
index b1b825e..67c14b0 100644
--- a/core/trivial/src/test/java/org/onlab/onos/net/trivial/host/impl/SimpleHostManagerTest.java
+++ b/core/trivial/src/test/java/org/onlab/onos/net/trivial/host/impl/SimpleHostManagerTest.java
@@ -42,7 +42,7 @@
*/
public class SimpleHostManagerTest {
- private static final ProviderId PID = new ProviderId("foo");
+ private static final ProviderId PID = new ProviderId("of", "foo");
private static final VlanId VLAN1 = VlanId.vlanId((short) 1);
private static final VlanId VLAN2 = VlanId.vlanId((short) 2);
diff --git a/core/trivial/src/test/java/org/onlab/onos/net/trivial/link/impl/SimpleLinkManagerTest.java b/core/trivial/src/test/java/org/onlab/onos/net/trivial/link/impl/SimpleLinkManagerTest.java
index 3702b0a..93610b5 100644
--- a/core/trivial/src/test/java/org/onlab/onos/net/trivial/link/impl/SimpleLinkManagerTest.java
+++ b/core/trivial/src/test/java/org/onlab/onos/net/trivial/link/impl/SimpleLinkManagerTest.java
@@ -40,7 +40,7 @@
*/
public class SimpleLinkManagerTest {
- private static final ProviderId PID = new ProviderId("foo");
+ private static final ProviderId PID = new ProviderId("of", "foo");
private static final DeviceId DID1 = deviceId("of:foo");
private static final DeviceId DID2 = deviceId("of:bar");
private static final DeviceId DID3 = deviceId("of:goo");
diff --git a/core/trivial/src/test/java/org/onlab/onos/net/trivial/topology/impl/DefaultTopologyTest.java b/core/trivial/src/test/java/org/onlab/onos/net/trivial/topology/impl/DefaultTopologyTest.java
index 2520602..1fe33f6 100644
--- a/core/trivial/src/test/java/org/onlab/onos/net/trivial/topology/impl/DefaultTopologyTest.java
+++ b/core/trivial/src/test/java/org/onlab/onos/net/trivial/topology/impl/DefaultTopologyTest.java
@@ -29,7 +29,7 @@
*/
public class DefaultTopologyTest {
- public static final ProviderId PID = new ProviderId("foo.bar");
+ public static final ProviderId PID = new ProviderId("of", "foo.bar");
public static final DeviceId D1 = deviceId("of:1");
public static final DeviceId D2 = deviceId("of:2");
diff --git a/core/trivial/src/test/java/org/onlab/onos/net/trivial/topology/impl/SimpleTopologyManagerTest.java b/core/trivial/src/test/java/org/onlab/onos/net/trivial/topology/impl/SimpleTopologyManagerTest.java
index 1480cec..b0b1eed 100644
--- a/core/trivial/src/test/java/org/onlab/onos/net/trivial/topology/impl/SimpleTopologyManagerTest.java
+++ b/core/trivial/src/test/java/org/onlab/onos/net/trivial/topology/impl/SimpleTopologyManagerTest.java
@@ -43,7 +43,7 @@
*/
public class SimpleTopologyManagerTest {
- private static final ProviderId PID = new ProviderId("foo");
+ private static final ProviderId PID = new ProviderId("of", "foo");
private SimpleTopologyManager mgr;