diff --git a/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/PcepMessage.java b/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/PcepMessage.java
new file mode 100755
index 0000000..a6a71a1
--- /dev/null
+++ b/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/PcepMessage.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.pcepio.protocol;
+
+import org.jboss.netty.buffer.ChannelBuffer;
+import org.onosproject.pcepio.exceptions.PcepParseException;
+
+/**
+ * Abstraction of an entity providing PCEP Messages.
+ */
+public interface PcepMessage extends PcepObject {
+
+    @Override
+    PcepVersion getVersion();
+
+    /**
+     * Returns Type of PCEP Message.
+     *
+     * @return Type of PCEP Message
+     */
+    PcepType getType();
+
+    /**
+     * Prints attributes of PCEP Messages.
+     */
+    void print();
+
+    @Override
+    void writeTo(ChannelBuffer channelBuffer) throws PcepParseException;
+
+    /**
+     * Builder interface with get and set functions to build PCEP Message.
+     */
+    public interface Builder {
+
+        /**
+         * Builds PCEP Message.
+         *
+         * @return PCEP Message
+         * @throws PcepParseException when build fails to create PCEP message
+         */
+        PcepMessage build() throws PcepParseException;
+
+        /**
+         * Returns Version of PCEP Message.
+         *
+         * @return Version of PCEP Message
+         */
+        PcepVersion getVersion();
+
+        /**
+         * Returns Type of PCEP Message.
+         *
+         * @return Type of PCEP Message
+         */
+        PcepType getType();
+    }
+}
