diff --git a/core/api/src/main/java/org/onosproject/net/packet/DefaultInboundPacket.java b/core/api/src/main/java/org/onosproject/net/packet/DefaultInboundPacket.java
index 96f872f..3f5f138 100644
--- a/core/api/src/main/java/org/onosproject/net/packet/DefaultInboundPacket.java
+++ b/core/api/src/main/java/org/onosproject/net/packet/DefaultInboundPacket.java
@@ -20,6 +20,7 @@
 
 import java.nio.ByteBuffer;
 import java.util.Objects;
+import java.util.Optional;
 
 import static com.google.common.base.MoreObjects.toStringHelper;
 
@@ -31,6 +32,7 @@
     private final ConnectPoint receivedFrom;
     private final Ethernet parsed;
     private final ByteBuffer unparsed;
+    private final Optional<Long> cookie;
 
     /**
      * Creates an immutable inbound packet.
@@ -39,11 +41,25 @@
      * @param parsed       parsed ethernet frame
      * @param unparsed     unparsed raw bytes
      */
-    public  DefaultInboundPacket(ConnectPoint receivedFrom, Ethernet parsed,
+    public DefaultInboundPacket(ConnectPoint receivedFrom, Ethernet parsed,
                                 ByteBuffer unparsed) {
+        this(receivedFrom, parsed, unparsed, Optional.empty());
+    }
+
+    /**
+     * Creates an immutable inbound packet with cookie.
+     *
+     * @param receivedFrom connection point where received
+     * @param parsed       parsed ethernet frame
+     * @param unparsed     unparsed raw bytes
+     * @param cookie       cookie
+     */
+    public DefaultInboundPacket(ConnectPoint receivedFrom, Ethernet parsed,
+            ByteBuffer unparsed, Optional<Long> cookie) {
         this.receivedFrom = receivedFrom;
         this.parsed = parsed;
         this.unparsed = unparsed;
+        this.cookie = cookie;
     }
 
     @Override
@@ -63,6 +79,11 @@
     }
 
     @Override
+    public Optional<Long> cookie() {
+        return cookie;
+    }
+
+    @Override
     public int hashCode() {
         return Objects.hash(receivedFrom, parsed, unparsed);
     }
diff --git a/core/api/src/main/java/org/onosproject/net/packet/InboundPacket.java b/core/api/src/main/java/org/onosproject/net/packet/InboundPacket.java
index 3fd5814..48fdb20 100644
--- a/core/api/src/main/java/org/onosproject/net/packet/InboundPacket.java
+++ b/core/api/src/main/java/org/onosproject/net/packet/InboundPacket.java
@@ -19,6 +19,7 @@
 import org.onlab.packet.Ethernet;
 
 import java.nio.ByteBuffer;
+import java.util.Optional;
 
 /**
  * Represents a data packet intercepted from an infrastructure device.
@@ -47,4 +48,10 @@
      */
     ByteBuffer unparsed();
 
+    /**
+     * Returns the cookie in the packet in message.
+     *
+     * @return optional flow cookie
+     */
+    Optional<Long> cookie();
 }
