diff --git a/apps/odtn/api/BUILD b/apps/odtn/api/BUILD
index 97a583a..4943162 100755
--- a/apps/odtn/api/BUILD
+++ b/apps/odtn/api/BUILD
@@ -5,6 +5,7 @@
     "//apps/yang:onos-apps-yang",
     "//apps/config:onos-apps-config",
     "//models/openconfig-infinera:onos-models-openconfig-infinera",
+    "//models/openconfig-odtn:onos-models-openconfig-odtn",
     "//protocols/netconf/api:onos-protocols-netconf-api",
 ]
 
@@ -18,6 +19,7 @@
     "org.onosproject.models.tapi",
     "org.onosproject.models.openconfig",
     "org.onosproject.models.openconfig-infinera",
+    "org.onosproject.models.openconfig-odtn",
     "org.onosproject.netconf",
 ]
 
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/behaviour/AbstractOdtnTerminalDeviceDriver.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/behaviour/AbstractOdtnTerminalDeviceDriver.java
index 420770a..74f0f3b 100755
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/behaviour/AbstractOdtnTerminalDeviceDriver.java
+++ b/apps/odtn/api/src/main/java/org/onosproject/odtn/behaviour/AbstractOdtnTerminalDeviceDriver.java
@@ -85,7 +85,7 @@
                 .map(NetconfDevice::getSession)
                 .ifPresent(session -> {
                     try {
-                        session.rpc(toCharSequence(doc, false).toString()).join();
+                        session.rpc(toCharSequence(doc).toString()).join();
                     } catch (NetconfException e) {
                         log.error("Exception thrown", e);
                     }
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/behaviour/InfineraTransceiver.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/behaviour/InfineraTransceiver.java
index e2517a4..9248dd4 100755
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/behaviour/InfineraTransceiver.java
+++ b/apps/odtn/api/src/main/java/org/onosproject/odtn/behaviour/InfineraTransceiver.java
@@ -29,7 +29,7 @@
 import org.onosproject.odtn.utils.openconfig.OpenConfigLogicalChannelAssignmentsHandler;
 import org.onosproject.odtn.utils.openconfig.OpenConfigLogicalChannelsHandler;
 import org.onosproject.odtn.utils.openconfig.OpenConfigTerminalDeviceHandler;
-import org.onosproject.yang.gen.v1.openconfigterminaldevice.rev20161222.openconfigterminaldevice.terminallogicalchanassignmentconfig.AssignmentTypeEnum;
+import org.onosproject.yang.gen.v1.openconfigterminaldevice.rev20170708.openconfigterminaldevice.terminallogicalchanassignmentconfig.AssignmentTypeEnum;
 
 import org.slf4j.Logger;
 
@@ -86,12 +86,12 @@
 
         // add <channel><index>"clientName"</index></channel>
         OpenConfigChannelHandler channel =
-            new OpenConfigChannelHandler(clientName, logicalChannels);
+            new OpenConfigChannelHandler(Integer.parseInt(clientName), logicalChannels);
 
         // add <config><index>"clientName"</index></config>
         OpenConfigConfigOfChannelHandler configOfChannel =
             new OpenConfigConfigOfChannelHandler(channel);
-        configOfChannel.addIndex(clientName);
+        configOfChannel.addIndex(Integer.parseInt(clientName));
 
         // add <logical-channel-assignments xc:operation="merge/delete">
         OpenConfigLogicalChannelAssignmentsHandler logicalChannelAssignments =
@@ -104,7 +104,7 @@
 
         // add <assignment><index>"clientName"</index></assignment>
         OpenConfigAssignmentHandler assignment =
-            new OpenConfigAssignmentHandler(clientName, logicalChannelAssignments);
+            new OpenConfigAssignmentHandler(Integer.parseInt(clientName), logicalChannelAssignments);
 
         // add <config><assignment-type>LOGICAL_CHANNEL</assignment-type>
         //             <logical-channel>"lineName"</logical-channel>
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigAssignmentHandler.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigAssignmentHandler.java
index c608038..a2d6de0 100755
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigAssignmentHandler.java
+++ b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigAssignmentHandler.java
@@ -15,7 +15,7 @@
  */
 package org.onosproject.odtn.utils.openconfig;
 
-import org.onosproject.yang.gen.v1.openconfigterminaldevice.rev20161222.openconfigterminaldevice.terminallogicalchanassignmenttop.logicalchannelassignments.DefaultAssignment;
+import org.onosproject.yang.gen.v1.openconfigterminaldevice.rev20170708.openconfigterminaldevice.terminallogicalchanassignmenttop.logicalchannelassignments.DefaultAssignment;
 
 import org.onosproject.yang.model.KeyLeaf;
 
@@ -36,7 +36,7 @@
      * @param parent OpenConfigLogicalChannelAssignmentsHandler of
      *               parent OPENCONFIG(logical-channel-assignments)
      */
-    public OpenConfigAssignmentHandler(String keyValue,
+    public OpenConfigAssignmentHandler(Integer keyValue,
                                        OpenConfigLogicalChannelAssignmentsHandler parent) {
         modelObject = new DefaultAssignment();
         modelObject.index(keyValue);
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigChannelHandler.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigChannelHandler.java
index 3ab6d8e..4412b9a 100755
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigChannelHandler.java
+++ b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigChannelHandler.java
@@ -15,7 +15,7 @@
  */
 package org.onosproject.odtn.utils.openconfig;
 
-import org.onosproject.yang.gen.v1.openconfigterminaldevice.rev20161222.openconfigterminaldevice.terminallogicalchanneltop.logicalchannels.DefaultChannel;
+import org.onosproject.yang.gen.v1.openconfigterminaldevice.rev20170708.openconfigterminaldevice.terminallogicalchanneltop.logicalchannels.DefaultChannel;
 
 import org.onosproject.yang.model.KeyLeaf;
 
@@ -35,7 +35,7 @@
      * @param keyValue String of target OPENCONFIG's key
      * @param parent OpenConfigLogicalChannelsHandler of parent OPENCONFIG(logical-channels)
      */
-    public OpenConfigChannelHandler(String keyValue, OpenConfigLogicalChannelsHandler parent) {
+    public OpenConfigChannelHandler(Integer keyValue, OpenConfigLogicalChannelsHandler parent) {
         modelObject = new DefaultChannel();
         modelObject.index(keyValue);
         setResourceId(OPENCONFIG_NAME, NAME_SPACE,
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigComponentHandler.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigComponentHandler.java
index 4cb2b18..34691a3 100755
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigComponentHandler.java
+++ b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigComponentHandler.java
@@ -15,8 +15,8 @@
  */
 package org.onosproject.odtn.utils.openconfig;
 
-import org.onosproject.yang.gen.v1.openconfigplatform.rev20161222.openconfigplatform.platformcomponenttop.components.DefaultComponent;
-import org.onosproject.yang.gen.v1.openconfigplatformtransceiver.rev20170708.openconfigplatformtransceiver.components.component.DefaultAugmentedOcPlatformComponent;
+import org.onosproject.yang.gen.v1.openconfigplatform.rev20180603.openconfigplatform.platformcomponenttop.components.DefaultComponent;
+import org.onosproject.yang.gen.v1.openconfigplatformtransceiver.rev20180515.openconfigplatformtransceiver.components.component.DefaultAugmentedOcPlatformComponent;
 
 import org.onosproject.yang.model.KeyLeaf;
 
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigComponentsHandler.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigComponentsHandler.java
index 1dc568c..536837b 100755
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigComponentsHandler.java
+++ b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigComponentsHandler.java
@@ -15,7 +15,7 @@
  */
 package org.onosproject.odtn.utils.openconfig;
 
-import org.onosproject.yang.gen.v1.openconfigplatform.rev20161222.openconfigplatform.platformcomponenttop.DefaultComponents;
+import org.onosproject.yang.gen.v1.openconfigplatform.rev20180603.openconfigplatform.platformcomponenttop.DefaultComponents;
 import org.onosproject.yang.model.ModelObject;
 import org.onosproject.yang.model.ResourceId;
 import org.onosproject.yang.runtime.AnnotatedNodeInfo;
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigConfigOfAssignmentHandler.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigConfigOfAssignmentHandler.java
index 7c7ade2..df54b7a 100755
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigConfigOfAssignmentHandler.java
+++ b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigConfigOfAssignmentHandler.java
@@ -15,8 +15,8 @@
  */
 package org.onosproject.odtn.utils.openconfig;
 
-import org.onosproject.yang.gen.v1.openconfigterminaldevice.rev20161222.openconfigterminaldevice.terminallogicalchanassignmentconfig.AssignmentTypeEnum;
-import org.onosproject.yang.gen.v1.openconfigterminaldevice.rev20161222.openconfigterminaldevice.terminallogicalchanassignmenttop.logicalchannelassignments.assignment.DefaultConfig;
+import org.onosproject.yang.gen.v1.openconfigterminaldevice.rev20170708.openconfigterminaldevice.terminallogicalchanassignmentconfig.AssignmentTypeEnum;
+import org.onosproject.yang.gen.v1.openconfigterminaldevice.rev20170708.openconfigterminaldevice.terminallogicalchanassignmenttop.logicalchannelassignments.assignment.DefaultConfig;
 
 import java.math.BigDecimal;
 
@@ -43,6 +43,17 @@
     }
 
     /**
+     * Add child OPENCONFIG(index).
+     *
+     * @param index Long to be set for modelObject
+     * @return OpenConfigConfigOfAssignmentHandler of target OPENCONFIG
+     */
+    public OpenConfigConfigOfAssignmentHandler addIndex(Long index) {
+        modelObject.index(index);
+        return this;
+    }
+
+    /**
      * Add child OPENCONFIG(assignment-type).
      *
      * @param assignmentType AssignmentTypeEnum to be set for modelObject
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigConfigOfChannelHandler.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigConfigOfChannelHandler.java
index f422121..9fcb9e5 100755
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigConfigOfChannelHandler.java
+++ b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigConfigOfChannelHandler.java
@@ -15,7 +15,7 @@
  */
 package org.onosproject.odtn.utils.openconfig;
 
-import org.onosproject.yang.gen.v1.openconfigterminaldevice.rev20161222.openconfigterminaldevice.terminallogicalchanneltop.logicalchannels.channel.DefaultConfig;
+import org.onosproject.yang.gen.v1.openconfigterminaldevice.rev20170708.openconfigterminaldevice.terminallogicalchanneltop.logicalchannels.channel.DefaultConfig;
 
 /**
  * Utility class to deal with OPENCONFIG Channel/Config ModelObject & Annotation.
@@ -45,7 +45,7 @@
      * @param index String to be set for modelObject
      * @return OpenConfigConfigOfChannelHandler of target OPENCONFIG
      */
-    public OpenConfigConfigOfChannelHandler addIndex(String index) {
+    public OpenConfigConfigOfChannelHandler addIndex(Integer index) {
         modelObject.index(index);
         return this;
     }
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigConfigOfComponentHandler.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigConfigOfComponentHandler.java
index 09eb63e..617158e 100755
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigConfigOfComponentHandler.java
+++ b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigConfigOfComponentHandler.java
@@ -15,7 +15,7 @@
  */
 package org.onosproject.odtn.utils.openconfig;
 
-import org.onosproject.yang.gen.v1.openconfigplatform.rev20161222.openconfigplatform.platformcomponenttop.components.component.DefaultConfig;
+import org.onosproject.yang.gen.v1.openconfigplatform.rev20180603.openconfigplatform.platformcomponenttop.components.component.DefaultConfig;
 
 /**
  * Utility class to deal with OPENCONFIG Componet/Config ModelObject & Annotation.
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigConfigOfTransceiverHandler.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigConfigOfTransceiverHandler.java
index 8a271fd..acf4117 100755
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigConfigOfTransceiverHandler.java
+++ b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigConfigOfTransceiverHandler.java
@@ -15,7 +15,7 @@
  */
 package org.onosproject.odtn.utils.openconfig;
 
-import org.onosproject.yang.gen.v1.openconfigplatformtransceiver.rev20170708.openconfigplatformtransceiver.porttransceivertop.transceiver.DefaultConfig;
+import org.onosproject.yang.gen.v1.openconfigplatformtransceiver.rev20180515.openconfigplatformtransceiver.porttransceivertop.transceiver.DefaultConfig;
 
 /**
  * Utility class to deal with OPENCONFIG Transceiver/Config ModelObject & Annotation.
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigLogicalChannelAssignmentsHandler.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigLogicalChannelAssignmentsHandler.java
index 5432b8f..1360093 100755
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigLogicalChannelAssignmentsHandler.java
+++ b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigLogicalChannelAssignmentsHandler.java
@@ -15,7 +15,7 @@
  */
 package org.onosproject.odtn.utils.openconfig;
 
-import org.onosproject.yang.gen.v1.openconfigterminaldevice.rev20161222.openconfigterminaldevice.terminallogicalchanassignmenttop.DefaultLogicalChannelAssignments;
+import org.onosproject.yang.gen.v1.openconfigterminaldevice.rev20170708.openconfigterminaldevice.terminallogicalchanassignmenttop.DefaultLogicalChannelAssignments;
 
 /**
  * Utility class to deal with OPENCONFIG LogicalChannelAssignments ModelObject & Annotation.
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigLogicalChannelsHandler.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigLogicalChannelsHandler.java
index 7e3eb32..ff8dad8 100755
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigLogicalChannelsHandler.java
+++ b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigLogicalChannelsHandler.java
@@ -15,7 +15,7 @@
  */
 package org.onosproject.odtn.utils.openconfig;
 
-import org.onosproject.yang.gen.v1.openconfigterminaldevice.rev20161222.openconfigterminaldevice.terminallogicalchanneltop.DefaultLogicalChannels;
+import org.onosproject.yang.gen.v1.openconfigterminaldevice.rev20170708.openconfigterminaldevice.terminallogicalchanneltop.DefaultLogicalChannels;
 
 /**
  * Utility class to deal with OPENCONFIG LogicalChannels ModelObject & Annotation.
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigTerminalDeviceHandler.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigTerminalDeviceHandler.java
index 728a596..ded7d34 100755
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigTerminalDeviceHandler.java
+++ b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigTerminalDeviceHandler.java
@@ -15,7 +15,7 @@
  */
 package org.onosproject.odtn.utils.openconfig;
 
-import org.onosproject.yang.gen.v1.openconfigterminaldevice.rev20161222.openconfigterminaldevice.terminaldevicetop.DefaultTerminalDevice;
+import org.onosproject.yang.gen.v1.openconfigterminaldevice.rev20170708.openconfigterminaldevice.terminaldevicetop.DefaultTerminalDevice;
 
 import org.onosproject.yang.model.ModelObject;
 import org.onosproject.yang.model.ResourceId;
diff --git a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigTransceiverHandler.java b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigTransceiverHandler.java
index 562cb25..e8a99cc 100755
--- a/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigTransceiverHandler.java
+++ b/apps/odtn/api/src/main/java/org/onosproject/odtn/utils/openconfig/OpenConfigTransceiverHandler.java
@@ -15,7 +15,7 @@
  */
 package org.onosproject.odtn.utils.openconfig;
 
-import org.onosproject.yang.gen.v1.openconfigplatformtransceiver.rev20170708.openconfigplatformtransceiver.porttransceivertop.DefaultTransceiver;
+import org.onosproject.yang.gen.v1.openconfigplatformtransceiver.rev20180515.openconfigplatformtransceiver.porttransceivertop.DefaultTransceiver;
 
 /**
  * Utility class to deal with OPENCONFIG Transceiver ModelObject & Annotation.
diff --git a/apps/odtn/service/BUILD b/apps/odtn/service/BUILD
index bae504a..d8cd167 100644
--- a/apps/odtn/service/BUILD
+++ b/apps/odtn/service/BUILD
@@ -2,7 +2,6 @@
     "//apps/odtn/api:onos-apps-odtn-api",
     "//apps/config:onos-apps-config",
     "//models/tapi:onos-models-tapi",
-    "//models/openconfig:onos-models-openconfig",
     "//apps/yang:onos-apps-yang",
     "//protocols/netconf/api:onos-protocols-netconf-api",
 ]
@@ -18,7 +17,6 @@
     "org.onosproject.config",
     "org.onosproject.configsync",
     "org.onosproject.models.tapi",
-    "org.onosproject.models.openconfig",
     "org.onosproject.odtn-api",
 
     # strictly speaking following are not mandatory
