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 "Remove deprecated login-password case";
17 description "Marking deprecated login-password as obsolete before removing it";
21 description "Use ietf-netconf's session-id-type";
26 grouping username-password {
36 grouping credentials {
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 connection-parameters {
75 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
150 remote device. The connector subscribes (right after connect) to base netconf notifications
151 and listens for netconf-capability-change notification";
154 leaf connection-timeout-millis {
155 description "Specifies timeout in milliseconds after which connection must be established.";
161 leaf default-request-timeout-millis {
162 description "Timeout for blocking operations within transactions.";
168 leaf max-connection-attempts {
169 description "Maximum number of connection retries. Non positive value or null is interpreted as infinity.";
172 default 0; // retry forever
175 leaf between-attempts-timeout-millis {
176 description "Initial timeout in milliseconds to wait between connection attempts. Will be multiplied by
177 sleep-factor with every additional attempt";
191 // Keepalive configuration
192 leaf keepalive-delay {
196 description "Netconf connector sends keepalive RPCs while the session is idle, this delay specifies
197 the delay between keepalive RPC in seconds.
198 If a value <1 is provided, no keepalives will be sent";
201 leaf concurrent-rpc-limit {
205 description "Limit of concurrent messages that can be send before reply messages are received.
206 If value <1 is provided, no limit will be enforced";
209 leaf actor-response-wait-time {
215 description "Time that slave actor will wait for response from master.";
218 container odl-hello-message-capabilities {
220 leaf-list capability {
222 description "Certain devices are non-accepting of ODL's hello message. This allows specification of
223 a custom ODL hello message based on a list of supported capabilities.";
228 grouping connection-oper {
231 type nc:session-id-type;
234 leaf connection-status {
239 enum unable-to-connect;
243 container clustered-connection-status {
257 leaf netconf-master-node {
263 leaf connected-message {
268 container available-capabilities {
270 list available-capability {
274 leaf capability-origin {
277 enum device-advertised;
283 container unavailable-capabilities {
285 list unavailable-capability {
290 leaf failure-reason {
293 enum unable-to-resolve;
299 container pass-through {
300 when "../connection-status = connected";
302 "When the underlying node is connected, its NETCONF context
303 is available verbatim under this container through the
308 grouping netconf-schema-storage {
309 leaf schema-cache-directory {
314 "The destination schema repository for yang files relative to the cache directory.
315 This may be specified per netconf mount so that the loaded yang files are stored
316 to a distinct directory to avoid potential conflict.";
319 container yang-library {
320 leaf yang-library-url {
324 "Yang library to be plugged as additional source provider into the shared schema repository";
327 // credentials for basic http authentication
340 grouping datastore-access {
341 leaf lock-datastore {
344 description "The operation allows the client to lock the entire configuration datastore
346 WARNING - With blocking the lock/unlock operations, the user is coming to operate
347 in a manner which is not supported. Concurrent access to the data store may interfere
348 with data consistency.";