1 module odl-netconf-device {
2 namespace "urn:opendaylight:netconf:device";
6 "Common groupings for describing configuration and operational status
7 of an OpenDaylight southbound NETCONF device.";
9 import ietf-inet-types { prefix inet; }
13 grouping username-password {
23 grouping credentials {
27 description "Deprecated way of storing credentials, unencrypted.";
30 uses username-password;
33 description "login-password credentials, encrypted.";
35 container login-password {
36 uses username-password;
39 case login-pw-unencrypted {
40 description "login-password credentials, not encrypted.";
42 container login-password-unencrypted {
43 uses username-password;
47 description "key-based authentication, use the id for the pair thats stored in the keystore.";
62 grouping connection-parameters {
68 type inet:port-number;
87 choice specification {
90 leaf-list excluded-versions {
92 description "A list of TLS version names provided in JDK that are not supported by the
93 target netconf device, eg, the netopeer2 simulator does not support the
94 SSLv2Hello. Most of the time, this list need not be set";
106 container yang-module-capabilities {
111 description "Whether to override or merge this list of capabilities with capabilities from device";
114 leaf-list capability {
116 description "Set a list of capabilities to override capabilities provided in device's hello message.
117 Can be used for devices that do not report any yang modules in their hello message";
121 container non-module-capabilities {
126 description "Whether to override or merge this list of non-module based capabilities with non-module
127 based capabilities from device";
130 leaf-list capability {
132 description "Set a list of non-module based capabilities to override or merge non-module capabilities
133 provided in device's hello message. Can be used for devices that do not report or
134 incorrectly report non-module based capabilities in their hello message";
138 leaf reconnect-on-changed-schema {
142 description "If true, the connector would auto disconnect/reconnect when schemas are changed in the
143 remote device. The connector subscribes (right after connect) to base netconf notifications
144 and listens for netconf-capability-change notification";
147 leaf connection-timeout-millis {
148 description "Specifies timeout in milliseconds after which connection must be established.";
154 leaf default-request-timeout-millis {
155 description "Timeout for blocking operations within transactions.";
161 leaf max-connection-attempts {
162 description "Maximum number of connection retries. Non positive value or null is interpreted as infinity.";
165 default 0; // retry forever
168 leaf between-attempts-timeout-millis {
169 description "Initial timeout in milliseconds to wait between connection attempts. Will be multiplied by
170 sleep-factor with every additional attempt";
184 // Keepalive configuration
185 leaf keepalive-delay {
189 description "Netconf connector sends keepalive RPCs while the session is idle, this delay specifies
190 the delay between keepalive RPC in seconds.
191 If a value <1 is provided, no keepalives will be sent";
194 leaf concurrent-rpc-limit {
198 description "Limit of concurrent messages that can be send before reply messages are received.
199 If value <1 is provided, no limit will be enforced";
202 leaf actor-response-wait-time {
208 description "Time that slave actor will wait for response from master.";
211 container odl-hello-message-capabilities {
213 leaf-list capability {
215 description "Certain devices are non-accepting of ODL's hello message. This allows specification of
216 a custom ODL hello message based on a list of supported capabilities.";
221 grouping connection-oper {
222 leaf connection-status {
227 enum unable-to-connect;
231 container clustered-connection-status {
245 leaf netconf-master-node {
251 leaf connected-message {
256 container available-capabilities {
258 list available-capability {
262 leaf capability-origin {
265 enum device-advertised;
271 container unavailable-capabilities {
273 list unavailable-capability {
278 leaf failure-reason {
281 enum unable-to-resolve;
287 container pass-through {
288 when "../connection-status = connected";
290 "When the underlying node is connected, its NETCONF context
291 is available verbatim under this container through the
296 grouping netconf-schema-storage {
297 leaf schema-cache-directory {
302 "The destination schema repository for yang files relative to the cache directory.
303 This may be specified per netconf mount so that the loaded yang files are stored
304 to a distinct directory to avoid potential conflict.";
307 container yang-library {
308 leaf yang-library-url {
312 "Yang library to be plugged as additional source provider into the shared schema repository";
315 // credentials for basic http authentication
328 grouping datastore-access {
329 leaf lock-datastore {
332 description "The operation allows the client to lock the entire configuration datastore
334 WARNING - With blocking the lock/unlock operations, the user is coming to operate
335 in a manner which is not supported. Concurrent access to the data store may interfere
336 with data consistency.";