default packet context
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
new file mode 100644
index 0000000..6b77225
--- /dev/null
+++ b/core/api/src/main/java/org/onlab/onos/net/packet/DefaultPacketContext.java
@@ -0,0 +1,48 @@
+package org.onlab.onos.net.packet;
+
+
+public abstract class DefaultPacketContext implements PacketContext {
+
+    private final long time;
+    private final InboundPacket inPkt;
+    private final OutboundPacket outPkt;
+    private boolean block = false;
+
+    protected DefaultPacketContext(long time, InboundPacket inPkt,
+            OutboundPacket outPkt, boolean block) {
+        super();
+        this.time = time;
+        this.inPkt = inPkt;
+        this.outPkt = outPkt;
+        this.block = block;
+    }
+
+    @Override
+    public long time() {
+        return time;
+    }
+
+    @Override
+    public InboundPacket inPacket() {
+        return inPkt;
+    }
+
+    @Override
+    public OutboundPacket outPacket() {
+        return outPkt;
+    }
+
+    @Override
+    public abstract void send();
+
+    @Override
+    public void block() {
+        this.block = true;
+    }
+
+    @Override
+    public boolean isHandled() {
+        return this.block;
+    }
+
+}