blob: 5a0f55ba936f512e83cd8b44edb479b27650aa72 [file] [log] [blame]
alshabibca5706c2014-10-04 20:29:41 -07001package org.onlab.onos.net.flow;
2
3import static com.google.common.base.MoreObjects.toStringHelper;
4import static org.slf4j.LoggerFactory.getLogger;
5
6import org.onlab.onos.net.DeviceId;
7import org.slf4j.Logger;
8
9public class DefaultFlowEntry extends DefaultFlowRule implements FlowEntry {
10
11 private final Logger log = getLogger(getClass());
12
13 private long life;
14 private long packets;
15 private long bytes;
16 private FlowEntryState state;
17
18 private long lastSeen = -1;
19
20
21 public DefaultFlowEntry(DeviceId deviceId, TrafficSelector selector,
22 TrafficTreatment treatment, int priority, FlowEntryState state,
23 long life, long packets, long bytes, long flowId,
24 int timeout) {
25 super(deviceId, selector, treatment, priority, flowId, timeout);
26 this.state = state;
27 this.life = life;
28 this.packets = packets;
29 this.bytes = bytes;
30 this.lastSeen = System.currentTimeMillis();
31 }
32
33 public DefaultFlowEntry(FlowRule rule, FlowEntryState state,
34 long life, long packets, long bytes) {
35 super(rule);
36 this.state = state;
37 this.life = life;
38 this.packets = packets;
39 this.bytes = bytes;
40 this.lastSeen = System.currentTimeMillis();
41 }
42
43 public DefaultFlowEntry(FlowRule rule) {
44 super(rule);
45 this.state = FlowEntryState.PENDING_ADD;
46 this.life = 0;
47 this.packets = 0;
48 this.bytes = 0;
49 this.lastSeen = System.currentTimeMillis();
50 }
51
52 @Override
53 public long life() {
54 return life;
55 }
56
57 @Override
58 public long packets() {
59 return packets;
60 }
61
62 @Override
63 public long bytes() {
64 return bytes;
65 }
66
67 @Override
68 public FlowEntryState state() {
69 return this.state;
70 }
71
72 @Override
73 public long lastSeen() {
74 return lastSeen;
75 }
76
77 @Override
78 public void setLastSeen() {
79 this.lastSeen = System.currentTimeMillis();
80 }
81
82 @Override
83 public void setState(FlowEntryState newState) {
84 this.state = newState;
85 }
86
87 @Override
88 public void setLife(long life) {
89 this.life = life;
90 }
91
92 @Override
93 public void setPackets(long packets) {
94 this.packets = packets;
95 }
96
97 @Override
98 public void setBytes(long bytes) {
99 this.bytes = bytes;
100 }
101
102 @Override
103 public String toString() {
104 return toStringHelper(this)
105 .add("rule", super.toString())
106 .add("state", state)
107 .toString();
108 }
109
110
111}