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;
92 choice specification {
95 leaf-list excluded-versions {
97 description "A list of TLS version names provided in JDK that are not supported by the
98 target netconf device, eg, the netopeer2 simulator does not support the
99 SSLv2Hello. Most of the time, this list need not be set";
111 container yang-module-capabilities {
116 description "Whether to override or merge this list of capabilities with capabilities from device";
119 leaf-list capability {
121 description "Set a list of capabilities to override capabilities provided in device's hello message.
122 Can be used for devices that do not report any yang modules in their hello message";
126 container non-module-capabilities {
131 description "Whether to override or merge this list of non-module based capabilities with non-module
132 based capabilities from device";
135 leaf-list capability {
137 description "Set a list of non-module based capabilities to override or merge non-module capabilities
138 provided in device's hello message. Can be used for devices that do not report or
139 incorrectly report non-module based capabilities in their hello message";
143 leaf reconnect-on-changed-schema {
147 description "If true, the connector would auto disconnect/reconnect when schemas are changed in the remote device.
148 The connector subscribes (right after connect) to base netconf notifications and listens for netconf-capability-change notification";
151 leaf connection-timeout-millis {
152 description "Specifies timeout in milliseconds after which connection must be established.";
158 leaf default-request-timeout-millis {
159 description "Timeout for blocking operations within transactions.";
165 leaf max-connection-attempts {
166 description "Maximum number of connection retries. Non positive value or null is interpreted as infinity.";
169 default 0; // retry forever
172 leaf between-attempts-timeout-millis {
173 description "Initial timeout in milliseconds to wait between connection attempts. Will be multiplied by sleep-factor with every additional attempt";
187 // Keepalive configuration
188 leaf keepalive-delay {
192 description "Netconf connector sends keepalive RPCs while the session is idle, this delay specifies the delay between keepalive RPC in seconds
193 If a value <1 is provided, no keepalives will be sent";
196 leaf concurrent-rpc-limit {
200 description "Limit of concurrent messages that can be send before reply messages are received.
201 If value <1 is provided, no limit will be enforced";
204 leaf actor-response-wait-time {
210 description "Time that slave actor will wait for response from master.";
213 container odl-hello-message-capabilities {
215 leaf-list capability {
217 description "Certain devices are non-accepting of ODL's hello message. This allows specification of
218 a custom ODL hello message based on a list of supported capabilities.";
223 grouping netconf-node-connection-status {
225 leaf connection-status {
230 enum unable-to-connect;
234 container clustered-connection-status {
248 leaf netconf-master-node {
254 leaf connected-message {
259 container available-capabilities {
261 list available-capability {
265 leaf capability-origin {
268 enum device-advertised;
274 container unavailable-capabilities {
276 list unavailable-capability {
281 leaf failure-reason {
284 enum unable-to-resolve;
290 container pass-through {
291 when "../connection-status = connected";
293 "When the underlying node is connected, its NETCONF context
294 is available verbatim under this container through the
300 grouping netconf-schema-storage {
301 leaf schema-cache-directory {
305 description "The destination schema repository for yang files relative to the cache directory. This may be specified per netconf mount
306 so that the loaded yang files are stored to a distinct directory to avoid potential conflict.";
309 container yang-library {
310 leaf yang-library-url {
313 description "Yang library to be plugged as additional source provider into the shared schema repository";
316 // credentials for basic http authentication
329 grouping netconf-node-fields {
331 uses netconf-node-credentials;
333 uses netconf-node-connection-parameters;
335 uses netconf-node-connection-status;
337 uses netconf-schema-storage;
343 uses netconf-node-fields;
358 augment "/nt:network-topology/nt:topology/nt:node" {
359 when "../../nt:topology-types/topology-netconf";
360 ext:augment-identifier "netconf-node";
362 uses netconf-node-fields;