Don't use exceptions for commonly-used logic
+ javadocs
Change-Id: Ib4d886e10996273855ab5784dc4a0d86f5b11103
diff --git a/core/api/src/main/java/org/onosproject/net/packet/DefaultPacketContext.java b/core/api/src/main/java/org/onosproject/net/packet/DefaultPacketContext.java
index eba8e8e..5bbbb62 100644
--- a/core/api/src/main/java/org/onosproject/net/packet/DefaultPacketContext.java
+++ b/core/api/src/main/java/org/onosproject/net/packet/DefaultPacketContext.java
@@ -15,13 +15,15 @@
*/
package org.onosproject.net.packet;
-import java.util.concurrent.atomic.AtomicBoolean;
-
import org.onosproject.net.flow.DefaultTrafficTreatment;
import org.onosproject.net.flow.TrafficTreatment;
import org.onosproject.net.flow.TrafficTreatment.Builder;
+import java.util.concurrent.atomic.AtomicBoolean;
+/**
+ * Default implementation of a packet context.
+ */
public abstract class DefaultPacketContext implements PacketContext {
private final long time;
@@ -31,7 +33,14 @@
private final AtomicBoolean block;
-
+ /**
+ * Creates a new packet context.
+ *
+ * @param time creation time
+ * @param inPkt inbound packet
+ * @param outPkt outbound packet
+ * @param block whether the context is blocked or not
+ */
protected DefaultPacketContext(long time, InboundPacket inPkt,
OutboundPacket outPkt, boolean block) {
super();
diff --git a/openflow/api/src/main/java/org/onosproject/openflow/controller/DefaultOpenFlowPacketContext.java b/openflow/api/src/main/java/org/onosproject/openflow/controller/DefaultOpenFlowPacketContext.java
index 7a265a0..ecc49bd 100644
--- a/openflow/api/src/main/java/org/onosproject/openflow/controller/DefaultOpenFlowPacketContext.java
+++ b/openflow/api/src/main/java/org/onosproject/openflow/controller/DefaultOpenFlowPacketContext.java
@@ -19,6 +19,7 @@
import org.onlab.packet.Ethernet;
import org.projectfloodlight.openflow.protocol.OFPacketIn;
import org.projectfloodlight.openflow.protocol.OFPacketOut;
+import org.projectfloodlight.openflow.protocol.OFVersion;
import org.projectfloodlight.openflow.protocol.action.OFAction;
import org.projectfloodlight.openflow.protocol.action.OFActionOutput;
import org.projectfloodlight.openflow.protocol.match.MatchField;
@@ -29,6 +30,9 @@
import java.util.Collections;
import java.util.concurrent.atomic.AtomicBoolean;
+/**
+ * Default implementation of an OpenFlowPacketContext.
+ */
public final class DefaultOpenFlowPacketContext implements OpenFlowPacketContext {
private final AtomicBoolean free = new AtomicBoolean(true);
@@ -99,6 +103,13 @@
return new Dpid(sw.getId());
}
+ /**
+ * Creates an OpenFlow packet context based on a packet-in.
+ *
+ * @param s OpenFlow switch
+ * @param pkt OpenFlow packet-in
+ * @return the OpenFlow packet context
+ */
public static OpenFlowPacketContext packetContextFromPacketIn(OpenFlowSwitch s,
OFPacketIn pkt) {
return new DefaultOpenFlowPacketContext(s, pkt);
@@ -110,12 +121,10 @@
}
private OFPort pktinInPort() {
- //FIXME: this has to change in loxi
- try {
+ if (pktin.getVersion() == OFVersion.OF_10) {
return pktin.getInPort();
- } catch (UnsupportedOperationException e) {
- return pktin.getMatch().get(MatchField.IN_PORT);
}
+ return pktin.getMatch().get(MatchField.IN_PORT);
}
@Override
diff --git a/providers/openflow/packet/src/main/java/org/onosproject/provider/of/packet/impl/OpenFlowCorePacketContext.java b/providers/openflow/packet/src/main/java/org/onosproject/provider/of/packet/impl/OpenFlowCorePacketContext.java
index 5b7487b..9ea728a 100644
--- a/providers/openflow/packet/src/main/java/org/onosproject/provider/of/packet/impl/OpenFlowCorePacketContext.java
+++ b/providers/openflow/packet/src/main/java/org/onosproject/provider/of/packet/impl/OpenFlowCorePacketContext.java
@@ -28,10 +28,22 @@
import java.util.List;
+/**
+ * Packet context used with the OpenFlow providers.
+ */
public class OpenFlowCorePacketContext extends DefaultPacketContext {
private final OpenFlowPacketContext ofPktCtx;
+ /**
+ * Creates a new OpenFlow core packet context.
+ *
+ * @param time creation time
+ * @param inPkt inbound packet
+ * @param outPkt outbound packet
+ * @param block whether the context is blocked or not
+ * @param ofPktCtx OpenFlow packet context
+ */
protected OpenFlowCorePacketContext(long time, InboundPacket inPkt,
OutboundPacket outPkt, boolean block,
OpenFlowPacketContext ofPktCtx) {