1 module netconf-node-topology {
2 namespace "urn:opendaylight:netconf-node-topology";
5 import network-topology { prefix nt; revision-date 2013-10-21; }
6 import yang-ext { prefix ext; revision-date "2013-07-09";}
7 import ietf-inet-types { prefix inet; revision-date "2013-07-15"; }
9 revision "2015-01-14" {
10 description "Initial revision of Topology model";
13 augment "/nt:network-topology/nt:topology/nt:topology-types" {
14 container topology-netconf {
18 grouping netconf-node-credentials {
34 grouping netconf-node-connection-parameters {
41 type inet:port-number;
54 container yang-module-capabilities {
59 description "Whether to override or merge this list of capabilities with capabilities from device";
62 leaf-list capability {
64 description "Set a list of capabilities to override capabilities provided in device's hello message.
65 Can be used for devices that do not report any yang modules in their hello message";
69 container non-module-capabilities {
74 description "Whether to override or merge this list of non-module based capabilities with non-module
75 based capabilities from device";
78 leaf-list capability {
80 description "Set a list of non-module based capabilities to override or merge non-module capabilities
81 provided in device's hello message. Can be used for devices that do not report or
82 incorrectly report non-module based capabilities in their hello message";
86 leaf reconnect-on-changed-schema {
90 description "If true, the connector would auto disconnect/reconnect when schemas are changed in the remote device.
91 The connector subscribes (right after connect) to base netconf notifications and listens for netconf-capability-change notification";
94 leaf connection-timeout-millis {
95 description "Specifies timeout in milliseconds after which connection must be established.";
101 leaf default-request-timeout-millis {
102 description "Timeout for blocking operations within transactions.";
108 leaf max-connection-attempts {
109 description "Maximum number of connection retries. Non positive value or null is interpreted as infinity.";
112 default 0; // retry forever
115 leaf between-attempts-timeout-millis {
116 description "Initial timeout in milliseconds to wait between connection attempts. Will be multiplied by sleep-factor with every additional attempt";
130 // Keepalive configuration
131 leaf keepalive-delay {
135 description "Netconf connector sends keepalive RPCs while the session is idle, this delay specifies the delay between keepalive RPC in seconds
136 If a value <1 is provided, no keepalives will be sent";
139 leaf concurrent-rpc-limit {
143 description "Limit of concurrent messages that can be send before reply messages are received.
144 If value <1 is provided, no limit will be enforced";
147 leaf actor-response-wait-time {
153 description "Time that slave actor will wait for response from master.";
157 grouping netconf-node-connection-status {
159 leaf connection-status {
164 enum unable-to-connect;
168 container clustered-connection-status {
182 leaf netconf-master-node {
188 leaf connected-message {
193 container available-capabilities {
195 list available-capability {
199 leaf capability-origin {
202 enum device-advertised;
208 container unavailable-capabilities {
210 list unavailable-capability {
215 leaf failure-reason {
218 enum unable-to-resolve;
224 container pass-through {
225 when "../connection-status = connected";
227 "When the underlying node is connected, its NETCONF context
228 is available verbatim under this container through the
234 grouping netconf-schema-storage {
235 leaf schema-cache-directory {
239 description "The destination schema repository for yang files relative to the cache directory. This may be specified per netconf mount
240 so that the loaded yang files are stored to a distinct directory to avoid potential conflict.";
243 container yang-library {
244 leaf yang-library-url {
247 description "Yang library to be plugged as additional source provider into the shared schema repository";
250 // credentials for basic http authentication
263 grouping netconf-node-fields {
265 uses netconf-node-credentials;
267 uses netconf-node-connection-parameters;
269 uses netconf-node-connection-status;
271 uses netconf-schema-storage;
275 rpc add-netconf-node {
277 uses netconf-node-fields;
288 augment "/nt:network-topology/nt:topology/nt:node" {
289 when "../../nt:topology-types/topology-netconf";
290 ext:augment-identifier "netconf-node";
292 uses netconf-node-fields;