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;
94 choice specification {
97 leaf-list excluded-versions {
99 description "A list of TLS version names provided in JDK that are not supported by the
100 target netconf device, eg, the netopeer2 simulator does not support the
101 SSLv2Hello. Most of the time, this list need not be set";
113 container yang-module-capabilities {
118 description "Whether to override or merge this list of capabilities with capabilities from device";
121 leaf-list capability {
123 description "Set a list of capabilities to override capabilities provided in device's hello message.
124 Can be used for devices that do not report any yang modules in their hello message";
128 container non-module-capabilities {
133 description "Whether to override or merge this list of non-module based capabilities with non-module
134 based capabilities from device";
137 leaf-list capability {
139 description "Set a list of non-module based capabilities to override or merge non-module capabilities
140 provided in device's hello message. Can be used for devices that do not report or
141 incorrectly report non-module based capabilities in their hello message";
145 leaf reconnect-on-changed-schema {
149 description "If true, the connector would auto disconnect/reconnect when schemas are changed in the remote device.
150 The connector subscribes (right after connect) to base netconf notifications and listens for netconf-capability-change notification";
153 leaf connection-timeout-millis {
154 description "Specifies timeout in milliseconds after which connection must be established.";
160 leaf default-request-timeout-millis {
161 description "Timeout for blocking operations within transactions.";
167 leaf max-connection-attempts {
168 description "Maximum number of connection retries. Non positive value or null is interpreted as infinity.";
171 default 0; // retry forever
174 leaf between-attempts-timeout-millis {
175 description "Initial timeout in milliseconds to wait between connection attempts. Will be multiplied by sleep-factor with every additional attempt";
189 // Keepalive configuration
190 leaf keepalive-delay {
194 description "Netconf connector sends keepalive RPCs while the session is idle, this delay specifies the delay between keepalive RPC in seconds
195 If a value <1 is provided, no keepalives will be sent";
198 leaf concurrent-rpc-limit {
202 description "Limit of concurrent messages that can be send before reply messages are received.
203 If value <1 is provided, no limit will be enforced";
206 leaf actor-response-wait-time {
212 description "Time that slave actor will wait for response from master.";
215 container odl-hello-message-capabilities {
217 leaf-list capability {
219 description "Certain devices are non-accepting of ODL's hello message. This allows specification of
220 a custom ODL hello message based on a list of supported capabilities.";
225 grouping netconf-node-connection-status {
227 leaf connection-status {
232 enum unable-to-connect;
236 container clustered-connection-status {
250 leaf netconf-master-node {
256 leaf connected-message {
261 container available-capabilities {
263 list available-capability {
267 leaf capability-origin {
270 enum device-advertised;
276 container unavailable-capabilities {
278 list unavailable-capability {
283 leaf failure-reason {
286 enum unable-to-resolve;
292 container pass-through {
293 when "../connection-status = connected";
295 "When the underlying node is connected, its NETCONF context
296 is available verbatim under this container through the
302 grouping netconf-schema-storage {
303 leaf schema-cache-directory {
307 description "The destination schema repository for yang files relative to the cache directory. This may be specified per netconf mount
308 so that the loaded yang files are stored to a distinct directory to avoid potential conflict.";
311 container yang-library {
312 leaf yang-library-url {
315 description "Yang library to be plugged as additional source provider into the shared schema repository";
318 // credentials for basic http authentication
331 grouping netconf-node-fields {
333 uses netconf-node-credentials;
335 uses netconf-node-connection-parameters;
337 uses netconf-node-connection-status;
339 uses netconf-schema-storage;
345 uses netconf-node-fields;
360 augment "/nt:network-topology/nt:topology/nt:node" {
361 when "../../nt:topology-types/topology-netconf";
362 ext:augment-identifier "netconf-node";
364 uses netconf-node-fields;