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 netconf-node-credentials {
34 grouping netconf-node-connection-parameters {
41 type inet:port-number;
59 choice specification {
62 leaf-list excluded-versions {
64 description "A list of TLS version names provided in JDK that are not supported by the
65 target netconf device, eg, the netopeer2 simulator does not support the
66 SSLv2Hello. Most of the time, this list need not be set";
78 container yang-module-capabilities {
83 description "Whether to override or merge this list of capabilities with capabilities from device";
86 leaf-list capability {
88 description "Set a list of capabilities to override capabilities provided in device's hello message.
89 Can be used for devices that do not report any yang modules in their hello message";
93 container non-module-capabilities {
98 description "Whether to override or merge this list of non-module based capabilities with non-module
99 based capabilities from device";
102 leaf-list capability {
104 description "Set a list of non-module based capabilities to override or merge non-module capabilities
105 provided in device's hello message. Can be used for devices that do not report or
106 incorrectly report non-module based capabilities in their hello message";
110 leaf reconnect-on-changed-schema {
114 description "If true, the connector would auto disconnect/reconnect when schemas are changed in the remote device.
115 The connector subscribes (right after connect) to base netconf notifications and listens for netconf-capability-change notification";
118 leaf connection-timeout-millis {
119 description "Specifies timeout in milliseconds after which connection must be established.";
125 leaf default-request-timeout-millis {
126 description "Timeout for blocking operations within transactions.";
132 leaf max-connection-attempts {
133 description "Maximum number of connection retries. Non positive value or null is interpreted as infinity.";
136 default 0; // retry forever
139 leaf between-attempts-timeout-millis {
140 description "Initial timeout in milliseconds to wait between connection attempts. Will be multiplied by sleep-factor with every additional attempt";
154 // Keepalive configuration
155 leaf keepalive-delay {
159 description "Netconf connector sends keepalive RPCs while the session is idle, this delay specifies the delay between keepalive RPC in seconds
160 If a value <1 is provided, no keepalives will be sent";
163 leaf concurrent-rpc-limit {
167 description "Limit of concurrent messages that can be send before reply messages are received.
168 If value <1 is provided, no limit will be enforced";
172 grouping netconf-node-connection-status {
174 leaf connection-status {
179 enum unable-to-connect;
183 container clustered-connection-status {
199 leaf connected-message {
204 container available-capabilities {
206 list available-capability {
210 leaf capability-origin {
213 enum device-advertised;
219 container unavailable-capabilities {
221 list unavailable-capability {
226 leaf failure-reason {
229 enum unable-to-resolve;
235 container pass-through {
236 when "../connection-status = connected";
238 "When the underlying node is connected, its NETCONF context
239 is available verbatim under this container through the
245 grouping netconf-schema-storage {
246 leaf schema-cache-directory {
250 description "The destination schema repository for yang files relative to the cache directory. This may be specified per netconf mount
251 so that the loaded yang files are stored to a distinct directory to avoid potential conflict.";
254 container yang-library {
255 leaf yang-library-url {
258 description "Yang library to be plugged as additional source provider into the shared schema repository";
261 // credentials for basic http authentication
274 grouping netconf-node-fields {
276 uses netconf-node-credentials;
278 uses netconf-node-connection-parameters;
280 uses netconf-node-connection-status;
282 uses netconf-schema-storage;
286 augment "/nt:network-topology/nt:topology/nt:node" {
287 when "../../nt:topology-types/topology-netconf";
288 ext:augment-identifier "netconf-node";
290 uses netconf-node-fields;