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 username-password {
28 grouping netconf-node-credentials {
32 description "Deprecated way of storing credentials, unencrypted.";
35 uses username-password;
38 description "login-password credentials, encrypted.";
40 container login-password {
41 uses username-password;
44 case login-pw-unencrypted {
45 description "login-password credentials, not encrypted.";
47 container login-password-unencrypted {
48 uses username-password;
52 description "key-based authentication, use the id for the pair thats stored in the keystore.";
67 grouping netconf-node-connection-parameters {
74 type inet:port-number;
87 container yang-module-capabilities {
92 description "Whether to override or merge this list of capabilities with capabilities from device";
95 leaf-list capability {
97 description "Set a list of capabilities to override capabilities provided in device's hello message.
98 Can be used for devices that do not report any yang modules in their hello message";
102 container non-module-capabilities {
107 description "Whether to override or merge this list of non-module based capabilities with non-module
108 based capabilities from device";
111 leaf-list capability {
113 description "Set a list of non-module based capabilities to override or merge non-module capabilities
114 provided in device's hello message. Can be used for devices that do not report or
115 incorrectly report non-module based capabilities in their hello message";
119 leaf reconnect-on-changed-schema {
123 description "If true, the connector would auto disconnect/reconnect when schemas are changed in the remote device.
124 The connector subscribes (right after connect) to base netconf notifications and listens for netconf-capability-change notification";
127 leaf connection-timeout-millis {
128 description "Specifies timeout in milliseconds after which connection must be established.";
134 leaf default-request-timeout-millis {
135 description "Timeout for blocking operations within transactions.";
141 leaf max-connection-attempts {
142 description "Maximum number of connection retries. Non positive value or null is interpreted as infinity.";
145 default 0; // retry forever
148 leaf between-attempts-timeout-millis {
149 description "Initial timeout in milliseconds to wait between connection attempts. Will be multiplied by sleep-factor with every additional attempt";
163 // Keepalive configuration
164 leaf keepalive-delay {
168 description "Netconf connector sends keepalive RPCs while the session is idle, this delay specifies the delay between keepalive RPC in seconds
169 If a value <1 is provided, no keepalives will be sent";
172 leaf concurrent-rpc-limit {
176 description "Limit of concurrent messages that can be send before reply messages are received.
177 If value <1 is provided, no limit will be enforced";
180 leaf actor-response-wait-time {
186 description "Time that slave actor will wait for response from master.";
190 grouping netconf-node-connection-status {
192 leaf connection-status {
197 enum unable-to-connect;
201 container clustered-connection-status {
215 leaf netconf-master-node {
221 leaf connected-message {
226 container available-capabilities {
228 list available-capability {
232 leaf capability-origin {
235 enum device-advertised;
241 container unavailable-capabilities {
243 list unavailable-capability {
248 leaf failure-reason {
251 enum unable-to-resolve;
257 container pass-through {
258 when "../connection-status = connected";
260 "When the underlying node is connected, its NETCONF context
261 is available verbatim under this container through the
267 grouping netconf-schema-storage {
268 leaf schema-cache-directory {
272 description "The destination schema repository for yang files relative to the cache directory. This may be specified per netconf mount
273 so that the loaded yang files are stored to a distinct directory to avoid potential conflict.";
276 container yang-library {
277 leaf yang-library-url {
280 description "Yang library to be plugged as additional source provider into the shared schema repository";
283 // credentials for basic http authentication
296 grouping netconf-node-fields {
298 uses netconf-node-credentials;
300 uses netconf-node-connection-parameters;
302 uses netconf-node-connection-status;
304 uses netconf-schema-storage;
310 uses netconf-node-fields;
325 augment "/nt:network-topology/nt:topology/nt:node" {
326 when "../../nt:topology-types/topology-netconf";
327 ext:augment-identifier "netconf-node";
329 uses netconf-node-fields;