summaryrefslogtreecommitdiffstats
path: root/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/currentRevision/ietf-netconf-server@2019-07-02.yang
diff options
context:
space:
mode:
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.yang500
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