diff options
Diffstat (limited to 'sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/currentRevision/ietf-netconf-server@2019-07-02.yang')
-rw-r--r-- | sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/currentRevision/ietf-netconf-server@2019-07-02.yang | 500 |
1 files changed, 500 insertions, 0 deletions
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/currentRevision/ietf-netconf-server@2019-07-02.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/currentRevision/ietf-netconf-server@2019-07-02.yang new file mode 100644 index 000000000..07e6dc4ae --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/currentRevision/ietf-netconf-server@2019-07-02.yang @@ -0,0 +1,500 @@ +module ietf-netconf-server { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-netconf-server"; + prefix ncs; + + import ietf-yang-types { + prefix yang; + reference + "RFC 6991: Common YANG Data Types"; + } + import ietf-x509-cert-to-name { + prefix x509c2n; + reference + "RFC 7407: A YANG Data Model for SNMP Configuration"; + } + import ietf-tcp-client { + prefix tcpc; + reference + "RFC AAAA: YANG Groupings for TCP Clients and TCP Servers"; + } + import ietf-tcp-server { + prefix tcps; + reference + "RFC AAAA: YANG Groupings for TCP Clients and TCP Servers"; + } + import ietf-ssh-server { + prefix sshs; + revision-date 2019-07-02; + reference + "RFC BBBB: YANG Groupings for SSH Clients and SSH Servers"; + } + import ietf-tls-server { + prefix tlss; + revision-date 2019-07-02; + reference + "RFC CCCC: YANG Groupings for TLS Clients and TLS Servers"; + } + + organization + "IETF NETCONF (Network Configuration) Working Group"; + contact + "WG Web: <http://datatracker.ietf.org/wg/netconf/> + WG List: <mailto:netconf@ietf.org> + Author: Kent Watsen <mailto:kent+ietf@watsen.net> + Author: Gary Wu <mailto:garywu@cisco.com> + Author: Juergen Schoenwaelder + <mailto:j.schoenwaelder@jacobs-university.de>"; + description + "This module contains a collection of YANG definitions + for configuring NETCONF servers. + + Copyright (c) 2019 IETF Trust and the persons identified + as authors of the code. All rights reserved. + + Redistribution and use in source and binary forms, with + or without modification, is permitted pursuant to, and + subject to the license terms contained in, the Simplified + BSD License set forth in Section 4.c of the IETF Trust's + Legal Provisions Relating to IETF Documents + (https://trustee.ietf.org/license-info). + + This version of this YANG module is part of RFC XXXX + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC + itself for full legal notices.; + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', + 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', + 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document + are to be interpreted as described in BCP 14 (RFC 2119) + (RFC 8174) when, and only when, they appear in all + capitals, as shown here."; + + revision 2019-07-02 { + description + "Initial version"; + reference + "RFC XXXX: NETCONF Client and Server Models"; + } + + feature ssh-listen { + description + "The 'ssh-listen' feature indicates that the NETCONF server + supports opening a port to accept NETCONF over SSH + client connections."; + reference + "RFC 6242: + Using the NETCONF Protocol over Secure Shell (SSH)"; + } + + feature tls-listen { + description + "The 'tls-listen' feature indicates that the NETCONF server + supports opening a port to accept NETCONF over TLS + client connections."; + reference + "RFC 7589: Using the NETCONF Protocol over Transport + Layer Security (TLS) with Mutual X.509 + Authentication"; + } + + feature ssh-call-home { + description + "The 'ssh-call-home' feature indicates that the NETCONF + server supports initiating a NETCONF over SSH call + home connection to NETCONF clients."; + reference + "RFC 8071: NETCONF Call Home and RESTCONF Call Home"; + } + + feature tls-call-home { + description + "The 'tls-call-home' feature indicates that the NETCONF + server supports initiating a NETCONF over TLS call + home connection to NETCONF clients."; + reference + "RFC 8071: NETCONF Call Home and RESTCONF Call Home"; + } + + grouping netconf-server-grouping { + description + "Top-level grouping for NETCONF server configuration."; + container listen { + if-feature "ssh-listen or tls-listen"; + presence "Enables server to listen for NETCONF client connections."; + description + "Configures listen behavior"; + leaf idle-timeout { + type uint16; + units "seconds"; + default "3600"; + description + "Specifies the maximum number of seconds that a NETCONF + session may remain idle. A NETCONF session will be + dropped if it is idle for an interval longer than this + number of seconds. If set to zero, then the server + will never drop a session because it is idle. Sessions + that have a notification subscription active are never + dropped."; + } + list endpoint { + key "name"; + min-elements 1; + description + "List of endpoints to listen for NETCONF connections."; + leaf name { + type string; + description + "An arbitrary name for the NETCONF listen endpoint."; + } + choice transport { + mandatory true; + description + "Selects between available transports."; + case ssh { + if-feature "ssh-listen"; + container ssh { + description + "SSH-specific listening configuration for inbound + connections."; + container tcp-server-parameters { + description + "A wrapper around the TCP client parameters + to avoid name collisions."; + uses tcps:tcp-server-grouping { + refine "local-port" { + default "830"; + description + "The NETCONF server will listen on the + IANA-assigned well-known port value + for 'netconf-ssh' (830) if no value + is specified."; + } + } + } + container ssh-server-parameters { + description + "A wrapper around the SSH server parameters + to avoid name collisions."; + uses sshs:ssh-server-grouping; + } + } + } + case tls { + if-feature "tls-listen"; + container tls { + description + "TLS-specific listening configuration for inbound + connections."; + container tcp-server-parameters { + description + "A wrapper around the TCP client parameters + to avoid name collisions."; + uses tcps:tcp-server-grouping { + refine "local-port" { + default "6513"; + description + "The NETCONF server will listen on the + IANA-assigned well-known port value + for 'netconf-tls' (6513) if no value + is specified."; + } + } + } + container tls-server-parameters { + description + "A wrapper around the TLS server parameters to + avoid name collisions."; + uses tlss:tls-server-grouping { + refine "client-authentication" { + description + "NETCONF/TLS servers MUST validate client + certificates."; + } + augment "client-authentication" { + description + "Augments in the cert-to-name structure."; + container cert-maps { + description + "The cert-maps container is used by a TLS- + based NETCONF server to map the NETCONF + client's presented X.509 certificate to + a NETCONF username. If no matching and + valid cert-to-name list entry can be found, + then the NETCONF server MUST close the + connection, and MUST NOT accept NETCONF + messages over it."; + reference + "RFC WWWW: NETCONF over TLS, Section 7"; + uses x509c2n:cert-to-name; + } + } + } + } + } + } + } + } + } + container call-home { + if-feature "ssh-call-home or tls-call-home"; + presence "Enables the NETCONF server to initiate the underlying + transport connection to NETCONF clients."; + description + "Configures call home behavior."; + list netconf-client { + key "name"; + min-elements 1; + description + "List of NETCONF clients the NETCONF server is to + initiate call-home connections to in parallel."; + leaf name { + type string; + description + "An arbitrary name for the remote NETCONF client."; + } + container endpoints { + description + "Container for the list of endpoints."; + list endpoint { + key "name"; + min-elements 1; + ordered-by user; + description + "A non-empty user-ordered list of endpoints for this + NETCONF server to try to connect to in sequence. + Defining more than one enables high-availability."; + leaf name { + type string; + description + "An arbitrary name for this endpoint."; + } + choice transport { + mandatory true; + description + "Selects between available transports."; + case ssh { + if-feature "ssh-call-home"; + container ssh { + description + "Specifies SSH-specific call-home transport + configuration."; + container tcp-client-parameters { + description + "A wrapper around the TCP client parameters + to avoid name collisions."; + uses tcpc:tcp-client-grouping { + refine "remote-port" { + default "4334"; + description + "The NETCONF server will attempt to connect + to the IANA-assigned well-known port for + 'netconf-ch-tls' (4334) if no value is + specified."; + } + } + } + container ssh-server-parameters { + description + "A wrapper around the SSH server parameters + to avoid name collisions."; + uses sshs:ssh-server-grouping; + } + } + } + case tls { + if-feature "tls-call-home"; + container tls { + description + "Specifies TLS-specific call-home transport + configuration."; + container tcp-client-parameters { + description + "A wrapper around the TCP client parameters + to avoid name collisions."; + uses tcpc:tcp-client-grouping { + refine "remote-port" { + default "4335"; + description + "The NETCONF server will attempt to connect + to the IANA-assigned well-known port for + 'netconf-ch-tls' (4335) if no value is + specified."; + } + } + } + container tls-server-parameters { + description + "A wrapper around the TLS server parameters + to avoid name collisions."; + uses tlss:tls-server-grouping { + refine "client-authentication" { + description + "NETCONF/TLS servers MUST validate client + certificates."; + } + augment "client-authentication" { + description + "Augments in the cert-to-name structure."; + container cert-maps { + description + "The cert-maps container is used by a + TLS-based NETCONF server to map the + NETCONF client's presented X.509 + certificate to a NETCONF username. If + no matching and valid cert-to-name list + entry can be found, then the NETCONF + server MUST close the connection, and + MUST NOT accept NETCONF messages over + it."; + reference + "RFC WWWW: NETCONF over TLS, Section 7"; + uses x509c2n:cert-to-name; + } + } + } + } + } + } + } + } + } + container connection-type { + description + "Indicates the NETCONF server's preference for how the + NETCONF connection is maintained."; + choice connection-type { + mandatory true; + description + "Selects between available connection types."; + case persistent-connection { + container persistent { + presence "Indicates that a persistent connection is + to be maintained."; + description + "Maintain a persistent connection to the NETCONF + client. If the connection goes down, immediately + start trying to reconnect to the NETCONF client, + using the reconnection strategy. + + This connection type minimizes any NETCONF client + to NETCONF server data-transfer delay, albeit at + the expense of holding resources longer."; + } + } + case periodic-connection { + container periodic { + presence "Indicates that a periodic connection is + to be maintained."; + description + "Periodically connect to the NETCONF client. + + This connection type increases resource + utilization, albeit with increased delay in + NETCONF client to NETCONF client interactions. + + The NETCONF client SHOULD gracefully close the + connection using <close-session> upon completing + planned activities. If the NETCONF session is + not closed gracefully, the NETCONF server MUST + immediately attempt to reestablish the connection. + + In the case that the previous connection is still + active (i.e., the NETCONF client has not closed + it yet), establishing a new connection is NOT + RECOMMENDED."; + leaf period { + type uint16; + units "minutes"; + default "60"; + description + "Duration of time between periodic connections."; + } + leaf anchor-time { + type yang:date-and-time { + pattern "\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(Z|[\\+\\-]\\d{2}:\\d{2})"; + } + description + "Designates a timestamp before or after which a + series of periodic connections are determined. + The periodic connections occur at a whole + multiple interval from the anchor time. For + example, for an anchor time is 15 minutes past + midnight and a period interval of 24 hours, then + a periodic connection will occur 15 minutes past + midnight everyday."; + } + leaf idle-timeout { + type uint16; + units "seconds"; + default "120"; + description + "Specifies the maximum number of seconds that + a NETCONF session may remain idle. A NETCONF + session will be dropped if it is idle for an + interval longer than this number of seconds. + If set to zero, then the server will never + drop a session because it is idle."; + } + } + } + } + } + container reconnect-strategy { + description + "The reconnection strategy directs how a NETCONF server + reconnects to a NETCONF client, after discovering its + connection to the client has dropped, even if due to a + reboot. The NETCONF server starts with the specified + endpoint and tries to connect to it max-attempts times + before trying the next endpoint in the list (round + robin)."; + leaf start-with { + type enumeration { + enum "first-listed" { + description + "Indicates that reconnections should start with + the first endpoint listed."; + } + enum "last-connected" { + description + "Indicates that reconnections should start with + the endpoint last connected to. If no previous + connection has ever been established, then the + first endpoint configured is used. NETCONF + servers SHOULD be able to remember the last + endpoint connected to across reboots."; + } + enum "random-selection" { + description + "Indicates that reconnections should start with + a random endpoint."; + } + } + default "first-listed"; + description + "Specifies which of the NETCONF client's endpoints + the NETCONF server should start with when trying + to connect to the NETCONF client."; + } + leaf max-attempts { + type uint8 { + range "1..max"; + } + default "3"; + description + "Specifies the number times the NETCONF server tries + to connect to a specific endpoint before moving on + to the next endpoint in the list (round robin)."; + } + } + } + } + } + + container netconf-server { + description + "Top-level container for NETCONF server configuration."; + uses netconf-server-grouping; + } +}
\ No newline at end of file |