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; }
10 import ietf-netconf { prefix nc; }
13 description "Store encrypted login-pw case password as binary";
17 description "Remove deprecated login-password case";
21 description "Marking deprecated login-password as obsolete before removing it";
25 description "Use ietf-netconf's session-id-type";
30 grouping username-password {
40 grouping username-password-unencrypted {
50 grouping credentials {
54 description "login-password credentials, encrypted.";
56 container login-password {
57 uses username-password;
60 case login-pw-unencrypted {
61 description "login-password credentials, not encrypted.";
63 container login-password-unencrypted {
64 uses username-password-unencrypted;
68 description "key-based authentication, use the id for the pair thats stored in the keystore.";
83 grouping connection-parameters {
89 type inet:port-number;
108 choice specification {
111 leaf-list excluded-versions {
113 description "A list of TLS version names provided in JDK that are not supported by the
114 target netconf device, eg, the netopeer2 simulator does not support the
115 SSLv2Hello. Most of the time, this list need not be set";
127 container yang-module-capabilities {
132 description "Whether to override or merge this list of capabilities with capabilities from device";
135 leaf-list capability {
137 description "Set a list of capabilities to override capabilities provided in device's hello message.
138 Can be used for devices that do not report any yang modules in their hello message";
142 container non-module-capabilities {
147 description "Whether to override or merge this list of non-module based capabilities with non-module
148 based capabilities from device";
151 leaf-list capability {
153 description "Set a list of non-module based capabilities to override or merge non-module capabilities
154 provided in device's hello message. Can be used for devices that do not report or
155 incorrectly report non-module based capabilities in their hello message";
159 leaf reconnect-on-changed-schema {
163 description "If true, the connector would auto disconnect/reconnect when schemas are changed in the
164 remote device. The connector subscribes (right after connect) to base netconf notifications
165 and listens for netconf-capability-change notification";
168 leaf connection-timeout-millis {
169 description "Specifies timeout in milliseconds after which connection must be established.";
175 leaf default-request-timeout-millis {
176 description "Timeout for blocking operations within transactions.";
182 leaf max-connection-attempts {
183 description "Maximum number of connection retries. Non positive value or null is interpreted as infinity.";
186 default 0; // retry forever
189 leaf between-attempts-timeout-millis {
190 description "Initial timeout in milliseconds to wait between connection attempts. Will be multiplied by
191 sleep-factor with every additional attempt";
205 // Keepalive configuration
206 leaf keepalive-delay {
210 description "Netconf connector sends keepalive RPCs while the session is idle, this delay specifies
211 the delay between keepalive RPC in seconds.
212 If a value <1 is provided, no keepalives will be sent";
215 leaf concurrent-rpc-limit {
219 description "Limit of concurrent messages that can be send before reply messages are received.
220 If value <1 is provided, no limit will be enforced";
223 leaf actor-response-wait-time {
229 description "Time that slave actor will wait for response from master.";
232 container odl-hello-message-capabilities {
234 leaf-list capability {
236 description "Certain devices are non-accepting of ODL's hello message. This allows specification of
237 a custom ODL hello message based on a list of supported capabilities.";
242 grouping connection-oper {
245 type nc:session-id-type;
248 leaf connection-status {
253 enum unable-to-connect;
257 container clustered-connection-status {
271 leaf netconf-master-node {
277 leaf connected-message {
282 container available-capabilities {
284 list available-capability {
288 leaf capability-origin {
291 enum device-advertised;
297 container unavailable-capabilities {
299 list unavailable-capability {
304 leaf failure-reason {
307 enum unable-to-resolve;
313 container pass-through {
314 when "../connection-status = connected";
316 "When the underlying node is connected, its NETCONF context
317 is available verbatim under this container through the
322 grouping netconf-schema-storage {
323 leaf schema-cache-directory {
328 "The destination schema repository for yang files relative to the cache directory.
329 This may be specified per netconf mount so that the loaded yang files are stored
330 to a distinct directory to avoid potential conflict.";
333 container yang-library {
334 leaf yang-library-url {
338 "Yang library to be plugged as additional source provider into the shared schema repository";
341 // credentials for basic http authentication
354 grouping datastore-access {
355 leaf lock-datastore {
358 description "The operation allows the client to lock the entire configuration datastore
360 WARNING - With blocking the lock/unlock operations, the user is coming to operate
361 in a manner which is not supported. Concurrent access to the data store may interfere
362 with data consistency.";