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 {
31 case login-password-deprecated {
32 description "Deprecated way of storing credentials, unencrypted.";
35 uses username-password;
38 description "login-password credentials, encrypted.";
41 container login-password {
42 uses username-password;
45 case login-pw-unencrypted {
46 description "login-password credentials, not encrypted.";
48 container login-password-unencrypted {
49 uses username-password;
53 description "key-pair based authentication, use the id for the pair thats stored in the keystore.";
68 grouping netconf-node-connection-parameters {
75 type inet:port-number;
88 container yang-module-capabilities {
93 description "Whether to override or merge this list of capabilities with capabilities from device";
96 leaf-list capability {
98 description "Set a list of capabilities to override capabilities provided in device's hello message.
99 Can be used for devices that do not report any yang modules in their hello message";
103 container non-module-capabilities {
108 description "Whether to override or merge this list of non-module based capabilities with non-module
109 based capabilities from device";
112 leaf-list capability {
114 description "Set a list of non-module based capabilities to override or merge non-module capabilities
115 provided in device's hello message. Can be used for devices that do not report or
116 incorrectly report non-module based capabilities in their hello message";
120 leaf reconnect-on-changed-schema {
124 description "If true, the connector would auto disconnect/reconnect when schemas are changed in the remote device.
125 The connector subscribes (right after connect) to base netconf notifications and listens for netconf-capability-change notification";
128 leaf connection-timeout-millis {
129 description "Specifies timeout in milliseconds after which connection must be established.";
135 leaf default-request-timeout-millis {
136 description "Timeout for blocking operations within transactions.";
142 leaf max-connection-attempts {
143 description "Maximum number of connection retries. Non positive value or null is interpreted as infinity.";
146 default 0; // retry forever
149 leaf between-attempts-timeout-millis {
150 description "Initial timeout in milliseconds to wait between connection attempts. Will be multiplied by sleep-factor with every additional attempt";
164 // Keepalive configuration
165 leaf keepalive-delay {
169 description "Netconf connector sends keepalive RPCs while the session is idle, this delay specifies the delay between keepalive RPC in seconds
170 If a value <1 is provided, no keepalives will be sent";
173 leaf concurrent-rpc-limit {
177 description "Limit of concurrent messages that can be send before reply messages are received.
178 If value <1 is provided, no limit will be enforced";
181 leaf actor-response-wait-time {
187 description "Time that slave actor will wait for response from master.";
191 grouping netconf-node-connection-status {
193 leaf connection-status {
198 enum unable-to-connect;
202 container clustered-connection-status {
216 leaf netconf-master-node {
222 leaf connected-message {
227 container available-capabilities {
229 list available-capability {
233 leaf capability-origin {
236 enum device-advertised;
242 container unavailable-capabilities {
244 list unavailable-capability {
249 leaf failure-reason {
252 enum unable-to-resolve;
258 container pass-through {
259 when "../connection-status = connected";
261 "When the underlying node is connected, its NETCONF context
262 is available verbatim under this container through the
268 grouping netconf-schema-storage {
269 leaf schema-cache-directory {
273 description "The destination schema repository for yang files relative to the cache directory. This may be specified per netconf mount
274 so that the loaded yang files are stored to a distinct directory to avoid potential conflict.";
277 container yang-library {
278 leaf yang-library-url {
281 description "Yang library to be plugged as additional source provider into the shared schema repository";
284 // credentials for basic http authentication
297 grouping netconf-node-fields {
299 uses netconf-node-credentials;
301 uses netconf-node-connection-parameters;
303 uses netconf-node-connection-status;
305 uses netconf-schema-storage;
311 uses netconf-node-fields;
326 augment "/nt:network-topology/nt:topology/nt:node" {
327 when "../../nt:topology-types/topology-netconf";
328 ext:augment-identifier "netconf-node";
330 uses netconf-node-fields;