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.";
62 grouping netconf-node-connection-parameters {
69 type inet:port-number;
82 container yang-module-capabilities {
87 description "Whether to override or merge this list of capabilities with capabilities from device";
90 leaf-list capability {
92 description "Set a list of capabilities to override capabilities provided in device's hello message.
93 Can be used for devices that do not report any yang modules in their hello message";
97 container non-module-capabilities {
102 description "Whether to override or merge this list of non-module based capabilities with non-module
103 based capabilities from device";
106 leaf-list capability {
108 description "Set a list of non-module based capabilities to override or merge non-module capabilities
109 provided in device's hello message. Can be used for devices that do not report or
110 incorrectly report non-module based capabilities in their hello message";
114 leaf reconnect-on-changed-schema {
118 description "If true, the connector would auto disconnect/reconnect when schemas are changed in the remote device.
119 The connector subscribes (right after connect) to base netconf notifications and listens for netconf-capability-change notification";
122 leaf connection-timeout-millis {
123 description "Specifies timeout in milliseconds after which connection must be established.";
129 leaf default-request-timeout-millis {
130 description "Timeout for blocking operations within transactions.";
136 leaf max-connection-attempts {
137 description "Maximum number of connection retries. Non positive value or null is interpreted as infinity.";
140 default 0; // retry forever
143 leaf between-attempts-timeout-millis {
144 description "Initial timeout in milliseconds to wait between connection attempts. Will be multiplied by sleep-factor with every additional attempt";
158 // Keepalive configuration
159 leaf keepalive-delay {
163 description "Netconf connector sends keepalive RPCs while the session is idle, this delay specifies the delay between keepalive RPC in seconds
164 If a value <1 is provided, no keepalives will be sent";
167 leaf concurrent-rpc-limit {
171 description "Limit of concurrent messages that can be send before reply messages are received.
172 If value <1 is provided, no limit will be enforced";
175 leaf actor-response-wait-time {
181 description "Time that slave actor will wait for response from master.";
185 grouping netconf-node-connection-status {
187 leaf connection-status {
192 enum unable-to-connect;
196 container clustered-connection-status {
210 leaf netconf-master-node {
216 leaf connected-message {
221 container available-capabilities {
223 list available-capability {
227 leaf capability-origin {
230 enum device-advertised;
236 container unavailable-capabilities {
238 list unavailable-capability {
243 leaf failure-reason {
246 enum unable-to-resolve;
252 container pass-through {
253 when "../connection-status = connected";
255 "When the underlying node is connected, its NETCONF context
256 is available verbatim under this container through the
262 grouping netconf-schema-storage {
263 leaf schema-cache-directory {
267 description "The destination schema repository for yang files relative to the cache directory. This may be specified per netconf mount
268 so that the loaded yang files are stored to a distinct directory to avoid potential conflict.";
271 container yang-library {
272 leaf yang-library-url {
275 description "Yang library to be plugged as additional source provider into the shared schema repository";
278 // credentials for basic http authentication
291 grouping netconf-node-fields {
293 uses netconf-node-credentials;
295 uses netconf-node-connection-parameters;
297 uses netconf-node-connection-status;
299 uses netconf-schema-storage;
303 rpc add-netconf-node {
305 uses netconf-node-fields;
312 augment "/nt:network-topology/nt:topology/nt:node" {
313 when "../../nt:topology-types/topology-netconf";
314 ext:augment-identifier "netconf-node";
316 uses netconf-node-fields;