X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-dom-broker%2Fsrc%2Fmain%2Fyang%2Fopendaylight-dom-broker-impl.yang;h=989b5b56499c075db324187cb3024be43b5b7f53;hp=9ae9c9ce6d4fe65571b4aad1640b3b8782e82930;hb=a9406b1074eecabc79d13cd47f1c0f221b99e428;hpb=ac65af650d550ae56dd02b660e1c5eef24b78740 diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/yang/opendaylight-dom-broker-impl.yang b/opendaylight/md-sal/sal-dom-broker/src/main/yang/opendaylight-dom-broker-impl.yang index 9ae9c9ce6d..989b5b5649 100644 --- a/opendaylight/md-sal/sal-dom-broker/src/main/yang/opendaylight-dom-broker-impl.yang +++ b/opendaylight/md-sal/sal-dom-broker/src/main/yang/opendaylight-dom-broker-impl.yang @@ -1,15 +1,22 @@ module opendaylight-sal-dom-broker-impl { - yang-version 1; + yang-version 1; namespace "urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl"; - prefix "binding-impl"; + prefix "broker"; - import config { prefix config; revision-date 2013-04-05; } - import opendaylight-md-sal-dom {prefix sal;} - import opendaylight-md-sal-common {prefix common;} + import config { prefix config; revision-date 2013-04-05; } + import ietf-yang-types { prefix yang; } + import opendaylight-md-sal-dom {prefix sal;} + import opendaylight-md-sal-common {prefix common;} + import opendaylight-config-dom-datastore {prefix config-dom-store-spi;} + import opendaylight-operational-dom-datastore {prefix operational-dom-store-spi;} + import rpc-context { prefix rpcx; revision-date 2013-06-17; } description - "Service definition for Binding Aware MD-SAL."; - + "Service definition for Binding Aware MD-SAL. + Note: The dom-inmemory-data-broker utilizes configurable config-dom-datastore + and operation-dom-datastore. If configuration is not done for this stores + then it defaults to InMemoryDOMDataStore"; + revision "2013-10-28" { description "Initial revision"; @@ -19,14 +26,14 @@ module opendaylight-sal-dom-broker-impl { base config:module-type; config:provided-service sal:dom-broker-osgi-registry; config:java-name-prefix DomBrokerImpl; - } - - identity hash-map-data-store { + } + + + identity dom-inmemory-data-broker { base config:module-type; - config:provided-service sal:dom-data-store; - config:java-name-prefix HashMapDataStore; + config:provided-service sal:dom-async-data-broker; } - + identity schema-service-singleton { base config:module-type; config:provided-service sal:schema-service; @@ -39,32 +46,153 @@ module opendaylight-sal-dom-broker-impl { container data-store { uses config:service-ref { refine type { - mandatory true; + mandatory false; config:required-identity sal:dom-data-store; } } } + + container async-data-broker { + uses config:service-ref { + refine type { + mandatory false; + config:required-identity sal:dom-async-data-broker; + } + } + } + + container root-schema-service { + uses config:service-ref { + refine type { + mandatory false; + config:required-identity sal:schema-service; + } + } + } + } + } + + grouping dom-broker-config { + container schema-service { + uses config:service-ref { + refine type { + mandatory false; + config:required-identity sal:schema-service; + } + } + } + + container config-data-store { + uses config:service-ref { + refine type { + mandatory false; + config:required-identity config-dom-store-spi:config-dom-datastore; + } + } + } + + container operational-data-store { + uses config:service-ref { + refine type { + mandatory false; + config:required-identity operational-dom-store-spi:operational-dom-datastore; + } + } + } + + leaf max-data-broker-future-callback-queue-size { + default 1000; + type uint16; + description "The maximum queue size for the data broker's commit future callback executor."; + } + + leaf max-data-broker-future-callback-pool-size { + default 20; + type uint16; + description "The maximum thread pool size for the data broker's commit future callback executor."; + } + + leaf max-data-broker-commit-queue-size { + default 5000; + type uint16; + description "The maximum queue size for the data broker's commit executor."; + } + } + + grouping dom-broker-operational { + leaf total-commits { + type uint64; + } + + leaf average-commit { + type uint64; + units ns; + } + + leaf longest-commit-duration { + type uint64; + units ns; + } + + leaf longest-commit-timestamp { + type yang:date-and-time; + } + + leaf shortest-commit-duration { + type uint64; + units ns; + } + + leaf shortest-commit-timestamp { + type yang:date-and-time; + } + + rpcx:rpc-context-instance dom-broker-rpc-ctx; + } + + identity dom-broker-rpc-ctx; + + rpc reset-statistics { + description + "JMX call to clear the toasts-made counter."; + + input { + uses rpcx:rpc-context-ref { + refine context-instance { + rpcx:rpc-context-instance dom-broker-rpc-ctx; + } + } + } + } + + augment "/config:modules/config:module/config:configuration" { + case dom-inmemory-data-broker { + when "/config:modules/config:module/config:type = 'dom-inmemory-data-broker'"; + + uses dom-broker-config; } } - + augment "/config:modules/config:module/config:state" { - case hash-map-data-store { - when "/config:modules/config:module/config:type = 'hash-map-data-store'"; + case dom-inmemory-data-broker { + when "/config:modules/config:module/config:type = 'dom-inmemory-data-broker'"; + + uses dom-broker-operational; } } - + augment "/config:modules/config:module/config:state" { case schema-service-singleton { when "/config:modules/config:module/config:type = 'schema-service-singleton'"; } } - + augment "/config:modules/config:module/config:state" { case dom-broker-impl { when "/config:modules/config:module/config:type = 'dom-broker-impl'"; container data { uses common:data-state; - } + } } } -} \ No newline at end of file +}