Moving yang files to /models/l3vpn.

Change-Id: I09ef1d727ea638abcd7652f09d42127c9c16c79e
diff --git a/apps/l3vpn/BUCK b/apps/l3vpn/BUCK
index 3ab949f..4e6aaf3 100644
--- a/apps/l3vpn/BUCK
+++ b/apps/l3vpn/BUCK
@@ -1,19 +1,41 @@
-APPS = [
-  'org.onosproject.yang',
+COMPILE_DEPS = [
+    '//lib:CORE_DEPS',
+    '//models/l3vpn:onos-models-l3vpn',
+    '//apps/config:onos-apps-config',
+    '//core/store/serializers:onos-core-serializers',
+    '//lib:onos-yang-model',
+    '//lib:onos-yang-runtime',
+    '//apps/yang:onos-apps-yang',
 ]
 
-BUNDLES = [
-  '//apps/l3vpn/yangmodel:onos-apps-l3vpn-yangmodel',
-  '//apps/l3vpn/netl3vpn:onos-apps-l3vpn-netl3vpn',
+TEST_DEPS = [
+    '//lib:TEST_ADAPTERS',
+    '//utils/osgi:onlab-osgi-tests',
 ]
 
+APPS = [
+    'org.onosproject.yang',
+    'org.onosproject.yang-gui',
+    'org.onosproject.config',
+    'org.onosproject.restconf',
+    'org.onosproject.yms',
+    'org.onosproject.protocols.restconfserver',
+    'org.onosproject.netconf',
+    'org.onosproject.netconfsb',
+    'org.onosproject.models.l3vpn',
+]
+
+osgi_jar_with_tests(
+    deps = COMPILE_DEPS,
+    test_deps = TEST_DEPS,
+)
+
 onos_app(
-  app_name = 'org.onosproject.l3vpn',
-  title = 'YANG L3VPN App',
-  category = 'Traffic Steering',
-  url = 'http://onosproject.org',
-  included_bundles = BUNDLES,
-  description = 'L3VPN YANG Application',
-  required_apps = APPS,
+    app_name = 'org.onosproject.l3vpn',
+    title = 'YANG L3VPN App',
+    category = 'Traffic Steering',
+    url = 'http://onosproject.org',
+    description = 'L3VPN YANG Application',
+    required_apps = APPS,
 )
 
diff --git a/apps/l3vpn/netl3vpn/BUCK b/apps/l3vpn/netl3vpn/BUCK
deleted file mode 100644
index 4028606..0000000
--- a/apps/l3vpn/netl3vpn/BUCK
+++ /dev/null
@@ -1,19 +0,0 @@
-COMPILE_DEPS = [
-  '//lib:CORE_DEPS',
-  '//apps/l3vpn/yangmodel:onos-apps-l3vpn-yangmodel',
-  '//apps/config:onos-apps-config',
-  '//core/store/serializers:onos-core-serializers',
-  '//lib:onos-yang-model',
-  '//lib:onos-yang-runtime',
-  '//apps/yang:onos-apps-yang',
-]
-
-TEST_DEPS = [
-  '//lib:TEST_ADAPTERS',
-  '//utils/osgi:onlab-osgi-tests',
-]
-
-osgi_jar_with_tests(
-  deps = COMPILE_DEPS,
-  test_deps = TEST_DEPS,
-)
diff --git a/apps/l3vpn/netl3vpn/pom.xml b/apps/l3vpn/netl3vpn/pom.xml
deleted file mode 100644
index 24f989f..0000000
--- a/apps/l3vpn/netl3vpn/pom.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ Copyright 2017-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/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.onosproject</groupId>
-        <artifactId>onos-app-l3vpn</artifactId>
-        <version>1.10.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
-
-    <artifactId>onos-app-l3vpn-netl3vpn</artifactId>
-    <packaging>bundle</packaging>
-
-    <description>IETF L3VPN Service Model</description>
-
-    <properties>
-        <yang-tool-version>1.12.0-b7</yang-tool-version>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.onosproject</groupId>
-            <artifactId>onlab-junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.onosproject</groupId>
-            <artifactId>onos-yang-model</artifactId>
-            <version>${yang-tool-version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.onosproject</groupId>
-            <artifactId>onos-yang-runtime</artifactId>
-            <version>${yang-tool-version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.onosproject</groupId>
-            <artifactId>onos-app-l3vpn-yangmodel</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.onosproject</groupId>
-            <artifactId>onos-app-config</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.onosproject</groupId>
-            <artifactId>onos-app-yang</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-    </dependencies>
-</project>
diff --git a/apps/l3vpn/pom.xml b/apps/l3vpn/pom.xml
deleted file mode 100644
index 3bfb833..0000000
--- a/apps/l3vpn/pom.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ Copyright 2017-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/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.onosproject</groupId>
-        <artifactId>onos-apps</artifactId>
-        <version>1.10.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
-
-    <artifactId>onos-app-l3vpn</artifactId>
-    <packaging>pom</packaging>
-
-    <modules>
-        <module>netl3vpn</module>
-        <module>yangmodel</module>
-    </modules>
-
-    <description>L3VPN YANG Application</description>
-</project>
-
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/AccessInfo.java b/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/AccessInfo.java
similarity index 100%
rename from apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/AccessInfo.java
rename to apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/AccessInfo.java
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/BgpDriverInfo.java b/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/BgpDriverInfo.java
similarity index 100%
rename from apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/BgpDriverInfo.java
rename to apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/BgpDriverInfo.java
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/BgpInfo.java b/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/BgpInfo.java
similarity index 100%
rename from apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/BgpInfo.java
rename to apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/BgpInfo.java
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/BgpModelIdLevel.java b/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/BgpModelIdLevel.java
similarity index 100%
rename from apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/BgpModelIdLevel.java
rename to apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/BgpModelIdLevel.java
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/DeviceInfo.java b/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/DeviceInfo.java
similarity index 100%
rename from apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/DeviceInfo.java
rename to apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/DeviceInfo.java
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/FullMeshVpnConfig.java b/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/FullMeshVpnConfig.java
similarity index 100%
rename from apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/FullMeshVpnConfig.java
rename to apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/FullMeshVpnConfig.java
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/HubSpokeVpnConfig.java b/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/HubSpokeVpnConfig.java
similarity index 100%
rename from apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/HubSpokeVpnConfig.java
rename to apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/HubSpokeVpnConfig.java
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/InterfaceInfo.java b/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/InterfaceInfo.java
similarity index 100%
rename from apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/InterfaceInfo.java
rename to apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/InterfaceInfo.java
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/NetL3VpnException.java b/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/NetL3VpnException.java
similarity index 100%
rename from apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/NetL3VpnException.java
rename to apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/NetL3VpnException.java
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/NetL3VpnStore.java b/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/NetL3VpnStore.java
similarity index 100%
rename from apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/NetL3VpnStore.java
rename to apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/NetL3VpnStore.java
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/ProtocolInfo.java b/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/ProtocolInfo.java
similarity index 100%
rename from apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/ProtocolInfo.java
rename to apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/ProtocolInfo.java
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/RouteProtocol.java b/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/RouteProtocol.java
similarity index 100%
rename from apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/RouteProtocol.java
rename to apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/RouteProtocol.java
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/VpnConfig.java b/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/VpnConfig.java
similarity index 100%
rename from apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/VpnConfig.java
rename to apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/VpnConfig.java
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/VpnInstance.java b/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/VpnInstance.java
similarity index 100%
rename from apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/VpnInstance.java
rename to apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/VpnInstance.java
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/VpnSiteRole.java b/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/VpnSiteRole.java
similarity index 100%
rename from apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/VpnSiteRole.java
rename to apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/VpnSiteRole.java
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/VpnType.java b/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/VpnType.java
similarity index 100%
rename from apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/VpnType.java
rename to apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/VpnType.java
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/BgpConstructionUtil.java b/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/BgpConstructionUtil.java
similarity index 100%
rename from apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/BgpConstructionUtil.java
rename to apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/BgpConstructionUtil.java
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/DistributedNetL3VpnStore.java b/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/DistributedNetL3VpnStore.java
similarity index 100%
rename from apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/DistributedNetL3VpnStore.java
rename to apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/DistributedNetL3VpnStore.java
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/InsConstructionUtil.java b/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/InsConstructionUtil.java
similarity index 100%
rename from apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/InsConstructionUtil.java
rename to apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/InsConstructionUtil.java
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/IntConstructionUtil.java b/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/IntConstructionUtil.java
similarity index 100%
rename from apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/IntConstructionUtil.java
rename to apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/IntConstructionUtil.java
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/L3VpnModelRegistrator.java b/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/L3VpnModelRegistrator.java
similarity index 100%
rename from apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/L3VpnModelRegistrator.java
rename to apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/L3VpnModelRegistrator.java
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/NetL3VpnManager.java b/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/NetL3VpnManager.java
similarity index 100%
rename from apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/NetL3VpnManager.java
rename to apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/NetL3VpnManager.java
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/NetL3VpnUtil.java b/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/NetL3VpnUtil.java
similarity index 100%
rename from apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/NetL3VpnUtil.java
rename to apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/NetL3VpnUtil.java
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/package-info.java b/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/package-info.java
similarity index 100%
rename from apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/package-info.java
rename to apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/package-info.java
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/package-info.java b/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/package-info.java
similarity index 100%
rename from apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/package-info.java
rename to apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/package-info.java
diff --git a/apps/l3vpn/yangmodel/BUCK b/apps/l3vpn/yangmodel/BUCK
deleted file mode 100644
index 386be7b..0000000
--- a/apps/l3vpn/yangmodel/BUCK
+++ /dev/null
@@ -1,13 +0,0 @@
-COMPILE_DEPS = [
-  '//lib:CORE_DEPS',
-  '//lib:onos-yang-model',
-]
-
-yang_osgi_jar(
-  deps = COMPILE_DEPS,
-  name = 'onos-apps-l3vpn-yangmodel',
-  srcs = glob(['src/main/**/*.yang']),
-  visibility = [
-    'PUBLIC'
-  ],
-)
\ No newline at end of file
diff --git a/apps/l3vpn/yangmodel/pom.xml b/apps/l3vpn/yangmodel/pom.xml
deleted file mode 100644
index 8fd8aed..0000000
--- a/apps/l3vpn/yangmodel/pom.xml
+++ /dev/null
@@ -1,92 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ Copyright 2017-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/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.onosproject</groupId>
-        <artifactId>onos-app-l3vpn</artifactId>
-        <version>1.10.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
-
-    <artifactId>onos-app-l3vpn-yangmodel</artifactId>
-    <packaging>bundle</packaging>
-
-    <description>IETF L3VPN YANG models</description>
-
-    <properties>
-        <yang-tool-version>1.12.0-b7</yang-tool-version>
-    </properties>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>org.onosproject</groupId>
-            <artifactId>onos-yang-datamodel</artifactId>
-            <version>1.11</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.onosproject</groupId>
-            <artifactId>onos-yang-model</artifactId>
-            <version>${yang-tool-version}</version>
-        </dependency>
-
-    </dependencies>
-
-    <build>
-        <plugins>
-           <plugin>
-                <groupId>org.onosproject</groupId>
-                <artifactId>onos-yang-compiler-maven-plugin</artifactId>
-                <version>${yang-tool-version}</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>yang2java</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>build-helper-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>add-source</id>
-                        <phase>generate-sources</phase>
-                        <goals>
-                            <goal>add-source</goal>
-                        </goals>
-                        <configuration>
-                            <sources combine.children="append">
-                                <source>${project.build.directory}/generated-sources/</source>
-                            </sources>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-
-        </plugins>
-
-
-    </build>
-</project>
diff --git a/apps/yang/src/main/java/org/onosproject/yang/YangRuntimeManager.java b/apps/yang/src/main/java/org/onosproject/yang/YangRuntimeManager.java
index b1867f6..9c737b5 100644
--- a/apps/yang/src/main/java/org/onosproject/yang/YangRuntimeManager.java
+++ b/apps/yang/src/main/java/org/onosproject/yang/YangRuntimeManager.java
@@ -110,6 +110,8 @@
 
     @Override
     public void registerSerializer(YangSerializer ys) {
+        //FIXME: Allow re-registration of model with additional service end
+        // points.
         serializerRegistry.registerSerializer(ys);
     }
 
diff --git a/drivers/huawei/driver/BUCK b/drivers/huawei/driver/BUCK
index 9f44ff7..7b20046 100644
--- a/drivers/huawei/driver/BUCK
+++ b/drivers/huawei/driver/BUCK
@@ -1,10 +1,10 @@
 COMPILE_DEPS = [
   '//lib:CORE_DEPS',
   '//lib:org.apache.servicemix.bundles.dom4j',
-  '//apps/l3vpn/yangmodel:onos-apps-l3vpn-yangmodel',
+  '//models/l3vpn:onos-models-l3vpn',
   '//drivers/utilities:onos-drivers-utilities',
   '//protocols/netconf/api:onos-protocols-netconf-api',
-  '//apps/l3vpn/netl3vpn:onos-apps-l3vpn-netl3vpn',
+  '//apps/l3vpn:onos-apps-l3vpn',
   '//drivers/huawei/yangmodel:onos-drivers-huawei-yangmodel',
   '//apps/config:onos-apps-config',
   '//lib:onos-yang-model',
diff --git a/models/l3vpn/BUCK b/models/l3vpn/BUCK
new file mode 100644
index 0000000..babafb0
--- /dev/null
+++ b/models/l3vpn/BUCK
@@ -0,0 +1,4 @@
+yang_model(
+    app_name = 'org.onosproject.models.l3vpn',
+    title = 'L3VPN YANG Model',
+)
diff --git a/apps/l3vpn/yangmodel/src/main/yang/ietf-bgp-l3vpn@2016-09-09.yang b/models/l3vpn/src/main/yang/ietf-bgp-l3vpn@2016-09-09.yang
similarity index 100%
rename from apps/l3vpn/yangmodel/src/main/yang/ietf-bgp-l3vpn@2016-09-09.yang
rename to models/l3vpn/src/main/yang/ietf-bgp-l3vpn@2016-09-09.yang
diff --git a/apps/l3vpn/yangmodel/src/main/yang/ietf-inet-types.yang b/models/l3vpn/src/main/yang/ietf-inet-types.yang
similarity index 100%
rename from apps/l3vpn/yangmodel/src/main/yang/ietf-inet-types.yang
rename to models/l3vpn/src/main/yang/ietf-inet-types.yang
diff --git a/apps/l3vpn/yangmodel/src/main/yang/ietf-interfaces@2014-05-08.yang b/models/l3vpn/src/main/yang/ietf-interfaces@2014-05-08.yang
similarity index 100%
rename from apps/l3vpn/yangmodel/src/main/yang/ietf-interfaces@2014-05-08.yang
rename to models/l3vpn/src/main/yang/ietf-interfaces@2014-05-08.yang
diff --git a/apps/l3vpn/yangmodel/src/main/yang/ietf-ip@2014-06-16.yang b/models/l3vpn/src/main/yang/ietf-ip@2014-06-16.yang
similarity index 100%
rename from apps/l3vpn/yangmodel/src/main/yang/ietf-ip@2014-06-16.yang
rename to models/l3vpn/src/main/yang/ietf-ip@2014-06-16.yang
diff --git a/apps/l3vpn/yangmodel/src/main/yang/ietf-l3vpn-svc@2016-07-30.yang b/models/l3vpn/src/main/yang/ietf-l3vpn-svc@2016-07-30.yang
similarity index 100%
rename from apps/l3vpn/yangmodel/src/main/yang/ietf-l3vpn-svc@2016-07-30.yang
rename to models/l3vpn/src/main/yang/ietf-l3vpn-svc@2016-07-30.yang
diff --git a/apps/l3vpn/yangmodel/src/main/yang/ietf-network-instance@2016-06-23.yang b/models/l3vpn/src/main/yang/ietf-network-instance@2016-06-23.yang
similarity index 100%
rename from apps/l3vpn/yangmodel/src/main/yang/ietf-network-instance@2016-06-23.yang
rename to models/l3vpn/src/main/yang/ietf-network-instance@2016-06-23.yang
diff --git a/apps/l3vpn/yangmodel/src/main/yang/ietf-yang-types.yang b/models/l3vpn/src/main/yang/ietf-yang-types.yang
similarity index 100%
rename from apps/l3vpn/yangmodel/src/main/yang/ietf-yang-types.yang
rename to models/l3vpn/src/main/yang/ietf-yang-types.yang
diff --git a/apps/l3vpn/yangmodel/src/main/yang/l3vpn-svc-ext@2016-07-30.yang b/models/l3vpn/src/main/yang/l3vpn-svc-ext@2016-07-30.yang
similarity index 100%
rename from apps/l3vpn/yangmodel/src/main/yang/l3vpn-svc-ext@2016-07-30.yang
rename to models/l3vpn/src/main/yang/l3vpn-svc-ext@2016-07-30.yang
diff --git a/modules.defs b/modules.defs
index 0ffb9ee..751ce70 100644
--- a/modules.defs
+++ b/modules.defs
@@ -203,6 +203,7 @@
 MODELS = [
     '//models/demo:onos-models-demo-oar',
     '//models/openroadm:onos-models-openroadm-oar',
+    '//models/l3vpn:onos-models-l3vpn-oar',
 ]
 
 APP_JARS = [