draft-ietf-netconf-netconf-client-server-19.txt | draft-ietf-netconf-netconf-client-server-20.txt | |||
---|---|---|---|---|
NETCONF Working Group K. Watsen | NETCONF Working Group K. Watsen | |||
Internet-Draft Watsen Networks | Internet-Draft Watsen Networks | |||
Intended status: Standards Track May 20, 2020 | Intended status: Standards Track 8 July 2020 | |||
Expires: November 21, 2020 | Expires: 9 January 2021 | |||
NETCONF Client and Server Models | NETCONF Client and Server Models | |||
draft-ietf-netconf-netconf-client-server-19 | draft-ietf-netconf-netconf-client-server-20 | |||
Abstract | Abstract | |||
This document defines two YANG modules, one module to configure a | This document defines two YANG modules, one module to configure a | |||
NETCONF client and the other module to configure a NETCONF server. | NETCONF client and the other module to configure a NETCONF server. | |||
Both modules support both the SSH and TLS transport protocols, and | Both modules support both the SSH and TLS transport protocols, and | |||
support both standard NETCONF and NETCONF Call Home connections. | support both standard NETCONF and NETCONF Call Home connections. | |||
Editorial Note (To be removed by RFC Editor) | Editorial Note (To be removed by RFC Editor) | |||
This draft contains placeholder values that need to be replaced with | This draft contains placeholder values that need to be replaced with | |||
finalized values at the time of publication. This note summarizes | finalized values at the time of publication. This note summarizes | |||
all of the substitutions that are needed. No other RFC Editor | all of the substitutions that are needed. No other RFC Editor | |||
instructions are specified elsewhere in this document. | instructions are specified elsewhere in this document. | |||
Artwork in this document contains shorthand references to drafts in | Artwork in this document contains shorthand references to drafts in | |||
progress. Please apply the following replacements (note: not all may | progress. Please apply the following replacements (note: not all may | |||
be present): | be present): | |||
o "AAAA" --> the assigned RFC value for draft-ietf-netconf-crypto- | * "AAAA" --> the assigned RFC value for draft-ietf-netconf-crypto- | |||
types | types | |||
o "BBBB" --> the assigned RFC value for draft-ietf-netconf-trust- | * "BBBB" --> the assigned RFC value for draft-ietf-netconf-trust- | |||
anchors | anchors | |||
o "CCCC" --> the assigned RFC value for draft-ietf-netconf-keystore | * "CCCC" --> the assigned RFC value for draft-ietf-netconf-keystore | |||
o "DDDD" --> the assigned RFC value for draft-ietf-netconf-tcp- | * "DDDD" --> the assigned RFC value for draft-ietf-netconf-tcp- | |||
client-server | client-server | |||
o "EEEE" --> the assigned RFC value for draft-ietf-netconf-ssh- | * "EEEE" --> the assigned RFC value for draft-ietf-netconf-ssh- | |||
client-server | client-server | |||
o "FFFF" --> the assigned RFC value for draft-ietf-netconf-tls- | * "FFFF" --> the assigned RFC value for draft-ietf-netconf-tls- | |||
client-server | client-server | |||
o "GGGG" --> the assigned RFC value for draft-ietf-netconf-http- | * "GGGG" --> the assigned RFC value for draft-ietf-netconf-http- | |||
client-server | client-server | |||
o "HHHH" --> the assigned RFC value for this draft | * "HHHH" --> the assigned RFC value for this draft | |||
Artwork in this document contains placeholder values for the date of | Artwork in this document contains placeholder values for the date of | |||
publication of this draft. Please apply the following replacement: | publication of this draft. Please apply the following replacement: | |||
o "2020-05-20" --> the publication date of this draft | * "2020-07-08" --> the publication date of this draft | |||
The following Appendix section is to be removed prior to publication: | The following Appendix section is to be removed prior to publication: | |||
o Appendix B. Change Log | * Appendix A. Change Log | |||
Note to Reviewers (To be removed by RFC Editor) | ||||
This document presents a YANG module or modules that is/are part of a | ||||
collection of drafts that work together to produce the ultimate goal | ||||
of the NETCONF WG: to define configuration modules for NETCONF client | ||||
and servers, and RESTCONF client and servers. | ||||
The relationship between the various drafts in the collection is | ||||
presented in the below diagram. | ||||
crypto-types | ||||
^ ^ | ||||
/ \ | ||||
/ \ | ||||
trust-anchors keystore | ||||
^ ^ ^ ^ | ||||
| +---------+ | | | ||||
| | | | | ||||
| +------------+ | | ||||
tcp-client-server | / | | | ||||
^ ^ ssh-client-server | | | ||||
| | ^ tls-client-server | ||||
| | | ^ ^ http-client-server | ||||
| | | | | ^ | ||||
| | | +-----+ +---------+ | | ||||
| | | | | | | ||||
| +-----------|--------|--------------+ | | | ||||
| | | | | | | ||||
+-----------+ | | | | | | ||||
| | | | | | | ||||
| | | | | | | ||||
netconf-client-server restconf-client-server | ||||
Full draft names and link to drafts: | ||||
o draft-ietf-netconf-crypto-types (html [1]) | ||||
o draft-ietf-netconf-trust-anchors (html [2]) | ||||
o draft-ietf-netconf-keystore (html [3]) | ||||
o draft-ietf-netconf-tcp-client-server (html [4]) | ||||
o draft-ietf-netconf-ssh-client-server (html [5]) | ||||
o draft-ietf-netconf-tls-client-server (html [6]) | ||||
o draft-ietf-netconf-http-client-server (html [7]) | ||||
o draft-ietf-netconf-netconf-client-server (html [8]) | ||||
o draft-ietf-netconf-restconf-client-server (html [9]) | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on November 21, 2020. | This Internet-Draft will expire on 9 January 2021. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2020 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
(https://trustee.ietf.org/license-info) in effect on the date of | license-info) in effect on the date of publication of this document. | |||
publication of this document. Please review these documents | Please review these documents carefully, as they describe your rights | |||
carefully, as they describe your rights and restrictions with respect | and restrictions with respect to this document. Code Components | |||
to this document. Code Components extracted from this document must | extracted from this document must include Simplified BSD License text | |||
include Simplified BSD License text as described in Section 4.e of | as described in Section 4.e of the Trust Legal Provisions and are | |||
the Trust Legal Provisions and are provided without warranty as | provided without warranty as described in the Simplified BSD License. | |||
described in the Simplified BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 5 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 1.1. Relation to other RFCs . . . . . . . . . . . . . . . . . 4 | |||
3. The NETCONF Client Model . . . . . . . . . . . . . . . . . . 5 | 1.2. Specification Language . . . . . . . . . . . . . . . . . 5 | |||
3.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 5 | 1.3. Adherence to the NMDA . . . . . . . . . . . . . . . . . . 5 | |||
3.2. Example Usage . . . . . . . . . . . . . . . . . . . . . . 7 | 2. The "ietf-netconf-client" Module . . . . . . . . . . . . . . 5 | |||
3.3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 11 | 2.1. Data Model Overview . . . . . . . . . . . . . . . . . . . 6 | |||
4. The NETCONF Server Model . . . . . . . . . . . . . . . . . . 22 | 2.2. Example Usage . . . . . . . . . . . . . . . . . . . . . . 10 | |||
4.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 22 | 2.3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
4.2. Example Usage . . . . . . . . . . . . . . . . . . . . . . 24 | 3. The "ietf-netconf-server" Module . . . . . . . . . . . . . . 25 | |||
4.3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 31 | 3.1. Data Model Overview . . . . . . . . . . . . . . . . . . . 25 | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 43 | 3.2. Example Usage . . . . . . . . . . . . . . . . . . . . . . 30 | |||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 44 | 3.3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 36 | |||
6.1. The IETF XML Registry . . . . . . . . . . . . . . . . . . 44 | 4. Security Considerations . . . . . . . . . . . . . . . . . . . 49 | |||
6.2. The YANG Module Names Registry . . . . . . . . . . . . . 44 | 4.1. The "ietf-netconf-client" YANG Module . . . . . . . . . . 49 | |||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 45 | 4.2. The "ietf-netconf-server" YANG Module . . . . . . . . . . 49 | |||
7.1. Normative References . . . . . . . . . . . . . . . . . . 45 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 50 | |||
7.2. Informative References . . . . . . . . . . . . . . . . . 46 | 5.1. The IETF XML Registry . . . . . . . . . . . . . . . . . . 50 | |||
7.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 47 | 5.2. The YANG Module Names Registry . . . . . . . . . . . . . 50 | |||
Appendix A. Expanded Tree Diagrams . . . . . . . . . . . . . . . 48 | 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 50 | |||
A.1. Expanded Tree Diagram for 'ietf-netconf-client' . . . . . 48 | 6.1. Normative References . . . . . . . . . . . . . . . . . . 50 | |||
A.2. Expanded Tree Diagram for 'ietf-netconf-server' . . . . . 70 | 6.2. Informative References . . . . . . . . . . . . . . . . . 52 | |||
Appendix B. Change Log . . . . . . . . . . . . . . . . . . . . . 94 | Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 53 | |||
B.1. 00 to 01 . . . . . . . . . . . . . . . . . . . . . . . . 94 | A.1. 00 to 01 . . . . . . . . . . . . . . . . . . . . . . . . 53 | |||
B.2. 01 to 02 . . . . . . . . . . . . . . . . . . . . . . . . 94 | A.2. 01 to 02 . . . . . . . . . . . . . . . . . . . . . . . . 53 | |||
B.3. 02 to 03 . . . . . . . . . . . . . . . . . . . . . . . . 94 | A.3. 02 to 03 . . . . . . . . . . . . . . . . . . . . . . . . 54 | |||
B.4. 03 to 04 . . . . . . . . . . . . . . . . . . . . . . . . 94 | A.4. 03 to 04 . . . . . . . . . . . . . . . . . . . . . . . . 54 | |||
B.5. 04 to 05 . . . . . . . . . . . . . . . . . . . . . . . . 95 | A.5. 04 to 05 . . . . . . . . . . . . . . . . . . . . . . . . 54 | |||
B.6. 05 to 06 . . . . . . . . . . . . . . . . . . . . . . . . 95 | A.6. 05 to 06 . . . . . . . . . . . . . . . . . . . . . . . . 54 | |||
B.7. 06 to 07 . . . . . . . . . . . . . . . . . . . . . . . . 95 | A.7. 06 to 07 . . . . . . . . . . . . . . . . . . . . . . . . 54 | |||
B.8. 07 to 08 . . . . . . . . . . . . . . . . . . . . . . . . 95 | A.8. 07 to 08 . . . . . . . . . . . . . . . . . . . . . . . . 55 | |||
B.9. 08 to 09 . . . . . . . . . . . . . . . . . . . . . . . . 95 | A.9. 08 to 09 . . . . . . . . . . . . . . . . . . . . . . . . 55 | |||
B.10. 09 to 10 . . . . . . . . . . . . . . . . . . . . . . . . 96 | A.10. 09 to 10 . . . . . . . . . . . . . . . . . . . . . . . . 55 | |||
B.11. 10 to 11 . . . . . . . . . . . . . . . . . . . . . . . . 96 | A.11. 10 to 11 . . . . . . . . . . . . . . . . . . . . . . . . 55 | |||
B.12. 11 to 12 . . . . . . . . . . . . . . . . . . . . . . . . 96 | A.12. 11 to 12 . . . . . . . . . . . . . . . . . . . . . . . . 55 | |||
B.13. 12 to 13 . . . . . . . . . . . . . . . . . . . . . . . . 97 | A.13. 12 to 13 . . . . . . . . . . . . . . . . . . . . . . . . 56 | |||
B.14. 13 to 14 . . . . . . . . . . . . . . . . . . . . . . . . 97 | A.14. 13 to 14 . . . . . . . . . . . . . . . . . . . . . . . . 56 | |||
B.15. 14 to 15 . . . . . . . . . . . . . . . . . . . . . . . . 97 | A.15. 14 to 15 . . . . . . . . . . . . . . . . . . . . . . . . 56 | |||
B.16. 15 to 16 . . . . . . . . . . . . . . . . . . . . . . . . 97 | A.16. 15 to 16 . . . . . . . . . . . . . . . . . . . . . . . . 56 | |||
B.17. 16 to 17 . . . . . . . . . . . . . . . . . . . . . . . . 97 | A.17. 16 to 17 . . . . . . . . . . . . . . . . . . . . . . . . 56 | |||
B.18. 17 to 18 . . . . . . . . . . . . . . . . . . . . . . . . 97 | A.18. 17 to 18 . . . . . . . . . . . . . . . . . . . . . . . . 57 | |||
B.19. 18 to 19 . . . . . . . . . . . . . . . . . . . . . . . . 97 | A.19. 18 to 19 . . . . . . . . . . . . . . . . . . . . . . . . 57 | |||
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 98 | A.20. 19 to 20 . . . . . . . . . . . . . . . . . . . . . . . . 57 | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 98 | Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 57 | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 57 | ||||
1. Introduction | 1. Introduction | |||
This document defines two YANG [RFC7950] modules, one module to | This document defines two YANG [RFC7950] modules, one module to | |||
configure a NETCONF [RFC6241] client and the other module to | configure a NETCONF [RFC6241] client and the other module to | |||
configure a NETCONF server. Both modules support both NETCONF over | configure a NETCONF server. Both modules support both NETCONF over | |||
SSH [RFC6242] and NETCONF over TLS [RFC7589] and NETCONF Call Home | SSH [RFC6242] and NETCONF over TLS [RFC7589] and NETCONF Call Home | |||
connections [RFC8071]. | connections [RFC8071]. | |||
2. Terminology | 1.1. Relation to other RFCs | |||
This document presents one or more YANG modules [RFC7950] that are | ||||
part of a collection of RFCs that work together to define | ||||
configuration modules for clients and servers of both the NETCONF | ||||
[RFC6241] and RESTCONF [RFC8040] protocols. | ||||
The modules have been defined in a modular fashion to enable their | ||||
use by other efforts, some of which are known to be in progress at | ||||
the time of this writing, with many more expected to be defined in | ||||
time. | ||||
The relationship between the various RFCs in the collection is | ||||
presented in the below diagram. The labels in the diagram represent | ||||
the primary purpose provided by each RFC. Links the each RFC are | ||||
provided below the diagram. | ||||
crypto-types | ||||
^ ^ | ||||
/ \ | ||||
/ \ | ||||
truststore keystore | ||||
^ ^ ^ ^ | ||||
| +---------+ | | | ||||
| | | | | ||||
| +------------+ | | ||||
tcp-client-server | / | | | ||||
^ ^ ssh-client-server | | | ||||
| | ^ tls-client-server | ||||
| | | ^ ^ http-client-server | ||||
| | | | | ^ | ||||
| | | +-----+ +---------+ | | ||||
| | | | | | | ||||
| +-----------|--------|--------------+ | | | ||||
| | | | | | | ||||
+-----------+ | | | | | | ||||
| | | | | | | ||||
| | | | | | | ||||
netconf-client-server restconf-client-server | ||||
+=======================+===========================================+ | ||||
| Label in Diagram | Originating RFC | | ||||
+=======================+===========================================+ | ||||
| crypto-types | [I-D.ietf-netconf-crypto-types] | | ||||
+-----------------------+-------------------------------------------+ | ||||
| truststore | [I-D.ietf-netconf-trust-anchors] | | ||||
+-----------------------+-------------------------------------------+ | ||||
| keystore | [I-D.ietf-netconf-keystore] | | ||||
+-----------------------+-------------------------------------------+ | ||||
| tcp-client-server | [I-D.ietf-netconf-tcp-client-server] | | ||||
+-----------------------+-------------------------------------------+ | ||||
| ssh-client-server | [I-D.ietf-netconf-ssh-client-server] | | ||||
+-----------------------+-------------------------------------------+ | ||||
| tls-client-server | [I-D.ietf-netconf-tls-client-server] | | ||||
+-----------------------+-------------------------------------------+ | ||||
| http-client-server | [I-D.ietf-netconf-http-client-server] | | ||||
+-----------------------+-------------------------------------------+ | ||||
| netconf-client-server | [I-D.ietf-netconf-netconf-client-server] | | ||||
+-----------------------+-------------------------------------------+ | ||||
|restconf-client-server | [I-D.ietf-netconf-restconf-client-server] | | ||||
+-----------------------+-------------------------------------------+ | ||||
Table 1: Label to RFC Mapping | ||||
1.2. Specification Language | ||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
3. The NETCONF Client Model | 1.3. Adherence to the NMDA | |||
This document in compliant with the Network Management Datastore | ||||
Architecture (NMDA) [RFC8342]. For instance, as described in | ||||
[I-D.ietf-netconf-trust-anchors] and [I-D.ietf-netconf-keystore], | ||||
trust anchors and keys installed during manufacturing are expected to | ||||
appear in <operational>. | ||||
2. The "ietf-netconf-client" Module | ||||
The NETCONF client model presented in this section supports both | The NETCONF client model presented in this section supports both | |||
clients initiating connections to servers, as well as clients | clients initiating connections to servers, as well as clients | |||
listening for connections from servers calling home, using either the | listening for connections from servers calling home, using either the | |||
SSH and TLS transport protocols. | SSH and TLS transport protocols. | |||
YANG feature statements are used to enable implementations to | YANG feature statements are used to enable implementations to | |||
advertise which potentially uncommon parts of the model the NETCONF | advertise which potentially uncommon parts of the model the NETCONF | |||
client supports. | client supports. | |||
3.1. Tree Diagram | 2.1. Data Model Overview | |||
The following tree diagram [RFC8340] provides an overview of the data | 2.1.1. Features | |||
model for the "ietf-netconf-client" module. | ||||
This tree diagram only shows the nodes defined in this module; it | The following diagram lists all the "feature" statements defined in | |||
does show the nodes defined by "grouping" statements used by this | the "ietf-netconf-client" module: | |||
module. | ||||
Please see Appendix A.1 for a tree diagram that illustrates what the | Features: | |||
module looks like with all the "grouping" statements expanded. | +-- ssh-initiate | |||
+-- tls-initiate | ||||
+-- ssh-listen | ||||
+-- tls-listen | ||||
module: ietf-netconf-client | 2.1.2. Groupings | |||
+--rw netconf-client | ||||
+---u netconf-client-app-grouping | The following diagram lists all the "grouping" statements defined in | |||
the "ietf-netconf-client" module: | ||||
Groupings: | ||||
+-- netconf-client-grouping | ||||
+-- netconf-client-initiate-stack-grouping | ||||
+-- netconf-client-listen-stack-grouping | ||||
+-- netconf-client-app-grouping | ||||
Each of these groupings are presented in the following subsections. | ||||
2.1.2.1. The "netconf-client-grouping" Grouping | ||||
The following tree diagram [RFC8340] illustrates the "netconf-client- | ||||
grouping" grouping: | ||||
grouping netconf-client-grouping ---> <empty> | ||||
Comments: | ||||
* This grouping does not define any nodes, but is maintained so that | ||||
downstream modules can augment nodes into it if needed. | ||||
* The "netconf-client-grouping" defines, if it can be called that, | ||||
the configuration for just "NETCONF" part of a protocol stack. It | ||||
does not, for instance, define any configuration for the "TCP", | ||||
"SSH" or "TLS" protocol layers (for that, see Section 2.1.2.2 and | ||||
Section 2.1.2.3). | ||||
2.1.2.2. The "netconf-client-initiate-stack-grouping" Grouping | ||||
The following tree diagram [RFC8340] illustrates the "netconf-client- | ||||
initiate-stack-grouping" grouping: | ||||
grouping netconf-client-grouping | ||||
grouping netconf-client-initiate-stack-grouping | grouping netconf-client-initiate-stack-grouping | |||
+-- (transport) | +-- (transport) | |||
+--:(ssh) {ssh-initiate}? | +--:(ssh) {ssh-initiate}? | |||
| +-- ssh | | +-- ssh | |||
| +-- tcp-client-parameters | | +-- tcp-client-parameters | |||
| | +---u tcpc:tcp-client-grouping | | | +---u tcpc:tcp-client-grouping | |||
| +-- ssh-client-parameters | | +-- ssh-client-parameters | |||
| | +---u sshc:ssh-client-grouping | | | +---u sshc:ssh-client-grouping | |||
| +-- netconf-client-parameters | | +-- netconf-client-parameters | |||
| +--u ncc:netconf-client-grouping | ||||
+--:(tls) {tls-initiate}? | +--:(tls) {tls-initiate}? | |||
+-- tls | +-- tls | |||
+-- tcp-client-parameters | +-- tcp-client-parameters | |||
| +---u tcpc:tcp-client-grouping | | +---u tcpc:tcp-client-grouping | |||
+-- tls-client-parameters | +-- tls-client-parameters | |||
| +---u tlsc:tls-client-grouping | | +---u tlsc:tls-client-grouping | |||
+-- netconf-client-parameters | +-- netconf-client-parameters | |||
+---u ncc:netconf-client-grouping | ||||
Comments: | ||||
* The "netconf-client-initiate-stack-grouping" defines the | ||||
configuration for a full NETCONF protocol stack, for NETCONF | ||||
clients that initiate connections to NETCONF servers, as opposed | ||||
to receiving call-home [RFC8071] connections. | ||||
* The "transport" choice node enables both the SSH and TLS | ||||
transports to be configured, with each option enabled by a | ||||
"feature" statement. | ||||
* For the referenced grouping statement(s): | ||||
- The "tcp-client-grouping" grouping is discussed in | ||||
Section 3.1.2.1 of [I-D.ietf-netconf-tcp-client-server]. | ||||
- The "ssh-client-grouping" grouping is discussed in | ||||
Section 3.1.2.1 of [I-D.ietf-netconf-ssh-client-server]. | ||||
- The "tls-client-grouping" grouping is discussed in | ||||
Section 3.1.2.1 of [I-D.ietf-netconf-tls-client-server]. | ||||
- The "netconf-client-grouping" grouping is discussed in | ||||
Section 2.1.2.1 in this document. | ||||
2.1.2.3. The "netconf-client-listen-stack-grouping" Grouping | ||||
The following tree diagram [RFC8340] illustrates the "netconf-client- | ||||
listen-stack-grouping" grouping: | ||||
grouping netconf-client-listen-stack-grouping | grouping netconf-client-listen-stack-grouping | |||
+-- (transport) | +-- (transport) | |||
+--:(ssh) {ssh-listen}? | +--:(ssh) {ssh-listen}? | |||
| +-- ssh | | +-- ssh | |||
| +-- tcp-server-parameters | | +-- tcp-server-parameters | |||
| | +---u tcps:tcp-server-grouping | | | +---u tcps:tcp-server-grouping | |||
| +-- ssh-client-parameters | | +-- ssh-client-parameters | |||
| | +---u sshc:ssh-client-grouping | | | +---u sshc:ssh-client-grouping | |||
| +-- netconf-client-parameters | | +-- netconf-client-parameters | |||
| +--u ncc:netconf-client-grouping | ||||
+--:(tls) {tls-listen}? | +--:(tls) {tls-listen}? | |||
+-- tls | +-- tls | |||
+-- tcp-server-parameters | +-- tcp-server-parameters | |||
| +---u tcps:tcp-server-grouping | | +---u tcps:tcp-server-grouping | |||
+-- tls-client-parameters | +-- tls-client-parameters | |||
| +---u tlsc:tls-client-grouping | | +---u tlsc:tls-client-grouping | |||
+-- netconf-client-parameters | +-- netconf-client-parameters | |||
+---u ncc:netconf-client-grouping | ||||
Comments: | ||||
* The "netconf-client-listen-stack-grouping" defines the | ||||
configuration for a full NETCONF protocol stack, for NETCONF | ||||
clients that receive call-home [RFC8071] connections from NETCONF | ||||
servers. | ||||
* The "transport" choice node enables both the SSH and TLS | ||||
transports to be configured, with each option enabled by a | ||||
"feature" statement. | ||||
* For the referenced grouping statement(s): | ||||
- The "tcp-server-grouping" grouping is discussed in | ||||
Section 4.1.2.1 of [I-D.ietf-netconf-tcp-client-server]. | ||||
- The "ssh-client-grouping" grouping is discussed in | ||||
Section 3.1.2.1 of [I-D.ietf-netconf-ssh-client-server]. | ||||
- The "tls-client-grouping" grouping is discussed in | ||||
Section 3.1.2.1 of [I-D.ietf-netconf-tls-client-server]. | ||||
- The "netconf-client-grouping" grouping is discussed in | ||||
Section 2.1.2.1 in this document. | ||||
2.1.2.4. The "netconf-client-app-grouping" Grouping | ||||
The following tree diagram [RFC8340] illustrates the "netconf-client- | ||||
app-grouping" grouping: | ||||
grouping netconf-client-app-grouping | grouping netconf-client-app-grouping | |||
+-- initiate! {ssh-initiate or tls-initiate}? | +-- initiate! {ssh-initiate or tls-initiate}? | |||
| +-- netconf-server* [name] | | +-- netconf-server* [name] | |||
| +-- name? string | | +-- name? string | |||
| +-- endpoints | | +-- endpoints | |||
| | +-- endpoint* [name] | | | +-- endpoint* [name] | |||
| | +-- name? string | | | +-- name? string | |||
| | +---u netconf-client-initiate-stack-grouping | | | +---u netconf-client-initiate-stack-grouping | |||
| +-- connection-type | | +-- connection-type | |||
| | +-- (connection-type) | | | +-- (connection-type) | |||
skipping to change at page 7, line 10 ¶ | skipping to change at page 9, line 36 ¶ | |||
| | +-- idle-timeout? uint16 | | | +-- idle-timeout? uint16 | |||
| +-- reconnect-strategy | | +-- reconnect-strategy | |||
| +-- start-with? enumeration | | +-- start-with? enumeration | |||
| +-- max-attempts? uint8 | | +-- max-attempts? uint8 | |||
+-- listen! {ssh-listen or tls-listen}? | +-- listen! {ssh-listen or tls-listen}? | |||
+-- idle-timeout? uint16 | +-- idle-timeout? uint16 | |||
+-- endpoint* [name] | +-- endpoint* [name] | |||
+-- name? string | +-- name? string | |||
+---u netconf-client-listen-stack-grouping | +---u netconf-client-listen-stack-grouping | |||
3.2. Example Usage | Comments: | |||
* The "netconf-client-app-grouping" defines the configuration for a | ||||
NETCONF client that supports both initiating connections to | ||||
NETCONF servers as well as receiving call-home connections from | ||||
NETCONF servers. | ||||
* Both the "initiate" and "listen" subtrees must be enabled by | ||||
"feature" statements. | ||||
* For the referenced grouping statement(s): | ||||
- The "netconf-client-initiate-stack-grouping" grouping is | ||||
discussed in Section 2.1.2.2 in this document. | ||||
- The "netconf-client-listen-stack-grouping" grouping is | ||||
discussed in Section 2.1.2.3 in this document. | ||||
2.1.3. Protocol-accessible Nodes | ||||
The following diagram lists all the protocol-accessible nodes defined | ||||
in the "ietf-netconf-client" module: | ||||
module: ietf-netconf-client | ||||
+--rw netconf-client | ||||
+---u netconf-client-app-grouping | ||||
Comments: | ||||
* Protocol-accessible nodes are those nodes that are accessible when | ||||
the module is "implemented", as described in Section 5.6.5 of | ||||
[RFC7950]. | ||||
* For the "ietf-netconf-client" module, the protocol-accessible | ||||
nodes are an instance of the "netconf-client-app-grouping" | ||||
discussed in Section 2.1.2.4 grouping. | ||||
* The reason for why "netconf-client-app-grouping" exists separate | ||||
from the protocol-accessible nodes definition is so as to enable | ||||
instances of netconf-client-app-grouping to be instantiated in | ||||
other locations, as may be needed or desired by some modules. | ||||
2.2. Example Usage | ||||
The following example illustrates configuring a NETCONF client to | The following example illustrates configuring a NETCONF client to | |||
initiate connections, using both the SSH and TLS transport protocols, | initiate connections, using both the SSH and TLS transport protocols, | |||
as well as listening for call-home connections, again using both the | as well as to listen for call-home connections, again using both the | |||
SSH and TLS transport protocols. | SSH and TLS transport protocols. | |||
This example is consistent with the examples presented in Section 2 | This example is consistent with the examples presented in Section 2.2 | |||
of [I-D.ietf-netconf-trust-anchors] and Section 3.2 of | of [I-D.ietf-netconf-trust-anchors] and Section 2.2 of | |||
[I-D.ietf-netconf-keystore]. | [I-D.ietf-netconf-keystore]. | |||
========== NOTE: '\' line wrapping per BCP XXX (RFC XXXX) =========== | =============== NOTE: '\' line wrapping per RFC 8792 ================ | |||
<netconf-client | <netconf-client | |||
xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-client" | xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-client" | |||
xmlns:ct="urn:ietf:params:xml:ns:yang:ietf-crypto-types"> | xmlns:ct="urn:ietf:params:xml:ns:yang:ietf-crypto-types"> | |||
<!-- NETCONF servers to initiate connections to --> | <!-- NETCONF servers to initiate connections to --> | |||
<initiate> | <initiate> | |||
<netconf-server> | <netconf-server> | |||
<name>corp-fw1</name> | <name>corp-fw1</name> | |||
<endpoints> | <endpoints> | |||
skipping to change at page 7, line 47 ¶ | skipping to change at page 11, line 17 ¶ | |||
<keepalives> | <keepalives> | |||
<idle-time>15</idle-time> | <idle-time>15</idle-time> | |||
<max-probes>3</max-probes> | <max-probes>3</max-probes> | |||
<probe-interval>30</probe-interval> | <probe-interval>30</probe-interval> | |||
</keepalives> | </keepalives> | |||
</tcp-client-parameters> | </tcp-client-parameters> | |||
<ssh-client-parameters> | <ssh-client-parameters> | |||
<client-identity> | <client-identity> | |||
<username>foobar</username> | <username>foobar</username> | |||
<public-key> | <public-key> | |||
<local-definition> | <keystore-reference>ssh-rsa-key</keystore-referenc\ | |||
<public-key-format>ct:ssh-public-key-format</pub\ | e> | |||
lic-key-format> | ||||
<public-key>base64encodedvalue==</public-key> | ||||
<private-key-format>ct:rsa-private-key-format</p\ | ||||
rivate-key-format> | ||||
<private-key>base64encodedvalue==</private-key> | ||||
</local-definition> | ||||
</public-key> | </public-key> | |||
</client-identity> | </client-identity> | |||
<server-authentication> | <server-authentication> | |||
<ca-certs> | <ca-certs> | |||
<truststore-reference>trusted-server-ca-certs</tru\ | <truststore-reference>trusted-server-ca-certs</tru\ | |||
ststore-reference> | ststore-reference> | |||
</ca-certs> | </ca-certs> | |||
<ee-certs> | <ee-certs> | |||
<truststore-reference>trusted-server-ee-certs</tru\ | <truststore-reference>trusted-server-ee-certs</tru\ | |||
ststore-reference> | ststore-reference> | |||
skipping to change at page 8, line 44 ¶ | skipping to change at page 12, line 7 ¶ | |||
<remote-address>corp-fw2.example.com</remote-address> | <remote-address>corp-fw2.example.com</remote-address> | |||
<keepalives> | <keepalives> | |||
<idle-time>15</idle-time> | <idle-time>15</idle-time> | |||
<max-probes>3</max-probes> | <max-probes>3</max-probes> | |||
<probe-interval>30</probe-interval> | <probe-interval>30</probe-interval> | |||
</keepalives> | </keepalives> | |||
</tcp-client-parameters> | </tcp-client-parameters> | |||
<tls-client-parameters> | <tls-client-parameters> | |||
<client-identity> | <client-identity> | |||
<certificate> | <certificate> | |||
<local-definition> | <keystore-reference> | |||
<public-key-format>ct:subject-public-key-info-fo\ | <asymmetric-key>rsa-asymmetric-key</asymmetric-k\ | |||
rmat</public-key-format> | ey> | |||
<public-key>base64encodedvalue==</public-key> | <certificate>ex-rsa-cert</certificate> | |||
<private-key-format>ct:rsa-private-key-format</p\ | </keystore-reference> | |||
rivate-key-format> | ||||
<private-key>base64encodedvalue==</private-key> | ||||
<cert>base64encodedvalue==</cert> | ||||
</local-definition> | ||||
</certificate> | </certificate> | |||
</client-identity> | </client-identity> | |||
<server-authentication> | <server-authentication> | |||
<ca-certs> | <ca-certs> | |||
<truststore-reference>trusted-server-ca-certs</tru\ | <truststore-reference>trusted-server-ca-certs</tru\ | |||
ststore-reference> | ststore-reference> | |||
</ca-certs> | </ca-certs> | |||
<ee-certs> | <ee-certs> | |||
<truststore-reference>trusted-server-ee-certs</tru\ | <truststore-reference>trusted-server-ee-certs</tru\ | |||
ststore-reference> | ststore-reference> | |||
skipping to change at page 9, line 51 ¶ | skipping to change at page 13, line 10 ¶ | |||
<endpoint> | <endpoint> | |||
<name>Intranet-facing SSH listener</name> | <name>Intranet-facing SSH listener</name> | |||
<ssh> | <ssh> | |||
<tcp-server-parameters> | <tcp-server-parameters> | |||
<local-address>192.0.2.7</local-address> | <local-address>192.0.2.7</local-address> | |||
</tcp-server-parameters> | </tcp-server-parameters> | |||
<ssh-client-parameters> | <ssh-client-parameters> | |||
<client-identity> | <client-identity> | |||
<username>foobar</username> | <username>foobar</username> | |||
<public-key> | <public-key> | |||
<local-definition> | <keystore-reference>ssh-rsa-key</keystore-reference> | |||
<public-key-format>ct:ssh-public-key-format</public-\ | ||||
key-format> | ||||
<public-key>base64encodedvalue==</public-key> | ||||
<private-key-format>ct:rsa-private-key-format</priva\ | ||||
te-key-format> | ||||
<private-key>base64encodedvalue==</private-key> | ||||
</local-definition> | ||||
</public-key> | </public-key> | |||
</client-identity> | </client-identity> | |||
<server-authentication> | <server-authentication> | |||
<ca-certs> | <ca-certs> | |||
<truststore-reference>trusted-server-ca-certs</trustst\ | <truststore-reference>trusted-server-ca-certs</trustst\ | |||
ore-reference> | ore-reference> | |||
</ca-certs> | </ca-certs> | |||
<ee-certs> | <ee-certs> | |||
<truststore-reference>trusted-server-ee-certs</trustst\ | <truststore-reference>trusted-server-ee-certs</trustst\ | |||
ore-reference> | ore-reference> | |||
skipping to change at page 10, line 42 ¶ | skipping to change at page 13, line 42 ¶ | |||
</endpoint> | </endpoint> | |||
<endpoint> | <endpoint> | |||
<name>Intranet-facing TLS listener</name> | <name>Intranet-facing TLS listener</name> | |||
<tls> | <tls> | |||
<tcp-server-parameters> | <tcp-server-parameters> | |||
<local-address>192.0.2.7</local-address> | <local-address>192.0.2.7</local-address> | |||
</tcp-server-parameters> | </tcp-server-parameters> | |||
<tls-client-parameters> | <tls-client-parameters> | |||
<client-identity> | <client-identity> | |||
<certificate> | <certificate> | |||
<local-definition> | <keystore-reference> | |||
<public-key-format>ct:subject-public-key-info-format\ | <asymmetric-key>rsa-asymmetric-key</asymmetric-key> | |||
</public-key-format> | <certificate>ex-rsa-cert</certificate> | |||
<public-key>base64encodedvalue==</public-key> | </keystore-reference> | |||
<private-key-format>ct:rsa-private-key-format</priva\ | ||||
te-key-format> | ||||
<private-key>base64encodedvalue==</private-key> | ||||
<cert>base64encodedvalue==</cert> | ||||
</local-definition> | ||||
</certificate> | </certificate> | |||
</client-identity> | </client-identity> | |||
<server-authentication> | <server-authentication> | |||
<ca-certs> | <ca-certs> | |||
<truststore-reference>trusted-server-ca-certs</trustst\ | <truststore-reference>trusted-server-ca-certs</trustst\ | |||
ore-reference> | ore-reference> | |||
</ca-certs> | </ca-certs> | |||
<ee-certs> | <ee-certs> | |||
<truststore-reference>trusted-server-ee-certs</trustst\ | <truststore-reference>trusted-server-ee-certs</trustst\ | |||
ore-reference> | ore-reference> | |||
skipping to change at page 11, line 26 ¶ | skipping to change at page 14, line 22 ¶ | |||
</keepalives> | </keepalives> | |||
</tls-client-parameters> | </tls-client-parameters> | |||
<netconf-client-parameters> | <netconf-client-parameters> | |||
<!-- nothing to configure --> | <!-- nothing to configure --> | |||
</netconf-client-parameters> | </netconf-client-parameters> | |||
</tls> | </tls> | |||
</endpoint> | </endpoint> | |||
</listen> | </listen> | |||
</netconf-client> | </netconf-client> | |||
3.3. YANG Module | 2.3. YANG Module | |||
This YANG module has normative references to [RFC6242], [RFC6991], | This YANG module has normative references to [RFC6242], [RFC6991], | |||
[RFC7589], [RFC8071], [I-D.kwatsen-netconf-tcp-client-server], | [RFC7589], [RFC8071], [I-D.ietf-netconf-tcp-client-server], | |||
[I-D.ietf-netconf-ssh-client-server], and | [I-D.ietf-netconf-ssh-client-server], and | |||
[I-D.ietf-netconf-tls-client-server]. | [I-D.ietf-netconf-tls-client-server]. | |||
<CODE BEGINS> file "ietf-netconf-client@2020-05-20.yang" | <CODE BEGINS> file "ietf-netconf-client@2020-07-08.yang" | |||
module ietf-netconf-client { | module ietf-netconf-client { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-netconf-client"; | namespace "urn:ietf:params:xml:ns:yang:ietf-netconf-client"; | |||
prefix ncc; | prefix ncc; | |||
import ietf-yang-types { | import ietf-yang-types { | |||
prefix yang; | prefix yang; | |||
reference | reference | |||
"RFC 6991: Common YANG Data Types"; | "RFC 6991: Common YANG Data Types"; | |||
skipping to change at page 12, line 4 ¶ | skipping to change at page 14, line 47 ¶ | |||
prefix yang; | prefix yang; | |||
reference | reference | |||
"RFC 6991: Common YANG Data Types"; | "RFC 6991: Common YANG Data Types"; | |||
} | } | |||
import ietf-tcp-client { | import ietf-tcp-client { | |||
prefix tcpc; | prefix tcpc; | |||
reference | reference | |||
"RFC DDDD: YANG Groupings for TCP Clients and TCP Servers"; | "RFC DDDD: YANG Groupings for TCP Clients and TCP Servers"; | |||
} | } | |||
import ietf-tcp-server { | import ietf-tcp-server { | |||
prefix tcps; | prefix tcps; | |||
reference | reference | |||
"RFC DDDD: YANG Groupings for TCP Clients and TCP Servers"; | "RFC DDDD: YANG Groupings for TCP Clients and TCP Servers"; | |||
} | } | |||
import ietf-ssh-client { | import ietf-ssh-client { | |||
prefix sshc; | prefix sshc; | |||
revision-date 2020-05-20; // stable grouping definitions | revision-date 2020-07-08; // stable grouping definitions | |||
reference | reference | |||
"RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; | "RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; | |||
} | } | |||
import ietf-tls-client { | import ietf-tls-client { | |||
prefix tlsc; | prefix tlsc; | |||
revision-date 2020-05-20; // stable grouping definitions | revision-date 2020-07-08; // stable grouping definitions | |||
reference | reference | |||
"RFC FFFF: YANG Groupings for TLS Clients and TLS Servers"; | "RFC FFFF: YANG Groupings for TLS Clients and TLS Servers"; | |||
} | } | |||
organization | organization | |||
"IETF NETCONF (Network Configuration) Working Group"; | "IETF NETCONF (Network Configuration) Working Group"; | |||
contact | contact | |||
"WG Web: <http://datatracker.ietf.org/wg/netconf/> | "WG Web: <http://datatracker.ietf.org/wg/netconf/> | |||
WG List: <mailto:netconf@ietf.org> | WG List: <mailto:netconf@ietf.org> | |||
skipping to change at page 13, line 10 ¶ | skipping to change at page 16, line 6 ¶ | |||
(https://www.rfc-editor.org/info/rfcHHHH); see the RFC | (https://www.rfc-editor.org/info/rfcHHHH); see the RFC | |||
itself for full legal notices.; | itself for full legal notices.; | |||
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', | The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', | |||
'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', | 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', | |||
'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document | 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document | |||
are to be interpreted as described in BCP 14 (RFC 2119) | are to be interpreted as described in BCP 14 (RFC 2119) | |||
(RFC 8174) when, and only when, they appear in all | (RFC 8174) when, and only when, they appear in all | |||
capitals, as shown here."; | capitals, as shown here."; | |||
revision 2020-05-20 { | revision 2020-07-08 { | |||
description | description | |||
"Initial version"; | "Initial version"; | |||
reference | reference | |||
"RFC HHHH: NETCONF Client and Server Models"; | "RFC HHHH: NETCONF Client and Server Models"; | |||
} | } | |||
// Features | // Features | |||
feature ssh-initiate { | feature ssh-initiate { | |||
description | description | |||
skipping to change at page 22, line 24 ¶ | skipping to change at page 25, line 20 ¶ | |||
// this module. | // this module. | |||
container netconf-client { | container netconf-client { | |||
uses netconf-client-app-grouping; | uses netconf-client-app-grouping; | |||
description | description | |||
"Top-level container for NETCONF client configuration."; | "Top-level container for NETCONF client configuration."; | |||
} | } | |||
} | } | |||
<CODE ENDS> | <CODE ENDS> | |||
4. The NETCONF Server Model | 3. The "ietf-netconf-server" Module | |||
The NETCONF server model presented in this section supports both | The NETCONF server model presented in this section supports both | |||
listening for connections as well as initiating call-home | listening for connections as well as initiating call-home | |||
connections, using either the SSH and TLS transport protocols. | connections, using either the SSH and TLS transport protocols. | |||
YANG feature statements are used to enable implementations to | YANG feature statements are used to enable implementations to | |||
advertise which potentially uncommon parts of the model the NETCONF | advertise which potentially uncommon parts of the model the NETCONF | |||
server supports. | server supports. | |||
4.1. Tree Diagram | 3.1. Data Model Overview | |||
The following tree diagram [RFC8340] provides an overview of the data | 3.1.1. Features | |||
model for the "ietf-netconf-server" module. | ||||
This tree diagram only shows the nodes defined in this module; it | The following diagram lists all the "feature" statements defined in | |||
does show the nodes defined by "grouping" statements used by this | the "ietf-netconf-server" module: | |||
module. | ||||
Please see Appendix A.2 for a tree diagram that illustrates what the | Features: | |||
module looks like with all the "grouping" statements expanded. | +-- ssh-listen | |||
+-- tls-listen | ||||
+-- ssh-call-home | ||||
+-- tls-call-home | ||||
module: ietf-netconf-server | 3.1.2. Groupings | |||
+--rw netconf-server | ||||
+---u netconf-server-app-grouping | The following diagram lists all the "grouping" statements defined in | |||
the "ietf-netconf-server" module: | ||||
Groupings: | ||||
+-- netconf-server-grouping | ||||
+-- netconf-server-listen-stack-grouping | ||||
+-- netconf-server-callhome-stack-grouping | ||||
+-- netconf-server-app-grouping | ||||
Each of these groupings are presented in the following subsections. | ||||
3.1.2.1. The "netconf-server-grouping" Grouping | ||||
The following tree diagram [RFC8340] illustrates the "netconf-server- | ||||
grouping" grouping: | ||||
=============== NOTE: '\' line wrapping per RFC 8792 ================ | ||||
grouping netconf-server-grouping | grouping netconf-server-grouping | |||
+-- client-identity-mappings | +-- client-identity-mappings | |||
{tls-listen or tls-call-home or sshcmn:ssh-x509-certs}? | {(tls-listen or tls-call-home) and (sshcmn:ssh-x509-cert\ | |||
s)}? | ||||
+---u x509c2n:cert-to-name | +---u x509c2n:cert-to-name | |||
Comments: | ||||
* The "netconf-server-grouping" defines the configuration for just | ||||
"NETCONF" part of a protocol stack. It does not, for instance, | ||||
define any configuration for the "TCP", "SSH" or "TLS" protocol | ||||
layers (for that, see Section 3.1.2.2 and Section 3.1.2.3). | ||||
* The "client-identity-mappings" node, which must be enabled by | ||||
"feature" statements, defines a mapping from certificate fields to | ||||
NETCONF user names. | ||||
* For the referenced grouping statement(s): | ||||
- The "cert-to-name" grouping is discussed in Section 4.1 of | ||||
[RFC7407]. | ||||
3.1.2.2. The "netconf-server-listen-stack-grouping" Grouping | ||||
The following tree diagram [RFC8340] illustrates the "netconf-server- | ||||
listen-stack-grouping" grouping: | ||||
grouping netconf-server-listen-stack-grouping | grouping netconf-server-listen-stack-grouping | |||
+-- (transport) | +-- (transport) | |||
+--:(ssh) {ssh-listen}? | +--:(ssh) {ssh-listen}? | |||
| +-- ssh | | +-- ssh | |||
| +-- tcp-server-parameters | | +-- tcp-server-parameters | |||
| | +---u tcps:tcp-server-grouping | | | +---u tcps:tcp-server-grouping | |||
| +-- ssh-server-parameters | | +-- ssh-server-parameters | |||
| | +---u sshs:ssh-server-grouping | | | +---u sshs:ssh-server-grouping | |||
| +-- netconf-server-parameters | | +-- netconf-server-parameters | |||
| +---u ncs:netconf-server-grouping | | +---u ncs:netconf-server-grouping | |||
+--:(tls) {tls-listen}? | +--:(tls) {tls-listen}? | |||
+-- tls | +-- tls | |||
+-- tcp-server-parameters | +-- tcp-server-parameters | |||
| +---u tcps:tcp-server-grouping | | +---u tcps:tcp-server-grouping | |||
+-- tls-server-parameters | +-- tls-server-parameters | |||
| +---u tlss:tls-server-grouping | | +---u tlss:tls-server-grouping | |||
+-- netconf-server-parameters | +-- netconf-server-parameters | |||
+---u ncs:netconf-server-grouping | +---u ncs:netconf-server-grouping | |||
Comments: | ||||
* The "netconf-server-listen-stack-grouping" defines the | ||||
configuration for a full NETCONF protocol stack for NETCONF | ||||
servers that listen for standard connections from NETCONF clients, | ||||
as opposed to initiating call-home [RFC8071] connections. | ||||
* The "transport" choice node enables both the SSH and TLS | ||||
transports to be configured, with each option enabled by a | ||||
"feature" statement. | ||||
* For the referenced grouping statement(s): | ||||
- The "tcp-server-grouping" grouping is discussed in | ||||
Section 4.1.2.1 of [I-D.ietf-netconf-tcp-client-server]. | ||||
- The "ssh-server-grouping" grouping is discussed in | ||||
Section 4.1.2.1 of [I-D.ietf-netconf-ssh-client-server]. | ||||
- The "tls-server-grouping" grouping is discussed in | ||||
Section 4.1.2.1 of [I-D.ietf-netconf-tls-client-server]. | ||||
- The "netconf-server-grouping" is discussed in Section 3.1.2.1 | ||||
of this document. | ||||
3.1.2.3. The "netconf-server-callhome-stack-grouping" Grouping | ||||
The following tree diagram [RFC8340] illustrates the "netconf-server- | ||||
callhome-stack-grouping" grouping: | ||||
grouping netconf-server-callhome-stack-grouping | grouping netconf-server-callhome-stack-grouping | |||
+-- (transport) | +-- (transport) | |||
+--:(ssh) {ssh-call-home}? | +--:(ssh) {ssh-call-home}? | |||
| +-- ssh | | +-- ssh | |||
| +-- tcp-client-parameters | | +-- tcp-client-parameters | |||
| | +---u tcpc:tcp-client-grouping | | | +---u tcpc:tcp-client-grouping | |||
| +-- ssh-server-parameters | | +-- ssh-server-parameters | |||
| | +---u sshs:ssh-server-grouping | | | +---u sshs:ssh-server-grouping | |||
| +-- netconf-server-parameters | | +-- netconf-server-parameters | |||
| +---u ncs:netconf-server-grouping | | +---u ncs:netconf-server-grouping | |||
+--:(tls) {tls-call-home}? | +--:(tls) {tls-call-home}? | |||
+-- tls | +-- tls | |||
+-- tcp-client-parameters | +-- tcp-client-parameters | |||
| +---u tcpc:tcp-client-grouping | | +---u tcpc:tcp-client-grouping | |||
+-- tls-server-parameters | +-- tls-server-parameters | |||
| +---u tlss:tls-server-grouping | | +---u tlss:tls-server-grouping | |||
+-- netconf-server-parameters | +-- netconf-server-parameters | |||
+---u ncs:netconf-server-grouping | +---u ncs:netconf-server-grouping | |||
Comments: | ||||
* The "netconf-server-callhome-stack-grouping" defines the | ||||
configuration for a full NETCONF protocol stack, for NETCONF | ||||
servers that initiate call-home [RFC8071] connections to NETCONF | ||||
clients. | ||||
* The "transport" choice node enables both the SSH and TLS | ||||
transports to be configured, with each option enabled by a | ||||
"feature" statement. | ||||
* For the referenced grouping statement(s): | ||||
- The "tcp-client-grouping" grouping is discussed in | ||||
Section 3.1.2.1 of [I-D.ietf-netconf-tcp-client-server]. | ||||
- The "ssh-server-grouping" grouping is discussed in | ||||
Section 4.1.2.1 of [I-D.ietf-netconf-ssh-client-server]. | ||||
- The "tls-server-grouping" grouping is discussed in | ||||
Section 4.1.2.1 of [I-D.ietf-netconf-tls-client-server]. | ||||
- The "netconf-server-grouping" is discussed in Section 3.1.2.1 | ||||
of this document. | ||||
3.1.2.4. The "netconf-server-app-grouping" Grouping | ||||
The following tree diagram [RFC8340] illustrates the "netconf-server- | ||||
app-grouping" grouping: | ||||
grouping netconf-server-app-grouping | grouping netconf-server-app-grouping | |||
+-- listen! {ssh-listen or tls-listen}? | +-- listen! {ssh-listen or tls-listen}? | |||
| +-- idle-timeout? uint16 | | +-- idle-timeout? uint16 | |||
| +-- endpoint* [name] | | +-- endpoint* [name] | |||
| +-- name? string | | +-- name? string | |||
| +---u netconf-server-listen-stack-grouping | | +---u netconf-server-listen-stack-grouping | |||
+-- call-home! {ssh-call-home or tls-call-home}? | +-- call-home! {ssh-call-home or tls-call-home}? | |||
+-- netconf-client* [name] | +-- netconf-client* [name] | |||
+-- name? string | +-- name? string | |||
+-- endpoints | +-- endpoints | |||
skipping to change at page 24, line 20 ¶ | skipping to change at page 29, line 31 ¶ | |||
| | +-- persistent! | | | +-- persistent! | |||
| +--:(periodic-connection) | | +--:(periodic-connection) | |||
| +-- periodic! | | +-- periodic! | |||
| +-- period? uint16 | | +-- period? uint16 | |||
| +-- anchor-time? yang:date-and-time | | +-- anchor-time? yang:date-and-time | |||
| +-- idle-timeout? uint16 | | +-- idle-timeout? uint16 | |||
+-- reconnect-strategy | +-- reconnect-strategy | |||
+-- start-with? enumeration | +-- start-with? enumeration | |||
+-- max-attempts? uint8 | +-- max-attempts? uint8 | |||
4.2. Example Usage | Comments: | |||
* The "netconf-server-app-grouping" defines the configuration for a | ||||
NETCONF server that supports both listening for connections from | ||||
NETCONF clients as well as initiatiating call-home connections to | ||||
NETCONF clients. | ||||
* Both the "listen" and "call-home" subtrees must be enabled by | ||||
"feature" statements. | ||||
* For the referenced grouping statement(s): | ||||
- The "netconf-server-listen-stack-grouping" grouping is | ||||
discussed in Section 3.1.2.2 in this document. | ||||
- The "netconf-server-callhome-stack-grouping" grouping is | ||||
discussed in Section 3.1.2.3 in this document. | ||||
3.1.3. Protocol-accessible Nodes | ||||
The following diagram lists all the protocol-accessible nodes defined | ||||
in the "ietf-netconf-server" module: | ||||
module: ietf-netconf-server | ||||
+--rw netconf-server | ||||
+---u netconf-server-app-grouping | ||||
Comments: | ||||
* Protocol-accessible nodes are those nodes that are accessible when | ||||
the module is "implemented", as described in Section 5.6.5 of | ||||
[RFC7950]. | ||||
* For the "ietf-netconf-server" module, the protocol-accessible | ||||
nodes are an instance of the "netconf-server-app-grouping" | ||||
discussed in Section 3.1.2.4 grouping. | ||||
* The reason for why "netconf-server-app-grouping" exists separate | ||||
from the protocol-accessible nodes definition is so as to enable | ||||
instances of netconf-server-app-grouping to be instantiated in | ||||
other locations, as may be needed or desired by some modules. | ||||
3.2. Example Usage | ||||
The following example illustrates configuring a NETCONF server to | The following example illustrates configuring a NETCONF server to | |||
listen for NETCONF client connections using both the SSH and TLS | listen for NETCONF client connections using both the SSH and TLS | |||
transport protocols, as well as configuring call-home to two NETCONF | transport protocols, as well as configuring call-home to two NETCONF | |||
clients, one using SSH and the other using TLS. | clients, one using SSH and the other using TLS. | |||
This example is consistent with the examples presented in Section 2 | This example is consistent with the examples presented in Section 2.2 | |||
of [I-D.ietf-netconf-trust-anchors] and Section 3.2 of | of [I-D.ietf-netconf-trust-anchors] and Section 2.2 of | |||
[I-D.ietf-netconf-keystore]. | [I-D.ietf-netconf-keystore]. | |||
========== NOTE: '\' line wrapping per BCP XXX (RFC XXXX) =========== | =============== NOTE: '\' line wrapping per RFC 8792 ================ | |||
<netconf-server | <netconf-server | |||
xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-server" | xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-server" | |||
xmlns:ct="urn:ietf:params:xml:ns:yang:ietf-crypto-types" | xmlns:ct="urn:ietf:params:xml:ns:yang:ietf-crypto-types" | |||
xmlns:x509c2n="urn:ietf:params:xml:ns:yang:ietf-x509-cert-to-name"> | xmlns:x509c2n="urn:ietf:params:xml:ns:yang:ietf-x509-cert-to-name"> | |||
<!-- endpoints to listen for NETCONF connections on --> | <!-- endpoints to listen for NETCONF connections on --> | |||
<listen> | <listen> | |||
<endpoint> <!-- listening for SSH connections --> | <endpoint> <!-- listening for SSH connections --> | |||
<name>netconf/ssh</name> | <name>netconf/ssh</name> | |||
<ssh> | <ssh> | |||
<tcp-server-parameters> | <tcp-server-parameters> | |||
<local-address>192.0.2.7</local-address> | <local-address>192.0.2.7</local-address> | |||
</tcp-server-parameters> | </tcp-server-parameters> | |||
<ssh-server-parameters> | <ssh-server-parameters> | |||
<server-identity> | <server-identity> | |||
<host-key> | <host-key> | |||
<name>deployment-specific-certificate</name> | <name>deployment-specific-certificate</name> | |||
<public-key> | <public-key> | |||
<local-definition> | <keystore-reference>ssh-rsa-key</keystore-reference> | |||
<public-key-format>ct:ssh-public-key-format</publi\ | ||||
c-key-format> | ||||
<public-key>base64encodedvalue==</public-key> | ||||
<private-key-format>ct:rsa-private-key-format</pri\ | ||||
vate-key-format> | ||||
<private-key>base64encodedvalue==</private-key> | ||||
</local-definition> | ||||
</public-key> | </public-key> | |||
</host-key> | </host-key> | |||
</server-identity> | </server-identity> | |||
<client-authentication> | <client-authentication> | |||
<supported-authentication-methods> | <supported-authentication-methods> | |||
<publickey/> | <publickey/> | |||
</supported-authentication-methods> | </supported-authentication-methods> | |||
</client-authentication> | </client-authentication> | |||
</ssh-server-parameters> | </ssh-server-parameters> | |||
<netconf-server-parameters> | <netconf-server-parameters> | |||
skipping to change at page 25, line 34 ¶ | skipping to change at page 31, line 30 ¶ | |||
</endpoint> | </endpoint> | |||
<endpoint> <!-- listening for TLS sessions --> | <endpoint> <!-- listening for TLS sessions --> | |||
<name>netconf/tls</name> | <name>netconf/tls</name> | |||
<tls> | <tls> | |||
<tcp-server-parameters> | <tcp-server-parameters> | |||
<local-address>192.0.2.7</local-address> | <local-address>192.0.2.7</local-address> | |||
</tcp-server-parameters> | </tcp-server-parameters> | |||
<tls-server-parameters> | <tls-server-parameters> | |||
<server-identity> | <server-identity> | |||
<certificate> | <certificate> | |||
<local-definition> | <keystore-reference> | |||
<public-key-format>ct:subject-public-key-info-format\ | <asymmetric-key>rsa-asymmetric-key</asymmetric-key> | |||
</public-key-format> | <certificate>ex-rsa-cert</certificate> | |||
<public-key>base64encodedvalue==</public-key> | </keystore-reference> | |||
<private-key-format>ct:rsa-private-key-format</priva\ | ||||
te-key-format> | ||||
<private-key>base64encodedvalue==</private-key> | ||||
<cert>base64encodedvalue==</cert> | ||||
</local-definition> | ||||
</certificate> | </certificate> | |||
</server-identity> | </server-identity> | |||
<client-authentication> | <client-authentication> | |||
<ca-certs> | <ca-certs> | |||
<truststore-reference>trusted-client-ca-certs</trustst\ | <truststore-reference>trusted-client-ca-certs</trustst\ | |||
ore-reference> | ore-reference> | |||
</ca-certs> | </ca-certs> | |||
<ee-certs> | <ee-certs> | |||
<truststore-reference>trusted-client-ee-certs</trustst\ | <truststore-reference>trusted-client-ee-certs</trustst\ | |||
ore-reference> | ore-reference> | |||
</ee-certs> | </ee-certs> | |||
</client-authentication> | </client-authentication> | |||
<keepalives> | <keepalives> | |||
<peer-allowed-to-send/> | <peer-allowed-to-send/> | |||
</keepalives> | </keepalives> | |||
</tls-server-parameters> | </tls-server-parameters> | |||
<netconf-server-parameters> | <netconf-server-parameters> | |||
<client-identity-mappings> | <client-identity-mappings> | |||
<cert-to-name> | <cert-to-name> | |||
skipping to change at page 26, line 52 ¶ | skipping to change at page 32, line 42 ¶ | |||
<idle-time>15</idle-time> | <idle-time>15</idle-time> | |||
<max-probes>3</max-probes> | <max-probes>3</max-probes> | |||
<probe-interval>30</probe-interval> | <probe-interval>30</probe-interval> | |||
</keepalives> | </keepalives> | |||
</tcp-client-parameters> | </tcp-client-parameters> | |||
<ssh-server-parameters> | <ssh-server-parameters> | |||
<server-identity> | <server-identity> | |||
<host-key> | <host-key> | |||
<name>deployment-specific-certificate</name> | <name>deployment-specific-certificate</name> | |||
<public-key> | <public-key> | |||
<local-definition> | <keystore-reference>ssh-rsa-key</keystore-refere\ | |||
<public-key-format>ct:ssh-public-key-format</p\ | nce> | |||
ublic-key-format> | ||||
<public-key>base64encodedvalue==</public-key> | ||||
<private-key-format>ct:rsa-private-key-format<\ | ||||
/private-key-format> | ||||
<private-key>base64encodedvalue==</private-key> | ||||
</local-definition> | ||||
</public-key> | </public-key> | |||
</host-key> | </host-key> | |||
</server-identity> | </server-identity> | |||
<client-authentication> | <client-authentication> | |||
<supported-authentication-methods> | <supported-authentication-methods> | |||
<publickey/> | <publickey/> | |||
</supported-authentication-methods> | </supported-authentication-methods> | |||
</client-authentication> | </client-authentication> | |||
</ssh-server-parameters> | </ssh-server-parameters> | |||
<netconf-server-parameters> | <netconf-server-parameters> | |||
<!-- nothing to configure --> | <!-- nothing to configure --> | |||
</netconf-server-parameters> | </netconf-server-parameters> | |||
</ssh> | </ssh> | |||
</endpoint> | </endpoint> | |||
<endpoint> | <endpoint> | |||
<name>west-data-center</name> | <name>west-data-center</name> | |||
<ssh> | <ssh> | |||
<tcp-client-parameters> | <tcp-client-parameters> | |||
skipping to change at page 27, line 37 ¶ | skipping to change at page 33, line 23 ¶ | |||
<ssh> | <ssh> | |||
<tcp-client-parameters> | <tcp-client-parameters> | |||
<remote-address>west.config-mgr.example.com</remote-ad\ | <remote-address>west.config-mgr.example.com</remote-ad\ | |||
dress> | dress> | |||
</tcp-client-parameters> | </tcp-client-parameters> | |||
<ssh-server-parameters> | <ssh-server-parameters> | |||
<server-identity> | <server-identity> | |||
<host-key> | <host-key> | |||
<name>deployment-specific-certificate</name> | <name>deployment-specific-certificate</name> | |||
<public-key> | <public-key> | |||
<local-definition> | <keystore-reference>ssh-rsa-key</keystore-refere\ | |||
<public-key-format>ct:ssh-public-key-format</p\ | nce> | |||
ublic-key-format> | ||||
<public-key>base64encodedvalue==</public-key> | ||||
<private-key-format>ct:rsa-private-key-format<\ | ||||
/private-key-format> | ||||
<private-key>base64encodedvalue==</private-key> | ||||
</local-definition> | ||||
</public-key> | </public-key> | |||
</host-key> | </host-key> | |||
</server-identity> | </server-identity> | |||
<client-authentication> | <client-authentication> | |||
<supported-authentication-methods> | <supported-authentication-methods> | |||
<publickey/> | <publickey/> | |||
</supported-authentication-methods> | </supported-authentication-methods> | |||
</client-authentication> | </client-authentication> | |||
</ssh-server-parameters> | </ssh-server-parameters> | |||
<netconf-server-parameters> | <netconf-server-parameters> | |||
<!-- nothing to configure --> | <!-- nothing to configure --> | |||
</netconf-server-parameters> | </netconf-server-parameters> | |||
</ssh> | </ssh> | |||
</endpoint> | </endpoint> | |||
</endpoints> | </endpoints> | |||
<connection-type> | <connection-type> | |||
<periodic> | <periodic> | |||
skipping to change at page 28, line 42 ¶ | skipping to change at page 34, line 20 ¶ | |||
ress> | ress> | |||
<keepalives> | <keepalives> | |||
<idle-time>15</idle-time> | <idle-time>15</idle-time> | |||
<max-probes>3</max-probes> | <max-probes>3</max-probes> | |||
<probe-interval>30</probe-interval> | <probe-interval>30</probe-interval> | |||
</keepalives> | </keepalives> | |||
</tcp-client-parameters> | </tcp-client-parameters> | |||
<tls-server-parameters> | <tls-server-parameters> | |||
<server-identity> | <server-identity> | |||
<certificate> | <certificate> | |||
<local-definition> | <keystore-reference> | |||
<public-key-format>ct:subject-public-key-info-fo\ | <asymmetric-key>rsa-asymmetric-key</asymmetric-k\ | |||
rmat</public-key-format> | ey> | |||
<public-key>base64encodedvalue==</public-key> | <certificate>ex-rsa-cert</certificate> | |||
<private-key-format>ct:rsa-private-key-format</p\ | </keystore-reference> | |||
rivate-key-format> | ||||
<private-key>base64encodedvalue==</private-key> | ||||
<cert>base64encodedvalue==</cert> | ||||
</local-definition> | ||||
</certificate> | </certificate> | |||
</server-identity> | </server-identity> | |||
<client-authentication> | <client-authentication> | |||
<ca-certs> | <ca-certs> | |||
<truststore-reference>trusted-client-ca-certs</tru\ | <truststore-reference>trusted-client-ca-certs</tru\ | |||
ststore-reference> | ststore-reference> | |||
</ca-certs> | </ca-certs> | |||
<ee-certs> | <ee-certs> | |||
<truststore-reference>trusted-client-ee-certs</tru\ | <truststore-reference>trusted-client-ee-certs</tru\ | |||
ststore-reference> | ststore-reference> | |||
skipping to change at page 30, line 4 ¶ | skipping to change at page 35, line 27 ¶ | |||
ress> | ress> | |||
<keepalives> | <keepalives> | |||
<idle-time>15</idle-time> | <idle-time>15</idle-time> | |||
<max-probes>3</max-probes> | <max-probes>3</max-probes> | |||
<probe-interval>30</probe-interval> | <probe-interval>30</probe-interval> | |||
</keepalives> | </keepalives> | |||
</tcp-client-parameters> | </tcp-client-parameters> | |||
<tls-server-parameters> | <tls-server-parameters> | |||
<server-identity> | <server-identity> | |||
<certificate> | <certificate> | |||
<local-definition> | <keystore-reference> | |||
<public-key-format>ct:subject-public-key-info-fo\ | <asymmetric-key>rsa-asymmetric-key</asymmetric-k\ | |||
rmat</public-key-format> | ey> | |||
<public-key>base64encodedvalue==</public-key> | <certificate>ex-rsa-cert</certificate> | |||
<private-key-format>ct:rsa-private-key-format</p\ | </keystore-reference> | |||
rivate-key-format> | ||||
<private-key>base64encodedvalue==</private-key> | ||||
<cert>base64encodedvalue==</cert> | ||||
</local-definition> | ||||
</certificate> | </certificate> | |||
</server-identity> | </server-identity> | |||
<client-authentication> | <client-authentication> | |||
<ca-certs> | <ca-certs> | |||
<truststore-reference>trusted-client-ca-certs</tru\ | <truststore-reference>trusted-client-ca-certs</tru\ | |||
ststore-reference> | ststore-reference> | |||
</ca-certs> | </ca-certs> | |||
<ee-certs> | <ee-certs> | |||
<truststore-reference>trusted-client-ee-certs</tru\ | <truststore-reference>trusted-client-ee-certs</tru\ | |||
ststore-reference> | ststore-reference> | |||
skipping to change at page 31, line 12 ¶ | skipping to change at page 36, line 31 ¶ | |||
<persistent/> | <persistent/> | |||
</connection-type> | </connection-type> | |||
<reconnect-strategy> | <reconnect-strategy> | |||
<start-with>first-listed</start-with> | <start-with>first-listed</start-with> | |||
<max-attempts>3</max-attempts> | <max-attempts>3</max-attempts> | |||
</reconnect-strategy> | </reconnect-strategy> | |||
</netconf-client> | </netconf-client> | |||
</call-home> | </call-home> | |||
</netconf-server> | </netconf-server> | |||
4.3. YANG Module | 3.3. YANG Module | |||
This YANG module has normative references to [RFC6242], [RFC6991], | This YANG module has normative references to [RFC6242], [RFC6991], | |||
[RFC7407], [RFC7589], [RFC8071], | [RFC7407], [RFC7589], [RFC8071], | |||
[I-D.kwatsen-netconf-tcp-client-server], | [I-D.ietf-netconf-tcp-client-server], | |||
[I-D.ietf-netconf-ssh-client-server], and | [I-D.ietf-netconf-ssh-client-server], and | |||
[I-D.ietf-netconf-tls-client-server]. | [I-D.ietf-netconf-tls-client-server]. | |||
<CODE BEGINS> file "ietf-netconf-server@2020-05-20.yang" | <CODE BEGINS> file "ietf-netconf-server@2020-07-08.yang" | |||
module ietf-netconf-server { | module ietf-netconf-server { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-netconf-server"; | namespace "urn:ietf:params:xml:ns:yang:ietf-netconf-server"; | |||
prefix ncs; | prefix ncs; | |||
import ietf-yang-types { | import ietf-yang-types { | |||
prefix yang; | prefix yang; | |||
reference | reference | |||
"RFC 6991: Common YANG Data Types"; | "RFC 6991: Common YANG Data Types"; | |||
skipping to change at page 32, line 5 ¶ | skipping to change at page 37, line 24 ¶ | |||
} | } | |||
import ietf-tcp-server { | import ietf-tcp-server { | |||
prefix tcps; | prefix tcps; | |||
reference | reference | |||
"RFC DDDD: YANG Groupings for TCP Clients and TCP Servers"; | "RFC DDDD: YANG Groupings for TCP Clients and TCP Servers"; | |||
} | } | |||
import ietf-ssh-common { | import ietf-ssh-common { | |||
prefix sshcmn; | prefix sshcmn; | |||
revision-date 2020-05-20; // stable grouping definitions | revision-date 2020-07-08; // stable grouping definitions | |||
reference | reference | |||
"RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; | "RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; | |||
} | } | |||
import ietf-ssh-server { | import ietf-ssh-server { | |||
prefix sshs; | prefix sshs; | |||
revision-date 2020-05-20; // stable grouping definitions | revision-date 2020-07-08; // stable grouping definitions | |||
reference | reference | |||
"RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; | "RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; | |||
} | } | |||
import ietf-tls-server { | import ietf-tls-server { | |||
prefix tlss; | prefix tlss; | |||
revision-date 2020-05-20; // stable grouping definitions | revision-date 2020-07-08; // stable grouping definitions | |||
reference | reference | |||
"RFC FFFF: YANG Groupings for TLS Clients and TLS Servers"; | "RFC FFFF: YANG Groupings for TLS Clients and TLS Servers"; | |||
} | } | |||
organization | organization | |||
"IETF NETCONF (Network Configuration) Working Group"; | "IETF NETCONF (Network Configuration) Working Group"; | |||
contact | contact | |||
"WG Web: <http://datatracker.ietf.org/wg/netconf/> | "WG Web: <http://datatracker.ietf.org/wg/netconf/> | |||
WG List: <mailto:netconf@ietf.org> | WG List: <mailto:netconf@ietf.org> | |||
skipping to change at page 33, line 4 ¶ | skipping to change at page 38, line 23 ¶ | |||
Redistribution and use in source and binary forms, with | Redistribution and use in source and binary forms, with | |||
or without modification, is permitted pursuant to, and | or without modification, is permitted pursuant to, and | |||
subject to the license terms contained in, the Simplified | subject to the license terms contained in, the Simplified | |||
BSD License set forth in Section 4.c of the IETF Trust's | BSD License set forth in Section 4.c of the IETF Trust's | |||
Legal Provisions Relating to IETF Documents | Legal Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info). | (https://trustee.ietf.org/license-info). | |||
This version of this YANG module is part of RFC HHHH | This version of this YANG module is part of RFC HHHH | |||
(https://www.rfc-editor.org/info/rfcHHHH); see the RFC | (https://www.rfc-editor.org/info/rfcHHHH); see the RFC | |||
itself for full legal notices.; | itself for full legal notices.; | |||
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', | The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', | |||
'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', | 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', | |||
'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document | 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document | |||
are to be interpreted as described in BCP 14 (RFC 2119) | are to be interpreted as described in BCP 14 (RFC 2119) | |||
(RFC 8174) when, and only when, they appear in all | (RFC 8174) when, and only when, they appear in all | |||
capitals, as shown here."; | capitals, as shown here."; | |||
revision 2020-05-20 { | revision 2020-07-08 { | |||
description | description | |||
"Initial version"; | "Initial version"; | |||
reference | reference | |||
"RFC HHHH: NETCONF Client and Server Models"; | "RFC HHHH: NETCONF Client and Server Models"; | |||
} | } | |||
// Features | // Features | |||
feature ssh-listen { | feature ssh-listen { | |||
description | description | |||
skipping to change at page 34, line 30 ¶ | skipping to change at page 39, line 50 ¶ | |||
node name such that a stack of 'uses' statements will | node name such that a stack of 'uses' statements will | |||
have name conflicts. It is intended that the consuming | have name conflicts. It is intended that the consuming | |||
data model will resolve the issue by wrapping the 'uses' | data model will resolve the issue by wrapping the 'uses' | |||
statement in a container called, e.g., | statement in a container called, e.g., | |||
'netconf-server-parameters'. This model purposely does | 'netconf-server-parameters'. This model purposely does | |||
not do this itself so as to provide maximum flexibility | not do this itself so as to provide maximum flexibility | |||
to consuming models."; | to consuming models."; | |||
container client-identity-mappings { | container client-identity-mappings { | |||
if-feature | if-feature | |||
"tls-listen or tls-call-home or sshcmn:ssh-x509-certs"; | "(tls-listen or tls-call-home) and (sshcmn:ssh-x509-certs)"; | |||
description | description | |||
"Specifies mappings through which NETCONF client X.509 | "Specifies mappings through which NETCONF client X.509 | |||
certificates are used to determine a NETCONF username. | certificates are used to determine a NETCONF username. | |||
If no matching and valid cert-to-name list entry can be | If no matching and valid cert-to-name list entry can be | |||
found, then the NETCONF server MUST close the connection, | found, then the NETCONF server MUST close the connection, | |||
and MUST NOT accept NETCONF messages over it."; | and MUST NOT accept NETCONF messages over it."; | |||
reference | reference | |||
"RFC 7407: A YANG Data Model for SNMP Configuration."; | "RFC 7407: A YANG Data Model for SNMP Configuration."; | |||
uses x509c2n:cert-to-name { | uses x509c2n:cert-to-name { | |||
refine "cert-to-name/fingerprint" { | refine "cert-to-name/fingerprint" { | |||
skipping to change at page 43, line 30 ¶ | skipping to change at page 49, line 5 ¶ | |||
// this module. | // this module. | |||
container netconf-server { | container netconf-server { | |||
uses netconf-server-app-grouping; | uses netconf-server-app-grouping; | |||
description | description | |||
"Top-level container for NETCONF server configuration."; | "Top-level container for NETCONF server configuration."; | |||
} | } | |||
} | } | |||
<CODE ENDS> | <CODE ENDS> | |||
5. Security Considerations | 4. Security Considerations | |||
The YANG module defined in this document uses groupings defined in | 4.1. The "ietf-netconf-client" YANG Module | |||
[I-D.kwatsen-netconf-tcp-client-server], | ||||
[I-D.ietf-netconf-ssh-client-server], and | ||||
[I-D.ietf-netconf-tls-client-server]. Please see the Security | ||||
Considerations section in those documents for concerns related those | ||||
groupings. | ||||
The YANG modules defined in this document are designed to be accessed | The "ietf-netconf-client" YANG module defines data nodes that are | |||
via YANG based management protocols, such as NETCONF [RFC6241] and | designed to be accessed via YANG based management protocols, such as | |||
RESTCONF [RFC8040]. Both of these protocols have mandatory-to- | NETCONF [RFC6241] and RESTCONF [RFC8040]. Both of these protocols | |||
implement secure transport layers (e.g., SSH, TLS) with mutual | have mandatory-to-implement secure transport layers (e.g., SSH, TLS) | |||
authentication. | with mutual authentication. | |||
The NETCONF access control model (NACM) [RFC8341] provides the means | The NETCONF access control model (NACM) [RFC8341] provides the means | |||
to restrict access for particular users to a pre-configured subset of | to restrict access for particular users to a pre-configured subset of | |||
all available protocol operations and content. | all available protocol operations and content. | |||
There are a number of data nodes defined in the YANG modules that are | None of the readable data nodes defined in this YANG module are | |||
writable/creatable/deletable (i.e., config true, which is the | considered sensitive or vulnerable in network environments. The NACM | |||
default). Some of these data nodes may be considered sensitive or | "default-deny-all" extension has not been set for any data nodes | |||
vulnerable in some network environments. Write operations (e.g., | defined in this module. | |||
edit-config) to these data nodes without proper protection can have a | ||||
negative effect on network operations. These are the subtrees and | ||||
data nodes and their sensitivity/vulnerability: | ||||
None of the subtrees or data nodes in the modules defined in this | None of the writable data nodes defined in this YANG module are | |||
document need to be protected from write operations. | considered sensitive or vulnerable in network environments. The NACM | |||
"default-deny-write" extension has not been set for any data nodes | ||||
defined in this module. | ||||
Some of the readable data nodes in the YANG modules may be considered | This module does not define any RPCs, actions, or notifications, and | |||
sensitive or vulnerable in some network environments. It is thus | thus the security consideration for such is not provided here. | |||
important to control read access (e.g., via get, get-config, or | ||||
notification) to these data nodes. These are the subtrees and data | ||||
nodes and their sensitivity/vulnerability: | ||||
None of the subtrees or data nodes in the modules defined in this | Please be aware that this module uses groupings defined in other RFCs | |||
document need to be protected from read operations. | that define data nodes that do set the NACM "default-deny-all" and | |||
"default-deny-write" extensions. | ||||
Some of the RPC operations in the YANG modules may be considered | 4.2. The "ietf-netconf-server" YANG Module | |||
sensitive or vulnerable in some network environments. It is thus | ||||
important to control access to these operations. These are the | ||||
operations and their sensitivity/vulnerability: | ||||
The modules defined in this document do not define any 'RPC' or | The "ietf-netconf-server" YANG module defines data nodes that are | |||
'action' statements. | designed to be accessed via YANG based management protocols, such as | |||
NETCONF [RFC6241] and RESTCONF [RFC8040]. Both of these protocols | ||||
have mandatory-to-implement secure transport layers (e.g., SSH, TLS) | ||||
with mutual authentication. | ||||
6. IANA Considerations | The NETCONF access control model (NACM) [RFC8341] provides the means | |||
to restrict access for particular users to a pre-configured subset of | ||||
all available protocol operations and content. | ||||
6.1. The IETF XML Registry | None of the readable data nodes defined in this YANG module are | |||
considered sensitive or vulnerable in network environments. The NACM | ||||
"default-deny-all" extension has not been set for any data nodes | ||||
defined in this module. | ||||
None of the writable data nodes defined in this YANG module are | ||||
considered sensitive or vulnerable in network environments. The NACM | ||||
"default-deny-write" extension has not been set for any data nodes | ||||
defined in this module. | ||||
This module does not define any RPCs, actions, or notifications, and | ||||
thus the security consideration for such is not provided here. | ||||
Please be aware that this module uses groupings defined in other RFCs | ||||
that define data nodes that do set the NACM "default-deny-all" and | ||||
"default-deny-write" extensions. | ||||
5. IANA Considerations | ||||
5.1. The IETF XML Registry | ||||
This document registers two URIs in the "ns" subregistry of the IETF | This document registers two URIs in the "ns" subregistry of the IETF | |||
XML Registry [RFC3688]. Following the format in [RFC3688], the | XML Registry [RFC3688]. Following the format in [RFC3688], the | |||
following registrations are requested: | following registrations are requested: | |||
URI: urn:ietf:params:xml:ns:yang:ietf-netconf-client | URI: urn:ietf:params:xml:ns:yang:ietf-netconf-client | |||
Registrant Contact: The NETCONF WG of the IETF. | Registrant Contact: The NETCONF WG of the IETF. | |||
XML: N/A, the requested URI is an XML namespace. | XML: N/A, the requested URI is an XML namespace. | |||
URI: urn:ietf:params:xml:ns:yang:ietf-netconf-server | URI: urn:ietf:params:xml:ns:yang:ietf-netconf-server | |||
Registrant Contact: The NETCONF WG of the IETF. | Registrant Contact: The NETCONF WG of the IETF. | |||
XML: N/A, the requested URI is an XML namespace. | XML: N/A, the requested URI is an XML namespace. | |||
6.2. The YANG Module Names Registry | 5.2. The YANG Module Names Registry | |||
This document registers two YANG modules in the YANG Module Names | This document registers two YANG modules in the YANG Module Names | |||
registry [RFC6020]. Following the format in [RFC6020], the the | registry [RFC6020]. Following the format in [RFC6020], the the | |||
following registrations are requested: | following registrations are requested: | |||
name: ietf-netconf-client | name: ietf-netconf-client | |||
namespace: urn:ietf:params:xml:ns:yang:ietf-netconf-client | namespace: urn:ietf:params:xml:ns:yang:ietf-netconf-client | |||
prefix: ncc | prefix: ncc | |||
reference: RFC HHHH | reference: RFC HHHH | |||
name: ietf-netconf-server | name: ietf-netconf-server | |||
namespace: urn:ietf:params:xml:ns:yang:ietf-netconf-server | namespace: urn:ietf:params:xml:ns:yang:ietf-netconf-server | |||
prefix: ncs | prefix: ncs | |||
reference: RFC HHHH | reference: RFC HHHH | |||
7. References | 6. References | |||
7.1. Normative References | 6.1. Normative References | |||
[I-D.ietf-netconf-keystore] | [I-D.ietf-netconf-keystore] | |||
Watsen, K., "A YANG Data Model for a Keystore", draft- | Watsen, K., "A YANG Data Model for a Keystore", Work in | |||
ietf-netconf-keystore-16 (work in progress), March 2020. | Progress, Internet-Draft, draft-ietf-netconf-keystore-17, | |||
20 May 2020, <https://tools.ietf.org/html/draft-ietf- | ||||
netconf-keystore-17>. | ||||
[I-D.ietf-netconf-ssh-client-server] | [I-D.ietf-netconf-ssh-client-server] | |||
Watsen, K., Wu, G., and L. Xia, "YANG Groupings for SSH | Watsen, K. and G. Wu, "YANG Groupings for SSH Clients and | |||
Clients and SSH Servers", draft-ietf-netconf-ssh-client- | SSH Servers", Work in Progress, Internet-Draft, draft- | |||
server-18 (work in progress), March 2020. | ietf-netconf-ssh-client-server-19, 20 May 2020, | |||
<https://tools.ietf.org/html/draft-ietf-netconf-ssh- | ||||
[I-D.ietf-netconf-tls-client-server] | client-server-19>. | |||
Watsen, K., Wu, G., and L. Xia, "YANG Groupings for TLS | ||||
Clients and TLS Servers", draft-ietf-netconf-tls-client- | ||||
server-18 (work in progress), March 2020. | ||||
[I-D.kwatsen-netconf-tcp-client-server] | [I-D.ietf-netconf-tcp-client-server] | |||
Watsen, K. and M. Scharf, "YANG Groupings for TCP Clients | Watsen, K. and M. Scharf, "YANG Groupings for TCP Clients | |||
and TCP Servers", draft-kwatsen-netconf-tcp-client- | and TCP Servers", Work in Progress, Internet-Draft, draft- | |||
server-02 (work in progress), April 2019. | ietf-netconf-tcp-client-server-06, 16 June 2020, | |||
<https://tools.ietf.org/html/draft-ietf-netconf-tcp- | ||||
client-server-06>. | ||||
[I-D.ietf-netconf-tls-client-server] | ||||
Watsen, K. and G. Wu, "YANG Groupings for TLS Clients and | ||||
TLS Servers", Work in Progress, Internet-Draft, draft- | ||||
ietf-netconf-tls-client-server-19, 20 May 2020, | ||||
<https://tools.ietf.org/html/draft-ietf-netconf-tls- | ||||
client-server-19>. | ||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | |||
the Network Configuration Protocol (NETCONF)", RFC 6020, | the Network Configuration Protocol (NETCONF)", RFC 6020, | |||
DOI 10.17487/RFC6020, October 2010, | DOI 10.17487/RFC6020, October 2010, | |||
<https://www.rfc-editor.org/info/rfc6020>. | <https://www.rfc-editor.org/info/rfc6020>. | |||
skipping to change at page 46, line 31 ¶ | skipping to change at page 52, line 27 ¶ | |||
<https://www.rfc-editor.org/info/rfc7589>. | <https://www.rfc-editor.org/info/rfc7589>. | |||
[RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | |||
RFC 7950, DOI 10.17487/RFC7950, August 2016, | RFC 7950, DOI 10.17487/RFC7950, August 2016, | |||
<https://www.rfc-editor.org/info/rfc7950>. | <https://www.rfc-editor.org/info/rfc7950>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
7.2. Informative References | 6.2. Informative References | |||
[I-D.ietf-netconf-crypto-types] | ||||
Watsen, K., "Common YANG Data Types for Cryptography", | ||||
Work in Progress, Internet-Draft, draft-ietf-netconf- | ||||
crypto-types-15, 20 May 2020, | ||||
<https://tools.ietf.org/html/draft-ietf-netconf-crypto- | ||||
types-15>. | ||||
[I-D.ietf-netconf-http-client-server] | ||||
Watsen, K., "YANG Groupings for HTTP Clients and HTTP | ||||
Servers", Work in Progress, Internet-Draft, draft-ietf- | ||||
netconf-http-client-server-03, 20 May 2020, | ||||
<https://tools.ietf.org/html/draft-ietf-netconf-http- | ||||
client-server-03>. | ||||
[I-D.ietf-netconf-netconf-client-server] | ||||
Watsen, K., "NETCONF Client and Server Models", Work in | ||||
Progress, Internet-Draft, draft-ietf-netconf-netconf- | ||||
client-server-19, 20 May 2020, | ||||
<https://tools.ietf.org/html/draft-ietf-netconf-netconf- | ||||
client-server-19>. | ||||
[I-D.ietf-netconf-restconf-client-server] | ||||
Watsen, K., "RESTCONF Client and Server Models", Work in | ||||
Progress, Internet-Draft, draft-ietf-netconf-restconf- | ||||
client-server-19, 20 May 2020, | ||||
<https://tools.ietf.org/html/draft-ietf-netconf-restconf- | ||||
client-server-19>. | ||||
[I-D.ietf-netconf-trust-anchors] | [I-D.ietf-netconf-trust-anchors] | |||
Watsen, K., "A YANG Data Model for a Truststore", draft- | Watsen, K., "A YANG Data Model for a Truststore", Work in | |||
ietf-netconf-trust-anchors-09 (work in progress), March | Progress, Internet-Draft, draft-ietf-netconf-trust- | |||
2020. | anchors-10, 20 May 2020, <https://tools.ietf.org/html/ | |||
draft-ietf-netconf-trust-anchors-10>. | ||||
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
<https://www.rfc-editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | |||
Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | |||
<https://www.rfc-editor.org/info/rfc8040>. | <https://www.rfc-editor.org/info/rfc8040>. | |||
[RFC8071] Watsen, K., "NETCONF Call Home and RESTCONF Call Home", | [RFC8071] Watsen, K., "NETCONF Call Home and RESTCONF Call Home", | |||
skipping to change at page 47, line 10 ¶ | skipping to change at page 53, line 35 ¶ | |||
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | |||
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | |||
<https://www.rfc-editor.org/info/rfc8340>. | <https://www.rfc-editor.org/info/rfc8340>. | |||
[RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration | [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration | |||
Access Control Model", STD 91, RFC 8341, | Access Control Model", STD 91, RFC 8341, | |||
DOI 10.17487/RFC8341, March 2018, | DOI 10.17487/RFC8341, March 2018, | |||
<https://www.rfc-editor.org/info/rfc8341>. | <https://www.rfc-editor.org/info/rfc8341>. | |||
7.3. URIs | [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | |||
and R. Wilton, "Network Management Datastore Architecture | ||||
[1] https://tools.ietf.org/html/draft-ietf-netconf-crypto-types | (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, | |||
<https://www.rfc-editor.org/info/rfc8342>. | ||||
[2] https://tools.ietf.org/html/draft-ietf-netconf-trust-anchors | ||||
[3] https://tools.ietf.org/html/draft-ietf-netconf-keystore | ||||
[4] https://tools.ietf.org/html/draft-ietf-netconf-tcp-client-server | ||||
[5] https://tools.ietf.org/html/draft-ietf-netconf-ssh-client-server | ||||
[6] https://tools.ietf.org/html/draft-ietf-netconf-tls-client-server | ||||
[7] https://tools.ietf.org/html/draft-ietf-netconf-http-client-server | ||||
[8] https://tools.ietf.org/html/draft-ietf-netconf-netconf-client- | ||||
server | ||||
[9] https://tools.ietf.org/html/draft-ietf-netconf-restconf-client- | ||||
server | ||||
Appendix A. Expanded Tree Diagrams | ||||
A.1. Expanded Tree Diagram for 'ietf-netconf-client' | ||||
The following tree diagram [RFC8340] provides an overview of the data | ||||
model for the "ietf-netconf-client" module. | ||||
This tree diagram shows all the nodes defined in this module, | ||||
including those defined by "grouping" statements used by this module. | ||||
Please see Section 3.1 for a tree diagram that illustrates what the | ||||
module looks like without all the "grouping" statements expanded. | ||||
========== NOTE: '\\' line wrapping per BCP XXX (RFC XXXX) ========== | ||||
module: ietf-netconf-client | ||||
+--rw netconf-client | ||||
+--rw initiate! {ssh-initiate or tls-initiate}? | ||||
| +--rw netconf-server* [name] | ||||
| +--rw name string | ||||
| +--rw endpoints | ||||
| | +--rw endpoint* [name] | ||||
| | +--rw name string | ||||
| | +--rw (transport) | ||||
| | +--:(ssh) {ssh-initiate}? | ||||
| | | +--rw ssh | ||||
| | | +--rw tcp-client-parameters | ||||
| | | | +--rw remote-address inet:host | ||||
| | | | +--rw remote-port? inet:port-number | ||||
| | | | +--rw local-address? inet:ip-address | ||||
| | | | | {local-binding-supported}? | ||||
| | | | +--rw local-port? inet:port-number | ||||
| | | | | {local-binding-supported}? | ||||
| | | | +--rw keepalives! | ||||
| | | | {keepalives-supported}? | ||||
| | | | +--rw idle-time uint16 | ||||
| | | | +--rw max-probes uint16 | ||||
| | | | +--rw probe-interval uint16 | ||||
| | | +--rw ssh-client-parameters | ||||
| | | | +--rw client-identity | ||||
| | | | | +--rw username? string | ||||
| | | | | +--rw public-key! | ||||
| | | | | | {client-identity-publickey}? | ||||
| | | | | | +--rw (local-or-keystore) | ||||
| | | | | | +--:(local) | ||||
| | | | | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | | | | +--rw local-definition | ||||
| | | | | | | +--rw public-key-format | ||||
| | | | | | | | identityref | ||||
| | | | | | | +--rw public-key | ||||
| | | | | | | | binary | ||||
| | | | | | | +--rw private-key-format? | ||||
| | | | | | | | identityref | ||||
| | | | | | | +--rw (private-key-type) | ||||
| | | | | | | +--:(private-key) | ||||
| | | | | | | | +--rw private-key? | ||||
| | | | | | | | binary | ||||
| | | | | | | +--:(hidden-private-k\ | ||||
\ey) | ||||
| | | | | | | | +--rw hidden-priva\ | ||||
\te-key? | ||||
| | | | | | | | empty | ||||
| | | | | | | +--:(encrypted-privat\ | ||||
\e-key) | ||||
| | | | | | | +--rw encrypted-pr\ | ||||
\ivate-key | ||||
| | | | | | | +--rw (key-type) | ||||
| | | | | | | | +--:(symmetr\ | ||||
\ic-key-ref) | ||||
| | | | | | | | | +--rw sym\ | ||||
\metric-key-ref? leafref | ||||
| | | | | | | | | {\ | ||||
\keystore-supported}? | ||||
| | | | | | | | +--:(asymmet\ | ||||
\ric-key-ref) | ||||
| | | | | | | | +--rw asy\ | ||||
\mmetric-key-ref? leafref | ||||
| | | | | | | | {\ | ||||
\keystore-supported}? | ||||
| | | | | | | +--rw value? | ||||
| | | | | | | binary | ||||
| | | | | | +--:(keystore) | ||||
| | | | | | {keystore-supported}? | ||||
| | | | | | +--rw keystore-reference? | ||||
| | | | | | ks:asymmetric-key-r\ | ||||
\ef | ||||
| | | | | +--rw password? string | ||||
| | | | | | {client-identity-password}? | ||||
| | | | | +--rw hostbased! | ||||
| | | | | | {client-identity-hostbased}? | ||||
| | | | | | +--rw (local-or-keystore) | ||||
| | | | | | +--:(local) | ||||
| | | | | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | | | | +--rw local-definition | ||||
| | | | | | | +--rw public-key-format | ||||
| | | | | | | | identityref | ||||
| | | | | | | +--rw public-key | ||||
| | | | | | | | binary | ||||
| | | | | | | +--rw private-key-format? | ||||
| | | | | | | | identityref | ||||
| | | | | | | +--rw (private-key-type) | ||||
| | | | | | | +--:(private-key) | ||||
| | | | | | | | +--rw private-key? | ||||
| | | | | | | | binary | ||||
| | | | | | | +--:(hidden-private-k\ | ||||
\ey) | ||||
| | | | | | | | +--rw hidden-priva\ | ||||
\te-key? | ||||
| | | | | | | | empty | ||||
| | | | | | | +--:(encrypted-privat\ | ||||
\e-key) | ||||
| | | | | | | +--rw encrypted-pr\ | ||||
\ivate-key | ||||
| | | | | | | +--rw (key-type) | ||||
| | | | | | | | +--:(symmetr\ | ||||
\ic-key-ref) | ||||
| | | | | | | | | +--rw sym\ | ||||
\metric-key-ref? leafref | ||||
| | | | | | | | | {\ | ||||
\keystore-supported}? | ||||
| | | | | | | | +--:(asymmet\ | ||||
\ric-key-ref) | ||||
| | | | | | | | +--rw asy\ | ||||
\mmetric-key-ref? leafref | ||||
| | | | | | | | {\ | ||||
\keystore-supported}? | ||||
| | | | | | | +--rw value? | ||||
| | | | | | | binary | ||||
| | | | | | +--:(keystore) | ||||
| | | | | | {keystore-supported}? | ||||
| | | | | | +--rw keystore-reference? | ||||
| | | | | | ks:asymmetric-key-r\ | ||||
\ef | ||||
| | | | | +--rw none? empty | ||||
| | | | | | {client-identity-none}? | ||||
| | | | | +--rw certificate! | ||||
| | | | | {sshcmn:ssh-x509-certs}? | ||||
| | | | | +--rw (local-or-keystore) | ||||
| | | | | +--:(local) | ||||
| | | | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | | | +--rw local-definition | ||||
| | | | | | +--rw public-key-format | ||||
| | | | | | | identityref | ||||
| | | | | | +--rw public-key | ||||
| | | | | | | binary | ||||
| | | | | | +--rw private-key-format? | ||||
| | | | | | | identityref | ||||
| | | | | | +--rw (private-key-type) | ||||
| | | | | | | +--:(private-key) | ||||
| | | | | | | | +--rw private-key? | ||||
| | | | | | | | binary | ||||
| | | | | | | +--:(hidden-private-k\ | ||||
\ey) | ||||
| | | | | | | | +--rw hidden-priva\ | ||||
\te-key? | ||||
| | | | | | | | empty | ||||
| | | | | | | +--:(encrypted-privat\ | ||||
\e-key) | ||||
| | | | | | | +--rw encrypted-pr\ | ||||
\ivate-key | ||||
| | | | | | | +--rw (key-type) | ||||
| | | | | | | | +--:(symmetr\ | ||||
\ic-key-ref) | ||||
| | | | | | | | | +--rw sym\ | ||||
\metric-key-ref? leafref | ||||
| | | | | | | | | {\ | ||||
\keystore-supported}? | ||||
| | | | | | | | +--:(asymmet\ | ||||
\ric-key-ref) | ||||
| | | | | | | | +--rw asy\ | ||||
\mmetric-key-ref? leafref | ||||
| | | | | | | | {\ | ||||
\keystore-supported}? | ||||
| | | | | | | +--rw value? | ||||
| | | | | | | binary | ||||
| | | | | | +--rw cert? | ||||
| | | | | | | end-entity-cert-\ | ||||
\cms | ||||
| | | | | | +---n certificate-expira\ | ||||
\tion | ||||
| | | | | | | +-- expiration-date | ||||
| | | | | | | yang:date-and\ | ||||
\-time | ||||
| | | | | | +---x generate-certifica\ | ||||
\te-signing-request | ||||
| | | | | | {certificate-sig\ | ||||
\ning-request-generation}? | ||||
| | | | | | +---w input | ||||
| | | | | | | +---w subject | ||||
| | | | | | | | binary | ||||
| | | | | | | +---w attributes? | ||||
| | | | | | | binary | ||||
| | | | | | +--ro output | ||||
| | | | | | +--ro certificate-\ | ||||
\signing-request | ||||
| | | | | | ct:csr | ||||
| | | | | +--:(keystore) | ||||
| | | | | {keystore-supported}? | ||||
| | | | | +--rw keystore-reference | ||||
| | | | | +--rw asymmetric-key? | ||||
| | | | | | ks:asymmetric-ke\ | ||||
\y-ref | ||||
| | | | | +--rw certificate? \ | ||||
\leafref | ||||
| | | | +--rw server-authentication | ||||
| | | | | +--rw ssh-host-keys! | ||||
| | | | | | +--rw (local-or-truststore) | ||||
| | | | | | +--:(local) | ||||
| | | | | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | | | | +--rw local-definition | ||||
| | | | | | | +--rw public-key* [name] | ||||
| | | | | | | +--rw name | ||||
| | | | | | | | string | ||||
| | | | | | | +--rw public-key-form\ | ||||
\at | ||||
| | | | | | | | identityref | ||||
| | | | | | | +--rw public-key | ||||
| | | | | | | binary | ||||
| | | | | | +--:(truststore) | ||||
| | | | | | {truststore-supported\ | ||||
\,public-keys}? | ||||
| | | | | | +--rw truststore-reference? | ||||
| | | | | | ts:public-key-bag-r\ | ||||
\ef | ||||
| | | | | +--rw ca-certs! | ||||
| | | | | | {sshcmn:ssh-x509-certs}? | ||||
| | | | | | +--rw (local-or-truststore) | ||||
| | | | | | +--:(local) | ||||
| | | | | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | | | | +--rw local-definition | ||||
| | | | | | | +--rw cert* | ||||
| | | | | | | | trust-anchor-cer\ | ||||
\t-cms | ||||
| | | | | | | +---n certificate-expira\ | ||||
\tion | ||||
| | | | | | | +-- expiration-date | ||||
| | | | | | | yang:date-and\ | ||||
\-time | ||||
| | | | | | +--:(truststore) | ||||
| | | | | | {truststore-supported\ | ||||
\,certificates}? | ||||
| | | | | | +--rw truststore-reference? | ||||
| | | | | | ts:certificate-bag-\ | ||||
\ref | ||||
| | | | | +--rw ee-certs! | ||||
| | | | | {sshcmn:ssh-x509-certs}? | ||||
| | | | | +--rw (local-or-truststore) | ||||
| | | | | +--:(local) | ||||
| | | | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | | | +--rw local-definition | ||||
| | | | | | +--rw cert* | ||||
| | | | | | | trust-anchor-cer\ | ||||
\t-cms | ||||
| | | | | | +---n certificate-expira\ | ||||
\tion | ||||
| | | | | | +-- expiration-date | ||||
| | | | | | yang:date-and\ | ||||
\-time | ||||
| | | | | +--:(truststore) | ||||
| | | | | {truststore-supported\ | ||||
\,certificates}? | ||||
| | | | | +--rw truststore-reference? | ||||
| | | | | ts:certificate-bag-\ | ||||
\ref | ||||
| | | | +--rw transport-params | ||||
| | | | | {ssh-client-transport-params-co\ | ||||
\nfig}? | ||||
| | | | | +--rw host-key | ||||
| | | | | | +--rw host-key-alg* identityref | ||||
| | | | | +--rw key-exchange | ||||
| | | | | | +--rw key-exchange-alg* | ||||
| | | | | | identityref | ||||
| | | | | +--rw encryption | ||||
| | | | | | +--rw encryption-alg* | ||||
| | | | | | identityref | ||||
| | | | | +--rw mac | ||||
| | | | | +--rw mac-alg* identityref | ||||
| | | | +--rw keepalives! | ||||
| | | | {ssh-client-keepalives}? | ||||
| | | | +--rw max-wait? uint16 | ||||
| | | | +--rw max-attempts? uint8 | ||||
| | | +--rw netconf-client-parameters | ||||
| | +--:(tls) {tls-initiate}? | ||||
| | +--rw tls | ||||
| | +--rw tcp-client-parameters | ||||
| | | +--rw remote-address inet:host | ||||
| | | +--rw remote-port? inet:port-number | ||||
| | | +--rw local-address? inet:ip-address | ||||
| | | | {local-binding-supported}? | ||||
| | | +--rw local-port? inet:port-number | ||||
| | | | {local-binding-supported}? | ||||
| | | +--rw keepalives! | ||||
| | | {keepalives-supported}? | ||||
| | | +--rw idle-time uint16 | ||||
| | | +--rw max-probes uint16 | ||||
| | | +--rw probe-interval uint16 | ||||
| | +--rw tls-client-parameters | ||||
| | | +--rw client-identity | ||||
| | | | +--rw (auth-type)? | ||||
| | | | +--:(certificate) | ||||
| | | | | {x509-certificate-auth}? | ||||
| | | | | +--rw certificate | ||||
| | | | | +--rw (local-or-keystore) | ||||
| | | | | +--:(local) | ||||
| | | | | | {local-definiti\ | ||||
\ons-supported}? | ||||
| | | | | | +--rw local-definition | ||||
| | | | | | +--rw public-key-f\ | ||||
\ormat | ||||
| | | | | | | identityref | ||||
| | | | | | +--rw public-key | ||||
| | | | | | | binary | ||||
| | | | | | +--rw private-key-\ | ||||
\format? | ||||
| | | | | | | identityref | ||||
| | | | | | +--rw (private-key\ | ||||
\-type) | ||||
| | | | | | | +--:(private-ke\ | ||||
\y) | ||||
| | | | | | | | +--rw privat\ | ||||
\e-key? | ||||
| | | | | | | | bina\ | ||||
\ry | ||||
| | | | | | | +--:(hidden-pri\ | ||||
\vate-key) | ||||
| | | | | | | | +--rw hidden\ | ||||
\-private-key? | ||||
| | | | | | | | empty | ||||
| | | | | | | +--:(encrypted-\ | ||||
\private-key) | ||||
| | | | | | | +--rw encryp\ | ||||
\ted-private-key | ||||
| | | | | | | +--rw (ke\ | ||||
\y-type) | ||||
| | | | | | | | +--:(s\ | ||||
\ymmetric-key-ref) | ||||
| | | | | | | | | +--\ | ||||
\rw symmetric-key-ref? leafref | ||||
| | | | | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | | | | +--:(a\ | ||||
\symmetric-key-ref) | ||||
| | | | | | | | +--\ | ||||
\rw asymmetric-key-ref? leafref | ||||
| | | | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | | | +--rw val\ | ||||
\ue? | ||||
| | | | | | | b\ | ||||
\inary | ||||
| | | | | | +--rw cert? | ||||
| | | | | | | end-entity\ | ||||
\-cert-cms | ||||
| | | | | | +---n certificate-\ | ||||
\expiration | ||||
| | | | | | | +-- expiration-\ | ||||
\date | ||||
| | | | | | | yang:da\ | ||||
\te-and-time | ||||
| | | | | | +---x generate-cer\ | ||||
\tificate-signing-request | ||||
| | | | | | {certifica\ | ||||
\te-signing-request-generation}? | ||||
| | | | | | +---w input | ||||
| | | | | | | +---w subject | ||||
| | | | | | | | bina\ | ||||
\ry | ||||
| | | | | | | +---w attrib\ | ||||
\utes? | ||||
| | | | | | | bina\ | ||||
\ry | ||||
| | | | | | +--ro output | ||||
| | | | | | +--ro certif\ | ||||
\icate-signing-request | ||||
| | | | | | ct:c\ | ||||
\sr | ||||
| | | | | +--:(keystore) | ||||
| | | | | {keystore-suppo\ | ||||
\rted}? | ||||
| | | | | +--rw keystore-refere\ | ||||
\nce | ||||
| | | | | +--rw asymmetric-k\ | ||||
\ey? | ||||
| | | | | | ks:asymmet\ | ||||
\ric-key-ref | ||||
| | | | | +--rw certificate?\ | ||||
\ leafref | ||||
| | | | +--:(raw-public-key) | ||||
| | | | | {raw-public-key-auth}? | ||||
| | | | | +--rw raw-private-key | ||||
| | | | | +--rw (local-or-keystore) | ||||
| | | | | +--:(local) | ||||
| | | | | | {local-definiti\ | ||||
\ons-supported}? | ||||
| | | | | | +--rw local-definition | ||||
| | | | | | +--rw public-key-f\ | ||||
\ormat | ||||
| | | | | | | identityref | ||||
| | | | | | +--rw public-key | ||||
| | | | | | | binary | ||||
| | | | | | +--rw private-key-\ | ||||
\format? | ||||
| | | | | | | identityref | ||||
| | | | | | +--rw (private-key\ | ||||
\-type) | ||||
| | | | | | +--:(private-ke\ | ||||
\y) | ||||
| | | | | | | +--rw privat\ | ||||
\e-key? | ||||
| | | | | | | bina\ | ||||
\ry | ||||
| | | | | | +--:(hidden-pri\ | ||||
\vate-key) | ||||
| | | | | | | +--rw hidden\ | ||||
\-private-key? | ||||
| | | | | | | empty | ||||
| | | | | | +--:(encrypted-\ | ||||
\private-key) | ||||
| | | | | | +--rw encryp\ | ||||
\ted-private-key | ||||
| | | | | | +--rw (ke\ | ||||
\y-type) | ||||
| | | | | | | +--:(s\ | ||||
\ymmetric-key-ref) | ||||
| | | | | | | | +--\ | ||||
\rw symmetric-key-ref? leafref | ||||
| | | | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | | | +--:(a\ | ||||
\symmetric-key-ref) | ||||
| | | | | | | +--\ | ||||
\rw asymmetric-key-ref? leafref | ||||
| | | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | | +--rw val\ | ||||
\ue? | ||||
| | | | | | b\ | ||||
\inary | ||||
| | | | | +--:(keystore) | ||||
| | | | | {keystore-suppo\ | ||||
\rted}? | ||||
| | | | | +--rw keystore-refere\ | ||||
\nce? | ||||
| | | | | ks:asymmetric\ | ||||
\-key-ref | ||||
| | | | +--:(psk) {psk-auth}? | ||||
| | | | +--rw psk | ||||
| | | | +--rw (local-or-keystore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-definiti\ | ||||
\ons-supported}? | ||||
| | | | | +--rw local-definition | ||||
| | | | | +--rw key-format? | ||||
| | | | | | identityref | ||||
| | | | | +--rw (key-type) | ||||
| | | | | | +--:(key) | ||||
| | | | | | | +--rw key? | ||||
| | | | | | | bina\ | ||||
\ry | ||||
| | | | | | +--:(hidden-key) | ||||
| | | | | | | +--rw hidden\ | ||||
\-key? | ||||
| | | | | | | empty | ||||
| | | | | | +--:(encrypted-\ | ||||
\key) | ||||
| | | | | | +--rw encryp\ | ||||
\ted-key | ||||
| | | | | | +--rw (ke\ | ||||
\y-type) | ||||
| | | | | | | +--:(s\ | ||||
\ymmetric-key-ref) | ||||
| | | | | | | | +--\ | ||||
\rw symmetric-key-ref? leafref | ||||
| | | | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | | | +--:(a\ | ||||
\symmetric-key-ref) | ||||
| | | | | | | +--\ | ||||
\rw asymmetric-key-ref? leafref | ||||
| | | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | | +--rw val\ | ||||
\ue? | ||||
| | | | | | b\ | ||||
\inary | ||||
| | | | | +--rw id? | ||||
| | | | | string | ||||
| | | | | {ks:local-\ | ||||
\definitions-supported}? | ||||
| | | | +--:(keystore) | ||||
| | | | {keystore-suppo\ | ||||
\rted}? | ||||
| | | | +--rw keystore-refere\ | ||||
\nce? | ||||
| | | | ks:symmetric-\ | ||||
\key-ref | ||||
| | | +--rw server-authentication | ||||
| | | | +--rw ca-certs! | ||||
| | | | | {x509-certificate-auth}? | ||||
| | | | | +--rw (local-or-truststore) | ||||
| | | | | +--:(local) | ||||
| | | | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | | | +--rw local-definition | ||||
| | | | | | +--rw cert* | ||||
| | | | | | | trust-anchor-cer\ | ||||
\t-cms | ||||
| | | | | | +---n certificate-expira\ | ||||
\tion | ||||
| | | | | | +-- expiration-date | ||||
| | | | | | yang:date-and\ | ||||
\-time | ||||
| | | | | +--:(truststore) | ||||
| | | | | {truststore-supported\ | ||||
\,certificates}? | ||||
| | | | | +--rw truststore-reference? | ||||
| | | | | ts:certificate-bag-\ | ||||
\ref | ||||
| | | | +--rw ee-certs! | ||||
| | | | | {x509-certificate-auth}? | ||||
| | | | | +--rw (local-or-truststore) | ||||
| | | | | +--:(local) | ||||
| | | | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | | | +--rw local-definition | ||||
| | | | | | +--rw cert* | ||||
| | | | | | | trust-anchor-cer\ | ||||
\t-cms | ||||
| | | | | | +---n certificate-expira\ | ||||
\tion | ||||
| | | | | | +-- expiration-date | ||||
| | | | | | yang:date-and\ | ||||
\-time | ||||
| | | | | +--:(truststore) | ||||
| | | | | {truststore-supported\ | ||||
\,certificates}? | ||||
| | | | | +--rw truststore-reference? | ||||
| | | | | ts:certificate-bag-\ | ||||
\ref | ||||
| | | | +--rw raw-public-keys! | ||||
| | | | | {raw-public-key-auth}? | ||||
| | | | | +--rw (local-or-truststore) | ||||
| | | | | +--:(local) | ||||
| | | | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | | | +--rw local-definition | ||||
| | | | | | +--rw public-key* [name] | ||||
| | | | | | +--rw name | ||||
| | | | | | | string | ||||
| | | | | | +--rw public-key-form\ | ||||
\at | ||||
| | | | | | | identityref | ||||
| | | | | | +--rw public-key | ||||
| | | | | | binary | ||||
| | | | | +--:(truststore) | ||||
| | | | | {truststore-supported\ | ||||
\,public-keys}? | ||||
| | | | | +--rw truststore-reference? | ||||
| | | | | ts:public-key-bag-r\ | ||||
\ef | ||||
| | | | +--rw psks! {psk-auth}? | ||||
| | | +--rw hello-params | ||||
| | | | {tls-client-hello-params-config\ | ||||
\}? | ||||
| | | | +--rw tls-versions | ||||
| | | | | +--rw tls-version* identityref | ||||
| | | | +--rw cipher-suites | ||||
| | | | +--rw cipher-suite* identityref | ||||
| | | +--rw keepalives | ||||
| | | {tls-client-keepalives}? | ||||
| | | +--rw peer-allowed-to-send? empty | ||||
| | | +--rw test-peer-aliveness! | ||||
| | | +--rw max-wait? uint16 | ||||
| | | +--rw max-attempts? uint8 | ||||
| | +--rw netconf-client-parameters | ||||
| +--rw connection-type | ||||
| | +--rw (connection-type) | ||||
| | +--:(persistent-connection) | ||||
| | | +--rw persistent! | ||||
| | +--:(periodic-connection) | ||||
| | +--rw periodic! | ||||
| | +--rw period? uint16 | ||||
| | +--rw anchor-time? yang:date-and-time | ||||
| | +--rw idle-timeout? uint16 | ||||
| +--rw reconnect-strategy | ||||
| +--rw start-with? enumeration | ||||
| +--rw max-attempts? uint8 | ||||
+--rw listen! {ssh-listen or tls-listen}? | ||||
+--rw idle-timeout? uint16 | ||||
+--rw endpoint* [name] | ||||
+--rw name string | ||||
+--rw (transport) | ||||
+--:(ssh) {ssh-listen}? | ||||
| +--rw ssh | ||||
| +--rw tcp-server-parameters | ||||
| | +--rw local-address inet:ip-address | ||||
| | +--rw local-port? inet:port-number | ||||
| | +--rw keepalives! {keepalives-supported}? | ||||
| | +--rw idle-time uint16 | ||||
| | +--rw max-probes uint16 | ||||
| | +--rw probe-interval uint16 | ||||
| +--rw ssh-client-parameters | ||||
| | +--rw client-identity | ||||
| | | +--rw username? string | ||||
| | | +--rw public-key! | ||||
| | | | {client-identity-publickey}? | ||||
| | | | +--rw (local-or-keystore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-definitions-supporte\ | ||||
\d}? | ||||
| | | | | +--rw local-definition | ||||
| | | | | +--rw public-key-format | ||||
| | | | | | identityref | ||||
| | | | | +--rw public-key | ||||
| | | | | | binary | ||||
| | | | | +--rw private-key-format? | ||||
| | | | | | identityref | ||||
| | | | | +--rw (private-key-type) | ||||
| | | | | +--:(private-key) | ||||
| | | | | | +--rw private-key? | ||||
| | | | | | binary | ||||
| | | | | +--:(hidden-private-key) | ||||
| | | | | | +--rw hidden-private-key? | ||||
| | | | | | empty | ||||
| | | | | +--:(encrypted-private-key) | ||||
| | | | | +--rw encrypted-private-\ | ||||
\key | ||||
| | | | | +--rw (key-type) | ||||
| | | | | | +--:(symmetric-key\ | ||||
\-ref) | ||||
| | | | | | | +--rw symmetric\ | ||||
\-key-ref? leafref | ||||
| | | | | | | {keysto\ | ||||
\re-supported}? | ||||
| | | | | | +--:(asymmetric-ke\ | ||||
\y-ref) | ||||
| | | | | | +--rw asymmetri\ | ||||
\c-key-ref? leafref | ||||
| | | | | | {keysto\ | ||||
\re-supported}? | ||||
| | | | | +--rw value? | ||||
| | | | | binary | ||||
| | | | +--:(keystore) {keystore-supported}? | ||||
| | | | +--rw keystore-reference? | ||||
| | | | ks:asymmetric-key-ref | ||||
| | | +--rw password? string | ||||
| | | | {client-identity-password}? | ||||
| | | +--rw hostbased! | ||||
| | | | {client-identity-hostbased}? | ||||
| | | | +--rw (local-or-keystore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-definitions-supporte\ | ||||
\d}? | ||||
| | | | | +--rw local-definition | ||||
| | | | | +--rw public-key-format | ||||
| | | | | | identityref | ||||
| | | | | +--rw public-key | ||||
| | | | | | binary | ||||
| | | | | +--rw private-key-format? | ||||
| | | | | | identityref | ||||
| | | | | +--rw (private-key-type) | ||||
| | | | | +--:(private-key) | ||||
| | | | | | +--rw private-key? | ||||
| | | | | | binary | ||||
| | | | | +--:(hidden-private-key) | ||||
| | | | | | +--rw hidden-private-key? | ||||
| | | | | | empty | ||||
| | | | | +--:(encrypted-private-key) | ||||
| | | | | +--rw encrypted-private-\ | ||||
\key | ||||
| | | | | +--rw (key-type) | ||||
| | | | | | +--:(symmetric-key\ | ||||
\-ref) | ||||
| | | | | | | +--rw symmetric\ | ||||
\-key-ref? leafref | ||||
| | | | | | | {keysto\ | ||||
\re-supported}? | ||||
| | | | | | +--:(asymmetric-ke\ | ||||
\y-ref) | ||||
| | | | | | +--rw asymmetri\ | ||||
\c-key-ref? leafref | ||||
| | | | | | {keysto\ | ||||
\re-supported}? | ||||
| | | | | +--rw value? | ||||
| | | | | binary | ||||
| | | | +--:(keystore) {keystore-supported}? | ||||
| | | | +--rw keystore-reference? | ||||
| | | | ks:asymmetric-key-ref | ||||
| | | +--rw none? empty | ||||
| | | | {client-identity-none}? | ||||
| | | +--rw certificate! {sshcmn:ssh-x509-certs}? | ||||
| | | +--rw (local-or-keystore) | ||||
| | | +--:(local) | ||||
| | | | {local-definitions-supporte\ | ||||
\d}? | ||||
| | | | +--rw local-definition | ||||
| | | | +--rw public-key-format | ||||
| | | | | identityref | ||||
| | | | +--rw public-key | ||||
| | | | | binary | ||||
| | | | +--rw private-key-format? | ||||
| | | | | identityref | ||||
| | | | +--rw (private-key-type) | ||||
| | | | | +--:(private-key) | ||||
| | | | | | +--rw private-key? | ||||
| | | | | | binary | ||||
| | | | | +--:(hidden-private-key) | ||||
| | | | | | +--rw hidden-private-key? | ||||
| | | | | | empty | ||||
| | | | | +--:(encrypted-private-key) | ||||
| | | | | +--rw encrypted-private-\ | ||||
\key | ||||
| | | | | +--rw (key-type) | ||||
| | | | | | +--:(symmetric-key\ | ||||
\-ref) | ||||
| | | | | | | +--rw symmetric\ | ||||
\-key-ref? leafref | ||||
| | | | | | | {keysto\ | ||||
\re-supported}? | ||||
| | | | | | +--:(asymmetric-ke\ | ||||
\y-ref) | ||||
| | | | | | +--rw asymmetri\ | ||||
\c-key-ref? leafref | ||||
| | | | | | {keysto\ | ||||
\re-supported}? | ||||
| | | | | +--rw value? | ||||
| | | | | binary | ||||
| | | | +--rw cert? | ||||
| | | | | end-entity-cert-cms | ||||
| | | | +---n certificate-expiration | ||||
| | | | | +-- expiration-date | ||||
| | | | | yang:date-and-time | ||||
| | | | +---x generate-certificate-sig\ | ||||
\ning-request | ||||
| | | | {certificate-signing-r\ | ||||
\equest-generation}? | ||||
| | | | +---w input | ||||
| | | | | +---w subject | ||||
| | | | | | binary | ||||
| | | | | +---w attributes? | ||||
| | | | | binary | ||||
| | | | +--ro output | ||||
| | | | +--ro certificate-signin\ | ||||
\g-request | ||||
| | | | ct:csr | ||||
| | | +--:(keystore) {keystore-supported}? | ||||
| | | +--rw keystore-reference | ||||
| | | +--rw asymmetric-key? | ||||
| | | | ks:asymmetric-key-ref | ||||
| | | +--rw certificate? leafref | ||||
| | +--rw server-authentication | ||||
| | | +--rw ssh-host-keys! | ||||
| | | | +--rw (local-or-truststore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-definitions-supporte\ | ||||
\d}? | ||||
| | | | | +--rw local-definition | ||||
| | | | | +--rw public-key* [name] | ||||
| | | | | +--rw name | ||||
| | | | | | string | ||||
| | | | | +--rw public-key-format | ||||
| | | | | | identityref | ||||
| | | | | +--rw public-key | ||||
| | | | | binary | ||||
| | | | +--:(truststore) | ||||
| | | | {truststore-supported,publi\ | ||||
\c-keys}? | ||||
| | | | +--rw truststore-reference? | ||||
| | | | ts:public-key-bag-ref | ||||
| | | +--rw ca-certs! {sshcmn:ssh-x509-certs}? | ||||
| | | | +--rw (local-or-truststore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-definitions-supporte\ | ||||
\d}? | ||||
| | | | | +--rw local-definition | ||||
| | | | | +--rw cert* | ||||
| | | | | | trust-anchor-cert-cms | ||||
| | | | | +---n certificate-expiration | ||||
| | | | | +-- expiration-date | ||||
| | | | | yang:date-and-time | ||||
| | | | +--:(truststore) | ||||
| | | | {truststore-supported,certi\ | ||||
\ficates}? | ||||
| | | | +--rw truststore-reference? | ||||
| | | | ts:certificate-bag-ref | ||||
| | | +--rw ee-certs! {sshcmn:ssh-x509-certs}? | ||||
| | | +--rw (local-or-truststore) | ||||
| | | +--:(local) | ||||
| | | | {local-definitions-supporte\ | ||||
\d}? | ||||
| | | | +--rw local-definition | ||||
| | | | +--rw cert* | ||||
| | | | | trust-anchor-cert-cms | ||||
| | | | +---n certificate-expiration | ||||
| | | | +-- expiration-date | ||||
| | | | yang:date-and-time | ||||
| | | +--:(truststore) | ||||
| | | {truststore-supported,certi\ | ||||
\ficates}? | ||||
| | | +--rw truststore-reference? | ||||
| | | ts:certificate-bag-ref | ||||
| | +--rw transport-params | ||||
| | | {ssh-client-transport-params-config}? | ||||
| | | +--rw host-key | ||||
| | | | +--rw host-key-alg* identityref | ||||
| | | +--rw key-exchange | ||||
| | | | +--rw key-exchange-alg* identityref | ||||
| | | +--rw encryption | ||||
| | | | +--rw encryption-alg* identityref | ||||
| | | +--rw mac | ||||
| | | +--rw mac-alg* identityref | ||||
| | +--rw keepalives! {ssh-client-keepalives}? | ||||
| | +--rw max-wait? uint16 | ||||
| | +--rw max-attempts? uint8 | ||||
| +--rw netconf-client-parameters | ||||
+--:(tls) {tls-listen}? | ||||
+--rw tls | ||||
+--rw tcp-server-parameters | ||||
| +--rw local-address inet:ip-address | ||||
| +--rw local-port? inet:port-number | ||||
| +--rw keepalives! {keepalives-supported}? | ||||
| +--rw idle-time uint16 | ||||
| +--rw max-probes uint16 | ||||
| +--rw probe-interval uint16 | ||||
+--rw tls-client-parameters | ||||
| +--rw client-identity | ||||
| | +--rw (auth-type)? | ||||
| | +--:(certificate) | ||||
| | | {x509-certificate-auth}? | ||||
| | | +--rw certificate | ||||
| | | +--rw (local-or-keystore) | ||||
| | | +--:(local) | ||||
| | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | +--rw local-definition | ||||
| | | | +--rw public-key-format | ||||
| | | | | identityref | ||||
| | | | +--rw public-key | ||||
| | | | | binary | ||||
| | | | +--rw private-key-format? | ||||
| | | | | identityref | ||||
| | | | +--rw (private-key-type) | ||||
| | | | | +--:(private-key) | ||||
| | | | | | +--rw private-key? | ||||
| | | | | | binary | ||||
| | | | | +--:(hidden-private-k\ | ||||
\ey) | ||||
| | | | | | +--rw hidden-priva\ | ||||
\te-key? | ||||
| | | | | | empty | ||||
| | | | | +--:(encrypted-privat\ | ||||
\e-key) | ||||
| | | | | +--rw encrypted-pr\ | ||||
\ivate-key | ||||
| | | | | +--rw (key-type) | ||||
| | | | | | +--:(symmetr\ | ||||
\ic-key-ref) | ||||
| | | | | | | +--rw sym\ | ||||
\metric-key-ref? leafref | ||||
| | | | | | | {\ | ||||
\keystore-supported}? | ||||
| | | | | | +--:(asymmet\ | ||||
\ric-key-ref) | ||||
| | | | | | +--rw asy\ | ||||
\mmetric-key-ref? leafref | ||||
| | | | | | {\ | ||||
\keystore-supported}? | ||||
| | | | | +--rw value? | ||||
| | | | | binary | ||||
| | | | +--rw cert? | ||||
| | | | | end-entity-cert-\ | ||||
\cms | ||||
| | | | +---n certificate-expira\ | ||||
\tion | ||||
| | | | | +-- expiration-date | ||||
| | | | | yang:date-and\ | ||||
\-time | ||||
| | | | +---x generate-certifica\ | ||||
\te-signing-request | ||||
| | | | {certificate-sig\ | ||||
\ning-request-generation}? | ||||
| | | | +---w input | ||||
| | | | | +---w subject | ||||
| | | | | | binary | ||||
| | | | | +---w attributes? | ||||
| | | | | binary | ||||
| | | | +--ro output | ||||
| | | | +--ro certificate-\ | ||||
\signing-request | ||||
| | | | ct:csr | ||||
| | | +--:(keystore) | ||||
| | | {keystore-supported}? | ||||
| | | +--rw keystore-reference | ||||
| | | +--rw asymmetric-key? | ||||
| | | | ks:asymmetric-ke\ | ||||
\y-ref | ||||
| | | +--rw certificate? \ | ||||
\leafref | ||||
| | +--:(raw-public-key) | ||||
| | | {raw-public-key-auth}? | ||||
| | | +--rw raw-private-key | ||||
| | | +--rw (local-or-keystore) | ||||
| | | +--:(local) | ||||
| | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | +--rw local-definition | ||||
| | | | +--rw public-key-format | ||||
| | | | | identityref | ||||
| | | | +--rw public-key | ||||
| | | | | binary | ||||
| | | | +--rw private-key-format? | ||||
| | | | | identityref | ||||
| | | | +--rw (private-key-type) | ||||
| | | | +--:(private-key) | ||||
| | | | | +--rw private-key? | ||||
| | | | | binary | ||||
| | | | +--:(hidden-private-k\ | ||||
\ey) | ||||
| | | | | +--rw hidden-priva\ | ||||
\te-key? | ||||
| | | | | empty | ||||
| | | | +--:(encrypted-privat\ | ||||
\e-key) | ||||
| | | | +--rw encrypted-pr\ | ||||
\ivate-key | ||||
| | | | +--rw (key-type) | ||||
| | | | | +--:(symmetr\ | ||||
\ic-key-ref) | ||||
| | | | | | +--rw sym\ | ||||
\metric-key-ref? leafref | ||||
| | | | | | {\ | ||||
\keystore-supported}? | ||||
| | | | | +--:(asymmet\ | ||||
\ric-key-ref) | ||||
| | | | | +--rw asy\ | ||||
\mmetric-key-ref? leafref | ||||
| | | | | {\ | ||||
\keystore-supported}? | ||||
| | | | +--rw value? | ||||
| | | | binary | ||||
| | | +--:(keystore) | ||||
| | | {keystore-supported}? | ||||
| | | +--rw keystore-reference? | ||||
| | | ks:asymmetric-key-r\ | ||||
\ef | ||||
| | +--:(psk) {psk-auth}? | ||||
| | +--rw psk | ||||
| | +--rw (local-or-keystore) | ||||
| | +--:(local) | ||||
| | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | +--rw local-definition | ||||
| | | +--rw key-format? | ||||
| | | | identityref | ||||
| | | +--rw (key-type) | ||||
| | | | +--:(key) | ||||
| | | | | +--rw key? | ||||
| | | | | binary | ||||
| | | | +--:(hidden-key) | ||||
| | | | | +--rw hidden-key? | ||||
| | | | | empty | ||||
| | | | +--:(encrypted-key) | ||||
| | | | +--rw encrypted-key | ||||
| | | | +--rw (key-type) | ||||
| | | | | +--:(symmetr\ | ||||
\ic-key-ref) | ||||
| | | | | | +--rw sym\ | ||||
\metric-key-ref? leafref | ||||
| | | | | | {\ | ||||
\keystore-supported}? | ||||
| | | | | +--:(asymmet\ | ||||
\ric-key-ref) | ||||
| | | | | +--rw asy\ | ||||
\mmetric-key-ref? leafref | ||||
| | | | | {\ | ||||
\keystore-supported}? | ||||
| | | | +--rw value? | ||||
| | | | binary | ||||
| | | +--rw id? | ||||
| | | string | ||||
| | | {ks:local-defini\ | ||||
\tions-supported}? | ||||
| | +--:(keystore) | ||||
| | {keystore-supported}? | ||||
| | +--rw keystore-reference? | ||||
| | ks:symmetric-key-ref | ||||
| +--rw server-authentication | ||||
| | +--rw ca-certs! {x509-certificate-auth}? | ||||
| | | +--rw (local-or-truststore) | ||||
| | | +--:(local) | ||||
| | | | {local-definitions-supporte\ | ||||
\d}? | ||||
| | | | +--rw local-definition | ||||
| | | | +--rw cert* | ||||
| | | | | trust-anchor-cert-cms | ||||
| | | | +---n certificate-expiration | ||||
| | | | +-- expiration-date | ||||
| | | | yang:date-and-time | ||||
| | | +--:(truststore) | ||||
| | | {truststore-supported,certi\ | ||||
\ficates}? | ||||
| | | +--rw truststore-reference? | ||||
| | | ts:certificate-bag-ref | ||||
| | +--rw ee-certs! {x509-certificate-auth}? | ||||
| | | +--rw (local-or-truststore) | ||||
| | | +--:(local) | ||||
| | | | {local-definitions-supporte\ | ||||
\d}? | ||||
| | | | +--rw local-definition | ||||
| | | | +--rw cert* | ||||
| | | | | trust-anchor-cert-cms | ||||
| | | | +---n certificate-expiration | ||||
| | | | +-- expiration-date | ||||
| | | | yang:date-and-time | ||||
| | | +--:(truststore) | ||||
| | | {truststore-supported,certi\ | ||||
\ficates}? | ||||
| | | +--rw truststore-reference? | ||||
| | | ts:certificate-bag-ref | ||||
| | +--rw raw-public-keys! | ||||
| | | {raw-public-key-auth}? | ||||
| | | +--rw (local-or-truststore) | ||||
| | | +--:(local) | ||||
| | | | {local-definitions-supporte\ | ||||
\d}? | ||||
| | | | +--rw local-definition | ||||
| | | | +--rw public-key* [name] | ||||
| | | | +--rw name | ||||
| | | | | string | ||||
| | | | +--rw public-key-format | ||||
| | | | | identityref | ||||
| | | | +--rw public-key | ||||
| | | | binary | ||||
| | | +--:(truststore) | ||||
| | | {truststore-supported,publi\ | ||||
\c-keys}? | ||||
| | | +--rw truststore-reference? | ||||
| | | ts:public-key-bag-ref | ||||
| | +--rw psks! {psk-auth}? | ||||
| +--rw hello-params | ||||
| | {tls-client-hello-params-config}? | ||||
| | +--rw tls-versions | ||||
| | | +--rw tls-version* identityref | ||||
| | +--rw cipher-suites | ||||
| | +--rw cipher-suite* identityref | ||||
| +--rw keepalives {tls-client-keepalives}? | ||||
| +--rw peer-allowed-to-send? empty | ||||
| +--rw test-peer-aliveness! | ||||
| +--rw max-wait? uint16 | ||||
| +--rw max-attempts? uint8 | ||||
+--rw netconf-client-parameters | ||||
A.2. Expanded Tree Diagram for 'ietf-netconf-server' | ||||
The following tree diagram [RFC8340] provides an overview of the data | ||||
model for the "ietf-netconf-server" module. | ||||
This tree diagram shows all the nodes defined in this module, | ||||
including those defined by "grouping" statements used by this module. | ||||
Please see Section 4.1 for a tree diagram that illustrates what the | ||||
module looks like without all the "grouping" statements expanded. | ||||
========== NOTE: '\\' line wrapping per BCP XXX (RFC XXXX) ========== | ||||
module: ietf-netconf-server | ||||
+--rw netconf-server | ||||
+--rw listen! {ssh-listen or tls-listen}? | ||||
| +--rw idle-timeout? uint16 | ||||
| +--rw endpoint* [name] | ||||
| +--rw name string | ||||
| +--rw (transport) | ||||
| +--:(ssh) {ssh-listen}? | ||||
| | +--rw ssh | ||||
| | +--rw tcp-server-parameters | ||||
| | | +--rw local-address inet:ip-address | ||||
| | | +--rw local-port? inet:port-number | ||||
| | | +--rw keepalives! {keepalives-supported}? | ||||
| | | +--rw idle-time uint16 | ||||
| | | +--rw max-probes uint16 | ||||
| | | +--rw probe-interval uint16 | ||||
| | +--rw ssh-server-parameters | ||||
| | | +--rw server-identity | ||||
| | | | +--rw host-key* [name] | ||||
| | | | +--rw name string | ||||
| | | | +--rw (host-key-type) | ||||
| | | | +--:(public-key) | ||||
| | | | | +--rw public-key | ||||
| | | | | +--rw (local-or-keystore) | ||||
| | | | | +--:(local) | ||||
| | | | | | {local-definitions\ | ||||
\-supported}? | ||||
| | | | | | +--rw local-definition | ||||
| | | | | | +--rw public-key-form\ | ||||
\at | ||||
| | | | | | | identityref | ||||
| | | | | | +--rw public-key | ||||
| | | | | | | binary | ||||
| | | | | | +--rw private-key-for\ | ||||
\mat? | ||||
| | | | | | | identityref | ||||
| | | | | | +--rw (private-key-ty\ | ||||
\pe) | ||||
| | | | | | +--:(private-key) | ||||
| | | | | | | +--rw private-k\ | ||||
\ey? | ||||
| | | | | | | binary | ||||
| | | | | | +--:(hidden-privat\ | ||||
\e-key) | ||||
| | | | | | | +--rw hidden-pr\ | ||||
\ivate-key? | ||||
| | | | | | | empty | ||||
| | | | | | +--:(encrypted-pri\ | ||||
\vate-key) | ||||
| | | | | | +--rw encrypted\ | ||||
\-private-key | ||||
| | | | | | +--rw (key-t\ | ||||
\ype) | ||||
| | | | | | | +--:(symm\ | ||||
\etric-key-ref) | ||||
| | | | | | | | +--rw \ | ||||
\symmetric-key-ref? leafref | ||||
| | | | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | | | +--:(asym\ | ||||
\metric-key-ref) | ||||
| | | | | | | +--rw \ | ||||
\asymmetric-key-ref? leafref | ||||
| | | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | | +--rw value? | ||||
| | | | | | bina\ | ||||
\ry | ||||
| | | | | +--:(keystore) | ||||
| | | | | {keystore-supporte\ | ||||
\d}? | ||||
| | | | | +--rw keystore-reference? | ||||
| | | | | ks:asymmetric-ke\ | ||||
\y-ref | ||||
| | | | +--:(certificate) | ||||
| | | | +--rw certificate | ||||
| | | | {sshcmn:ssh-x509-certs}? | ||||
| | | | +--rw (local-or-keystore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-definitions\ | ||||
\-supported}? | ||||
| | | | | +--rw local-definition | ||||
| | | | | +--rw public-key-form\ | ||||
\at | ||||
| | | | | | identityref | ||||
| | | | | +--rw public-key | ||||
| | | | | | binary | ||||
| | | | | +--rw private-key-for\ | ||||
\mat? | ||||
| | | | | | identityref | ||||
| | | | | +--rw (private-key-ty\ | ||||
\pe) | ||||
| | | | | | +--:(private-key) | ||||
| | | | | | | +--rw private-k\ | ||||
\ey? | ||||
| | | | | | | binary | ||||
| | | | | | +--:(hidden-privat\ | ||||
\e-key) | ||||
| | | | | | | +--rw hidden-pr\ | ||||
\ivate-key? | ||||
| | | | | | | empty | ||||
| | | | | | +--:(encrypted-pri\ | ||||
\vate-key) | ||||
| | | | | | +--rw encrypted\ | ||||
\-private-key | ||||
| | | | | | +--rw (key-t\ | ||||
\ype) | ||||
| | | | | | | +--:(symm\ | ||||
\etric-key-ref) | ||||
| | | | | | | | +--rw \ | ||||
\symmetric-key-ref? leafref | ||||
| | | | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | | | +--:(asym\ | ||||
\metric-key-ref) | ||||
| | | | | | | +--rw \ | ||||
\asymmetric-key-ref? leafref | ||||
| | | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | | +--rw value? | ||||
| | | | | | bina\ | ||||
\ry | ||||
| | | | | +--rw cert? | ||||
| | | | | | end-entity-ce\ | ||||
\rt-cms | ||||
| | | | | +---n certificate-exp\ | ||||
\iration | ||||
| | | | | | +-- expiration-date | ||||
| | | | | | yang:date-\ | ||||
\and-time | ||||
| | | | | +---x generate-certif\ | ||||
\icate-signing-request | ||||
| | | | | {certificate-\ | ||||
\signing-request-generation}? | ||||
| | | | | +---w input | ||||
| | | | | | +---w subject | ||||
| | | | | | | binary | ||||
| | | | | | +---w attribute\ | ||||
\s? | ||||
| | | | | | binary | ||||
| | | | | +--ro output | ||||
| | | | | +--ro certifica\ | ||||
\te-signing-request | ||||
| | | | | ct:csr | ||||
| | | | +--:(keystore) | ||||
| | | | {keystore-supporte\ | ||||
\d}? | ||||
| | | | +--rw keystore-reference | ||||
| | | | +--rw asymmetric-key? | ||||
| | | | | ks:asymmetric\ | ||||
\-key-ref | ||||
| | | | +--rw certificate? \ | ||||
\ leafref | ||||
| | | +--rw client-authentication | ||||
| | | | +--rw supported-authentication-methods | ||||
| | | | | +--rw publickey? empty | ||||
| | | | | +--rw password? empty | ||||
| | | | | | {client-auth-password}? | ||||
| | | | | +--rw hostbased? empty | ||||
| | | | | | {client-auth-hostbased}? | ||||
| | | | | +--rw none? empty | ||||
| | | | | {client-auth-none}? | ||||
| | | | +--rw users {client-auth-config-supported}? | ||||
| | | | | +--rw user* [name] | ||||
| | | | | +--rw name string | ||||
| | | | | +--rw public-keys! | ||||
| | | | | | {client-auth-publickey}? | ||||
| | | | | | +--rw (local-or-truststore) | ||||
| | | | | | +--:(local) | ||||
| | | | | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | | | | +--rw local-definition | ||||
| | | | | | | +--rw public-key* [name] | ||||
| | | | | | | +--rw name | ||||
| | | | | | | | string | ||||
| | | | | | | +--rw public-key-form\ | ||||
\at | ||||
| | | | | | | | identityref | ||||
| | | | | | | +--rw public-key | ||||
| | | | | | | binary | ||||
| | | | | | +--:(truststore) | ||||
| | | | | | {truststore-supported\ | ||||
\,public-keys}? | ||||
| | | | | | +--rw truststore-reference? | ||||
| | | | | | ts:public-key-bag-r\ | ||||
\ef | ||||
| | | | | +--rw password? | ||||
| | | | | | ianach:crypt-hash | ||||
| | | | | | {client-auth-password}? | ||||
| | | | | +--rw hostbased! | ||||
| | | | | | {client-auth-hostbased}? | ||||
| | | | | | +--rw (local-or-truststore) | ||||
| | | | | | +--:(local) | ||||
| | | | | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | | | | +--rw local-definition | ||||
| | | | | | | +--rw public-key* [name] | ||||
| | | | | | | +--rw name | ||||
| | | | | | | | string | ||||
| | | | | | | +--rw public-key-form\ | ||||
\at | ||||
| | | | | | | | identityref | ||||
| | | | | | | +--rw public-key | ||||
| | | | | | | binary | ||||
| | | | | | +--:(truststore) | ||||
| | | | | | {truststore-supported\ | ||||
\,public-keys}? | ||||
| | | | | | +--rw truststore-reference? | ||||
| | | | | | ts:public-key-bag-r\ | ||||
\ef | ||||
| | | | | +--rw none? empty | ||||
| | | | | {client-auth-none}? | ||||
| | | | +--rw ca-certs! | ||||
| | | | | {client-auth-config-supported,sshc\ | ||||
\mn:ssh-x509-certs}? | ||||
| | | | | +--rw (local-or-truststore) | ||||
| | | | | +--:(local) | ||||
| | | | | | {local-definitions-supporte\ | ||||
\d}? | ||||
| | | | | | +--rw local-definition | ||||
| | | | | | +--rw cert* | ||||
| | | | | | | trust-anchor-cert-cms | ||||
| | | | | | +---n certificate-expiration | ||||
| | | | | | +-- expiration-date | ||||
| | | | | | yang:date-and-time | ||||
| | | | | +--:(truststore) | ||||
| | | | | {truststore-supported,certi\ | ||||
\ficates}? | ||||
| | | | | +--rw truststore-reference? | ||||
| | | | | ts:certificate-bag-ref | ||||
| | | | +--rw ee-certs! | ||||
| | | | {client-auth-config-supported,sshc\ | ||||
\mn:ssh-x509-certs}? | ||||
| | | | +--rw (local-or-truststore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-definitions-supporte\ | ||||
\d}? | ||||
| | | | | +--rw local-definition | ||||
| | | | | +--rw cert* | ||||
| | | | | | trust-anchor-cert-cms | ||||
| | | | | +---n certificate-expiration | ||||
| | | | | +-- expiration-date | ||||
| | | | | yang:date-and-time | ||||
| | | | +--:(truststore) | ||||
| | | | {truststore-supported,certi\ | ||||
\ficates}? | ||||
| | | | +--rw truststore-reference? | ||||
| | | | ts:certificate-bag-ref | ||||
| | | +--rw transport-params | ||||
| | | | {ssh-server-transport-params-config}? | ||||
| | | | +--rw host-key | ||||
| | | | | +--rw host-key-alg* identityref | ||||
| | | | +--rw key-exchange | ||||
| | | | | +--rw key-exchange-alg* identityref | ||||
| | | | +--rw encryption | ||||
| | | | | +--rw encryption-alg* identityref | ||||
| | | | +--rw mac | ||||
| | | | +--rw mac-alg* identityref | ||||
| | | +--rw keepalives! {ssh-server-keepalives}? | ||||
| | | +--rw max-wait? uint16 | ||||
| | | +--rw max-attempts? uint8 | ||||
| | +--rw netconf-server-parameters | ||||
| | +--rw client-identity-mappings | ||||
| | {tls-listen or tls-call-home or sshcm\ | ||||
\n:ssh-x509-certs}? | ||||
| | +--rw cert-to-name* [id] | ||||
| | +--rw id uint32 | ||||
| | +--rw fingerprint? | ||||
| | | x509c2n:tls-fingerprint | ||||
| | +--rw map-type identityref | ||||
| | +--rw name string | ||||
| +--:(tls) {tls-listen}? | ||||
| +--rw tls | ||||
| +--rw tcp-server-parameters | ||||
| | +--rw local-address inet:ip-address | ||||
| | +--rw local-port? inet:port-number | ||||
| | +--rw keepalives! {keepalives-supported}? | ||||
| | +--rw idle-time uint16 | ||||
| | +--rw max-probes uint16 | ||||
| | +--rw probe-interval uint16 | ||||
| +--rw tls-server-parameters | ||||
| | +--rw server-identity | ||||
| | | +--rw (auth-type) | ||||
| | | +--:(certificate) | ||||
| | | | {x509-certificate-auth}? | ||||
| | | | +--rw certificate | ||||
| | | | +--rw (local-or-keystore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | | +--rw local-definition | ||||
| | | | | +--rw public-key-format | ||||
| | | | | | identityref | ||||
| | | | | +--rw public-key | ||||
| | | | | | binary | ||||
| | | | | +--rw private-key-format? | ||||
| | | | | | identityref | ||||
| | | | | +--rw (private-key-type) | ||||
| | | | | | +--:(private-key) | ||||
| | | | | | | +--rw private-key? | ||||
| | | | | | | binary | ||||
| | | | | | +--:(hidden-private-k\ | ||||
\ey) | ||||
| | | | | | | +--rw hidden-priva\ | ||||
\te-key? | ||||
| | | | | | | empty | ||||
| | | | | | +--:(encrypted-privat\ | ||||
\e-key) | ||||
| | | | | | +--rw encrypted-pr\ | ||||
\ivate-key | ||||
| | | | | | +--rw (key-type) | ||||
| | | | | | | +--:(symmetr\ | ||||
\ic-key-ref) | ||||
| | | | | | | | +--rw sym\ | ||||
\metric-key-ref? leafref | ||||
| | | | | | | | {\ | ||||
\keystore-supported}? | ||||
| | | | | | | +--:(asymmet\ | ||||
\ric-key-ref) | ||||
| | | | | | | +--rw asy\ | ||||
\mmetric-key-ref? leafref | ||||
| | | | | | | {\ | ||||
\keystore-supported}? | ||||
| | | | | | +--rw value? | ||||
| | | | | | binary | ||||
| | | | | +--rw cert? | ||||
| | | | | | end-entity-cert-\ | ||||
\cms | ||||
| | | | | +---n certificate-expira\ | ||||
\tion | ||||
| | | | | | +-- expiration-date | ||||
| | | | | | yang:date-and\ | ||||
\-time | ||||
| | | | | +---x generate-certifica\ | ||||
\te-signing-request | ||||
| | | | | {certificate-sig\ | ||||
\ning-request-generation}? | ||||
| | | | | +---w input | ||||
| | | | | | +---w subject | ||||
| | | | | | | binary | ||||
| | | | | | +---w attributes? | ||||
| | | | | | binary | ||||
| | | | | +--ro output | ||||
| | | | | +--ro certificate-\ | ||||
\signing-request | ||||
| | | | | ct:csr | ||||
| | | | +--:(keystore) | ||||
| | | | {keystore-supported}? | ||||
| | | | +--rw keystore-reference | ||||
| | | | +--rw asymmetric-key? | ||||
| | | | | ks:asymmetric-ke\ | ||||
\y-ref | ||||
| | | | +--rw certificate? \ | ||||
\leafref | ||||
| | | +--:(raw-private-key) | ||||
| | | | {raw-public-key-auth}? | ||||
| | | | +--rw raw-private-key | ||||
| | | | +--rw (local-or-keystore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | | +--rw local-definition | ||||
| | | | | +--rw public-key-format | ||||
| | | | | | identityref | ||||
| | | | | +--rw public-key | ||||
| | | | | | binary | ||||
| | | | | +--rw private-key-format? | ||||
| | | | | | identityref | ||||
| | | | | +--rw (private-key-type) | ||||
| | | | | +--:(private-key) | ||||
| | | | | | +--rw private-key? | ||||
| | | | | | binary | ||||
| | | | | +--:(hidden-private-k\ | ||||
\ey) | ||||
| | | | | | +--rw hidden-priva\ | ||||
\te-key? | ||||
| | | | | | empty | ||||
| | | | | +--:(encrypted-privat\ | ||||
\e-key) | ||||
| | | | | +--rw encrypted-pr\ | ||||
\ivate-key | ||||
| | | | | +--rw (key-type) | ||||
| | | | | | +--:(symmetr\ | ||||
\ic-key-ref) | ||||
| | | | | | | +--rw sym\ | ||||
\metric-key-ref? leafref | ||||
| | | | | | | {\ | ||||
\keystore-supported}? | ||||
| | | | | | +--:(asymmet\ | ||||
\ric-key-ref) | ||||
| | | | | | +--rw asy\ | ||||
\mmetric-key-ref? leafref | ||||
| | | | | | {\ | ||||
\keystore-supported}? | ||||
| | | | | +--rw value? | ||||
| | | | | binary | ||||
| | | | +--:(keystore) | ||||
| | | | {keystore-supported}? | ||||
| | | | +--rw keystore-reference? | ||||
| | | | ks:asymmetric-key-r\ | ||||
\ef | ||||
| | | +--:(psk) {psk-auth}? | ||||
| | | +--rw psk | ||||
| | | +--rw (local-or-keystore) | ||||
| | | +--:(local) | ||||
| | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | +--rw local-definition | ||||
| | | | +--rw key-format? | ||||
| | | | | identityref | ||||
| | | | +--rw (key-type) | ||||
| | | | | +--:(key) | ||||
| | | | | | +--rw key? | ||||
| | | | | | binary | ||||
| | | | | +--:(hidden-key) | ||||
| | | | | | +--rw hidden-key? | ||||
| | | | | | empty | ||||
| | | | | +--:(encrypted-key) | ||||
| | | | | +--rw encrypted-key | ||||
| | | | | +--rw (key-type) | ||||
| | | | | | +--:(symmetr\ | ||||
\ic-key-ref) | ||||
| | | | | | | +--rw sym\ | ||||
\metric-key-ref? leafref | ||||
| | | | | | | {\ | ||||
\keystore-supported}? | ||||
| | | | | | +--:(asymmet\ | ||||
\ric-key-ref) | ||||
| | | | | | +--rw asy\ | ||||
\mmetric-key-ref? leafref | ||||
| | | | | | {\ | ||||
\keystore-supported}? | ||||
| | | | | +--rw value? | ||||
| | | | | binary | ||||
| | | | +--rw id? | ||||
| | | | string | ||||
| | | | {ks:local-defini\ | ||||
\tions-supported}? | ||||
| | | +--:(keystore) | ||||
| | | {keystore-supported}? | ||||
| | | +--rw keystore-reference? | ||||
| | | ks:symmetric-key-ref | ||||
| | +--rw client-authentication! | ||||
| | | {client-auth-config-supported}? | ||||
| | | +--rw ca-certs! {x509-certificate-auth}? | ||||
| | | | +--rw (local-or-truststore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-definitions-supporte\ | ||||
\d}? | ||||
| | | | | +--rw local-definition | ||||
| | | | | +--rw cert* | ||||
| | | | | | trust-anchor-cert-cms | ||||
| | | | | +---n certificate-expiration | ||||
| | | | | +-- expiration-date | ||||
| | | | | yang:date-and-time | ||||
| | | | +--:(truststore) | ||||
| | | | {truststore-supported,certi\ | ||||
\ficates}? | ||||
| | | | +--rw truststore-reference? | ||||
| | | | ts:certificate-bag-ref | ||||
| | | +--rw ee-certs! {x509-certificate-auth}? | ||||
| | | | +--rw (local-or-truststore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-definitions-supporte\ | ||||
\d}? | ||||
| | | | | +--rw local-definition | ||||
| | | | | +--rw cert* | ||||
| | | | | | trust-anchor-cert-cms | ||||
| | | | | +---n certificate-expiration | ||||
| | | | | +-- expiration-date | ||||
| | | | | yang:date-and-time | ||||
| | | | +--:(truststore) | ||||
| | | | {truststore-supported,certi\ | ||||
\ficates}? | ||||
| | | | +--rw truststore-reference? | ||||
| | | | ts:certificate-bag-ref | ||||
| | | +--rw raw-public-keys! | ||||
| | | | {raw-public-key-auth}? | ||||
| | | | +--rw (local-or-truststore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-definitions-supporte\ | ||||
\d}? | ||||
| | | | | +--rw local-definition | ||||
| | | | | +--rw public-key* [name] | ||||
| | | | | +--rw name | ||||
| | | | | | string | ||||
| | | | | +--rw public-key-format | ||||
| | | | | | identityref | ||||
| | | | | +--rw public-key | ||||
| | | | | binary | ||||
| | | | +--:(truststore) | ||||
| | | | {truststore-supported,publi\ | ||||
\c-keys}? | ||||
| | | | +--rw truststore-reference? | ||||
| | | | ts:public-key-bag-ref | ||||
| | | +--rw psks! {psk-auth}? | ||||
| | +--rw hello-params | ||||
| | | {tls-server-hello-params-config}? | ||||
| | | +--rw tls-versions | ||||
| | | | +--rw tls-version* identityref | ||||
| | | +--rw cipher-suites | ||||
| | | +--rw cipher-suite* identityref | ||||
| | +--rw keepalives {tls-server-keepalives}? | ||||
| | +--rw peer-allowed-to-send? empty | ||||
| | +--rw test-peer-aliveness! | ||||
| | +--rw max-wait? uint16 | ||||
| | +--rw max-attempts? uint8 | ||||
| +--rw netconf-server-parameters | ||||
| +--rw client-identity-mappings | ||||
| {tls-listen or tls-call-home or sshcm\ | ||||
\n:ssh-x509-certs}? | ||||
| +--rw cert-to-name* [id] | ||||
| +--rw id uint32 | ||||
| +--rw fingerprint? | ||||
| | x509c2n:tls-fingerprint | ||||
| +--rw map-type identityref | ||||
| +--rw name string | ||||
+--rw call-home! {ssh-call-home or tls-call-home}? | ||||
+--rw netconf-client* [name] | ||||
+--rw name string | ||||
+--rw endpoints | ||||
| +--rw endpoint* [name] | ||||
| +--rw name string | ||||
| +--rw (transport) | ||||
| +--:(ssh) {ssh-call-home}? | ||||
| | +--rw ssh | ||||
| | +--rw tcp-client-parameters | ||||
| | | +--rw remote-address inet:host | ||||
| | | +--rw remote-port? inet:port-number | ||||
| | | +--rw local-address? inet:ip-address | ||||
| | | | {local-binding-supported}? | ||||
| | | +--rw local-port? inet:port-number | ||||
| | | | {local-binding-supported}? | ||||
| | | +--rw keepalives! | ||||
| | | {keepalives-supported}? | ||||
| | | +--rw idle-time uint16 | ||||
| | | +--rw max-probes uint16 | ||||
| | | +--rw probe-interval uint16 | ||||
| | +--rw ssh-server-parameters | ||||
| | | +--rw server-identity | ||||
| | | | +--rw host-key* [name] | ||||
| | | | +--rw name string | ||||
| | | | +--rw (host-key-type) | ||||
| | | | +--:(public-key) | ||||
| | | | | +--rw public-key | ||||
| | | | | +--rw (local-or-keystore) | ||||
| | | | | +--:(local) | ||||
| | | | | | {local-defin\ | ||||
\itions-supported}? | ||||
| | | | | | +--rw local-defini\ | ||||
\tion | ||||
| | | | | | +--rw public-ke\ | ||||
\y-format | ||||
| | | | | | | identit\ | ||||
\yref | ||||
| | | | | | +--rw public-key | ||||
| | | | | | | binary | ||||
| | | | | | +--rw private-k\ | ||||
\ey-format? | ||||
| | | | | | | identit\ | ||||
\yref | ||||
| | | | | | +--rw (private-\ | ||||
\key-type) | ||||
| | | | | | +--:(private\ | ||||
\-key) | ||||
| | | | | | | +--rw pri\ | ||||
\vate-key? | ||||
| | | | | | | b\ | ||||
\inary | ||||
| | | | | | +--:(hidden-\ | ||||
\private-key) | ||||
| | | | | | | +--rw hid\ | ||||
\den-private-key? | ||||
| | | | | | | e\ | ||||
\mpty | ||||
| | | | | | +--:(encrypt\ | ||||
\ed-private-key) | ||||
| | | | | | +--rw enc\ | ||||
\rypted-private-key | ||||
| | | | | | +--rw \ | ||||
\(key-type) | ||||
| | | | | | | +--\ | ||||
\:(symmetric-key-ref) | ||||
| | | | | | | | \ | ||||
\+--rw symmetric-key-ref? leafref | ||||
| | | | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | | | +--\ | ||||
\:(asymmetric-key-ref) | ||||
| | | | | | | \ | ||||
\+--rw asymmetric-key-ref? leafref | ||||
| | | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | | +--rw \ | ||||
\value? | ||||
| | | | | | \ | ||||
\ binary | ||||
| | | | | +--:(keystore) | ||||
| | | | | {keystore-su\ | ||||
\pported}? | ||||
| | | | | +--rw keystore-ref\ | ||||
\erence? | ||||
| | | | | ks:asymmet\ | ||||
\ric-key-ref | ||||
| | | | +--:(certificate) | ||||
| | | | +--rw certificate | ||||
| | | | {sshcmn:ssh-x509-ce\ | ||||
\rts}? | ||||
| | | | +--rw (local-or-keystore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-defin\ | ||||
\itions-supported}? | ||||
| | | | | +--rw local-defini\ | ||||
\tion | ||||
| | | | | +--rw public-ke\ | ||||
\y-format | ||||
| | | | | | identit\ | ||||
\yref | ||||
| | | | | +--rw public-key | ||||
| | | | | | binary | ||||
| | | | | +--rw private-k\ | ||||
\ey-format? | ||||
| | | | | | identit\ | ||||
\yref | ||||
| | | | | +--rw (private-\ | ||||
\key-type) | ||||
| | | | | | +--:(private\ | ||||
\-key) | ||||
| | | | | | | +--rw pri\ | ||||
\vate-key? | ||||
| | | | | | | b\ | ||||
\inary | ||||
| | | | | | +--:(hidden-\ | ||||
\private-key) | ||||
| | | | | | | +--rw hid\ | ||||
\den-private-key? | ||||
| | | | | | | e\ | ||||
\mpty | ||||
| | | | | | +--:(encrypt\ | ||||
\ed-private-key) | ||||
| | | | | | +--rw enc\ | ||||
\rypted-private-key | ||||
| | | | | | +--rw \ | ||||
\(key-type) | ||||
| | | | | | | +--\ | ||||
\:(symmetric-key-ref) | ||||
| | | | | | | | \ | ||||
\+--rw symmetric-key-ref? leafref | ||||
| | | | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | | | +--\ | ||||
\:(asymmetric-key-ref) | ||||
| | | | | | | \ | ||||
\+--rw asymmetric-key-ref? leafref | ||||
| | | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | | +--rw \ | ||||
\value? | ||||
| | | | | | \ | ||||
\ binary | ||||
| | | | | +--rw cert? | ||||
| | | | | | end-ent\ | ||||
\ity-cert-cms | ||||
| | | | | +---n certifica\ | ||||
\te-expiration | ||||
| | | | | | +-- expirati\ | ||||
\on-date | ||||
| | | | | | yang\ | ||||
\:date-and-time | ||||
| | | | | +---x generate-\ | ||||
\certificate-signing-request | ||||
| | | | | {certif\ | ||||
\icate-signing-request-generation}? | ||||
| | | | | +---w input | ||||
| | | | | | +---w sub\ | ||||
\ject | ||||
| | | | | | | b\ | ||||
\inary | ||||
| | | | | | +---w att\ | ||||
\ributes? | ||||
| | | | | | b\ | ||||
\inary | ||||
| | | | | +--ro output | ||||
| | | | | +--ro cer\ | ||||
\tificate-signing-request | ||||
| | | | | c\ | ||||
\t:csr | ||||
| | | | +--:(keystore) | ||||
| | | | {keystore-su\ | ||||
\pported}? | ||||
| | | | +--rw keystore-ref\ | ||||
\erence | ||||
| | | | +--rw asymmetri\ | ||||
\c-key? | ||||
| | | | | ks:asym\ | ||||
\metric-key-ref | ||||
| | | | +--rw certifica\ | ||||
\te? leafref | ||||
| | | +--rw client-authentication | ||||
| | | | +--rw supported-authentication-metho\ | ||||
\ds | ||||
| | | | | +--rw publickey? empty | ||||
| | | | | +--rw password? empty | ||||
| | | | | | {client-auth-password}? | ||||
| | | | | +--rw hostbased? empty | ||||
| | | | | | {client-auth-hostbased}? | ||||
| | | | | +--rw none? empty | ||||
| | | | | {client-auth-none}? | ||||
| | | | +--rw users | ||||
| | | | | {client-auth-config-supporte\ | ||||
\d}? | ||||
| | | | | +--rw user* [name] | ||||
| | | | | +--rw name string | ||||
| | | | | +--rw public-keys! | ||||
| | | | | | {client-auth-publickey\ | ||||
\}? | ||||
| | | | | | +--rw (local-or-truststore) | ||||
| | | | | | +--:(local) | ||||
| | | | | | | {local-definiti\ | ||||
\ons-supported}? | ||||
| | | | | | | +--rw local-definition | ||||
| | | | | | | +--rw public-key* | ||||
| | | | | | | [name] | ||||
| | | | | | | +--rw name | ||||
| | | | | | | | string | ||||
| | | | | | | +--rw public-ke\ | ||||
\y-format | ||||
| | | | | | | | identit\ | ||||
\yref | ||||
| | | | | | | +--rw public-key | ||||
| | | | | | | binary | ||||
| | | | | | +--:(truststore) | ||||
| | | | | | {truststore-sup\ | ||||
\ported,public-keys}? | ||||
| | | | | | +--rw truststore-refe\ | ||||
\rence? | ||||
| | | | | | ts:public-key\ | ||||
\-bag-ref | ||||
| | | | | +--rw password? | ||||
| | | | | | ianach:crypt-hash | ||||
| | | | | | {client-auth-password}? | ||||
| | | | | +--rw hostbased! | ||||
| | | | | | {client-auth-hostbased\ | ||||
\}? | ||||
| | | | | | +--rw (local-or-truststore) | ||||
| | | | | | +--:(local) | ||||
| | | | | | | {local-definiti\ | ||||
\ons-supported}? | ||||
| | | | | | | +--rw local-definition | ||||
| | | | | | | +--rw public-key* | ||||
| | | | | | | [name] | ||||
| | | | | | | +--rw name | ||||
| | | | | | | | string | ||||
| | | | | | | +--rw public-ke\ | ||||
\y-format | ||||
| | | | | | | | identit\ | ||||
\yref | ||||
| | | | | | | +--rw public-key | ||||
| | | | | | | binary | ||||
| | | | | | +--:(truststore) | ||||
| | | | | | {truststore-sup\ | ||||
\ported,public-keys}? | ||||
| | | | | | +--rw truststore-refe\ | ||||
\rence? | ||||
| | | | | | ts:public-key\ | ||||
\-bag-ref | ||||
| | | | | +--rw none? empty | ||||
| | | | | {client-auth-none}? | ||||
| | | | +--rw ca-certs! | ||||
| | | | | {client-auth-config-supporte\ | ||||
\d,sshcmn:ssh-x509-certs}? | ||||
| | | | | +--rw (local-or-truststore) | ||||
| | | | | +--:(local) | ||||
| | | | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | | | +--rw local-definition | ||||
| | | | | | +--rw cert* | ||||
| | | | | | | trust-anchor-cer\ | ||||
\t-cms | ||||
| | | | | | +---n certificate-expira\ | ||||
\tion | ||||
| | | | | | +-- expiration-date | ||||
| | | | | | yang:date-and\ | ||||
\-time | ||||
| | | | | +--:(truststore) | ||||
| | | | | {truststore-supported\ | ||||
\,certificates}? | ||||
| | | | | +--rw truststore-reference? | ||||
| | | | | ts:certificate-bag-\ | ||||
\ref | ||||
| | | | +--rw ee-certs! | ||||
| | | | {client-auth-config-supporte\ | ||||
\d,sshcmn:ssh-x509-certs}? | ||||
| | | | +--rw (local-or-truststore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | | +--rw local-definition | ||||
| | | | | +--rw cert* | ||||
| | | | | | trust-anchor-cer\ | ||||
\t-cms | ||||
| | | | | +---n certificate-expira\ | ||||
\tion | ||||
| | | | | +-- expiration-date | ||||
| | | | | yang:date-and\ | ||||
\-time | ||||
| | | | +--:(truststore) | ||||
| | | | {truststore-supported\ | ||||
\,certificates}? | ||||
| | | | +--rw truststore-reference? | ||||
| | | | ts:certificate-bag-\ | ||||
\ref | ||||
| | | +--rw transport-params | ||||
| | | | {ssh-server-transport-params-co\ | ||||
\nfig}? | ||||
| | | | +--rw host-key | ||||
| | | | | +--rw host-key-alg* identityref | ||||
| | | | +--rw key-exchange | ||||
| | | | | +--rw key-exchange-alg* | ||||
| | | | | identityref | ||||
| | | | +--rw encryption | ||||
| | | | | +--rw encryption-alg* | ||||
| | | | | identityref | ||||
| | | | +--rw mac | ||||
| | | | +--rw mac-alg* identityref | ||||
| | | +--rw keepalives! | ||||
| | | {ssh-server-keepalives}? | ||||
| | | +--rw max-wait? uint16 | ||||
| | | +--rw max-attempts? uint8 | ||||
| | +--rw netconf-server-parameters | ||||
| | +--rw client-identity-mappings | ||||
| | {tls-listen or tls-call-home or\ | ||||
\ sshcmn:ssh-x509-certs}? | ||||
| | +--rw cert-to-name* [id] | ||||
| | +--rw id uint32 | ||||
| | +--rw fingerprint? | ||||
| | | x509c2n:tls-fingerprint | ||||
| | +--rw map-type identityref | ||||
| | +--rw name string | ||||
| +--:(tls) {tls-call-home}? | ||||
| +--rw tls | ||||
| +--rw tcp-client-parameters | ||||
| | +--rw remote-address inet:host | ||||
| | +--rw remote-port? inet:port-number | ||||
| | +--rw local-address? inet:ip-address | ||||
| | | {local-binding-supported}? | ||||
| | +--rw local-port? inet:port-number | ||||
| | | {local-binding-supported}? | ||||
| | +--rw keepalives! | ||||
| | {keepalives-supported}? | ||||
| | +--rw idle-time uint16 | ||||
| | +--rw max-probes uint16 | ||||
| | +--rw probe-interval uint16 | ||||
| +--rw tls-server-parameters | ||||
| | +--rw server-identity | ||||
| | | +--rw (auth-type) | ||||
| | | +--:(certificate) | ||||
| | | | {x509-certificate-auth}? | ||||
| | | | +--rw certificate | ||||
| | | | +--rw (local-or-keystore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-definiti\ | ||||
\ons-supported}? | ||||
| | | | | +--rw local-definition | ||||
| | | | | +--rw public-key-f\ | ||||
\ormat | ||||
| | | | | | identityref | ||||
| | | | | +--rw public-key | ||||
| | | | | | binary | ||||
| | | | | +--rw private-key-\ | ||||
\format? | ||||
| | | | | | identityref | ||||
| | | | | +--rw (private-key\ | ||||
\-type) | ||||
| | | | | | +--:(private-ke\ | ||||
\y) | ||||
| | | | | | | +--rw privat\ | ||||
\e-key? | ||||
| | | | | | | bina\ | ||||
\ry | ||||
| | | | | | +--:(hidden-pri\ | ||||
\vate-key) | ||||
| | | | | | | +--rw hidden\ | ||||
\-private-key? | ||||
| | | | | | | empty | ||||
| | | | | | +--:(encrypted-\ | ||||
\private-key) | ||||
| | | | | | +--rw encryp\ | ||||
\ted-private-key | ||||
| | | | | | +--rw (ke\ | ||||
\y-type) | ||||
| | | | | | | +--:(s\ | ||||
\ymmetric-key-ref) | ||||
| | | | | | | | +--\ | ||||
\rw symmetric-key-ref? leafref | ||||
| | | | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | | | +--:(a\ | ||||
\symmetric-key-ref) | ||||
| | | | | | | +--\ | ||||
\rw asymmetric-key-ref? leafref | ||||
| | | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | | +--rw val\ | ||||
\ue? | ||||
| | | | | | b\ | ||||
\inary | ||||
| | | | | +--rw cert? | ||||
| | | | | | end-entity\ | ||||
\-cert-cms | ||||
| | | | | +---n certificate-\ | ||||
\expiration | ||||
| | | | | | +-- expiration-\ | ||||
\date | ||||
| | | | | | yang:da\ | ||||
\te-and-time | ||||
| | | | | +---x generate-cer\ | ||||
\tificate-signing-request | ||||
| | | | | {certifica\ | ||||
\te-signing-request-generation}? | ||||
| | | | | +---w input | ||||
| | | | | | +---w subject | ||||
| | | | | | | bina\ | ||||
\ry | ||||
| | | | | | +---w attrib\ | ||||
\utes? | ||||
| | | | | | bina\ | ||||
\ry | ||||
| | | | | +--ro output | ||||
| | | | | +--ro certif\ | ||||
\icate-signing-request | ||||
| | | | | ct:c\ | ||||
\sr | ||||
| | | | +--:(keystore) | ||||
| | | | {keystore-suppo\ | ||||
\rted}? | ||||
| | | | +--rw keystore-refere\ | ||||
\nce | ||||
| | | | +--rw asymmetric-k\ | ||||
\ey? | ||||
| | | | | ks:asymmet\ | ||||
\ric-key-ref | ||||
| | | | +--rw certificate?\ | ||||
\ leafref | ||||
| | | +--:(raw-private-key) | ||||
| | | | {raw-public-key-auth}? | ||||
| | | | +--rw raw-private-key | ||||
| | | | +--rw (local-or-keystore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-definiti\ | ||||
\ons-supported}? | ||||
| | | | | +--rw local-definition | ||||
| | | | | +--rw public-key-f\ | ||||
\ormat | ||||
| | | | | | identityref | ||||
| | | | | +--rw public-key | ||||
| | | | | | binary | ||||
| | | | | +--rw private-key-\ | ||||
\format? | ||||
| | | | | | identityref | ||||
| | | | | +--rw (private-key\ | ||||
\-type) | ||||
| | | | | +--:(private-ke\ | ||||
\y) | ||||
| | | | | | +--rw privat\ | ||||
\e-key? | ||||
| | | | | | bina\ | ||||
\ry | ||||
| | | | | +--:(hidden-pri\ | ||||
\vate-key) | ||||
| | | | | | +--rw hidden\ | ||||
\-private-key? | ||||
| | | | | | empty | ||||
| | | | | +--:(encrypted-\ | ||||
\private-key) | ||||
| | | | | +--rw encryp\ | ||||
\ted-private-key | ||||
| | | | | +--rw (ke\ | ||||
\y-type) | ||||
| | | | | | +--:(s\ | ||||
\ymmetric-key-ref) | ||||
| | | | | | | +--\ | ||||
\rw symmetric-key-ref? leafref | ||||
| | | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | | +--:(a\ | ||||
\symmetric-key-ref) | ||||
| | | | | | +--\ | ||||
\rw asymmetric-key-ref? leafref | ||||
| | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | +--rw val\ | ||||
\ue? | ||||
| | | | | b\ | ||||
\inary | ||||
| | | | +--:(keystore) | ||||
| | | | {keystore-suppo\ | ||||
\rted}? | ||||
| | | | +--rw keystore-refere\ | ||||
\nce? | ||||
| | | | ks:asymmetric\ | ||||
\-key-ref | ||||
| | | +--:(psk) {psk-auth}? | ||||
| | | +--rw psk | ||||
| | | +--rw (local-or-keystore) | ||||
| | | +--:(local) | ||||
| | | | {local-definiti\ | ||||
\ons-supported}? | ||||
| | | | +--rw local-definition | ||||
| | | | +--rw key-format? | ||||
| | | | | identityref | ||||
| | | | +--rw (key-type) | ||||
| | | | | +--:(key) | ||||
| | | | | | +--rw key? | ||||
| | | | | | bina\ | ||||
\ry | ||||
| | | | | +--:(hidden-key) | ||||
| | | | | | +--rw hidden\ | ||||
\-key? | ||||
| | | | | | empty | ||||
| | | | | +--:(encrypted-\ | ||||
\key) | ||||
| | | | | +--rw encryp\ | ||||
\ted-key | ||||
| | | | | +--rw (ke\ | ||||
\y-type) | ||||
| | | | | | +--:(s\ | ||||
\ymmetric-key-ref) | ||||
| | | | | | | +--\ | ||||
\rw symmetric-key-ref? leafref | ||||
| | | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | | +--:(a\ | ||||
\symmetric-key-ref) | ||||
| | | | | | +--\ | ||||
\rw asymmetric-key-ref? leafref | ||||
| | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | +--rw val\ | ||||
\ue? | ||||
| | | | | b\ | ||||
\inary | Appendix A. Change Log | |||
| | | | +--rw id? | ||||
| | | | string | ||||
| | | | {ks:local-\ | ||||
\definitions-supported}? | ||||
| | | +--:(keystore) | ||||
| | | {keystore-suppo\ | ||||
\rted}? | ||||
| | | +--rw keystore-refere\ | ||||
\nce? | ||||
| | | ks:symmetric-\ | ||||
\key-ref | ||||
| | +--rw client-authentication! | ||||
| | | {client-auth-config-supported}? | ||||
| | | +--rw ca-certs! | ||||
| | | | {x509-certificate-auth}? | ||||
| | | | +--rw (local-or-truststore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | | +--rw local-definition | ||||
| | | | | +--rw cert* | ||||
| | | | | | trust-anchor-cer\ | ||||
\t-cms | ||||
| | | | | +---n certificate-expira\ | ||||
\tion | ||||
| | | | | +-- expiration-date | ||||
| | | | | yang:date-and\ | ||||
\-time | ||||
| | | | +--:(truststore) | ||||
| | | | {truststore-supported\ | ||||
\,certificates}? | ||||
| | | | +--rw truststore-reference? | ||||
| | | | ts:certificate-bag-\ | ||||
\ref | ||||
| | | +--rw ee-certs! | ||||
| | | | {x509-certificate-auth}? | ||||
| | | | +--rw (local-or-truststore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | | +--rw local-definition | ||||
| | | | | +--rw cert* | ||||
| | | | | | trust-anchor-cer\ | ||||
\t-cms | ||||
| | | | | +---n certificate-expira\ | ||||
\tion | ||||
| | | | | +-- expiration-date | ||||
| | | | | yang:date-and\ | ||||
\-time | ||||
| | | | +--:(truststore) | ||||
| | | | {truststore-supported\ | ||||
\,certificates}? | ||||
| | | | +--rw truststore-reference? | ||||
| | | | ts:certificate-bag-\ | ||||
\ref | ||||
| | | +--rw raw-public-keys! | ||||
| | | | {raw-public-key-auth}? | ||||
| | | | +--rw (local-or-truststore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | | +--rw local-definition | ||||
| | | | | +--rw public-key* [name] | ||||
| | | | | +--rw name | ||||
| | | | | | string | ||||
| | | | | +--rw public-key-form\ | ||||
\at | ||||
| | | | | | identityref | ||||
| | | | | +--rw public-key | ||||
| | | | | binary | ||||
| | | | +--:(truststore) | ||||
| | | | {truststore-supported\ | ||||
\,public-keys}? | ||||
| | | | +--rw truststore-reference? | ||||
| | | | ts:public-key-bag-r\ | ||||
\ef | ||||
| | | +--rw psks! {psk-auth}? | ||||
| | +--rw hello-params | ||||
| | | {tls-server-hello-params-config\ | ||||
\}? | ||||
| | | +--rw tls-versions | ||||
| | | | +--rw tls-version* identityref | ||||
| | | +--rw cipher-suites | ||||
| | | +--rw cipher-suite* identityref | ||||
| | +--rw keepalives | ||||
| | {tls-server-keepalives}? | ||||
| | +--rw peer-allowed-to-send? empty | ||||
| | +--rw test-peer-aliveness! | ||||
| | +--rw max-wait? uint16 | ||||
| | +--rw max-attempts? uint8 | ||||
| +--rw netconf-server-parameters | ||||
| +--rw client-identity-mappings | ||||
| {tls-listen or tls-call-home or\ | ||||
\ sshcmn:ssh-x509-certs}? | ||||
| +--rw cert-to-name* [id] | ||||
| +--rw id uint32 | ||||
| +--rw fingerprint? | ||||
| | x509c2n:tls-fingerprint | ||||
| +--rw map-type identityref | ||||
| +--rw name string | ||||
+--rw connection-type | ||||
| +--rw (connection-type) | ||||
| +--:(persistent-connection) | ||||
| | +--rw persistent! | ||||
| +--:(periodic-connection) | ||||
| +--rw periodic! | ||||
| +--rw period? uint16 | ||||
| +--rw anchor-time? yang:date-and-time | ||||
| +--rw idle-timeout? uint16 | ||||
+--rw reconnect-strategy | ||||
+--rw start-with? enumeration | ||||
+--rw max-attempts? uint8 | ||||
Appendix B. Change Log | This section is to be removed before publishing as an RFC. | |||
B.1. 00 to 01 | A.1. 00 to 01 | |||
o Renamed "keychain" to "keystore". | * Renamed "keychain" to "keystore". | |||
B.2. 01 to 02 | A.2. 01 to 02 | |||
o Added to ietf-netconf-client ability to connected to a cluster of | * Added to ietf-netconf-client ability to connected to a cluster of | |||
endpoints, including a reconnection-strategy. | endpoints, including a reconnection-strategy. | |||
o Added to ietf-netconf-client the ability to configure connection- | * Added to ietf-netconf-client the ability to configure connection- | |||
type and also keep-alive strategy. | type and also keep-alive strategy. | |||
o Updated both modules to accommodate new groupings in the ssh/tls | * Updated both modules to accommodate new groupings in the ssh/tls | |||
drafts. | drafts. | |||
B.3. 02 to 03 | A.3. 02 to 03 | |||
o Refined use of tls-client-grouping to add a must statement | * Refined use of tls-client-grouping to add a must statement | |||
indicating that the TLS client must specify a client-certificate. | indicating that the TLS client must specify a client-certificate. | |||
o Changed 'netconf-client' to be a grouping (not a container). | * Changed 'netconf-client' to be a grouping (not a container). | |||
B.4. 03 to 04 | A.4. 03 to 04 | |||
o Added RFC 8174 to Requirements Language Section. | * Added RFC 8174 to Requirements Language Section. | |||
o Replaced refine statement in ietf-netconf-client to add a | * Replaced refine statement in ietf-netconf-client to add a | |||
mandatory true. | mandatory true. | |||
o Added refine statement in ietf-netconf-server to add a must | * Added refine statement in ietf-netconf-server to add a must | |||
statement. | statement. | |||
o Now there are containers and groupings, for both the client and | * Now there are containers and groupings, for both the client and | |||
server models. | server models. | |||
B.5. 04 to 05 | A.5. 04 to 05 | |||
o Now tree diagrams reference ietf-netmod-yang-tree-diagrams | * Now tree diagrams reference ietf-netmod-yang-tree-diagrams | |||
o Updated examples to inline key and certificates (no longer a | * Updated examples to inline key and certificates (no longer a | |||
leafref to keystore) | leafref to keystore) | |||
B.6. 05 to 06 | A.6. 05 to 06 | |||
o Fixed change log missing section issue. | * Fixed change log missing section issue. | |||
o Updated examples to match latest updates to the crypto-types, | * Updated examples to match latest updates to the crypto-types, | |||
trust-anchors, and keystore drafts. | trust-anchors, and keystore drafts. | |||
o Reduced line length of the YANG modules to fit within 69 columns. | * Reduced line length of the YANG modules to fit within 69 columns. | |||
B.7. 06 to 07 | A.7. 06 to 07 | |||
o Removed "idle-timeout" from "persistent" connection config. | * Removed "idle-timeout" from "persistent" connection config. | |||
o Added "random-selection" for reconnection-strategy's "starts-with" | * Added "random-selection" for reconnection-strategy's "starts-with" | |||
enum. | enum. | |||
o Replaced "connection-type" choice default (persistent) with | * Replaced "connection-type" choice default (persistent) with | |||
"mandatory true". | "mandatory true". | |||
o Reduced the periodic-connection's "idle-timeout" from 5 to 2 | * Reduced the periodic-connection's "idle-timeout" from 5 to 2 | |||
minutes. | minutes. | |||
o Replaced reconnect-timeout with period/anchor-time combo. | * Replaced reconnect-timeout with period/anchor-time combo. | |||
B.8. 07 to 08 | A.8. 07 to 08 | |||
o Modified examples to be compatible with new crypto-types algs | * Modified examples to be compatible with new crypto-types algs | |||
B.9. 08 to 09 | A.9. 08 to 09 | |||
o Corrected use of "mandatory true" for "address" leafs. | * Corrected use of "mandatory true" for "address" leafs. | |||
o Updated examples to reflect update to groupings defined in the | * Updated examples to reflect update to groupings defined in the | |||
keystore draft. | keystore draft. | |||
o Updated to use groupings defined in new TCP and HTTP drafts. | * Updated to use groupings defined in new TCP and HTTP drafts. | |||
o Updated copyright date, boilerplate template, affiliation, and | * Updated copyright date, boilerplate template, affiliation, and | |||
folding algorithm. | folding algorithm. | |||
B.10. 09 to 10 | A.10. 09 to 10 | |||
o Reformatted YANG modules. | * Reformatted YANG modules. | |||
B.11. 10 to 11 | A.11. 10 to 11 | |||
o Adjusted for the top-level "demux container" added to groupings | * Adjusted for the top-level "demux container" added to groupings | |||
imported from other modules. | imported from other modules. | |||
o Added "must" expressions to ensure that keepalives are not | * Added "must" expressions to ensure that keepalives are not | |||
configured for "periodic" connections. | configured for "periodic" connections. | |||
o Updated the boilerplate text in module-level "description" | * Updated the boilerplate text in module-level "description" | |||
statement to match copyeditor convention. | statement to match copyeditor convention. | |||
o Moved "expanded" tree diagrams to the Appendix. | * Moved "expanded" tree diagrams to the Appendix. | |||
B.12. 11 to 12 | A.12. 11 to 12 | |||
o Removed the "Design Considerations" section. | * Removed the "Design Considerations" section. | |||
o Removed the 'must' statement limiting keepalives in periodic | * Removed the 'must' statement limiting keepalives in periodic | |||
connections. | connections. | |||
o Updated models and examples to reflect removal of the "demux" | * Updated models and examples to reflect removal of the "demux" | |||
containers in the imported models. | containers in the imported models. | |||
o Updated the "periodic-connnection" description statements to be | * Updated the "periodic-connnection" description statements to be | |||
more like the RESTCONF draft, especially where it described | more like the RESTCONF draft, especially where it described | |||
dropping the underlying TCP connection. | dropping the underlying TCP connection. | |||
o Updated text to better reference where certain examples come from | * Updated text to better reference where certain examples come from | |||
(e.g., which Section in which draft). | (e.g., which Section in which draft). | |||
o In the server model, commented out the "must 'pinned-ca-certs or | * In the server model, commented out the "must 'pinned-ca-certs or | |||
pinned-client-certs'" statement to reflect change made in the TLS | pinned-client-certs'" statement to reflect change made in the TLS | |||
draft whereby the trust anchors MAY be defined externally. | draft whereby the trust anchors MAY be defined externally. | |||
o Replaced the 'listen', 'initiate', and 'call-home' features with | * Replaced the 'listen', 'initiate', and 'call-home' features with | |||
boolean expressions. | boolean expressions. | |||
B.13. 12 to 13 | A.13. 12 to 13 | |||
o Updated to reflect changes in trust-anchors drafts (e.g., s/trust- | * Updated to reflect changes in trust-anchors drafts (e.g., s/trust- | |||
anchors/truststore/g + s/pinned.//) | anchors/truststore/g + s/pinned.//) | |||
B.14. 13 to 14 | A.14. 13 to 14 | |||
o Adjusting from change in TLS client model (removing the top-level | * Adjusting from change in TLS client model (removing the top-level | |||
'certificate' container), by swapping refining-in a 'mandatory | 'certificate' container), by swapping refining-in a 'mandatory | |||
true' statement with a 'must' statement outside the 'uses' | true' statement with a 'must' statement outside the 'uses' | |||
statement. | statement. | |||
o Updated examples to reflect ietf-crypto-types change (e.g., | * Updated examples to reflect ietf-crypto-types change (e.g., | |||
identities --> enumerations) | identities --> enumerations) | |||
B.15. 14 to 15 | A.15. 14 to 15 | |||
o Refactored both the client and server modules similar to how the | * Refactored both the client and server modules similar to how the | |||
ietf-restconf-server module was refactored in -13 of that draft, | ietf-restconf-server module was refactored in -13 of that draft, | |||
and the ietf-restconf-client grouping. | and the ietf-restconf-client grouping. | |||
B.16. 15 to 16 | A.16. 15 to 16 | |||
o Added refinement to make "cert-to-name/fingerprint" be mandatory | * Added refinement to make "cert-to-name/fingerprint" be mandatory | |||
false. | false. | |||
o Commented out refinement to "tls-server-grouping/client- | * Commented out refinement to "tls-server-grouping/client- | |||
authentication" until a better "must" expression is defined. | authentication" until a better "must" expression is defined. | |||
B.17. 16 to 17 | A.17. 16 to 17 | |||
* Updated examples to include the "*-key-format" nodes. | ||||
o Updated examples to include the "*-key-format" nodes. | ||||
o Updated examples to remove the "required" nodes. | * Updated examples to remove the "required" nodes. | |||
o Updated examples to remove the "client-auth-defined-elsewhere" | * Updated examples to remove the "client-auth-defined-elsewhere" | |||
nodes. | nodes. | |||
B.18. 17 to 18 | A.18. 17 to 18 | |||
o Updated examples to reflect new "bag" addition to truststore. | * Updated examples to reflect new "bag" addition to truststore. | |||
B.19. 18 to 19 | A.19. 18 to 19 | |||
o Updated examples to remove the 'algorithm' nodes. | * Updated examples to remove the 'algorithm' nodes. | |||
o Updated examples to reflect the new TLS keepalives structure. | * Updated examples to reflect the new TLS keepalives structure. | |||
o Added keepalives to the tcp-client-parameters section in the | * Added keepalives to the tcp-client-parameters section in the | |||
netconf-server SSH-based call-home example. | netconf-server SSH-based call-home example. | |||
o Added a TLS-based call-home example to the netconf-client example. | * Added a TLS-based call-home example to the netconf-client example. | |||
o Added a "Note to Reviewers" note to first page. | * Added a "Note to Reviewers" note to first page. | |||
A.20. 19 to 20 | ||||
* Expanded "Data Model Overview section(s) [remove "wall" of tree | ||||
diagrams]. | ||||
* Removed expanded tree diagrams that were listed in the Appendix. | ||||
* Updated the Security Considerations section. | ||||
Acknowledgements | Acknowledgements | |||
The authors would like to thank for following for lively discussions | The authors would like to thank for following for lively discussions | |||
on list and in the halls (ordered by last name): Andy Bierman, Martin | on list and in the halls (ordered by last name): Andy Bierman, Martin | |||
Bjorklund, Benoit Claise, Ramkumar Dhanapal, Mehmet Ersue, Balazs | Bjorklund, Benoit Claise, Ramkumar Dhanapal, Mehmet Ersue, Balazs | |||
Kovacs, David Lamparter, Ladislav Lhotka, Alan Luchuk, Radek Krejci, | Kovacs, David Lamparter, Ladislav Lhotka, Alan Luchuk, Radek Krejci, | |||
Tom Petch, Juergen Schoenwaelder, Phil Shafer, Sean Turner, and Bert | Tom Petch, Juergen Schoenwaelder, Phil Shafer, Sean Turner, and Bert | |||
Wijnen. | Wijnen. | |||
Author's Address | Author's Address | |||
Kent Watsen | Kent Watsen | |||
Watsen Networks | Watsen Networks | |||
EMail: kent+ietf@watsen.net | Email: kent+ietf@watsen.net | |||
End of changes. 168 change blocks. | ||||
2639 lines changed or deleted | 684 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |