HONEYCOMB-34: Config tree initialization using binding data broker
[honeycomb.git] / v3po / impl / src / main / config / default-config.xml
index 3d0e4f7..518a6fa 100644 (file)
     <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
       <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
 
-        <!--<module>-->
-          <!--<type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">prefix:dom-inmemory-data-broker</type>-->
-          <!--<name>netconf-inmemory-data-broker</name>-->
-
-          <!--<schema-service>-->
-            <!--<type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:schema-service</type>-->
-            <!--<name>yang-schema-service</name>-->
-          <!--</schema-service>-->
-
-          <!--<config-data-store>-->
-            <!--<type xmlns:config-dom-store-spi="urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:config-dom-store">config-dom-store-spi:config-dom-datastore</type>-->
-            <!--<name>netconf-config-store-service</name>-->
-          <!--</config-data-store>-->
-
-          <!--<operational-data-store>-->
-            <!--<type xmlns:operational-dom-store-spi="urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:operational-dom-store">operational-dom-store-spi:operational-dom-datastore</type>-->
-            <!--<name>netconf-operational-store-service</name>-->
-          <!--</operational-data-store>-->
-        <!--</module>-->
-
-        <!--<module>-->
-          <!--<type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-forwarded-data-broker</type>-->
-          <!--<name>honeycomb-binding-data-broker</name>-->
-          <!--<binding-forwarded-data-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">-->
-
-            <!--&lt;!&ndash;TODO &ndash;&gt;-->
-            <!--&lt;!&ndash;<dom-async-broker>&ndash;&gt;-->
-              <!--&lt;!&ndash;<type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-async-data-broker</type>&ndash;&gt;-->
-              <!--&lt;!&ndash;<name>honeycomb-dom-data-broker</name>&ndash;&gt;-->
-            <!--&lt;!&ndash;</dom-async-broker>&ndash;&gt;-->
-
-            <!--<dom-async-broker>-->
-              <!--<type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-async-data-broker</type>-->
-              <!--<name>netconf-inmemory-data-broker</name>-->
-            <!--</dom-async-broker>-->
-
-            <!--<schema-service>-->
-              <!--<type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:schema-service</type>-->
-              <!--<name>yang-schema-service</name>-->
-            <!--</schema-service>-->
-            <!--<binding-mapping-service>-->
-              <!--<type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding:binding-dom-mapping-service</type>-->
-              <!--<name>runtime-mapping-singleton</name>-->
-            <!--</binding-mapping-service>-->
-          <!--</binding-forwarded-data-broker>-->
-        <!--</module>-->
-
-
         <module>
           <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:translate:utils">prefix:delegating-reader-registry</type>
           <name>read-registry</name>
           <name>write-registry</name>
         </module>
 
+        <!-- In-memory data tree for HC config data tree -->
         <module>
-          <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:data:impl">prefix:honeycomb-config-data-tree</type>
-          <name>config-data-tree</name>
-
+          <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:data:impl">prefix:inmemory-config-data-tree</type>
+          <name>inmemory-config-data-tree</name>
           <schema-service>
             <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:schema-service</type>
             <name>yang-schema-service</name>
           </schema-service>
-          <binding-normalized-node-serializer>
+        </module>
+
+
+        <!-- HC config data tree -->
+        <module>
+          <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:data:impl">prefix:honeycomb-config-data-tree</type>
+          <name>config-data-tree</name>
+          <data-tree>
+            <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:data:impl">prefix:data-tree</type>
+            <name>inmemory-config-data-tree</name>
+          </data-tree>
+          <serializer>
             <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-dom-mapping-service</type>
             <name>runtime-mapping-singleton</name>
-          </binding-normalized-node-serializer>
+          </serializer>
           <writer-registry>
             <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:translate:api">prefix:honeycomb-writer-registry</type>
             <name>write-registry</name>
           </writer-registry>
         </module>
 
+        <!-- HC operational data tree -->
+        <module>
+          <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:data:impl">prefix:honeycomb-operational-data-tree</type>
+          <name>operational-data-tree</name>
+          <schema-service>
+            <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:schema-service</type>
+            <name>yang-schema-service</name>
+          </schema-service>
+          <serializer>
+            <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-dom-mapping-service</type>
+            <name>runtime-mapping-singleton</name>
+          </serializer>
+          <reader-registry>
+            <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:translate:api">prefix:honeycomb-reader-registry</type>
+            <name>read-registry</name>
+          </reader-registry>
+        </module>
+
+        <!-- DOM data broker which provides transaction functionality for HC using BI format-->
+        <module>
+          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:v3po:impl">prefix:honeycomb-dom-data-broker</type>
+          <name>honeycomb-dom-data-broker</name>
+          <config-data-tree>
+            <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:data:api">prefix:honeycomb-modifiable-data-tree</type>
+            <name>config-data-tree</name>
+          </config-data-tree>
+          <operational-data-tree>
+            <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:data:api">prefix:honeycomb-readable-data-tree</type>
+            <name>operational-data-tree</name>
+          </operational-data-tree>
+        </module>
+
+        <!-- Binding data broker which provides transaction functionality for HC using BA format -->
+        <module>
+          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-forwarded-data-broker</type>
+          <name>honeycomb-binding-data-broker</name>
+          <binding-forwarded-data-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
+
+            <dom-async-broker>
+              <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-async-data-broker</type>
+              <name>honeycomb-dom-data-broker</name>
+            </dom-async-broker>
+            <schema-service>
+              <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:schema-service</type>
+              <name>yang-schema-service</name>
+            </schema-service>
+            <binding-mapping-service>
+              <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding:binding-dom-mapping-service</type>
+              <name>runtime-mapping-singleton</name>
+            </binding-mapping-service>
+          </binding-forwarded-data-broker>
+        </module>
+
         <module>
           <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:v3po:impl">prefix:v3po</type>
           <name>v3po-default</name>
             <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:vpp:japi:cfg">prefix:vpp-japi</type>
             <name>vpp-japi</name>
           </vpp-japi>
-          <reader-registry>
-            <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:translate:api">prefix:honeycomb-reader-registry</type>
-            <name>read-registry</name>
-          </reader-registry>
+          <serializer>
+            <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-dom-mapping-service</type>
+            <name>runtime-mapping-singleton</name>
+          </serializer>
+          <dom-data-broker>
+            <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-async-data-broker</type>
+            <name>honeycomb-dom-data-broker</name>
+          </dom-data-broker>
+        </module>
+
+        <!-- Config initialization -->
+        <!-- Empty registry which does not pass data to VPP  -->
+        <module>
+          <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:translate:utils">prefix:noop-writer-registry</type>
+          <name>noop-writer-registry</name>
+        </module>
+        <!-- Config data tree which does not pass data to translation layer (uses noop-write-registry)  -->
+        <module>
+          <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:data:impl">prefix:honeycomb-config-data-tree</type>
+          <name>cfg-init-config-data-tree</name>
+          <data-tree>
+            <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:data:impl">prefix:data-tree</type>
+            <name>inmemory-config-data-tree</name>
+          </data-tree>
+          <serializer>
+            <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-dom-mapping-service</type>
+            <name>runtime-mapping-singleton</name>
+          </serializer>
           <writer-registry>
             <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:translate:api">prefix:honeycomb-writer-registry</type>
-            <name>write-registry</name>
+            <name>noop-writer-registry</name>
           </writer-registry>
-          <binding-normalized-node-serializer>
-            <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-dom-mapping-service</type>
-            <name>runtime-mapping-singleton</name>
-          </binding-normalized-node-serializer>
+        </module>
+        <!-- DOM data broker for config initialization -->
+        <module>
+          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:v3po:impl">prefix:honeycomb-dom-data-broker</type>
+          <name>cfg-init-dom-data-broker</name>
           <config-data-tree>
             <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:data:api">prefix:honeycomb-modifiable-data-tree</type>
-            <name>config-data-tree</name>
+            <name>cfg-init-config-data-tree</name>
           </config-data-tree>
+          <operational-data-tree>
+            <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:data:api">prefix:honeycomb-readable-data-tree</type>
+            <name>operational-data-tree</name>
+          </operational-data-tree>
         </module>
-
+        <!-- Binding data broker for config initialization -->
+        <module>
+          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-forwarded-data-broker</type>
+          <name>cfg-init-binding-data-broker</name>
+          <binding-forwarded-data-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
+            <dom-async-broker>
+              <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-async-data-broker</type>
+              <name>cfg-init-dom-data-broker</name>
+            </dom-async-broker>
+            <schema-service>
+              <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:schema-service</type>
+              <name>yang-schema-service</name>
+            </schema-service>
+            <binding-mapping-service>
+              <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding:binding-dom-mapping-service</type>
+              <name>runtime-mapping-singleton</name>
+            </binding-mapping-service>
+          </binding-forwarded-data-broker>
+        </module>
+        <!-- Config initializer -->
         <module>
           <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:vpp:data:init">prefix:vpp-cfg-initializer-impl</type>
           <name>vpp-cfg-initializer</name>
-          <reader-registry>
-            <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:translate:api">prefix:honeycomb-reader-registry</type>
-            <name>read-registry</name>
-          </reader-registry>
-        </module>
-
+          <binding-data-broker>
+            <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-async-data-broker</type>
+            <name>cfg-init-binding-data-broker</name>
+          </binding-data-broker>
+        </module>noop-writer-registry
+        <!-- END: Config initialization -->
       </modules>
 
       <services xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
 
-        <!--<service>-->
-          <!--<type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-async-data-broker</type>-->
-          <!--<instance>-->
-            <!--<name>netconf-inmemory-data-broker</name>-->
-            <!--<provider>/modules/module[type='dom-inmemory-data-broker'][name='netconf-inmemory-data-broker']</provider>-->
-          <!--</instance>-->
-        <!--</service>-->
-
-        <!--<service>-->
-          <!--<type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-async-data-broker</type>-->
-          <!--<instance>-->
-            <!--<name>honeycomb-binding-data-broker</name>-->
-            <!--<provider>/modules/module[type='binding-forwarded-data-broker'][name='honeycomb-binding-data-broker']</provider>-->
-          <!--</instance>-->
-        <!--</service>-->
+        <service>
+          <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-async-data-broker</type>
+          <instance>
+            <name>honeycomb-dom-data-broker</name>
+            <provider>/modules/module[type='honeycomb-dom-data-broker'][name='honeycomb-dom-data-broker']</provider>
+          </instance>
+        </service>
 
+        <service>
+          <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-async-data-broker</type>
+          <instance>
+            <name>honeycomb-binding-data-broker</name>
+            <provider>/modules/module[type='binding-forwarded-data-broker'][name='honeycomb-binding-data-broker']</provider>
+          </instance>
+        </service>
 
         <service>
           <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:translate:api">prefix:honeycomb-reader-registry</type>
             <provider>/modules/module[type='delegating-writer-registry'][name='write-registry']</provider>
           </instance>
         </service>
+
+        <service>
+          <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:data:impl">prefix:data-tree</type>
+          <instance>
+            <name>inmemory-config-data-tree</name>
+            <provider>/modules/module[type='inmemory-config-data-tree'][name='inmemory-config-data-tree']
+            </provider>
+          </instance>
+        </service>
+
         <service>
           <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:data:api">prefix:honeycomb-modifiable-data-tree</type>
           <instance>
           </instance>
         </service>
         <service>
-          <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:vpp:data:init">prefix:vpp-cfg-initializer</type>
+          <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:data:api">prefix:honeycomb-readable-data-tree</type>
           <instance>
-            <name>vpp-cfg-initializer</name>
-            <provider>/modules/module[type='vpp-cfg-initializer-impl'][name='vpp-cfg-initializer']
+            <name>operational-data-tree</name>
+            <provider>/modules/module[type='honeycomb-operational-data-tree'][name='operational-data-tree']
             </provider>
           </instance>
         </service>
           </instance>
         </service>
 
+        <!-- Config initialization -->
+        <service>
+          <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:translate:api">prefix:honeycomb-writer-registry</type>
+          <instance>
+            <name>noop-writer-registry</name>
+            <provider>/modules/module[type='noop-writer-registry'][name='noop-writer-registry']</provider>
+          </instance>
+        </service>
+        <service>
+          <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:data:api">prefix:honeycomb-modifiable-data-tree</type>
+          <instance>
+            <name>cfg-init-config-data-tree</name>
+            <provider>/modules/module[type='honeycomb-config-data-tree'][name='cfg-init-config-data-tree']
+            </provider>
+          </instance>
+        </service>
+        <service>
+          <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-async-data-broker</type>
+          <instance>
+            <name>cfg-init-dom-data-broker</name>
+            <provider>/modules/module[type='honeycomb-dom-data-broker'][name='cfg-init-dom-data-broker']</provider>
+          </instance>
+        </service>
+        <service>
+          <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-async-data-broker</type>
+          <instance>
+            <name>cfg-init-binding-data-broker</name>
+            <provider>/modules/module[type='binding-forwarded-data-broker'][name='cfg-init-binding-data-broker']</provider>
+          </instance>
+        </service>
+        <service>
+          <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:vpp:data:init">prefix:vpp-cfg-initializer</type>
+          <instance>
+            <name>vpp-cfg-initializer</name>
+            <provider>/modules/module[type='vpp-cfg-initializer-impl'][name='vpp-cfg-initializer']
+            </provider>
+          </instance>
+        </service>
+        <!-- END: Config initialization -->
+
       </services>
     </data>
   </configuration>