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 "Use ietf-netconf's session-id-type";
18 grouping username-password {
28 grouping 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 connection-parameters {
73 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
148 remote device. The connector subscribes (right after connect) to base netconf notifications
149 and listens for netconf-capability-change notification";
152 leaf connection-timeout-millis {
153 description "Specifies timeout in milliseconds after which connection must be established.";
159 leaf default-request-timeout-millis {
160 description "Timeout for blocking operations within transactions.";
166 leaf max-connection-attempts {
167 description "Maximum number of connection retries. Non positive value or null is interpreted as infinity.";
170 default 0; // retry forever
173 leaf between-attempts-timeout-millis {
174 description "Initial timeout in milliseconds to wait between connection attempts. Will be multiplied by
175 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
195 the delay between keepalive RPC in seconds.
196 If a value <1 is provided, no keepalives will be sent";
199 leaf concurrent-rpc-limit {
203 description "Limit of concurrent messages that can be send before reply messages are received.
204 If value <1 is provided, no limit will be enforced";
207 leaf actor-response-wait-time {
213 description "Time that slave actor will wait for response from master.";
216 container odl-hello-message-capabilities {
218 leaf-list capability {
220 description "Certain devices are non-accepting of ODL's hello message. This allows specification of
221 a custom ODL hello message based on a list of supported capabilities.";
226 grouping connection-oper {
229 type nc:session-id-type;
232 leaf connection-status {
237 enum unable-to-connect;
241 container clustered-connection-status {
255 leaf netconf-master-node {
261 leaf connected-message {
266 container available-capabilities {
268 list available-capability {
272 leaf capability-origin {
275 enum device-advertised;
281 container unavailable-capabilities {
283 list unavailable-capability {
288 leaf failure-reason {
291 enum unable-to-resolve;
297 container pass-through {
298 when "../connection-status = connected";
300 "When the underlying node is connected, its NETCONF context
301 is available verbatim under this container through the
306 grouping netconf-schema-storage {
307 leaf schema-cache-directory {
312 "The destination schema repository for yang files relative to the cache directory.
313 This may be specified per netconf mount so that the loaded yang files are stored
314 to a distinct directory to avoid potential conflict.";
317 container yang-library {
318 leaf yang-library-url {
322 "Yang library to be plugged as additional source provider into the shared schema repository";
325 // credentials for basic http authentication
338 grouping datastore-access {
339 leaf lock-datastore {
342 description "The operation allows the client to lock the entire configuration datastore
344 WARNING - With blocking the lock/unlock operations, the user is coming to operate
345 in a manner which is not supported. Concurrent access to the data store may interfere
346 with data consistency.";