the return of the flowentry
Change-Id: I7dbeb6af2014a4df5b0beb7fe0157eaaac63bd0f
diff --git a/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/FlowRuleBuilder.java b/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/FlowEntryBuilder.java
similarity index 91%
rename from providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/FlowRuleBuilder.java
rename to providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/FlowEntryBuilder.java
index 028e857..14c2c22 100644
--- a/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/FlowRuleBuilder.java
+++ b/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/FlowEntryBuilder.java
@@ -6,11 +6,13 @@
import org.onlab.onos.net.DeviceId;
import org.onlab.onos.net.PortNumber;
+import org.onlab.onos.net.flow.DefaultFlowEntry;
import org.onlab.onos.net.flow.DefaultFlowRule;
import org.onlab.onos.net.flow.DefaultTrafficSelector;
import org.onlab.onos.net.flow.DefaultTrafficTreatment;
+import org.onlab.onos.net.flow.FlowEntry;
+import org.onlab.onos.net.flow.FlowEntry.FlowEntryState;
import org.onlab.onos.net.flow.FlowRule;
-import org.onlab.onos.net.flow.FlowRule.FlowRuleState;
import org.onlab.onos.net.flow.TrafficSelector;
import org.onlab.onos.net.flow.TrafficTreatment;
import org.onlab.onos.openflow.controller.Dpid;
@@ -37,7 +39,7 @@
import com.google.common.collect.Lists;
-public class FlowRuleBuilder {
+public class FlowEntryBuilder {
private final Logger log = getLogger(getClass());
private final OFFlowStatsEntry stat;
@@ -51,7 +53,7 @@
private final boolean addedRule;
- public FlowRuleBuilder(Dpid dpid, OFFlowStatsEntry entry) {
+ public FlowEntryBuilder(Dpid dpid, OFFlowStatsEntry entry) {
this.stat = entry;
this.match = entry.getMatch();
this.actions = getActions(entry);
@@ -60,7 +62,7 @@
this.addedRule = true;
}
- public FlowRuleBuilder(Dpid dpid, OFFlowRemoved removed) {
+ public FlowEntryBuilder(Dpid dpid, OFFlowRemoved removed) {
this.match = removed.getMatch();
this.removed = removed;
@@ -71,20 +73,21 @@
}
- public FlowRule build() {
+ public FlowEntry build() {
if (addedRule) {
- return new DefaultFlowRule(DeviceId.deviceId(Dpid.uri(dpid)),
+ FlowRule rule = new DefaultFlowRule(DeviceId.deviceId(Dpid.uri(dpid)),
buildSelector(), buildTreatment(), stat.getPriority(),
- FlowRuleState.ADDED, stat.getDurationSec(),
- stat.getPacketCount().getValue(), stat.getByteCount().getValue(),
stat.getCookie().getValue(), stat.getIdleTimeout());
+ return new DefaultFlowEntry(rule, FlowEntryState.ADDED,
+ stat.getDurationSec(), stat.getPacketCount().getValue(),
+ stat.getByteCount().getValue());
+
} else {
- // TODO: revisit potentially.
- return new DefaultFlowRule(DeviceId.deviceId(Dpid.uri(dpid)),
+ FlowRule rule = new DefaultFlowRule(DeviceId.deviceId(Dpid.uri(dpid)),
buildSelector(), null, removed.getPriority(),
- FlowRuleState.REMOVED, removed.getDurationSec(),
- removed.getPacketCount().getValue(), removed.getByteCount().getValue(),
- removed.getCookie().getValue(), removed.getIdleTimeout());
+ removed.getCookie().getValue(), removed.getIdleTimeout());
+ return new DefaultFlowEntry(rule, FlowEntryState.REMOVED, removed.getDurationSec(),
+ removed.getPacketCount().getValue(), removed.getByteCount().getValue());
}
}
diff --git a/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/OpenFlowRuleProvider.java b/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/OpenFlowRuleProvider.java
index c4507b4..eac3c18 100644
--- a/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/OpenFlowRuleProvider.java
+++ b/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/OpenFlowRuleProvider.java
@@ -12,6 +12,7 @@
import org.apache.felix.scr.annotations.ReferenceCardinality;
import org.onlab.onos.ApplicationId;
import org.onlab.onos.net.DeviceId;
+import org.onlab.onos.net.flow.FlowEntry;
import org.onlab.onos.net.flow.FlowRule;
import org.onlab.onos.net.flow.FlowRuleProvider;
import org.onlab.onos.net.flow.FlowRuleProviderRegistry;
@@ -131,7 +132,7 @@
implements OpenFlowSwitchListener, OpenFlowEventListener {
private final Map<Dpid, FlowStatsCollector> collectors = Maps.newHashMap();
- private final Multimap<DeviceId, FlowRule> completeEntries =
+ private final Multimap<DeviceId, FlowEntry> completeEntries =
ArrayListMultimap.create();
@Override
@@ -158,7 +159,7 @@
//TODO: make this better
OFFlowRemoved removed = (OFFlowRemoved) msg;
- FlowRule fr = new FlowRuleBuilder(dpid, removed).build();
+ FlowEntry fr = new FlowEntryBuilder(dpid, removed).build();
providerService.flowRemoved(fr);
break;
case STATS_REPLY:
@@ -188,7 +189,7 @@
for (OFFlowStatsEntry reply : replies.getEntries()) {
if (!tableMissRule(dpid, reply)) {
- completeEntries.put(did, new FlowRuleBuilder(dpid, reply).build());
+ completeEntries.put(did, new FlowEntryBuilder(dpid, reply).build());
}
}