diff --git a/drivers/microsemi/src/test/java/org/onosproject/yang/MockMicrosemiRegistrator.java b/drivers/microsemi/src/test/java/org/onosproject/yang/MockMicrosemiRegistrator.java
index eb7e241..f8129f2 100644
--- a/drivers/microsemi/src/test/java/org/onosproject/yang/MockMicrosemiRegistrator.java
+++ b/drivers/microsemi/src/test/java/org/onosproject/yang/MockMicrosemiRegistrator.java
@@ -17,6 +17,7 @@
 
 import org.onosproject.drivers.microsemi.yang.MicrosemiModelRegistrator;
 import org.onosproject.yang.compiler.datamodel.YangNode;
+import org.onosproject.yang.compiler.tool.YangNodeInfo;
 import org.onosproject.yang.runtime.DefaultModelRegistrationParam;
 import org.onosproject.yang.runtime.ModelRegistrationParam;
 import org.onosproject.yang.runtime.YangModelRegistry;
@@ -46,9 +47,11 @@
     @Override
     public void activate() {
         modelRegistry = new DefaultYangModelRegistry();
-        List<YangNode> nodes = new ArrayList<>();
+        List<YangNodeInfo> nodes = new ArrayList<>();
         try {
-            nodes.addAll(getYangNodes(deSerializeDataModel(META_PATH)));
+            for (YangNode node : getYangNodes(deSerializeDataModel(META_PATH))) {
+                nodes.add(new YangNodeInfo(node, false));
+            }
 
             model = processYangModel(META_PATH, nodes, "test", false);
             ModelRegistrationParam.Builder b =
diff --git a/lib/BUCK b/lib/BUCK
index 5436710..69d2fbb 100644
--- a/lib/BUCK
+++ b/lib/BUCK
@@ -1,4 +1,4 @@
-# ***** This file was auto-generated at Fri, 22 Sep 2017 06:46:04 GMT. Do not edit this file manually. *****
+# ***** This file was auto-generated at Tue, 17 Oct 2017 17:41:52 GMT. Do not edit this file manually. *****
 # ***** Use onos-lib-gen *****
 
 pass_thru_pom(
@@ -1269,55 +1269,55 @@
 
 remote_jar (
   name = 'onos-yang-model',
-  out = 'onos-yang-model-2.2.0.jar',
-  url = 'mvn:org.onosproject:onos-yang-model:jar:2.2.0',
-  sha1 = 'bead6c7c27a326c0701f4572e70dbbef1ad407ce',
-  maven_coords = 'org.onosproject:onos-yang-model:2.2.0',
+  out = 'onos-yang-model-2.3.0-b2.jar',
+  url = 'mvn:org.onosproject:onos-yang-model:jar:2.3.0-b2',
+  sha1 = 'bad7e6d35f94400aeab0c6ad87f31d3440b2cc16',
+  maven_coords = 'org.onosproject:onos-yang-model:2.3.0-b2',
   visibility = [ 'PUBLIC' ],
 )
 
 remote_jar (
   name = 'onos-yang-compiler-api',
-  out = 'onos-yang-compiler-api-2.2.0.jar',
-  url = 'mvn:org.onosproject:onos-yang-compiler-api:jar:2.2.0',
-  sha1 = 'cb58fc09248a79ca90607a233d9bb8a8a73eaac8',
-  maven_coords = 'org.onosproject:onos-yang-compiler-api:2.2.0',
+  out = 'onos-yang-compiler-api-2.3.0-b2.jar',
+  url = 'mvn:org.onosproject:onos-yang-compiler-api:jar:2.3.0-b2',
+  sha1 = 'e7d1e50a418061d741df3193119f5e9065c279aa',
+  maven_coords = 'org.onosproject:onos-yang-compiler-api:2.3.0-b2',
   visibility = [ 'PUBLIC' ],
 )
 
 remote_jar (
   name = 'onos-yang-runtime',
-  out = 'onos-yang-runtime-2.2.0.jar',
-  url = 'mvn:org.onosproject:onos-yang-runtime:jar:2.2.0',
-  sha1 = '314698bbb8e7a412c59688e2dddebd0499fcc164',
-  maven_coords = 'org.onosproject:onos-yang-runtime:2.2.0',
+  out = 'onos-yang-runtime-2.3.0-b2.jar',
+  url = 'mvn:org.onosproject:onos-yang-runtime:jar:2.3.0-b2',
+  sha1 = 'b5d54d43fa1e5618eb6d94e3cdaa5c199371a0d3',
+  maven_coords = 'org.onosproject:onos-yang-runtime:2.3.0-b2',
   visibility = [ 'PUBLIC' ],
 )
 
 remote_jar (
   name = 'onos-yang-serializers-json',
-  out = 'onos-yang-serializers-json-2.2.0.jar',
-  url = 'mvn:org.onosproject:onos-yang-serializers-json:jar:2.2.0',
-  sha1 = '517bbe15286ef530025938beb74c87b55244ec94',
-  maven_coords = 'org.onosproject:onos-yang-serializers-json:2.2.0',
+  out = 'onos-yang-serializers-json-2.3.0-b2.jar',
+  url = 'mvn:org.onosproject:onos-yang-serializers-json:jar:2.3.0-b2',
+  sha1 = '271f875544adf7c0c413698a02c163ec7d79def7',
+  maven_coords = 'org.onosproject:onos-yang-serializers-json:2.3.0-b2',
   visibility = [ 'PUBLIC' ],
 )
 
 remote_jar (
   name = 'onos-yang-serializers-xml',
-  out = 'onos-yang-serializers-xml-2.2.0.jar',
-  url = 'mvn:org.onosproject:onos-yang-serializers-xml:jar:2.2.0',
-  sha1 = '2114dcd5aa31b442a2115c0a18522f19a5fbbf0c',
-  maven_coords = 'org.onosproject:onos-yang-serializers-xml:2.2.0',
+  out = 'onos-yang-serializers-xml-2.3.0-b2.jar',
+  url = 'mvn:org.onosproject:onos-yang-serializers-xml:jar:2.3.0-b2',
+  sha1 = 'a7da0467051ded1800aefa1998084079c6c8a68a',
+  maven_coords = 'org.onosproject:onos-yang-serializers-xml:2.3.0-b2',
   visibility = [ 'PUBLIC' ],
 )
 
 remote_jar (
   name = 'onos-yang-serializers-utils',
-  out = 'onos-yang-serializers-utils-2.2.0.jar',
-  url = 'mvn:org.onosproject:onos-yang-serializers-utils:jar:2.2.0',
-  sha1 = '144cce2a54e5177393736e896c612380e573745f',
-  maven_coords = 'org.onosproject:onos-yang-serializers-utils:2.2.0',
+  out = 'onos-yang-serializers-utils-2.3.0-b2.jar',
+  url = 'mvn:org.onosproject:onos-yang-serializers-utils:jar:2.3.0-b2',
+  sha1 = '78d3ee80d4916ead46be05a212d2458a0b62ec7c',
+  maven_coords = 'org.onosproject:onos-yang-serializers-utils:2.3.0-b2',
   visibility = [ 'PUBLIC' ],
 )
 
@@ -1526,4 +1526,5 @@
   sha1 = '935f1f2fed2cbdd7a0513981d6c53201e21155f4',
   maven_coords = 'io.swagger:swagger-annotations:1.5.16',
   visibility = [ 'PUBLIC' ],
-)
\ No newline at end of file
+)
+
diff --git a/lib/deps.json b/lib/deps.json
index f0f796c..a18b766 100644
--- a/lib/deps.json
+++ b/lib/deps.json
@@ -243,12 +243,12 @@
     "onos-yang-maven-plugin": "mvn:org.onosproject:onos-yang-maven-plugin:1.11",
     "onos-yang-utils-generator": "mvn:org.onosproject:onos-yang-utils-generator:1.11",
     // Note: update BVER in tools/dev/bin/patch-yang-libs
-    "onos-yang-model":"mvn:org.onosproject:onos-yang-model:2.2.0",
-    "onos-yang-compiler-api":"mvn:org.onosproject:onos-yang-compiler-api:2.2.0",
-    "onos-yang-runtime":"mvn:org.onosproject:onos-yang-runtime:2.2.0",
-    "onos-yang-serializers-json":"mvn:org.onosproject:onos-yang-serializers-json:2.2.0",
-    "onos-yang-serializers-xml":"mvn:org.onosproject:onos-yang-serializers-xml:2.2.0",
-    "onos-yang-serializers-utils":"mvn:org.onosproject:onos-yang-serializers-utils:2.2.0",
+    "onos-yang-model":"mvn:org.onosproject:onos-yang-model:2.3.0-b2",
+    "onos-yang-compiler-api":"mvn:org.onosproject:onos-yang-compiler-api:2.3.0-b2",
+    "onos-yang-runtime":"mvn:org.onosproject:onos-yang-runtime:2.3.0-b2",
+    "onos-yang-serializers-json":"mvn:org.onosproject:onos-yang-serializers-json:2.3.0-b2",
+    "onos-yang-serializers-xml":"mvn:org.onosproject:onos-yang-serializers-xml:2.3.0-b2",
+    "onos-yang-serializers-utils":"mvn:org.onosproject:onos-yang-serializers-utils:2.3.0-b2",
     "org.apache.servicemix.bundles.dom4j":"mvn:org.apache.servicemix.bundles:org.apache.servicemix.bundles.dom4j:1.6.1_5",
     "plexus-utils": "mvn:org.codehaus.plexus:plexus-utils:3.0.24",
     "sshd-core": "mvn:org.apache.sshd:sshd-core:1.4.0",
diff --git a/lib/pom.xml b/lib/pom.xml
index bae6e67..5e5f11e 100644
--- a/lib/pom.xml
+++ b/lib/pom.xml
@@ -40,7 +40,7 @@
         <netty4.version>4.1.8.Final</netty4.version>
         <openflowj.version>3.2.0.onos</openflowj.version>
         <onos-maven-plugin.version>1.10</onos-maven-plugin.version>
-        <onos-yang-tools.version>2.2.0</onos-yang-tools.version>
+        <onos-yang-tools.version>2.3.0-b2</onos-yang-tools.version>
         <osgi.version>5.0.0</osgi.version>
         <karaf.version>3.0.8</karaf.version>
         <jersey.version>2.25.1</jersey.version>
diff --git a/tools/build/onos-buck b/tools/build/onos-buck
index 6830b1d..cb624db 100755
--- a/tools/build/onos-buck
+++ b/tools/build/onos-buck
@@ -5,8 +5,8 @@
 
 set -e
 
-BUCK_URL="http://onlab.vicci.org/onos/third-party/buck-v2017.10.03.02.zip"
-BUCK_SHA="c82bfa67b18e3acd3a3ec278be1549856cb74d3b"
+BUCK_URL="http://onlab.vicci.org/onos/third-party/buck-v2017.10.17.01.zip"
+BUCK_SHA="567949ed0a68b40095d692839ff3321cde5cc5cc"
 
 [  "-U" = "$1" ] && shift && FORCE_UPDATE=True
 
diff --git a/tools/dev/bin/patch-yang-libs b/tools/dev/bin/patch-yang-libs
index 0522d9e..f04f488 100755
--- a/tools/dev/bin/patch-yang-libs
+++ b/tools/dev/bin/patch-yang-libs
@@ -3,7 +3,7 @@
 # Patches lib/BUCK file to use locally built YANG tools.
 # -----------------------------------------------------------------------------
 
-BVER=2.2.0
+BVER=2.3.0-b2
 SVER=2.3-SNAPSHOT
 
 YANG_TOOLS_ROOT=${YANG_TOOLS_ROOT:-~/onos-yang-tools}
