PCEP Protocol code restructured to move under PCEP Server code for more readability. Later Client code can be added under client folder.

Change-Id: Ie79599a170d94d8e0a00e0d034b083b3894199ee
diff --git a/protocols/pcep/pcepio/pom.xml b/protocols/pcep/pcepio/pom.xml
index bce857f..7b06b79 100644
--- a/protocols/pcep/pcepio/pom.xml
+++ b/protocols/pcep/pcepio/pom.xml
@@ -21,7 +21,7 @@
 
     <parent>
         <groupId>org.onosproject</groupId>
-        <artifactId>onos-pcep-controller</artifactId>
+        <artifactId>onos-pcep-protocol</artifactId>
         <version>1.12.0-SNAPSHOT</version>
     </parent>
 
@@ -29,7 +29,6 @@
     <packaging>bundle</packaging>
 
     <description>ONOS Pcepio Protocol subsystem</description>
-   
 
     <dependencies>
         <dependency>
diff --git a/protocols/pcep/pom.xml b/protocols/pcep/pom.xml
index 99c0482..07b39e5 100644
--- a/protocols/pcep/pom.xml
+++ b/protocols/pcep/pom.xml
@@ -25,14 +25,13 @@
         <version>1.12.0-SNAPSHOT</version>
     </parent>
 
-    <artifactId>onos-pcep-controller</artifactId>
+    <artifactId>onos-pcep-protocol</artifactId>
     <packaging>pom</packaging>
 
     <description>ONOS Pcep Protocol subsystem</description>
 
     <modules>
-        <module>api</module>
-        <module>ctl</module>
+        <module>server</module>
         <module>pcepio</module>
     </modules>
 
diff --git a/protocols/pcep/server/BUCK b/protocols/pcep/server/BUCK
new file mode 100644
index 0000000..1835e30
--- /dev/null
+++ b/protocols/pcep/server/BUCK
@@ -0,0 +1,11 @@
+BUNDLES = [
+    '//protocols/pcep/server/api:onos-protocols-pcep-server-api',
+    '//protocols/pcep/server/ctl:onos-protocols-pcep-server-ctl',
+]
+
+onos_app (
+  title = 'PCEP Server Module',
+  category = 'Utility',
+  url = 'http://onosproject.org',
+  included_bundles = BUNDLES,
+)
diff --git a/protocols/pcep/api/BUCK b/protocols/pcep/server/api/BUCK
similarity index 100%
rename from protocols/pcep/api/BUCK
rename to protocols/pcep/server/api/BUCK
diff --git a/protocols/pcep/api/pom.xml b/protocols/pcep/server/api/pom.xml
similarity index 94%
rename from protocols/pcep/api/pom.xml
rename to protocols/pcep/server/api/pom.xml
index 8932451..0861ad3 100644
--- a/protocols/pcep/api/pom.xml
+++ b/protocols/pcep/server/api/pom.xml
@@ -21,11 +21,11 @@
 
     <parent>
         <groupId>org.onosproject</groupId>
-        <artifactId>onos-pcep-controller</artifactId>
+        <artifactId>onos-pcep-server</artifactId>
         <version>1.12.0-SNAPSHOT</version>
     </parent>
 
-    <artifactId>onos-pcep-controller-api</artifactId>
+    <artifactId>onos-pcep-server-api</artifactId>
     <packaging>bundle</packaging>
 
     <description>ONOS Pcep client controller subsystem API</description>
diff --git a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/ClientCapability.java b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/ClientCapability.java
similarity index 98%
rename from protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/ClientCapability.java
rename to protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/ClientCapability.java
index 9356747..2a6c71a 100644
--- a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/ClientCapability.java
+++ b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/ClientCapability.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller;
+package org.onosproject.pcep.server;
 
 import java.util.Objects;
 
diff --git a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/LspKey.java b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/LspKey.java
similarity index 97%
rename from protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/LspKey.java
rename to protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/LspKey.java
index ed63ee7..2cba240 100644
--- a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/LspKey.java
+++ b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/LspKey.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller;
+package org.onosproject.pcep.server;
 
 import java.util.Objects;
 
diff --git a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/LspType.java b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/LspType.java
similarity index 96%
rename from protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/LspType.java
rename to protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/LspType.java
index fae4956..6cfcd37 100644
--- a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/LspType.java
+++ b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/LspType.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.onosproject.pcep.controller;
+package org.onosproject.pcep.server;
 
 /**
  * Representation of LSP type.
diff --git a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PccId.java b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PccId.java
similarity index 97%
rename from protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PccId.java
rename to protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PccId.java
index aaa682c..9fdd605 100644
--- a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PccId.java
+++ b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PccId.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller;
+package org.onosproject.pcep.server;
 
 import org.onlab.packet.IpAddress;
 import org.onlab.util.Identifier;
diff --git a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepAnnotationKeys.java b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepAnnotationKeys.java
similarity index 97%
rename from protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepAnnotationKeys.java
rename to protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepAnnotationKeys.java
index c984d2b..bdcd35a 100644
--- a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepAnnotationKeys.java
+++ b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepAnnotationKeys.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller;
+package org.onosproject.pcep.server;
 
 /**
  * Collection of keys for annotation for PCEP tunnels.
diff --git a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepCfg.java b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepCfg.java
similarity index 96%
rename from protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepCfg.java
rename to protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepCfg.java
index d61d1cb..af5debf 100644
--- a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepCfg.java
+++ b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepCfg.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.onosproject.pcep.controller;
+package org.onosproject.pcep.server;
 
 /**
  * PCEP peer state information.
diff --git a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepClient.java b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepClient.java
similarity index 98%
rename from protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepClient.java
rename to protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepClient.java
index af7ffb8..cace76a 100644
--- a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepClient.java
+++ b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepClient.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller;
+package org.onosproject.pcep.server;
 
 import java.util.List;
 
diff --git a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepClientController.java b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepClientController.java
similarity index 98%
rename from protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepClientController.java
rename to protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepClientController.java
index 2eebe60..226944e 100644
--- a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepClientController.java
+++ b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepClientController.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller;
+package org.onosproject.pcep.server;
 
 import org.onosproject.incubator.net.tunnel.DefaultLabelStack;
 import org.onosproject.incubator.net.tunnel.LabelStack;
diff --git a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepClientListener.java b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepClientListener.java
similarity index 95%
rename from protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepClientListener.java
rename to protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepClientListener.java
index 93a4e03..5a0d5bc 100644
--- a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepClientListener.java
+++ b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepClientListener.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller;
+package org.onosproject.pcep.server;
 
 /**
  * Allows for providers interested in PCC client events to be notified.
diff --git a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepErrorDetail.java b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepErrorDetail.java
similarity index 98%
rename from protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepErrorDetail.java
rename to protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepErrorDetail.java
index 144434d..37ea6d0 100644
--- a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepErrorDetail.java
+++ b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepErrorDetail.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller;
+package org.onosproject.pcep.server;
 
 import java.util.Map;
 import java.util.TreeMap;
diff --git a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepErrorType.java b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepErrorType.java
similarity index 96%
rename from protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepErrorType.java
rename to protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepErrorType.java
index 8186bb6..8d51999 100644
--- a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepErrorType.java
+++ b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepErrorType.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller;
+package org.onosproject.pcep.server;
 
 /**
  * PCEP error message type information.
diff --git a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepEventListener.java b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepEventListener.java
similarity index 96%
rename from protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepEventListener.java
rename to protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepEventListener.java
index 491de69..06d49ed 100644
--- a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepEventListener.java
+++ b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepEventListener.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller;
+package org.onosproject.pcep.server;
 
 import org.onosproject.incubator.net.tunnel.Tunnel;
 import org.onosproject.pcepio.protocol.PcepMessage;
diff --git a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepLspStatus.java b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepLspStatus.java
similarity index 97%
rename from protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepLspStatus.java
rename to protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepLspStatus.java
index b237e84..9ced00a 100644
--- a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepLspStatus.java
+++ b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepLspStatus.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller;
+package org.onosproject.pcep.server;
 
 import org.onosproject.incubator.net.tunnel.Tunnel.State;
 
diff --git a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepLspSyncAction.java b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepLspSyncAction.java
similarity index 96%
rename from protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepLspSyncAction.java
rename to protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepLspSyncAction.java
index cdbe539..c120df3 100644
--- a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepLspSyncAction.java
+++ b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepLspSyncAction.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller;
+package org.onosproject.pcep.server;
 
 /**
  * Representation of actions to be taken for LSPs on end of LSP-DB sync.
diff --git a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepNodeListener.java b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepNodeListener.java
similarity index 95%
rename from protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepNodeListener.java
rename to protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepNodeListener.java
index 4b423ff..1bb0b95 100644
--- a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepNodeListener.java
+++ b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepNodeListener.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller;
+package org.onosproject.pcep.server;
 
 /**
  * Notifies providers about PCEP node events.
diff --git a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepPacketStats.java b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepPacketStats.java
similarity index 96%
rename from protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepPacketStats.java
rename to protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepPacketStats.java
index 5d714c3..5802cc5 100644
--- a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepPacketStats.java
+++ b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepPacketStats.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller;
+package org.onosproject.pcep.server;
 
 /**
  * The representation for PCEP packet statistics.
diff --git a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepSyncStatus.java b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepSyncStatus.java
similarity index 96%
rename from protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepSyncStatus.java
rename to protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepSyncStatus.java
index 51b2c32..e487b95 100644
--- a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/PcepSyncStatus.java
+++ b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/PcepSyncStatus.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller;
+package org.onosproject.pcep.server;
 
 /**
  * Representation of PCEP database sync status on session establishment.
diff --git a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/SrpIdGenerators.java b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/SrpIdGenerators.java
similarity index 97%
rename from protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/SrpIdGenerators.java
rename to protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/SrpIdGenerators.java
index 4a85ff2..8d73287 100644
--- a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/SrpIdGenerators.java
+++ b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/SrpIdGenerators.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller;
+package org.onosproject.pcep.server;
 
 import static org.slf4j.LoggerFactory.getLogger;
 
diff --git a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/driver/PcepAgent.java b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/driver/PcepAgent.java
similarity index 94%
rename from protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/driver/PcepAgent.java
rename to protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/driver/PcepAgent.java
index b9b0ff8..42f25cc 100644
--- a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/driver/PcepAgent.java
+++ b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/driver/PcepAgent.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller.driver;
+package org.onosproject.pcep.server.driver;
 
-import org.onosproject.pcep.controller.PccId;
-import org.onosproject.pcep.controller.PcepClient;
+import org.onosproject.pcep.server.PccId;
+import org.onosproject.pcep.server.PcepClient;
 import org.onosproject.pcepio.protocol.PcepMessage;
 
 /**
diff --git a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/driver/PcepClientDriver.java b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/driver/PcepClientDriver.java
similarity index 92%
rename from protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/driver/PcepClientDriver.java
rename to protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/driver/PcepClientDriver.java
index 4ac9d4a..58fc33f 100644
--- a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/driver/PcepClientDriver.java
+++ b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/driver/PcepClientDriver.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller.driver;
+package org.onosproject.pcep.server.driver;
 
 import org.jboss.netty.channel.Channel;
-import org.onosproject.pcep.controller.PccId;
-import org.onosproject.pcep.controller.PcepClient;
-import org.onosproject.pcep.controller.PcepPacketStats;
+import org.onosproject.pcep.server.PccId;
+import org.onosproject.pcep.server.PcepClient;
+import org.onosproject.pcep.server.PcepPacketStats;
 import org.onosproject.pcepio.protocol.PcepVersion;
 
 
diff --git a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/driver/PcepClientDriverFactory.java b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/driver/PcepClientDriverFactory.java
similarity index 95%
rename from protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/driver/PcepClientDriverFactory.java
rename to protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/driver/PcepClientDriverFactory.java
index 734f508..46e04ff 100644
--- a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/driver/PcepClientDriverFactory.java
+++ b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/driver/PcepClientDriverFactory.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller.driver;
+package org.onosproject.pcep.server.driver;
 
 import org.onlab.packet.IpAddress;
 import org.onosproject.pcepio.protocol.PcepVersion;
diff --git a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/driver/package-info.java b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/driver/package-info.java
similarity index 92%
rename from protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/driver/package-info.java
rename to protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/driver/package-info.java
index c6bee47..6e542e7 100644
--- a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/driver/package-info.java
+++ b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/driver/package-info.java
@@ -17,4 +17,4 @@
 /**
  * PCEP client controller driver API.
  */
-package org.onosproject.pcep.controller.driver;
+package org.onosproject.pcep.server.driver;
diff --git a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/package-info.java b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/package-info.java
similarity index 93%
rename from protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/package-info.java
rename to protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/package-info.java
index 753952b..8ed1233 100644
--- a/protocols/pcep/api/src/main/java/org/onosproject/pcep/controller/package-info.java
+++ b/protocols/pcep/server/api/src/main/java/org/onosproject/pcep/server/package-info.java
@@ -17,4 +17,4 @@
 /**
  * PCEP client controller API.
  */
-package org.onosproject.pcep.controller;
+package org.onosproject.pcep.server;
diff --git a/protocols/pcep/ctl/BUCK b/protocols/pcep/server/ctl/BUCK
similarity index 84%
rename from protocols/pcep/ctl/BUCK
rename to protocols/pcep/server/ctl/BUCK
index 9eb1a8c..e247e20 100644
--- a/protocols/pcep/ctl/BUCK
+++ b/protocols/pcep/server/ctl/BUCK
@@ -5,7 +5,7 @@
     '//lib:KRYO',
     '//incubator/api:onos-incubator-api',
     '//protocols/pcep/pcepio:onos-protocols-pcep-pcepio',
-    '//protocols/pcep/api:onos-protocols-pcep-api',
+    '//protocols/pcep/server/api:onos-protocols-pcep-server-api',
     '//core/store/serializers:onos-core-serializers',
     '//apps/pcep-api:onos-apps-pcep-api',
     '//lib:netty',
diff --git a/protocols/pcep/ctl/pom.xml b/protocols/pcep/server/ctl/pom.xml
similarity index 92%
rename from protocols/pcep/ctl/pom.xml
rename to protocols/pcep/server/ctl/pom.xml
index 269117a..69b62fd 100644
--- a/protocols/pcep/ctl/pom.xml
+++ b/protocols/pcep/server/ctl/pom.xml
@@ -20,11 +20,11 @@
 
     <parent>
         <groupId>org.onosproject</groupId>
-        <artifactId>onos-pcep-controller</artifactId>
+        <artifactId>onos-pcep-server</artifactId>
         <version>1.12.0-SNAPSHOT</version>
     </parent>
 
-    <artifactId>onos-pcep-controller-impl</artifactId>
+    <artifactId>onos-pcep-server-impl</artifactId>
     <packaging>bundle</packaging>
 
     <description>ONOS PCEP client controller subsystem API implementation</description>
@@ -32,7 +32,7 @@
     <dependencies>
         <dependency>
             <groupId>org.onosproject</groupId>
-            <artifactId>onos-pcep-controller-api</artifactId>
+            <artifactId>onos-pcep-server-api</artifactId>
         </dependency>
         <dependency>
             <groupId>io.netty</groupId>
diff --git a/protocols/pcep/ctl/src/main/java/org/onosproject/pcelabelstore/DefaultLspLocalLabelInfo.java b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcelabelstore/DefaultLspLocalLabelInfo.java
similarity index 100%
rename from protocols/pcep/ctl/src/main/java/org/onosproject/pcelabelstore/DefaultLspLocalLabelInfo.java
rename to protocols/pcep/server/ctl/src/main/java/org/onosproject/pcelabelstore/DefaultLspLocalLabelInfo.java
diff --git a/protocols/pcep/ctl/src/main/java/org/onosproject/pcelabelstore/DistributedPceLabelStore.java b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcelabelstore/DistributedPceLabelStore.java
similarity index 100%
rename from protocols/pcep/ctl/src/main/java/org/onosproject/pcelabelstore/DistributedPceLabelStore.java
rename to protocols/pcep/server/ctl/src/main/java/org/onosproject/pcelabelstore/DistributedPceLabelStore.java
diff --git a/protocols/pcep/ctl/src/main/java/org/onosproject/pcelabelstore/PcepLabelOp.java b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcelabelstore/PcepLabelOp.java
similarity index 100%
rename from protocols/pcep/ctl/src/main/java/org/onosproject/pcelabelstore/PcepLabelOp.java
rename to protocols/pcep/server/ctl/src/main/java/org/onosproject/pcelabelstore/PcepLabelOp.java
diff --git a/protocols/pcep/ctl/src/main/java/org/onosproject/pcelabelstore/api/LspLocalLabelInfo.java b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcelabelstore/api/LspLocalLabelInfo.java
similarity index 100%
rename from protocols/pcep/ctl/src/main/java/org/onosproject/pcelabelstore/api/LspLocalLabelInfo.java
rename to protocols/pcep/server/ctl/src/main/java/org/onosproject/pcelabelstore/api/LspLocalLabelInfo.java
diff --git a/protocols/pcep/ctl/src/main/java/org/onosproject/pcelabelstore/api/PceLabelStore.java b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcelabelstore/api/PceLabelStore.java
similarity index 100%
rename from protocols/pcep/ctl/src/main/java/org/onosproject/pcelabelstore/api/PceLabelStore.java
rename to protocols/pcep/server/ctl/src/main/java/org/onosproject/pcelabelstore/api/PceLabelStore.java
diff --git a/protocols/pcep/ctl/src/main/java/org/onosproject/pcelabelstore/api/package-info.java b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcelabelstore/api/package-info.java
similarity index 100%
rename from protocols/pcep/ctl/src/main/java/org/onosproject/pcelabelstore/api/package-info.java
rename to protocols/pcep/server/ctl/src/main/java/org/onosproject/pcelabelstore/api/package-info.java
diff --git a/protocols/pcep/ctl/src/main/java/org/onosproject/pcelabelstore/package-info.java b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcelabelstore/package-info.java
similarity index 100%
rename from protocols/pcep/ctl/src/main/java/org/onosproject/pcelabelstore/package-info.java
rename to protocols/pcep/server/ctl/src/main/java/org/onosproject/pcelabelstore/package-info.java
diff --git a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/BasicPceccHandler.java b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/BasicPceccHandler.java
similarity index 97%
rename from protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/BasicPceccHandler.java
rename to protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/BasicPceccHandler.java
index dae8a1c..c547b35 100644
--- a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/BasicPceccHandler.java
+++ b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/BasicPceccHandler.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller.impl;
+package org.onosproject.pcep.server.impl;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 
@@ -40,12 +40,12 @@
 import org.onosproject.pcelabelstore.PcepLabelOp;
 import org.onosproject.pcelabelstore.api.LspLocalLabelInfo;
 import org.onosproject.pcelabelstore.api.PceLabelStore;
-import org.onosproject.pcep.controller.LspType;
-import org.onosproject.pcep.controller.PccId;
-import org.onosproject.pcep.controller.PcepAnnotationKeys;
-import org.onosproject.pcep.controller.PcepClient;
-import org.onosproject.pcep.controller.PcepClientController;
-import org.onosproject.pcep.controller.SrpIdGenerators;
+import org.onosproject.pcep.server.LspType;
+import org.onosproject.pcep.server.PccId;
+import org.onosproject.pcep.server.PcepAnnotationKeys;
+import org.onosproject.pcep.server.PcepClient;
+import org.onosproject.pcep.server.PcepClientController;
+import org.onosproject.pcep.server.SrpIdGenerators;
 import org.onosproject.pcepio.exceptions.PcepParseException;
 import org.onosproject.pcepio.protocol.PcepAttribute;
 import org.onosproject.pcepio.protocol.PcepBandwidthObject;
@@ -73,10 +73,10 @@
 import com.google.common.collect.ArrayListMultimap;
 import com.google.common.collect.Multimap;
 
-import static org.onosproject.pcep.controller.PcepAnnotationKeys.BANDWIDTH;
-import static org.onosproject.pcep.controller.PcepAnnotationKeys.LSP_SIG_TYPE;
-import static org.onosproject.pcep.controller.PcepAnnotationKeys.PCE_INIT;
-import static org.onosproject.pcep.controller.PcepAnnotationKeys.DELEGATE;
+import static org.onosproject.pcep.server.PcepAnnotationKeys.BANDWIDTH;
+import static org.onosproject.pcep.server.PcepAnnotationKeys.LSP_SIG_TYPE;
+import static org.onosproject.pcep.server.PcepAnnotationKeys.PCE_INIT;
+import static org.onosproject.pcep.server.PcepAnnotationKeys.DELEGATE;
 
 /**
  * Basic PCECC handler.
diff --git a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/Controller.java b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/Controller.java
similarity index 96%
rename from protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/Controller.java
rename to protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/Controller.java
index efe4175..c85e22a 100644
--- a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/Controller.java
+++ b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/Controller.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller.impl;
+package org.onosproject.pcep.server.impl;
 
 import static org.onlab.util.Tools.groupedThreads;
 
@@ -32,11 +32,11 @@
 import org.jboss.netty.channel.group.ChannelGroup;
 import org.jboss.netty.channel.group.DefaultChannelGroup;
 import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory;
-import org.onosproject.pcep.controller.PccId;
-import org.onosproject.pcep.controller.PcepCfg;
-import org.onosproject.pcep.controller.PcepPacketStats;
-import org.onosproject.pcep.controller.driver.PcepAgent;
-import org.onosproject.pcep.controller.driver.PcepClientDriver;
+import org.onosproject.pcep.server.PccId;
+import org.onosproject.pcep.server.PcepCfg;
+import org.onosproject.pcep.server.PcepPacketStats;
+import org.onosproject.pcep.server.driver.PcepAgent;
+import org.onosproject.pcep.server.driver.PcepClientDriver;
 import org.onosproject.pcepio.protocol.PcepFactories;
 import org.onosproject.pcepio.protocol.PcepFactory;
 import org.onosproject.pcepio.protocol.PcepVersion;
diff --git a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/LabelType.java b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/LabelType.java
similarity index 95%
rename from protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/LabelType.java
rename to protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/LabelType.java
index 6bfd4c7..ca7cc7c 100644
--- a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/LabelType.java
+++ b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/LabelType.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.onosproject.pcep.controller.impl;
+package org.onosproject.pcep.server.impl;
 
 /**
  * Describes about Label type.
diff --git a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PceccSrTeBeHandler.java b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PceccSrTeBeHandler.java
similarity index 97%
rename from protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PceccSrTeBeHandler.java
rename to protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PceccSrTeBeHandler.java
index 851b0fb..8d50149 100644
--- a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PceccSrTeBeHandler.java
+++ b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PceccSrTeBeHandler.java
@@ -13,11 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller.impl;
+package org.onosproject.pcep.server.impl;
 
 import static com.google.common.base.Preconditions.checkNotNull;
-import static org.onosproject.pcep.controller.PcepSyncStatus.IN_SYNC;
-import static org.onosproject.pcep.controller.PcepSyncStatus.SYNCED;
+import static org.onosproject.pcep.server.PcepSyncStatus.IN_SYNC;
+import static org.onosproject.pcep.server.PcepSyncStatus.SYNCED;
 
 import java.util.Collection;
 import java.util.Iterator;
@@ -42,10 +42,10 @@
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.Link;
 import org.onosproject.net.Path;
-import org.onosproject.pcep.controller.PccId;
-import org.onosproject.pcep.controller.PcepClient;
-import org.onosproject.pcep.controller.PcepClientController;
-import org.onosproject.pcep.controller.SrpIdGenerators;
+import org.onosproject.pcep.server.PccId;
+import org.onosproject.pcep.server.PcepClient;
+import org.onosproject.pcep.server.PcepClientController;
+import org.onosproject.pcep.server.SrpIdGenerators;
 import org.onosproject.pcepio.exceptions.PcepParseException;
 import org.onosproject.pcepio.protocol.PcepFecObjectIPv4;
 import org.onosproject.pcepio.protocol.PcepFecObjectIPv4Adjacency;
diff --git a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepChannelHandler.java b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PcepChannelHandler.java
similarity index 98%
rename from protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepChannelHandler.java
rename to protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PcepChannelHandler.java
index dce864b..dce5fa0 100644
--- a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepChannelHandler.java
+++ b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PcepChannelHandler.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.onosproject.pcep.controller.impl;
+package org.onosproject.pcep.server.impl;
 
 import java.io.IOException;
 import java.net.InetSocketAddress;
@@ -38,10 +38,10 @@
 import org.jboss.netty.handler.timeout.IdleStateHandler;
 import org.jboss.netty.handler.timeout.ReadTimeoutException;
 import org.onlab.packet.IpAddress;
-import org.onosproject.pcep.controller.ClientCapability;
-import org.onosproject.pcep.controller.PccId;
-import org.onosproject.pcep.controller.PcepCfg;
-import org.onosproject.pcep.controller.driver.PcepClientDriver;
+import org.onosproject.pcep.server.ClientCapability;
+import org.onosproject.pcep.server.PccId;
+import org.onosproject.pcep.server.PcepCfg;
+import org.onosproject.pcep.server.driver.PcepClientDriver;
 import org.onosproject.pcepio.exceptions.PcepParseException;
 import org.onosproject.pcepio.protocol.PcepError;
 import org.onosproject.pcepio.protocol.PcepErrorInfo;
@@ -63,7 +63,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import static org.onosproject.pcep.controller.PcepSyncStatus.NOT_SYNCED;
+import static org.onosproject.pcep.server.PcepSyncStatus.NOT_SYNCED;
 
 /**
  * Channel handler deals with the pcc client connection and dispatches
diff --git a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepClientControllerImpl.java b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PcepClientControllerImpl.java
similarity index 96%
rename from protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepClientControllerImpl.java
rename to protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PcepClientControllerImpl.java
index 27c211d..2ddc819 100644
--- a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepClientControllerImpl.java
+++ b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PcepClientControllerImpl.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller.impl;
+package org.onosproject.pcep.server.impl;
 
 import java.util.Map;
 import java.util.TreeMap;
@@ -68,17 +68,17 @@
 import org.onosproject.pcelabelstore.PcepLabelOp;
 import org.onosproject.pcelabelstore.api.PceLabelStore;
 import org.onosproject.pcep.api.DeviceCapability;
-import org.onosproject.pcep.controller.LspKey;
-import org.onosproject.pcep.controller.LspType;
-import org.onosproject.pcep.controller.PccId;
-import org.onosproject.pcep.controller.PcepClient;
-import org.onosproject.pcep.controller.PcepClientController;
-import org.onosproject.pcep.controller.PcepClientListener;
-import org.onosproject.pcep.controller.PcepEventListener;
-import org.onosproject.pcep.controller.PcepLspStatus;
-import org.onosproject.pcep.controller.PcepNodeListener;
-import org.onosproject.pcep.controller.SrpIdGenerators;
-import org.onosproject.pcep.controller.driver.PcepAgent;
+import org.onosproject.pcep.server.LspKey;
+import org.onosproject.pcep.server.LspType;
+import org.onosproject.pcep.server.PccId;
+import org.onosproject.pcep.server.PcepClient;
+import org.onosproject.pcep.server.PcepClientController;
+import org.onosproject.pcep.server.PcepClientListener;
+import org.onosproject.pcep.server.PcepEventListener;
+import org.onosproject.pcep.server.PcepLspStatus;
+import org.onosproject.pcep.server.PcepNodeListener;
+import org.onosproject.pcep.server.SrpIdGenerators;
+import org.onosproject.pcep.server.driver.PcepAgent;
 import org.onosproject.pcepio.exceptions.PcepParseException;
 import org.onosproject.pcepio.protocol.PcInitiatedLspRequest;
 import org.onosproject.pcepio.protocol.PcepError;
@@ -106,24 +106,24 @@
 import com.google.common.collect.Sets;
 import static com.google.common.base.Preconditions.checkNotNull;
 
-import static org.onosproject.pcep.controller.PcepSyncStatus.IN_SYNC;
-import static org.onosproject.pcep.controller.LspType.WITHOUT_SIGNALLING_AND_WITHOUT_SR;
-import static org.onosproject.pcep.controller.LspType.WITH_SIGNALLING;
-import static org.onosproject.pcep.controller.PcepLspSyncAction.REMOVE;
-import static org.onosproject.pcep.controller.PcepLspSyncAction.SEND_UPDATE;
-import static org.onosproject.pcep.controller.PcepLspSyncAction.UNSTABLE;
+import static org.onosproject.pcep.server.PcepSyncStatus.IN_SYNC;
+import static org.onosproject.pcep.server.LspType.WITHOUT_SIGNALLING_AND_WITHOUT_SR;
+import static org.onosproject.pcep.server.LspType.WITH_SIGNALLING;
+import static org.onosproject.pcep.server.PcepLspSyncAction.REMOVE;
+import static org.onosproject.pcep.server.PcepLspSyncAction.SEND_UPDATE;
+import static org.onosproject.pcep.server.PcepLspSyncAction.UNSTABLE;
 import static org.onosproject.pcepio.types.PcepErrorDetailInfo.ERROR_TYPE_19;
 import static org.onosproject.pcepio.types.PcepErrorDetailInfo.ERROR_VALUE_5;
-import static org.onosproject.pcep.controller.PcepAnnotationKeys.BANDWIDTH;
-import static org.onosproject.pcep.controller.PcepAnnotationKeys.LOCAL_LSP_ID;
-import static org.onosproject.pcep.controller.PcepAnnotationKeys.LSP_SIG_TYPE;
-import static org.onosproject.pcep.controller.PcepAnnotationKeys.PCC_TUNNEL_ID;
-import static org.onosproject.pcep.controller.PcepAnnotationKeys.PCE_INIT;
-import static org.onosproject.pcep.controller.PcepAnnotationKeys.PLSP_ID;
-import static org.onosproject.pcep.controller.PcepAnnotationKeys.DELEGATE;
-import static org.onosproject.pcep.controller.PcepAnnotationKeys.COST_TYPE;
-import static org.onosproject.pcep.controller.PcepSyncStatus.SYNCED;
-import static org.onosproject.pcep.controller.PcepSyncStatus.NOT_SYNCED;
+import static org.onosproject.pcep.server.PcepAnnotationKeys.BANDWIDTH;
+import static org.onosproject.pcep.server.PcepAnnotationKeys.LOCAL_LSP_ID;
+import static org.onosproject.pcep.server.PcepAnnotationKeys.LSP_SIG_TYPE;
+import static org.onosproject.pcep.server.PcepAnnotationKeys.PCC_TUNNEL_ID;
+import static org.onosproject.pcep.server.PcepAnnotationKeys.PCE_INIT;
+import static org.onosproject.pcep.server.PcepAnnotationKeys.PLSP_ID;
+import static org.onosproject.pcep.server.PcepAnnotationKeys.DELEGATE;
+import static org.onosproject.pcep.server.PcepAnnotationKeys.COST_TYPE;
+import static org.onosproject.pcep.server.PcepSyncStatus.SYNCED;
+import static org.onosproject.pcep.server.PcepSyncStatus.NOT_SYNCED;
 
 /**
  * Implementation of PCEP client controller.
diff --git a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepClientImpl.java b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PcepClientImpl.java
similarity index 94%
rename from protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepClientImpl.java
rename to protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PcepClientImpl.java
index 49ea507..7e52c19 100644
--- a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepClientImpl.java
+++ b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PcepClientImpl.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.onosproject.pcep.controller.impl;
+package org.onosproject.pcep.server.impl;
 
 import java.net.InetSocketAddress;
 import java.net.SocketAddress;
@@ -27,14 +27,14 @@
 
 import org.jboss.netty.channel.Channel;
 import org.onlab.packet.IpAddress;
-import org.onosproject.pcep.controller.ClientCapability;
-import org.onosproject.pcep.controller.LspKey;
-import org.onosproject.pcep.controller.PccId;
-import org.onosproject.pcep.controller.PcepClient;
-import org.onosproject.pcep.controller.PcepPacketStats;
-import org.onosproject.pcep.controller.PcepSyncStatus;
-import org.onosproject.pcep.controller.driver.PcepAgent;
-import org.onosproject.pcep.controller.driver.PcepClientDriver;
+import org.onosproject.pcep.server.ClientCapability;
+import org.onosproject.pcep.server.LspKey;
+import org.onosproject.pcep.server.PccId;
+import org.onosproject.pcep.server.PcepClient;
+import org.onosproject.pcep.server.PcepPacketStats;
+import org.onosproject.pcep.server.PcepSyncStatus;
+import org.onosproject.pcep.server.driver.PcepAgent;
+import org.onosproject.pcep.server.driver.PcepClientDriver;
 import org.onosproject.pcepio.protocol.PcepFactories;
 import org.onosproject.pcepio.protocol.PcepFactory;
 import org.onosproject.pcepio.protocol.PcepMessage;
@@ -132,7 +132,7 @@
     @Override
     public final void setConnected(boolean connected) {
         this.connected = connected;
-    }
+    };
 
     @Override
     public final void setChannel(Channel channel) {
@@ -147,7 +147,7 @@
                 channelId = '[' + ipAddress.toString() + "]:" + inetAddress.getPort();
             }
         }
-    }
+    };
 
     @Override
     public String channelId() {
diff --git a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepConfig.java b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PcepConfig.java
similarity index 88%
rename from protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepConfig.java
rename to protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PcepConfig.java
index 5a7dda9..e6b5fe1 100644
--- a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepConfig.java
+++ b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PcepConfig.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller.impl;
+package org.onosproject.pcep.server.impl;
 
-import org.onosproject.pcep.controller.PccId;
-import org.onosproject.pcep.controller.PcepCfg;
+import org.onosproject.pcep.server.PccId;
+import org.onosproject.pcep.server.PcepCfg;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepControllerImpl.java b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PcepControllerImpl.java
similarity index 98%
rename from protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepControllerImpl.java
rename to protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PcepControllerImpl.java
index ebc7f2f..8d9bc23 100644
--- a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepControllerImpl.java
+++ b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PcepControllerImpl.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller.impl;
+package org.onosproject.pcep.server.impl;
 
 import com.google.common.collect.Sets;
 
diff --git a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepMessageDecoder.java b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PcepMessageDecoder.java
similarity index 98%
rename from protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepMessageDecoder.java
rename to protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PcepMessageDecoder.java
index 660f2d8..2c21b73 100644
--- a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepMessageDecoder.java
+++ b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PcepMessageDecoder.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller.impl;
+package org.onosproject.pcep.server.impl;
 
 import java.util.LinkedList;
 import java.util.List;
diff --git a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepMessageEncoder.java b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PcepMessageEncoder.java
similarity index 97%
rename from protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepMessageEncoder.java
rename to protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PcepMessageEncoder.java
index 7fd9c99..4c26f88 100644
--- a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepMessageEncoder.java
+++ b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PcepMessageEncoder.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller.impl;
+package org.onosproject.pcep.server.impl;
 
 import java.util.List;
 
diff --git a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepPacketStatsImpl.java b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PcepPacketStatsImpl.java
similarity index 95%
rename from protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepPacketStatsImpl.java
rename to protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PcepPacketStatsImpl.java
index e53d97c..1659247 100644
--- a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepPacketStatsImpl.java
+++ b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PcepPacketStatsImpl.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pcep.controller.impl;
+package org.onosproject.pcep.server.impl;
 
-import org.onosproject.pcep.controller.PcepPacketStats;
+import org.onosproject.pcep.server.PcepPacketStats;
 
 /**
  * The implementation for PCEP packet statistics.
diff --git a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepPipelineFactory.java b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PcepPipelineFactory.java
similarity index 97%
rename from protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepPipelineFactory.java
rename to protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PcepPipelineFactory.java
index 12603f5..f1932e9 100644
--- a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepPipelineFactory.java
+++ b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/PcepPipelineFactory.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.onosproject.pcep.controller.impl;
+package org.onosproject.pcep.server.impl;
 
 import org.jboss.netty.channel.ChannelPipeline;
 import org.jboss.netty.channel.ChannelPipelineFactory;
diff --git a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/package-info.java b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/package-info.java
similarity index 93%
rename from protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/package-info.java
rename to protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/package-info.java
index 6f45c16..4fd2660 100644
--- a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/package-info.java
+++ b/protocols/pcep/server/ctl/src/main/java/org/onosproject/pcep/server/impl/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Implementation of the PCEP client controller subsystem.
  */
-package org.onosproject.pcep.controller.impl;
+package org.onosproject.pcep.server.impl;
diff --git a/protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/DefaultLspLocalLabelInfoTest.java b/protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/DefaultLspLocalLabelInfoTest.java
similarity index 100%
rename from protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/DefaultLspLocalLabelInfoTest.java
rename to protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/DefaultLspLocalLabelInfoTest.java
diff --git a/protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/DistributedPceLabelStoreTest.java b/protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/DistributedPceLabelStoreTest.java
similarity index 100%
rename from protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/DistributedPceLabelStoreTest.java
rename to protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/DistributedPceLabelStoreTest.java
diff --git a/protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/label/BasicPceccHandlerTest.java b/protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/label/BasicPceccHandlerTest.java
similarity index 98%
rename from protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/label/BasicPceccHandlerTest.java
rename to protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/label/BasicPceccHandlerTest.java
index f918b1c..201b701 100644
--- a/protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/label/BasicPceccHandlerTest.java
+++ b/protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/label/BasicPceccHandlerTest.java
@@ -53,8 +53,8 @@
 import org.onosproject.pcelabelstore.util.LabelResourceAdapter;
 import org.onosproject.pcelabelstore.util.MockDeviceService;
 import org.onosproject.pcelabelstore.util.PceLabelStoreAdapter;
-import org.onosproject.pcep.controller.impl.BasicPceccHandler;
-import org.onosproject.pcep.controller.impl.PcepClientControllerImpl;
+import org.onosproject.pcep.server.impl.BasicPceccHandler;
+import org.onosproject.pcep.server.impl.PcepClientControllerImpl;
 import org.onosproject.net.DefaultLink;
 import org.onosproject.net.Link;
 
diff --git a/protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/label/PceccSrTeBeHandlerTest.java b/protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/label/PceccSrTeBeHandlerTest.java
similarity index 99%
rename from protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/label/PceccSrTeBeHandlerTest.java
rename to protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/label/PceccSrTeBeHandlerTest.java
index 20bd5a4..38ea63a 100644
--- a/protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/label/PceccSrTeBeHandlerTest.java
+++ b/protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/label/PceccSrTeBeHandlerTest.java
@@ -51,8 +51,8 @@
 import org.onosproject.pcelabelstore.util.PceLabelStoreAdapter;
 import org.onosproject.pcelabelstore.util.PcepClientAdapter;
 import org.onosproject.pcep.api.DeviceCapability;
-import org.onosproject.pcep.controller.PccId;
-import org.onosproject.pcep.controller.impl.PceccSrTeBeHandler;
+import org.onosproject.pcep.server.PccId;
+import org.onosproject.pcep.server.impl.PceccSrTeBeHandler;
 import org.onosproject.pcepio.protocol.PcepVersion;
 import org.onosproject.net.DefaultLink;
 import org.onosproject.net.Link;
diff --git a/protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/ConsistentMapAdapter.java b/protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/ConsistentMapAdapter.java
similarity index 100%
rename from protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/ConsistentMapAdapter.java
rename to protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/ConsistentMapAdapter.java
diff --git a/protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/DistributedSetAdapter.java b/protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/DistributedSetAdapter.java
similarity index 100%
rename from protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/DistributedSetAdapter.java
rename to protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/DistributedSetAdapter.java
diff --git a/protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/EventuallyConsistentMapAdapter.java b/protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/EventuallyConsistentMapAdapter.java
similarity index 100%
rename from protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/EventuallyConsistentMapAdapter.java
rename to protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/EventuallyConsistentMapAdapter.java
diff --git a/protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/LabelResourceAdapter.java b/protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/LabelResourceAdapter.java
similarity index 100%
rename from protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/LabelResourceAdapter.java
rename to protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/LabelResourceAdapter.java
diff --git a/protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/MockDeviceService.java b/protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/MockDeviceService.java
similarity index 100%
rename from protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/MockDeviceService.java
rename to protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/MockDeviceService.java
diff --git a/protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/MockNetConfigRegistryAdapter.java b/protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/MockNetConfigRegistryAdapter.java
similarity index 100%
rename from protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/MockNetConfigRegistryAdapter.java
rename to protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/MockNetConfigRegistryAdapter.java
diff --git a/protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/MockPcepClientController.java b/protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/MockPcepClientController.java
similarity index 91%
rename from protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/MockPcepClientController.java
rename to protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/MockPcepClientController.java
index 08a314e..07bf81c 100644
--- a/protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/MockPcepClientController.java
+++ b/protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/MockPcepClientController.java
@@ -21,12 +21,12 @@
 import org.onosproject.incubator.net.tunnel.LabelStack;
 import org.onosproject.incubator.net.tunnel.Tunnel;
 import org.onosproject.net.Path;
-import org.onosproject.pcep.controller.PccId;
-import org.onosproject.pcep.controller.PcepClient;
-import org.onosproject.pcep.controller.PcepClientController;
-import org.onosproject.pcep.controller.PcepClientListener;
-import org.onosproject.pcep.controller.PcepEventListener;
-import org.onosproject.pcep.controller.PcepNodeListener;
+import org.onosproject.pcep.server.PccId;
+import org.onosproject.pcep.server.PcepClient;
+import org.onosproject.pcep.server.PcepClientController;
+import org.onosproject.pcep.server.PcepClientListener;
+import org.onosproject.pcep.server.PcepEventListener;
+import org.onosproject.pcep.server.PcepNodeListener;
 import org.onosproject.pcepio.protocol.PcepMessage;
 import org.onosproject.pcepio.types.PcepValueType;
 
diff --git a/protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/PceLabelStoreAdapter.java b/protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/PceLabelStoreAdapter.java
similarity index 100%
rename from protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/PceLabelStoreAdapter.java
rename to protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/PceLabelStoreAdapter.java
diff --git a/protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/PcepClientAdapter.java b/protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/PcepClientAdapter.java
similarity index 94%
rename from protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/PcepClientAdapter.java
rename to protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/PcepClientAdapter.java
index 91e58ec..7ab16ef 100644
--- a/protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/PcepClientAdapter.java
+++ b/protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/PcepClientAdapter.java
@@ -23,11 +23,11 @@
 import java.util.concurrent.RejectedExecutionException;
 
 import org.jboss.netty.channel.Channel;
-import org.onosproject.pcep.controller.ClientCapability;
-import org.onosproject.pcep.controller.PccId;
-import org.onosproject.pcep.controller.LspKey;
-import org.onosproject.pcep.controller.PcepClient;
-import org.onosproject.pcep.controller.PcepSyncStatus;
+import org.onosproject.pcep.server.ClientCapability;
+import org.onosproject.pcep.server.PccId;
+import org.onosproject.pcep.server.LspKey;
+import org.onosproject.pcep.server.PcepClient;
+import org.onosproject.pcep.server.PcepSyncStatus;
 import org.onosproject.pcepio.protocol.PcepFactories;
 import org.onosproject.pcepio.protocol.PcepFactory;
 import org.onosproject.pcepio.protocol.PcepMessage;
diff --git a/protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/StorageServiceAdapter.java b/protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/StorageServiceAdapter.java
similarity index 100%
rename from protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/StorageServiceAdapter.java
rename to protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/StorageServiceAdapter.java
diff --git a/protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/TestAtomicCounter.java b/protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/TestAtomicCounter.java
similarity index 100%
rename from protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/TestAtomicCounter.java
rename to protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/TestAtomicCounter.java
diff --git a/protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/TestConsistentMap.java b/protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/TestConsistentMap.java
similarity index 100%
rename from protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/TestConsistentMap.java
rename to protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/TestConsistentMap.java
diff --git a/protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/TestDistributedSet.java b/protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/TestDistributedSet.java
similarity index 100%
rename from protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/TestDistributedSet.java
rename to protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/TestDistributedSet.java
diff --git a/protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/TestEventuallyConsistentMap.java b/protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/TestEventuallyConsistentMap.java
similarity index 100%
rename from protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/TestEventuallyConsistentMap.java
rename to protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/TestEventuallyConsistentMap.java
diff --git a/protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/TestStorageService.java b/protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/TestStorageService.java
similarity index 100%
rename from protocols/pcep/ctl/src/test/java/org/onosproject/pcelabelstore/util/TestStorageService.java
rename to protocols/pcep/server/ctl/src/test/java/org/onosproject/pcelabelstore/util/TestStorageService.java
diff --git a/protocols/pcep/ctl/src/test/java/org/onosproject/pcep/controller/impl/PcepClientControllerImplTest.java b/protocols/pcep/server/ctl/src/test/java/org/onosproject/pcep/controller/impl/PcepClientControllerImplTest.java
similarity index 92%
rename from protocols/pcep/ctl/src/test/java/org/onosproject/pcep/controller/impl/PcepClientControllerImplTest.java
rename to protocols/pcep/server/ctl/src/test/java/org/onosproject/pcep/controller/impl/PcepClientControllerImplTest.java
index a4ba2bb..73ff8d6 100644
--- a/protocols/pcep/ctl/src/test/java/org/onosproject/pcep/controller/impl/PcepClientControllerImplTest.java
+++ b/protocols/pcep/server/ctl/src/test/java/org/onosproject/pcep/controller/impl/PcepClientControllerImplTest.java
@@ -16,8 +16,8 @@
 
 package org.onosproject.pcep.controller.impl;
 
-import static org.onosproject.pcep.controller.PcepLspSyncAction.SEND_UPDATE;
-import static org.onosproject.pcep.controller.PcepLspSyncAction.UNSTABLE;
+import static org.onosproject.pcep.server.PcepLspSyncAction.SEND_UPDATE;
+import static org.onosproject.pcep.server.PcepLspSyncAction.UNSTABLE;
 
 import java.net.SocketAddress;
 import java.util.ArrayList;
@@ -52,12 +52,16 @@
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.ElementId;
 import org.onosproject.net.Path;
-import org.onosproject.pcep.controller.ClientCapability;
-import org.onosproject.pcep.controller.PccId;
-import org.onosproject.pcep.controller.PcepEventListener;
-import org.onosproject.pcep.controller.PcepLspSyncAction;
-import org.onosproject.pcep.controller.PcepPacketStats;
-import org.onosproject.pcep.controller.PcepSyncStatus;
+import org.onosproject.pcep.server.ClientCapability;
+import org.onosproject.pcep.server.PccId;
+import org.onosproject.pcep.server.PcepEventListener;
+import org.onosproject.pcep.server.PcepLspSyncAction;
+import org.onosproject.pcep.server.PcepPacketStats;
+import org.onosproject.pcep.server.PcepSyncStatus;
+import org.onosproject.pcep.server.driver.PcepAgent;
+import org.onosproject.pcep.server.impl.PcepClientControllerImpl;
+import org.onosproject.pcep.server.impl.PcepClientImpl;
+import org.onosproject.pcep.server.impl.PcepPacketStatsImpl;
 import org.onosproject.pcepio.exceptions.PcepOutOfBoundMessageException;
 import org.onosproject.pcepio.exceptions.PcepParseException;
 import org.onosproject.pcepio.protocol.PcepFactories;
@@ -71,14 +75,14 @@
 import static org.hamcrest.core.Is.is;
 
 public class PcepClientControllerImplTest {
-    PcepClientControllerImpl controllerImpl = new PcepClientControllerImpl();
+    TestPcepClientControllerImpl controllerImpl = new TestPcepClientControllerImpl();
     TunnelService tunnelService = new MockTunnelService();
     private PcepEventListener listener;
     private Channel channel;
 
     @Before
     public void startUp() {
-        controllerImpl.tunnelService = tunnelService;
+        controllerImpl.setTunnelService(tunnelService);
         listener = new PcepEventListenerAdapter();
         controllerImpl.addEventListener(listener);
         channel = new MockChannel();
@@ -88,7 +92,7 @@
     public void tearDown() {
         controllerImpl.removeEventListener(listener);
         listener = null;
-        controllerImpl.tunnelService = null;
+        controllerImpl.setTunnelService(null);
     }
 
     @Test
@@ -121,11 +125,11 @@
 
         pc.init(pccId, PcepVersion.PCEP_1, pktStats);
         pc.setChannel(channel);
-        pc.setAgent(controllerImpl.agent);
+        pc.setAgent(controllerImpl.agent());
         pc.setConnected(true);
         pc.setCapability(new ClientCapability(true, true, true, true, true));
 
-        controllerImpl.agent.addConnectedClient(pccId, pc);
+        controllerImpl.agent().addConnectedClient(pccId, pc);
         controllerImpl.processClientMessage(pccId, message);
 
         pc.setLspDbSyncStatus(PcepSyncStatus.SYNCED);
@@ -170,11 +174,11 @@
 
         pc.init(pccId, PcepVersion.PCEP_1, pktStats);
         pc.setChannel(channel);
-        pc.setAgent(controllerImpl.agent);
+        pc.setAgent(controllerImpl.agent());
         pc.setConnected(true);
         pc.setCapability(new ClientCapability(true, true, true, true, true));
 
-        controllerImpl.agent.addConnectedClient(pccId, pc);
+        controllerImpl.agent().addConnectedClient(pccId, pc);
         controllerImpl.processClientMessage(pccId, message);
 
         pc.setLspDbSyncStatus(PcepSyncStatus.SYNCED);
@@ -538,4 +542,14 @@
             return null;
         }
     }
+
+    private class TestPcepClientControllerImpl extends PcepClientControllerImpl {
+        public void setTunnelService(TunnelService tunnelService) {
+            this.tunnelService = tunnelService;
+        }
+
+        public PcepAgent agent() {
+            return this.agent;
+        }
+    }
 }
diff --git a/protocols/pcep/server/pom.xml b/protocols/pcep/server/pom.xml
new file mode 100755
index 0000000..4ee228c
--- /dev/null
+++ b/protocols/pcep/server/pom.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Copyright 2015-present 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.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.onosproject</groupId>
+        <artifactId>onos-pcep-protocol</artifactId>
+        <version>1.12.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>onos-pcep-server</artifactId>
+    <packaging>pom</packaging>
+
+    <description>ONOS Pcep Server Protocol subsystem</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onos-api</artifactId>
+        </dependency>
+    </dependencies>
+
+    <modules>
+        <module>api</module>
+        <module>ctl</module>
+    </modules>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>