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 {
15 presence "The presence of the container node indicates a network
20 grouping username-password {
30 grouping netconf-node-credentials {
34 description "Deprecated way of storing credentials, unencrypted.";
37 uses username-password;
40 description "login-password credentials, encrypted.";
42 container login-password {
43 uses username-password;
46 case login-pw-unencrypted {
47 description "login-password credentials, not encrypted.";
49 container login-password-unencrypted {
50 uses username-password;
54 description "key-based authentication, use the id for the pair thats stored in the keystore.";
69 grouping netconf-node-connection-parameters {
76 type inet:port-number;
95 choice specification {
98 leaf-list excluded-versions {
100 description "A list of TLS version names provided in JDK that are not supported by the
101 target netconf device, eg, the netopeer2 simulator does not support the
102 SSLv2Hello. Most of the time, this list need not be set";
114 container yang-module-capabilities {
119 description "Whether to override or merge this list of capabilities with capabilities from device";
122 leaf-list capability {
124 description "Set a list of capabilities to override capabilities provided in device's hello message.
125 Can be used for devices that do not report any yang modules in their hello message";
129 container non-module-capabilities {
134 description "Whether to override or merge this list of non-module based capabilities with non-module
135 based capabilities from device";
138 leaf-list capability {
140 description "Set a list of non-module based capabilities to override or merge non-module capabilities
141 provided in device's hello message. Can be used for devices that do not report or
142 incorrectly report non-module based capabilities in their hello message";
146 leaf reconnect-on-changed-schema {
150 description "If true, the connector would auto disconnect/reconnect when schemas are changed in the remote device.
151 The connector subscribes (right after connect) to base netconf notifications and listens for netconf-capability-change notification";
154 leaf connection-timeout-millis {
155 description "Specifies timeout in milliseconds after which connection must be established.";
161 leaf default-request-timeout-millis {
162 description "Timeout for blocking operations within transactions.";
168 leaf max-connection-attempts {
169 description "Maximum number of connection retries. Non positive value or null is interpreted as infinity.";
172 default 0; // retry forever
175 leaf between-attempts-timeout-millis {
176 description "Initial timeout in milliseconds to wait between connection attempts. Will be multiplied by sleep-factor with every additional attempt";
190 // Keepalive configuration
191 leaf keepalive-delay {
195 description "Netconf connector sends keepalive RPCs while the session is idle, this delay specifies the delay between keepalive RPC in seconds
196 If a value <1 is provided, no keepalives will be sent";
199 leaf concurrent-rpc-limit {
203 description "Limit of concurrent messages that can be send before reply messages are received.
204 If value <1 is provided, no limit will be enforced";
207 leaf actor-response-wait-time {
213 description "Time that slave actor will wait for response from master.";
216 container odl-hello-message-capabilities {
218 leaf-list capability {
220 description "Certain devices are non-accepting of ODL's hello message. This allows specification of
221 a custom ODL hello message based on a list of supported capabilities.";
226 grouping netconf-node-connection-status {
228 leaf connection-status {
233 enum unable-to-connect;
237 container clustered-connection-status {
251 leaf netconf-master-node {
257 leaf connected-message {
262 container available-capabilities {
264 list available-capability {
268 leaf capability-origin {
271 enum device-advertised;
277 container unavailable-capabilities {
279 list unavailable-capability {
284 leaf failure-reason {
287 enum unable-to-resolve;
293 container pass-through {
294 when "../connection-status = connected";
296 "When the underlying node is connected, its NETCONF context
297 is available verbatim under this container through the
303 grouping netconf-schema-storage {
304 leaf schema-cache-directory {
308 description "The destination schema repository for yang files relative to the cache directory. This may be specified per netconf mount
309 so that the loaded yang files are stored to a distinct directory to avoid potential conflict.";
312 container yang-library {
313 leaf yang-library-url {
316 description "Yang library to be plugged as additional source provider into the shared schema repository";
319 // credentials for basic http authentication
332 grouping netconf-node-fields {
334 uses netconf-node-credentials;
336 uses netconf-node-connection-parameters;
338 uses netconf-node-connection-status;
340 uses netconf-schema-storage;
346 uses netconf-node-fields;
361 augment "/nt:network-topology/nt:topology/nt:node" {
362 when "../../nt:topology-types/topology-netconf";
363 ext:augment-identifier "netconf-node";
365 uses netconf-node-fields;