avoid other OF listeners overwriting the priority of another listener
diff --git a/core/api/src/main/java/org/onlab/onos/net/PortNumber.java b/core/api/src/main/java/org/onlab/onos/net/PortNumber.java
index 93ec91d..56e15a2 100644
--- a/core/api/src/main/java/org/onlab/onos/net/PortNumber.java
+++ b/core/api/src/main/java/org/onlab/onos/net/PortNumber.java
@@ -13,12 +13,13 @@
private static final long MAX_NUMBER = (2L * Integer.MAX_VALUE) + 1;
- public static final PortNumber FLOOD = new PortNumber(-1);
- public static final PortNumber IN_PORT = new PortNumber(-2);
- public static final PortNumber TABLE = new PortNumber(-3);
- public static final PortNumber NORMAL = new PortNumber(-4);
+
+ public static final PortNumber IN_PORT = new PortNumber(-8);
+ public static final PortNumber TABLE = new PortNumber(-7);
+ public static final PortNumber NORMAL = new PortNumber(-6);
+ public static final PortNumber FLOOD = new PortNumber(-5);
public static final PortNumber ALL = new PortNumber(-4);
- public static final PortNumber LOCAL = new PortNumber(-5);
+ public static final PortNumber LOCAL = new PortNumber(-2);
private final long number;
diff --git a/core/api/src/main/java/org/onlab/onos/net/packet/DefaultPacketContext.java b/core/api/src/main/java/org/onlab/onos/net/packet/DefaultPacketContext.java
index 923f168..3c2b0ea 100644
--- a/core/api/src/main/java/org/onlab/onos/net/packet/DefaultPacketContext.java
+++ b/core/api/src/main/java/org/onlab/onos/net/packet/DefaultPacketContext.java
@@ -1,5 +1,7 @@
package org.onlab.onos.net.packet;
+import java.util.concurrent.atomic.AtomicBoolean;
+
import org.onlab.onos.net.flow.DefaultTrafficTreatment;
import org.onlab.onos.net.flow.TrafficTreatment;
import org.onlab.onos.net.flow.TrafficTreatment.Builder;
@@ -12,7 +14,7 @@
private final OutboundPacket outPkt;
private final TrafficTreatment.Builder builder;
- private boolean block = false;
+ private final AtomicBoolean block;
protected DefaultPacketContext(long time, InboundPacket inPkt,
@@ -21,7 +23,7 @@
this.time = time;
this.inPkt = inPkt;
this.outPkt = outPkt;
- this.block = block;
+ this.block = new AtomicBoolean(block);
this.builder = new DefaultTrafficTreatment.Builder();
}
@@ -49,13 +51,12 @@
public abstract void send();
@Override
- public void block() {
- this.block = true;
+ public boolean blocked() {
+ return this.block.getAndSet(true);
}
@Override
public boolean isHandled() {
- return this.block;
+ return this.block.get();
}
-
}
diff --git a/core/api/src/main/java/org/onlab/onos/net/packet/PacketContext.java b/core/api/src/main/java/org/onlab/onos/net/packet/PacketContext.java
index b77635b..ce08fde 100644
--- a/core/api/src/main/java/org/onlab/onos/net/packet/PacketContext.java
+++ b/core/api/src/main/java/org/onlab/onos/net/packet/PacketContext.java
@@ -43,14 +43,13 @@
/**
* Blocks the outbound packet from being sent from this point onward.
+ * @return whether the outbound packet is blocked.
*/
- void block();
+ boolean blocked();
/**
- * Indicates whether the packet has already been handled, i.e. sent or
- * blocked.
- *
- * @return true if sent or blocked
+ * Check whether the outbound packet is blocked.
+ * @return
*/
boolean isHandled();