Consolidated FlowEntry into FlowRule
Change-Id: I349d73abba3336f4c79429efb5717e0a8c374a30
diff --git a/core/api/src/main/java/org/onlab/onos/net/flow/DefaultFlowRule.java b/core/api/src/main/java/org/onlab/onos/net/flow/DefaultFlowRule.java
index d20e79e..6801e8a 100644
--- a/core/api/src/main/java/org/onlab/onos/net/flow/DefaultFlowRule.java
+++ b/core/api/src/main/java/org/onlab/onos/net/flow/DefaultFlowRule.java
@@ -1,24 +1,37 @@
package org.onlab.onos.net.flow;
+import static com.google.common.base.MoreObjects.toStringHelper;
+
import org.onlab.onos.net.DeviceId;
public class DefaultFlowRule implements FlowRule {
+ private final DeviceId deviceId;
+ private final int priority;
private final TrafficSelector selector;
private final TrafficTreatment treatment;
- private final DeviceId deviceId;
+ private final FlowId id;
+ private final long created;
+
public DefaultFlowRule(DeviceId deviceId,
- TrafficSelector selector, TrafficTreatment treatment) {
- this.treatment = treatment;
- this.selector = selector;
+ TrafficSelector selector, TrafficTreatment treatment, int priority) {
this.deviceId = deviceId;
+ this.priority = priority;
+ this.selector = selector;
+ this.treatment = treatment;
+ this.id = FlowId.valueOf(this.hashCode());
+ this.created = System.currentTimeMillis();
+ }
+
+ @Override
+ public FlowId id() {
+ return id;
}
@Override
public int priority() {
- // is this supposed to be 0?
- return 0;
+ return priority;
}
@Override
@@ -37,6 +50,35 @@
}
@Override
+ public long lifeMillis() {
+ return (created - System.currentTimeMillis());
+ }
+
+ @Override
+ public long idleMillis() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public long packets() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public long bytes() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ /*
+ * The priority and statistics can change on a given treatment and selector
+ *
+ * (non-Javadoc)
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
public int hashCode() {
final int prime = 31;
int result = prime * this.deviceId().hashCode();
@@ -69,5 +111,16 @@
return false;
}
+ @Override
+ public String toString() {
+ return toStringHelper(this)
+ .add("id", id)
+ .add("deviceId", deviceId)
+ .add("priority", priority)
+ .add("selector", selector)
+ .add("treatment", treatment)
+ .add("created", created)
+ .toString();
+ }
}