| < draft-ietf-netconf-restconf-client-server-18.txt | draft-ietf-netconf-restconf-client-server-19.txt > | |||
|---|---|---|---|---|
| NETCONF Working Group K. Watsen | NETCONF Working Group K. Watsen | |||
| Internet-Draft Watsen Networks | Internet-Draft Watsen Networks | |||
| Intended status: Standards Track March 8, 2020 | Intended status: Standards Track May 20, 2020 | |||
| Expires: September 9, 2020 | Expires: November 21, 2020 | |||
| RESTCONF Client and Server Models | RESTCONF Client and Server Models | |||
| draft-ietf-netconf-restconf-client-server-18 | draft-ietf-netconf-restconf-client-server-19 | |||
| Abstract | Abstract | |||
| This document defines two YANG modules, one module to configure a | This document defines two YANG modules, one module to configure a | |||
| RESTCONF client and the other module to configure a RESTCONF server. | RESTCONF client and the other module to configure a RESTCONF server. | |||
| Both modules support the TLS transport protocol with both standard | Both modules support the TLS transport protocol with both standard | |||
| RESTCONF and RESTCONF Call Home connections. | RESTCONF and RESTCONF Call Home connections. | |||
| Editorial Note (To be removed by RFC Editor) | Editorial Note (To be removed by RFC Editor) | |||
| This draft contains many placeholder values that need to be replaced | This draft contains placeholder values that need to be replaced with | |||
| with finalized values at the time of publication. This note | finalized values at the time of publication. This note summarizes | |||
| summarizes all of the substitutions that are needed. No other RFC | all of the substitutions that are needed. No other RFC Editor | |||
| Editor instructions are specified elsewhere in this document. | instructions are specified elsewhere in this document. | |||
| This document contains references to other drafts in progress, both | ||||
| in the Normative References section, as well as in body text | ||||
| throughout. Please update the following references to reflect their | ||||
| final RFC assignments: | ||||
| o I-D.ietf-netconf-keystore | Artwork in this document contains shorthand references to drafts in | |||
| progress. Please apply the following replacements (note: not all may | ||||
| be present): | ||||
| o I-D.ietf-netconf-tcp-client-server | o "AAAA" --> the assigned RFC value for draft-ietf-netconf-crypto- | |||
| types | ||||
| o I-D.ietf-netconf-tls-client-server | o "BBBB" --> the assigned RFC value for draft-ietf-netconf-trust- | |||
| anchors | ||||
| o I-D.ietf-netconf-http-client-server | o "CCCC" --> the assigned RFC value for draft-ietf-netconf-keystore | |||
| Artwork in this document contains shorthand references to drafts in | o "DDDD" --> the assigned RFC value for draft-ietf-netconf-tcp- | |||
| progress. Please apply the following replacements: | client-server | |||
| o "XXXX" --> the assigned RFC value for this draft | o "EEEE" --> the assigned RFC value for draft-ietf-netconf-ssh- | |||
| client-server | ||||
| o "AAAA" --> the assigned RFC value for I-D.ietf-netconf-tcp-client- | o "FFFF" --> the assigned RFC value for draft-ietf-netconf-tls- | |||
| server | client-server | |||
| o "BBBB" --> the assigned RFC value for I-D.ietf-netconf-tls-client- | o "GGGG" --> the assigned RFC value for draft-ietf-netconf-http- | |||
| server | client-server | |||
| o "CCCC" --> the assigned RFC value for I-D.ietf-netconf-http- | o "HHHH" --> the assigned RFC value for draft-ietf-netconf-netconf- | |||
| client-server | client-server | |||
| o "IIII" --> 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-03-08" --> the publication date of this draft | o "2020-05-20" --> 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 | o Appendix B. 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 September 9, 2020. | This Internet-Draft will expire on November 21, 2020. | |||
| 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/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 | 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 2. The RESTCONF Client Model . . . . . . . . . . . . . . . . . . 4 | 2. The RESTCONF Client Model . . . . . . . . . . . . . . . . . . 5 | |||
| 2.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 4 | 2.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 2.2. Example Usage . . . . . . . . . . . . . . . . . . . . . . 6 | 2.2. Example Usage . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 2.3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 9 | 2.3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 3. The RESTCONF Server Model . . . . . . . . . . . . . . . . . . 19 | 3. The RESTCONF Server Model . . . . . . . . . . . . . . . . . . 21 | |||
| 3.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 19 | 3.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 21 | |||
| 3.2. Example Usage . . . . . . . . . . . . . . . . . . . . . . 21 | 3.2. Example Usage . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| 3.3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 25 | 3.3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 27 | |||
| 4. Security Considerations . . . . . . . . . . . . . . . . . . . 37 | 4. Security Considerations . . . . . . . . . . . . . . . . . . . 39 | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 38 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 40 | |||
| 5.1. The IETF XML Registry . . . . . . . . . . . . . . . . . . 38 | 5.1. The IETF XML Registry . . . . . . . . . . . . . . . . . . 40 | |||
| 5.2. The YANG Module Names Registry . . . . . . . . . . . . . 38 | 5.2. The YANG Module Names Registry . . . . . . . . . . . . . 40 | |||
| 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 39 | 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 41 | |||
| 6.1. Normative References . . . . . . . . . . . . . . . . . . 39 | 6.1. Normative References . . . . . . . . . . . . . . . . . . 41 | |||
| 6.2. Informative References . . . . . . . . . . . . . . . . . 40 | 6.2. Informative References . . . . . . . . . . . . . . . . . 42 | |||
| Appendix A. Expanded Tree Diagrams . . . . . . . . . . . . . . . 41 | 6.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 42 | |||
| A.1. Expanded Tree Diagram for 'ietf-restconf-client' . . . . 41 | Appendix A. Expanded Tree Diagrams . . . . . . . . . . . . . . . 44 | |||
| A.2. Expanded Tree Diagram for 'ietf-restconf-server' . . . . 67 | A.1. Expanded Tree Diagram for 'ietf-restconf-client' . . . . 44 | |||
| Appendix B. Change Log . . . . . . . . . . . . . . . . . . . . . 81 | A.2. Expanded Tree Diagram for 'ietf-restconf-server' . . . . 76 | |||
| B.1. 00 to 01 . . . . . . . . . . . . . . . . . . . . . . . . 81 | Appendix B. Change Log . . . . . . . . . . . . . . . . . . . . . 89 | |||
| B.2. 01 to 02 . . . . . . . . . . . . . . . . . . . . . . . . 81 | B.1. 00 to 01 . . . . . . . . . . . . . . . . . . . . . . . . 89 | |||
| B.3. 02 to 03 . . . . . . . . . . . . . . . . . . . . . . . . 81 | B.2. 01 to 02 . . . . . . . . . . . . . . . . . . . . . . . . 89 | |||
| B.4. 03 to 04 . . . . . . . . . . . . . . . . . . . . . . . . 81 | B.3. 02 to 03 . . . . . . . . . . . . . . . . . . . . . . . . 89 | |||
| B.5. 04 to 05 . . . . . . . . . . . . . . . . . . . . . . . . 82 | B.4. 03 to 04 . . . . . . . . . . . . . . . . . . . . . . . . 90 | |||
| B.6. 05 to 06 . . . . . . . . . . . . . . . . . . . . . . . . 82 | B.5. 04 to 05 . . . . . . . . . . . . . . . . . . . . . . . . 90 | |||
| B.7. 06 to 07 . . . . . . . . . . . . . . . . . . . . . . . . 82 | B.6. 05 to 06 . . . . . . . . . . . . . . . . . . . . . . . . 90 | |||
| B.8. 07 to 08 . . . . . . . . . . . . . . . . . . . . . . . . 82 | B.7. 06 to 07 . . . . . . . . . . . . . . . . . . . . . . . . 90 | |||
| B.9. 08 to 09 . . . . . . . . . . . . . . . . . . . . . . . . 82 | B.8. 07 to 08 . . . . . . . . . . . . . . . . . . . . . . . . 91 | |||
| B.10. 09 to 10 . . . . . . . . . . . . . . . . . . . . . . . . 83 | B.9. 08 to 09 . . . . . . . . . . . . . . . . . . . . . . . . 91 | |||
| B.11. 10 to 11 . . . . . . . . . . . . . . . . . . . . . . . . 83 | B.10. 09 to 10 . . . . . . . . . . . . . . . . . . . . . . . . 91 | |||
| B.12. 11 to 12 . . . . . . . . . . . . . . . . . . . . . . . . 83 | B.11. 10 to 11 . . . . . . . . . . . . . . . . . . . . . . . . 91 | |||
| B.13. 12 to 13 . . . . . . . . . . . . . . . . . . . . . . . . 83 | B.12. 11 to 12 . . . . . . . . . . . . . . . . . . . . . . . . 91 | |||
| B.14. 13 to 14 . . . . . . . . . . . . . . . . . . . . . . . . 84 | B.13. 12 to 13 . . . . . . . . . . . . . . . . . . . . . . . . 92 | |||
| B.15. 14 to 15 . . . . . . . . . . . . . . . . . . . . . . . . 84 | B.14. 13 to 14 . . . . . . . . . . . . . . . . . . . . . . . . 92 | |||
| B.16. 15 to 16 . . . . . . . . . . . . . . . . . . . . . . . . 84 | B.15. 14 to 15 . . . . . . . . . . . . . . . . . . . . . . . . 92 | |||
| B.17. 16 to 17 . . . . . . . . . . . . . . . . . . . . . . . . 84 | B.16. 15 to 16 . . . . . . . . . . . . . . . . . . . . . . . . 93 | |||
| B.18. 17 to 18 . . . . . . . . . . . . . . . . . . . . . . . . 85 | B.17. 16 to 17 . . . . . . . . . . . . . . . . . . . . . . . . 93 | |||
| Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 85 | B.18. 17 to 18 . . . . . . . . . . . . . . . . . . . . . . . . 93 | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 85 | B.19. 18 to 19 . . . . . . . . . . . . . . . . . . . . . . . . 93 | |||
| Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 93 | ||||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 93 | ||||
| 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 RESTCONF client and the other module to configure a | configure a RESTCONF client and the other module to configure a | |||
| RESTCONF server [RFC8040]. Both modules support the TLS [RFC8446] | RESTCONF server [RFC8040]. Both modules support the TLS [RFC8446] | |||
| transport protocol with both standard RESTCONF and RESTCONF Call Home | transport protocol with both standard RESTCONF and RESTCONF Call Home | |||
| connections [RFC8071]. | connections [RFC8071]. | |||
| 1.1. Terminology | 1.1. Terminology | |||
| skipping to change at page 5, line 13 ¶ | skipping to change at page 6, line 15 ¶ | |||
| +-- 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 | |||
| +-- http-client-parameters | +-- http-client-parameters | |||
| | +---u httpc:http-client-grouping | | +---u httpc:http-client-grouping | |||
| +-- restconf-client-parameters | +-- restconf-client-parameters | |||
| grouping restconf-client-listen-stack-grouping | grouping restconf-client-listen-stack-grouping | |||
| +-- (transport) | +-- (transport) | |||
| +--:(http) {http-listen}? | +--:(http) {http-listen}? | |||
| | +-- FIXME | | +-- http | |||
| | +-- tcp-server-parameters | ||||
| | | +---u tcps:tcp-server-grouping | ||||
| | +-- http-client-parameters | ||||
| | | +---u httpc:http-client-grouping | ||||
| | +-- restconf-client-parameters | ||||
| +--:(https) {https-listen}? | +--:(https) {https-listen}? | |||
| +-- https | +-- https | |||
| +-- 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 | |||
| +-- http-client-parameters | +-- http-client-parameters | |||
| | +---u httpc:http-client-grouping | | +---u httpc:http-client-grouping | |||
| +-- restconf-client-parameters | +-- restconf-client-parameters | |||
| grouping restconf-client-app-grouping | grouping restconf-client-app-grouping | |||
| skipping to change at page 6, line 40 ¶ | skipping to change at page 7, line 43 ¶ | |||
| <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> | <local-definition> | |||
| <algorithm>rsa2048</algorithm> | ||||
| <public-key-format>ct:subject-public-key-info-fo\ | <public-key-format>ct:subject-public-key-info-fo\ | |||
| rmat</public-key-format> | rmat</public-key-format> | |||
| <public-key>base64encodedvalue==</public-key> | <public-key>base64encodedvalue==</public-key> | |||
| <private-key-format>ct:rsa-private-key-format</p\ | <private-key-format>ct:rsa-private-key-format</p\ | |||
| rivate-key-format> | rivate-key-format> | |||
| <private-key>base64encodedvalue==</private-key> | <private-key>base64encodedvalue==</private-key> | |||
| <cert>base64encodedvalue==</cert> | <cert>base64encodedvalue==</cert> | |||
| </local-definition> | </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> | |||
| <server-certs> | <ee-certs> | |||
| <truststore-reference>trusted-server-ee-certs</tru\ | <truststore-reference>trusted-server-ee-certs</tru\ | |||
| ststore-reference> | ststore-reference> | |||
| </server-certs> | </ee-certs> | |||
| </server-authentication> | </server-authentication> | |||
| <keepalives> | <keepalives> | |||
| <max-wait>30</max-wait> | <test-peer-aliveness> | |||
| <max-attempts>3</max-attempts> | <max-wait>30</max-wait> | |||
| <max-attempts>3</max-attempts> | ||||
| </test-peer-aliveness> | ||||
| </keepalives> | </keepalives> | |||
| </tls-client-parameters> | </tls-client-parameters> | |||
| <http-client-parameters> | <http-client-parameters> | |||
| <client-identity> | <client-identity> | |||
| <basic> | <basic> | |||
| <user-id>bob</user-id> | <user-id>bob</user-id> | |||
| <password>secret</password> | <password>secret</password> | |||
| </basic> | </basic> | |||
| </client-identity> | </client-identity> | |||
| </http-client-parameters> | </http-client-parameters> | |||
| skipping to change at page 7, line 42 ¶ | skipping to change at page 8, line 48 ¶ | |||
| <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> | <local-definition> | |||
| <algorithm>rsa2048</algorithm> | ||||
| <public-key-format>ct:subject-public-key-info-fo\ | <public-key-format>ct:subject-public-key-info-fo\ | |||
| rmat</public-key-format> | rmat</public-key-format> | |||
| <public-key>base64encodedvalue==</public-key> | <public-key>base64encodedvalue==</public-key> | |||
| <private-key-format>ct:rsa-private-key-format</p\ | <private-key-format>ct:rsa-private-key-format</p\ | |||
| rivate-key-format> | rivate-key-format> | |||
| <private-key>base64encodedvalue==</private-key> | <private-key>base64encodedvalue==</private-key> | |||
| <cert>base64encodedvalue==</cert> | <cert>base64encodedvalue==</cert> | |||
| </local-definition> | </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> | |||
| <server-certs> | <ee-certs> | |||
| <truststore-reference>trusted-server-ee-certs</tru\ | <truststore-reference>trusted-server-ee-certs</tru\ | |||
| ststore-reference> | ststore-reference> | |||
| </server-certs> | </ee-certs> | |||
| </server-authentication> | </server-authentication> | |||
| <keepalives> | <keepalives> | |||
| <max-wait>30</max-wait> | <test-peer-aliveness> | |||
| <max-attempts>3</max-attempts> | <max-wait>30</max-wait> | |||
| <max-attempts>3</max-attempts> | ||||
| </test-peer-aliveness> | ||||
| </keepalives> | </keepalives> | |||
| </tls-client-parameters> | </tls-client-parameters> | |||
| <http-client-parameters> | <http-client-parameters> | |||
| <client-identity> | <client-identity> | |||
| <basic> | <basic> | |||
| <user-id>bob</user-id> | <user-id>bob</user-id> | |||
| <password>secret</password> | <password>secret</password> | |||
| </basic> | </basic> | |||
| </client-identity> | </client-identity> | |||
| </http-client-parameters> | </http-client-parameters> | |||
| skipping to change at page 8, line 50 ¶ | skipping to change at page 10, line 7 ¶ | |||
| <endpoint> | <endpoint> | |||
| <name>Intranet-facing listener</name> | <name>Intranet-facing listener</name> | |||
| <https> | <https> | |||
| <tcp-server-parameters> | <tcp-server-parameters> | |||
| <local-address>11.22.33.44</local-address> | <local-address>11.22.33.44</local-address> | |||
| </tcp-server-parameters> | </tcp-server-parameters> | |||
| <tls-client-parameters> | <tls-client-parameters> | |||
| <client-identity> | <client-identity> | |||
| <certificate> | <certificate> | |||
| <local-definition> | <local-definition> | |||
| <algorithm>rsa2048</algorithm> | ||||
| <public-key-format>ct:subject-public-key-info-format\ | <public-key-format>ct:subject-public-key-info-format\ | |||
| </public-key-format> | </public-key-format> | |||
| <public-key>base64encodedvalue==</public-key> | <public-key>base64encodedvalue==</public-key> | |||
| <private-key-format>ct:rsa-private-key-format</priva\ | <private-key-format>ct:rsa-private-key-format</priva\ | |||
| te-key-format> | te-key-format> | |||
| <private-key>base64encodedvalue==</private-key> | <private-key>base64encodedvalue==</private-key> | |||
| <cert>base64encodedvalue==</cert> | <cert>base64encodedvalue==</cert> | |||
| </local-definition> | </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> | |||
| <server-certs> | <ee-certs> | |||
| <truststore-reference>trusted-server-ee-certs</trustst\ | <truststore-reference>trusted-server-ee-certs</trustst\ | |||
| ore-reference> | ore-reference> | |||
| </server-certs> | </ee-certs> | |||
| </server-authentication> | </server-authentication> | |||
| <keepalives> | ||||
| <peer-allowed-to-send/> | ||||
| </keepalives> | ||||
| </tls-client-parameters> | </tls-client-parameters> | |||
| <http-client-parameters> | <http-client-parameters> | |||
| <client-identity> | <client-identity> | |||
| <basic> | <basic> | |||
| <user-id>bob</user-id> | <user-id>bob</user-id> | |||
| <password>secret</password> | <password>secret</password> | |||
| </basic> | </basic> | |||
| </client-identity> | </client-identity> | |||
| </http-client-parameters> | </http-client-parameters> | |||
| </https> | </https> | |||
| skipping to change at page 9, line 43 ¶ | skipping to change at page 10, line 51 ¶ | |||
| </listen> | </listen> | |||
| </restconf-client> | </restconf-client> | |||
| 2.3. YANG Module | 2.3. YANG Module | |||
| This YANG module has normative references to [RFC6991], [RFC8040], | This YANG module has normative references to [RFC6991], [RFC8040], | |||
| and [RFC8071], [I-D.kwatsen-netconf-tcp-client-server], | and [RFC8071], [I-D.kwatsen-netconf-tcp-client-server], | |||
| [I-D.ietf-netconf-tls-client-server], and | [I-D.ietf-netconf-tls-client-server], and | |||
| [I-D.kwatsen-netconf-http-client-server]. | [I-D.kwatsen-netconf-http-client-server]. | |||
| <CODE BEGINS> file "ietf-restconf-client@2020-03-08.yang" | <CODE BEGINS> file "ietf-restconf-client@2020-05-20.yang" | |||
| module ietf-restconf-client { | module ietf-restconf-client { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-restconf-client"; | namespace "urn:ietf:params:xml:ns:yang:ietf-restconf-client"; | |||
| prefix rcc; | prefix rcc; | |||
| 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"; | |||
| } | } | |||
| import ietf-tcp-client { | import ietf-tcp-client { | |||
| prefix tcpc; | prefix tcpc; | |||
| reference | reference | |||
| "RFC AAAA: 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 AAAA: YANG Groupings for TCP Clients and TCP Servers"; | "RFC DDDD: YANG Groupings for TCP Clients and TCP Servers"; | |||
| } | } | |||
| import ietf-tls-client { | import ietf-tls-client { | |||
| prefix tlsc; | prefix tlsc; | |||
| reference | reference | |||
| "RFC BBBB: YANG Groupings for TLS Clients and TLS Servers"; | "RFC FFFF: YANG Groupings for TLS Clients and TLS Servers"; | |||
| } | } | |||
| import ietf-http-client { | import ietf-http-client { | |||
| prefix httpc; | prefix httpc; | |||
| reference | reference | |||
| "RFC CCCC: YANG Groupings for HTTP Clients and HTTP Servers"; | "RFC GGGG: YANG Groupings for HTTP Clients and HTTP 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> | |||
| Author: Kent Watsen <mailto:kent+ietf@watsen.net> | Author: Kent Watsen <mailto:kent+ietf@watsen.net> | |||
| Author: Gary Wu <mailto:garywu@cisco.com>"; | Author: Gary Wu <mailto:garywu@cisco.com>"; | |||
| description | description | |||
| "This module contains a collection of YANG definitions | "This module contains a collection of YANG definitions | |||
| for configuring RESTCONF clients. | for configuring RESTCONF clients. | |||
| Copyright (c) 2019 IETF Trust and the persons identified | Copyright (c) 2020 IETF Trust and the persons identified | |||
| as authors of the code. All rights reserved. | as authors of the code. All rights reserved. | |||
| 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 XXXX | This version of this YANG module is part of RFC IIII | |||
| (https://www.rfc-editor.org/info/rfcXXXX); see the RFC | (https://www.rfc-editor.org/info/rfcIIII); 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-03-08 { | revision 2020-05-20 { | |||
| description | description | |||
| "Initial version"; | "Initial version"; | |||
| reference | reference | |||
| "RFC XXXX: RESTCONF Client and Server Models"; | "RFC IIII: RESTCONF Client and Server Models"; | |||
| } | } | |||
| // Features | // Features | |||
| feature https-initiate { | feature https-initiate { | |||
| description | description | |||
| "The 'https-initiate' feature indicates that the RESTCONF | "The 'https-initiate' feature indicates that the RESTCONF | |||
| client supports initiating HTTPS connections to RESTCONF | client supports initiating HTTPS connections to RESTCONF | |||
| servers. This feature exists as HTTPS might not be a | servers. This feature exists as HTTPS might not be a | |||
| mandatory to implement transport in the future."; | mandatory to implement transport in the future."; | |||
| skipping to change at page 13, line 35 ¶ | skipping to change at page 14, line 42 ¶ | |||
| uses rcc:restconf-client-grouping; | uses rcc:restconf-client-grouping; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } // restconf-client-initiate-stack-grouping | } // restconf-client-initiate-stack-grouping | |||
| grouping restconf-client-listen-stack-grouping { | grouping restconf-client-listen-stack-grouping { | |||
| description | description | |||
| "A reusable grouping for configuring a RESTCONF client | "A reusable grouping for configuring a RESTCONF client | |||
| 'listen' protocol stack for a single connection."; | 'listen' protocol stack for a single connection. The | |||
| 'listen' stack supports call home connections, as | ||||
| described in RFC 8071"; | ||||
| reference | ||||
| "RFC 8071: NETCONF Call Home and RESTCONF Call Home"; | ||||
| choice transport { | choice transport { | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Selects between available transports. This is a | "Selects between available transports. This is a | |||
| 'choice' statement so as to support additional | 'choice' statement so as to support additional | |||
| transport options to be augmented in."; | transport options to be augmented in."; | |||
| case http { | case http { | |||
| if-feature "http-listen"; | if-feature "http-listen"; | |||
| container FIXME { | container http { | |||
| description | description | |||
| "FIXME"; | "HTTP-specific listening configuration for inbound | |||
| connections. | ||||
| This transport option is made available to support | ||||
| deployments where the TLS connections are terminated | ||||
| by another system (e.g., a load balanacer) fronting | ||||
| the client."; | ||||
| container tcp-server-parameters { | ||||
| description | ||||
| "A wrapper around the TCP client parameters | ||||
| to avoid name collisions."; | ||||
| uses tcps:tcp-server-grouping { | ||||
| refine "local-port" { | ||||
| default "4336"; | ||||
| description | ||||
| "The RESTCONF client will listen on the IANA- | ||||
| assigned well-known port for 'restconf-ch-tls' | ||||
| (4336) if no value is specified."; | ||||
| } | ||||
| } | ||||
| } | ||||
| container http-client-parameters { | ||||
| description | ||||
| "A wrapper around the HTTP client parameters | ||||
| to avoid name collisions."; | ||||
| uses httpc:http-client-grouping; | ||||
| } | ||||
| container restconf-client-parameters { | ||||
| description | ||||
| "A wrapper around the RESTCONF client parameters | ||||
| to avoid name collisions."; | ||||
| uses rcc:restconf-client-grouping; | ||||
| } | ||||
| } | } | |||
| } | } | |||
| case https { | case https { | |||
| if-feature "https-listen"; | if-feature "https-listen"; | |||
| container https { | container https { | |||
| description | description | |||
| "HTTPS-specific listening configuration for inbound | "HTTPS-specific listening configuration for inbound | |||
| connections."; | connections."; | |||
| container tcp-server-parameters { | container tcp-server-parameters { | |||
| description | description | |||
| skipping to change at page 18, line 38 ¶ | skipping to change at page 20, line 33 ¶ | |||
| moving on to the next endpoint in the list | moving on to the next endpoint in the list | |||
| (round robin)."; | (round robin)."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } // initiate | } // initiate | |||
| container listen { | container listen { | |||
| if-feature "http-listen or https-listen"; | if-feature "http-listen or https-listen"; | |||
| presence "Enables client to accept call-home connections"; | presence "Enables client to accept call-home connections"; | |||
| description | description | |||
| "Configures client accepting call-home TCP connections."; | "Configures the client to accept call-home TCP connections."; | |||
| leaf idle-timeout { | leaf idle-timeout { | |||
| type uint16; | type uint16; | |||
| units "seconds"; | units "seconds"; | |||
| default 3600; // one hour | default 3600; // one hour | |||
| description | description | |||
| "Specifies the maximum number of seconds that an | "Specifies the maximum number of seconds that an | |||
| underlying TCP session may remain idle. A TCP session | underlying TCP session may remain idle. A TCP session | |||
| will be dropped if it is idle for an interval longer | will be dropped if it is idle for an interval longer | |||
| then this number of seconds. If set to zero, then | then this number of seconds. If set to zero, then | |||
| the server will never drop a session because it is | the server will never drop a session because it is | |||
| skipping to change at page 19, line 9 ¶ | skipping to change at page 21, line 4 ¶ | |||
| then this number of seconds. If set to zero, then | then this number of seconds. If set to zero, then | |||
| the server will never drop a session because it is | the server will never drop a session because it is | |||
| idle. Sessions that have a notification subscription | idle. Sessions that have a notification subscription | |||
| active are never dropped."; | active are never dropped."; | |||
| } | } | |||
| list endpoint { | list endpoint { | |||
| key "name"; | key "name"; | |||
| min-elements 1; | min-elements 1; | |||
| description | description | |||
| "List of endpoints to listen for RESTCONF connections."; | "List of endpoints to listen for RESTCONF connections."; | |||
| leaf name { | leaf name { | |||
| type string; | type string; | |||
| description | description | |||
| "An arbitrary name for the RESTCONF listen endpoint."; | "An arbitrary name for the RESTCONF listen endpoint."; | |||
| } | } | |||
| uses restconf-client-listen-stack-grouping; | uses restconf-client-listen-stack-grouping; | |||
| } | } | |||
| } | } | |||
| } // restconf-client-app-grouping | } // restconf-client-app-grouping | |||
| // Protocol accessible node, for servers that implement this | // Protocol accessible node, for servers that implement | |||
| // module. | // this module. | |||
| container restconf-client { | container restconf-client { | |||
| uses restconf-client-app-grouping; | uses restconf-client-app-grouping; | |||
| description | description | |||
| "Top-level container for RESTCONF client configuration."; | "Top-level container for RESTCONF client configuration."; | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 3. The RESTCONF Server Model | 3. The RESTCONF Server Model | |||
| skipping to change at page 22, line 4 ¶ | skipping to change at page 23, line 47 ¶ | |||
| <endpoint> | <endpoint> | |||
| <name>netconf/tls</name> | <name>netconf/tls</name> | |||
| <https> | <https> | |||
| <tcp-server-parameters> | <tcp-server-parameters> | |||
| <local-address>11.22.33.44</local-address> | <local-address>11.22.33.44</local-address> | |||
| </tcp-server-parameters> | </tcp-server-parameters> | |||
| <tls-server-parameters> | <tls-server-parameters> | |||
| <server-identity> | <server-identity> | |||
| <certificate> | <certificate> | |||
| <local-definition> | <local-definition> | |||
| <algorithm>rsa2048</algorithm> | ||||
| <public-key-format>ct:subject-public-key-info-format\ | <public-key-format>ct:subject-public-key-info-format\ | |||
| </public-key-format> | </public-key-format> | |||
| <public-key>base64encodedvalue==</public-key> | <public-key>base64encodedvalue==</public-key> | |||
| <private-key-format>ct:rsa-private-key-format</priva\ | <private-key-format>ct:rsa-private-key-format</priva\ | |||
| te-key-format> | te-key-format> | |||
| <private-key>base64encodedvalue==</private-key> | <private-key>base64encodedvalue==</private-key> | |||
| <cert>base64encodedvalue==</cert> | <cert>base64encodedvalue==</cert> | |||
| </local-definition> | </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> | |||
| <client-certs> | <ee-certs> | |||
| <truststore-reference>trusted-client-ee-certs</trustst\ | <truststore-reference>trusted-client-ee-certs</trustst\ | |||
| ore-reference> | ore-reference> | |||
| </client-certs> | </ee-certs> | |||
| </client-authentication> | </client-authentication> | |||
| <keepalives> | ||||
| <peer-allowed-to-send/> | ||||
| </keepalives> | ||||
| </tls-server-parameters> | </tls-server-parameters> | |||
| <http-server-parameters> | <http-server-parameters> | |||
| <server-name>foo.example.com</server-name> | <server-name>foo.example.com</server-name> | |||
| <protocol-versions> | ||||
| <protocol-version>HTTP/1.1</protocol-version> | ||||
| <protocol-version>HTTP/2.0</protocol-version> | ||||
| </protocol-versions> | ||||
| </http-server-parameters> | </http-server-parameters> | |||
| <restconf-server-parameters> | <restconf-server-parameters> | |||
| <client-identity-mappings> | <client-identity-mappings> | |||
| <cert-to-name> | <cert-to-name> | |||
| <id>1</id> | <id>1</id> | |||
| <fingerprint>11:0A:05:11:00</fingerprint> | <fingerprint>11:0A:05:11:00</fingerprint> | |||
| <map-type>x509c2n:specified</map-type> | <map-type>x509c2n:specified</map-type> | |||
| <name>scooby-doo</name> | <name>scooby-doo</name> | |||
| </cert-to-name> | </cert-to-name> | |||
| <cert-to-name> | <cert-to-name> | |||
| skipping to change at page 23, line 13 ¶ | skipping to change at page 25, line 6 ¶ | |||
| <!-- call home to a RESTCONF client with two endpoints --> | <!-- call home to a RESTCONF client with two endpoints --> | |||
| <call-home> | <call-home> | |||
| <restconf-client> | <restconf-client> | |||
| <name>config-manager</name> | <name>config-manager</name> | |||
| <endpoints> | <endpoints> | |||
| <endpoint> | <endpoint> | |||
| <name>east-data-center</name> | <name>east-data-center</name> | |||
| <https> | <https> | |||
| <tcp-client-parameters> | <tcp-client-parameters> | |||
| <remote-address>east.example.com</remote-address> | <remote-address>east.example.com</remote-address> | |||
| <keepalives> | ||||
| <idle-time>15</idle-time> | ||||
| <max-probes>3</max-probes> | ||||
| <probe-interval>30</probe-interval> | ||||
| </keepalives> | ||||
| </tcp-client-parameters> | </tcp-client-parameters> | |||
| <tls-server-parameters> | <tls-server-parameters> | |||
| <server-identity> | <server-identity> | |||
| <certificate> | <certificate> | |||
| <local-definition> | <local-definition> | |||
| <algorithm>rsa2048</algorithm> | ||||
| <public-key-format>ct:subject-public-key-info-fo\ | <public-key-format>ct:subject-public-key-info-fo\ | |||
| rmat</public-key-format> | rmat</public-key-format> | |||
| <public-key>base64encodedvalue==</public-key> | <public-key>base64encodedvalue==</public-key> | |||
| <private-key-format>ct:rsa-private-key-format</p\ | <private-key-format>ct:rsa-private-key-format</p\ | |||
| rivate-key-format> | rivate-key-format> | |||
| <private-key>base64encodedvalue==</private-key> | <private-key>base64encodedvalue==</private-key> | |||
| <cert>base64encodedvalue==</cert> | <cert>base64encodedvalue==</cert> | |||
| </local-definition> | </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> | |||
| <client-certs> | <ee-certs> | |||
| <truststore-reference>trusted-client-ee-certs</tru\ | <truststore-reference>trusted-client-ee-certs</tru\ | |||
| ststore-reference> | ststore-reference> | |||
| </client-certs> | </ee-certs> | |||
| </client-authentication> | </client-authentication> | |||
| <keepalives> | ||||
| <test-peer-aliveness> | ||||
| <max-wait>30</max-wait> | ||||
| <max-attempts>3</max-attempts> | ||||
| </test-peer-aliveness> | ||||
| </keepalives> | ||||
| </tls-server-parameters> | </tls-server-parameters> | |||
| <http-server-parameters> | <http-server-parameters> | |||
| <server-name>foo.example.com</server-name> | <server-name>foo.example.com</server-name> | |||
| <protocol-versions> | ||||
| <protocol-version>HTTP/1.1</protocol-version> | ||||
| <protocol-version>HTTP/2.0</protocol-version> | ||||
| </protocol-versions> | ||||
| </http-server-parameters> | </http-server-parameters> | |||
| <restconf-server-parameters> | <restconf-server-parameters> | |||
| <client-identity-mappings> | <client-identity-mappings> | |||
| <cert-to-name> | <cert-to-name> | |||
| <id>1</id> | <id>1</id> | |||
| <fingerprint>11:0A:05:11:00</fingerprint> | <fingerprint>11:0A:05:11:00</fingerprint> | |||
| <map-type>x509c2n:specified</map-type> | <map-type>x509c2n:specified</map-type> | |||
| <name>scooby-doo</name> | <name>scooby-doo</name> | |||
| </cert-to-name> | </cert-to-name> | |||
| <cert-to-name> | <cert-to-name> | |||
| skipping to change at page 24, line 20 ¶ | skipping to change at page 26, line 19 ¶ | |||
| </cert-to-name> | </cert-to-name> | |||
| </client-identity-mappings> | </client-identity-mappings> | |||
| </restconf-server-parameters> | </restconf-server-parameters> | |||
| </https> | </https> | |||
| </endpoint> | </endpoint> | |||
| <endpoint> | <endpoint> | |||
| <name>west-data-center</name> | <name>west-data-center</name> | |||
| <https> | <https> | |||
| <tcp-client-parameters> | <tcp-client-parameters> | |||
| <remote-address>west.example.com</remote-address> | <remote-address>west.example.com</remote-address> | |||
| <keepalives> | ||||
| <idle-time>15</idle-time> | ||||
| <max-probes>3</max-probes> | ||||
| <probe-interval>30</probe-interval> | ||||
| </keepalives> | ||||
| </tcp-client-parameters> | </tcp-client-parameters> | |||
| <tls-server-parameters> | <tls-server-parameters> | |||
| <server-identity> | <server-identity> | |||
| <certificate> | <certificate> | |||
| <local-definition> | <local-definition> | |||
| <algorithm>rsa2048</algorithm> | ||||
| <public-key-format>ct:subject-public-key-info-fo\ | <public-key-format>ct:subject-public-key-info-fo\ | |||
| rmat</public-key-format> | rmat</public-key-format> | |||
| <public-key>base64encodedvalue==</public-key> | <public-key>base64encodedvalue==</public-key> | |||
| <private-key-format>ct:rsa-private-key-format</p\ | <private-key-format>ct:rsa-private-key-format</p\ | |||
| rivate-key-format> | rivate-key-format> | |||
| <private-key>base64encodedvalue==</private-key> | <private-key>base64encodedvalue==</private-key> | |||
| <cert>base64encodedvalue==</cert> | <cert>base64encodedvalue==</cert> | |||
| </local-definition> | </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> | |||
| <client-certs> | <ee-certs> | |||
| <truststore-reference>trusted-client-ee-certs</tru\ | <truststore-reference>trusted-client-ee-certs</tru\ | |||
| ststore-reference> | ststore-reference> | |||
| </client-certs> | </ee-certs> | |||
| </client-authentication> | </client-authentication> | |||
| <keepalives> | ||||
| <test-peer-aliveness> | ||||
| <max-wait>30</max-wait> | ||||
| <max-attempts>3</max-attempts> | ||||
| </test-peer-aliveness> | ||||
| </keepalives> | ||||
| </tls-server-parameters> | </tls-server-parameters> | |||
| <http-server-parameters> | <http-server-parameters> | |||
| <server-name>foo.example.com</server-name> | <server-name>foo.example.com</server-name> | |||
| <protocol-versions> | ||||
| <protocol-version>HTTP/1.1</protocol-version> | ||||
| <protocol-version>HTTP/2.0</protocol-version> | ||||
| </protocol-versions> | ||||
| </http-server-parameters> | </http-server-parameters> | |||
| <restconf-server-parameters> | <restconf-server-parameters> | |||
| <client-identity-mappings> | <client-identity-mappings> | |||
| <cert-to-name> | <cert-to-name> | |||
| <id>1</id> | <id>1</id> | |||
| <fingerprint>11:0A:05:11:00</fingerprint> | <fingerprint>11:0A:05:11:00</fingerprint> | |||
| <map-type>x509c2n:specified</map-type> | <map-type>x509c2n:specified</map-type> | |||
| <name>scooby-doo</name> | <name>scooby-doo</name> | |||
| </cert-to-name> | </cert-to-name> | |||
| <cert-to-name> | <cert-to-name> | |||
| skipping to change at page 25, line 45 ¶ | skipping to change at page 27, line 49 ¶ | |||
| </call-home> | </call-home> | |||
| </restconf-server> | </restconf-server> | |||
| 3.3. YANG Module | 3.3. YANG Module | |||
| This YANG module has normative references to [RFC6991], [RFC7407], | This YANG module has normative references to [RFC6991], [RFC7407], | |||
| [RFC8040], [RFC8071], [I-D.kwatsen-netconf-tcp-client-server], | [RFC8040], [RFC8071], [I-D.kwatsen-netconf-tcp-client-server], | |||
| [I-D.ietf-netconf-tls-client-server], and | [I-D.ietf-netconf-tls-client-server], and | |||
| [I-D.kwatsen-netconf-http-client-server]. | [I-D.kwatsen-netconf-http-client-server]. | |||
| <CODE BEGINS> file "ietf-restconf-server@2020-03-08.yang" | <CODE BEGINS> file "ietf-restconf-server@2020-05-20.yang" | |||
| module ietf-restconf-server { | module ietf-restconf-server { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-restconf-server"; | namespace "urn:ietf:params:xml:ns:yang:ietf-restconf-server"; | |||
| prefix rcs; | prefix rcs; | |||
| 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 26, line 24 ¶ | skipping to change at page 28, line 29 ¶ | |||
| import ietf-x509-cert-to-name { | import ietf-x509-cert-to-name { | |||
| prefix x509c2n; | prefix x509c2n; | |||
| reference | reference | |||
| "RFC 7407: A YANG Data Model for SNMP Configuration"; | "RFC 7407: A YANG Data Model for SNMP Configuration"; | |||
| } | } | |||
| import ietf-tcp-client { | import ietf-tcp-client { | |||
| prefix tcpc; | prefix tcpc; | |||
| reference | reference | |||
| "RFC AAAA: 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 AAAA: YANG Groupings for TCP Clients and TCP Servers"; | "RFC DDDD: YANG Groupings for TCP Clients and TCP Servers"; | |||
| } | } | |||
| import ietf-tls-server { | import ietf-tls-server { | |||
| prefix tlss; | prefix tlss; | |||
| reference | reference | |||
| "RFC BBBB: YANG Groupings for TLS Clients and TLS Servers"; | "RFC FFFF: YANG Groupings for TLS Clients and TLS Servers"; | |||
| } | } | |||
| import ietf-http-server { | import ietf-http-server { | |||
| prefix https; | prefix https; | |||
| reference | reference | |||
| "RFC CCCC: YANG Groupings for HTTP Clients and HTTP Servers"; | "RFC GGGG: YANG Groupings for HTTP Clients and HTTP 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> | |||
| Author: Kent Watsen <mailto:kent+ietf@watsen.net> | Author: Kent Watsen <mailto:kent+ietf@watsen.net> | |||
| Author: Gary Wu <mailto:garywu@cisco.com> | Author: Gary Wu <mailto:garywu@cisco.com> | |||
| Author: Juergen Schoenwaelder | Author: Juergen Schoenwaelder | |||
| <mailto:j.schoenwaelder@jacobs-university.de>"; | <mailto:j.schoenwaelder@jacobs-university.de>"; | |||
| description | description | |||
| "This module contains a collection of YANG definitions | "This module contains a collection of YANG definitions | |||
| for configuring RESTCONF servers. | for configuring RESTCONF servers. | |||
| Copyright (c) 2019 IETF Trust and the persons identified | Copyright (c) 2020 IETF Trust and the persons identified | |||
| as authors of the code. All rights reserved. | as authors of the code. All rights reserved. | |||
| 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 XXXX | This version of this YANG module is part of RFC IIII | |||
| (https://www.rfc-editor.org/info/rfcXXXX); see the RFC | (https://www.rfc-editor.org/info/rfcIIII); 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-03-08 { | revision 2020-05-20 { | |||
| description | description | |||
| "Initial version"; | "Initial version"; | |||
| reference | reference | |||
| "RFC XXXX: RESTCONF Client and Server Models"; | "RFC IIII: RESTCONF Client and Server Models"; | |||
| } | } | |||
| // Features | // Features | |||
| feature http-listen { | feature http-listen { | |||
| description | description | |||
| "The 'http-listen' feature indicates that the RESTCONF server | "The 'http-listen' feature indicates that the RESTCONF server | |||
| supports opening a port to listen for incoming RESTCONF over | supports opening a port to listen for incoming RESTCONF over | |||
| TPC client connections, whereby the TLS connections are | TPC client connections, whereby the TLS connections are | |||
| terminated by an external system."; | terminated by an external system."; | |||
| skipping to change at page 28, line 40 ¶ | skipping to change at page 30, line 45 ¶ | |||
| Note that this grouping uses a fairly typical descendent | Note that this grouping uses a fairly typical descendent | |||
| 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., | |||
| 'restconf-server-parameters'. This model purposely does | 'restconf-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 "client-certificates-supported"; // FIXME: yes? | ||||
| description | description | |||
| "Specifies mappings through which RESTCONF client X.509 | "Specifies mappings through which RESTCONF client X.509 | |||
| certificates are used to determine a RESTCONF username. | certificates are used to determine a RESTCONF 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 RESTCONF server MUST close the connection, | found, then the RESTCONF server MUST close the connection, | |||
| and MUST NOT accept RESTCONF messages over it."; | and MUST NOT accept RESTCONF 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 32, line 26 ¶ | skipping to change at page 34, line 30 ¶ | |||
| connect to the IANA-assigned well-known | connect to the IANA-assigned well-known | |||
| port for 'restconf-ch-tls' (4336) if no | port for 'restconf-ch-tls' (4336) if no | |||
| value is specified."; | value is specified."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container tls-server-parameters { | container tls-server-parameters { | |||
| description | description | |||
| "A wrapper around the TLS server parameters | "A wrapper around the TLS server parameters | |||
| to avoid name collisions."; | to avoid name collisions."; | |||
| uses tlss:tls-server-grouping; /* { | uses tlss:tls-server-grouping; | |||
| FIXME: commented out since auth could also be external. | ||||
| ^-- need a better 'must' expression? | ||||
| refine "client-authentication" { | ||||
| must 'ca-certs or client-certs'; | ||||
| description | ||||
| "NETCONF/TLS servers MUST validate client | ||||
| certificates."; | ||||
| }*/ | ||||
| } | } | |||
| container http-server-parameters { | container http-server-parameters { | |||
| description | description | |||
| "A wrapper around the HTTP server parameters | "A wrapper around the HTTP server parameters | |||
| to avoid name collisions."; | to avoid name collisions."; | |||
| uses https:http-server-grouping; | uses https:http-server-grouping; | |||
| } | } | |||
| container restconf-server-parameters { | container restconf-server-parameters { | |||
| description | description | |||
| "A wrapper around the RESTCONF server parameters | "A wrapper around the RESTCONF server parameters | |||
| skipping to change at page 37, line 4 ¶ | skipping to change at page 38, line 49 ¶ | |||
| } | } | |||
| leaf max-attempts { | leaf max-attempts { | |||
| type uint8 { | type uint8 { | |||
| range "1..max"; | range "1..max"; | |||
| } | } | |||
| default "3"; | default "3"; | |||
| description | description | |||
| "Specifies the number times the RESTCONF server tries | "Specifies the number times the RESTCONF server tries | |||
| to connect to a specific endpoint before moving on to | to connect to a specific endpoint before moving on to | |||
| the next endpoint in the list (round robin)."; | the next endpoint in the list (round robin)."; | |||
| } | } | |||
| } | } | |||
| } // restconf-client | } // restconf-client | |||
| } // call-home | } // call-home | |||
| } // restconf-server-app-grouping | } // restconf-server-app-grouping | |||
| // Protocol accessible node, for servers that implement this | // Protocol accessible node, for servers that implement | |||
| // module. | // this module. | |||
| container restconf-server { | container restconf-server { | |||
| uses restconf-server-app-grouping; | uses restconf-server-app-grouping; | |||
| description | description | |||
| "Top-level container for RESTCONF server configuration."; | "Top-level container for RESTCONF server configuration."; | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| skipping to change at page 39, line 8 ¶ | skipping to change at page 40, line 47 ¶ | |||
| 5.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-restconf-client | name: ietf-restconf-client | |||
| namespace: urn:ietf:params:xml:ns:yang:ietf-restconf-client | namespace: urn:ietf:params:xml:ns:yang:ietf-restconf-client | |||
| prefix: ncc | prefix: ncc | |||
| reference: RFC XXXX | reference: RFC IIII | |||
| name: ietf-restconf-server | name: ietf-restconf-server | |||
| namespace: urn:ietf:params:xml:ns:yang:ietf-restconf-server | namespace: urn:ietf:params:xml:ns:yang:ietf-restconf-server | |||
| prefix: ncs | prefix: ncs | |||
| reference: RFC XXXX | reference: RFC IIII | |||
| 6. References | 6. References | |||
| 6.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", draft- | |||
| ietf-netconf-keystore-15 (work in progress), November | ietf-netconf-keystore-16 (work in progress), March 2020. | |||
| 2019. | ||||
| [I-D.ietf-netconf-tls-client-server] | [I-D.ietf-netconf-tls-client-server] | |||
| Watsen, K., Wu, G., and L. Xia, "YANG Groupings for TLS | Watsen, K., Wu, G., and L. Xia, "YANG Groupings for TLS | |||
| Clients and TLS Servers", draft-ietf-netconf-tls-client- | Clients and TLS Servers", draft-ietf-netconf-tls-client- | |||
| server-17 (work in progress), November 2019. | server-18 (work in progress), March 2020. | |||
| [I-D.kwatsen-netconf-http-client-server] | [I-D.kwatsen-netconf-http-client-server] | |||
| Watsen, K., "YANG Groupings for HTTP Clients and HTTP | Watsen, K., "YANG Groupings for HTTP Clients and HTTP | |||
| Servers", draft-kwatsen-netconf-http-client-server-05 | Servers", draft-kwatsen-netconf-http-client-server-05 | |||
| (work in progress), November 2019. | (work in progress), November 2019. | |||
| [I-D.kwatsen-netconf-tcp-client-server] | [I-D.kwatsen-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", draft-kwatsen-netconf-tcp-client- | |||
| server-02 (work in progress), April 2019. | server-02 (work in progress), April 2019. | |||
| skipping to change at page 40, line 29 ¶ | skipping to change at page 42, line 17 ¶ | |||
| <https://www.rfc-editor.org/info/rfc8071>. | <https://www.rfc-editor.org/info/rfc8071>. | |||
| [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>. | |||
| 6.2. Informative References | 6.2. Informative References | |||
| [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", draft- | |||
| ietf-netconf-trust-anchors-08 (work in progress), November | ietf-netconf-trust-anchors-09 (work in progress), March | |||
| 2019. | 2020. | |||
| [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>. | |||
| [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | |||
| and A. Bierman, Ed., "Network Configuration Protocol | and A. Bierman, Ed., "Network Configuration Protocol | |||
| (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | |||
| <https://www.rfc-editor.org/info/rfc6241>. | <https://www.rfc-editor.org/info/rfc6241>. | |||
| skipping to change at page 41, line 5 ¶ | skipping to change at page 42, line 42 ¶ | |||
| [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>. | |||
| [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | |||
| Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | |||
| <https://www.rfc-editor.org/info/rfc8446>. | <https://www.rfc-editor.org/info/rfc8446>. | |||
| 6.3. URIs | ||||
| [1] https://tools.ietf.org/html/draft-ietf-netconf-crypto-types | ||||
| [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 | Appendix A. Expanded Tree Diagrams | |||
| A.1. Expanded Tree Diagram for 'ietf-restconf-client' | A.1. Expanded Tree Diagram for 'ietf-restconf-client' | |||
| The following tree diagram [RFC8340] provides an overview of the data | The following tree diagram [RFC8340] provides an overview of the data | |||
| model for the "ietf-restconf-client" module. | model for the "ietf-restconf-client" module. | |||
| This tree diagram shows all the nodes defined in this module, | This tree diagram shows all the nodes defined in this module, | |||
| including those defined by "grouping" statements used by this module. | including those defined by "grouping" statements used by this module. | |||
| skipping to change at page 42, line 5 ¶ | skipping to change at page 45, line 5 ¶ | |||
| | | | +--rw client-identity | | | | +--rw client-identity | |||
| | | | | +--rw (auth-type)? | | | | | +--rw (auth-type)? | |||
| | | | | +--:(certificate) | | | | | +--:(certificate) | |||
| | | | | | {x509-certificate-auth}? | | | | | | {x509-certificate-auth}? | |||
| | | | | | +--rw certificate | | | | | | +--rw certificate | |||
| | | | | | +--rw (local-or-keystore) | | | | | | +--rw (local-or-keystore) | |||
| | | | | | +--:(local) | | | | | | +--:(local) | |||
| | | | | | | {local-definiti\ | | | | | | | {local-definiti\ | |||
| \ons-supported}? | \ons-supported}? | |||
| | | | | | | +--rw local-definition | | | | | | | +--rw local-definition | |||
| | | | | | | +--rw algorithm | ||||
| | | | | | | | iasa:asymm\ | ||||
| \etric-algorithm-type | ||||
| | | | | | | +--rw public-key-f\ | | | | | | | +--rw public-key-f\ | |||
| \ormat | \ormat | |||
| | | | | | | | identityref | | | | | | | | identityref | |||
| | | | | | | +--rw public-key | | | | | | | +--rw public-key | |||
| | | | | | | | binary | | | | | | | | binary | |||
| | | | | | | +--rw private-key-\ | | | | | | | +--rw private-key-\ | |||
| \format? | \format? | |||
| | | | | | | | identityref | | | | | | | | identityref | |||
| | | | | | | +--rw (private-key\ | | | | | | | +--rw (private-key\ | |||
| \-type) | \-type) | |||
| skipping to change at page 43, line 7 ¶ | skipping to change at page 46, line 4 ¶ | |||
| | | | | | | | | \ | | | | | | | | | \ | |||
| \ {keystore-supported}? | \ {keystore-supported}? | |||
| | | | | | | | +--rw val\ | | | | | | | | +--rw val\ | |||
| \ue? | \ue? | |||
| | | | | | | | b\ | | | | | | | | b\ | |||
| \inary | \inary | |||
| | | | | | | +--rw cert? | | | | | | | +--rw cert? | |||
| | | | | | | | end-entity\ | | | | | | | | end-entity\ | |||
| \-cert-cms | \-cert-cms | |||
| | | | | | | +---n certificate-\ | | | | | | | +---n certificate-\ | |||
| \expiration | \expiration | |||
| | | | | | | | +-- expiration-\ | | | | | | | | +-- expiration-\ | |||
| \date | \date | |||
| | | | | | | | yang:da\ | | | | | | | | yang:da\ | |||
| \te-and-time | \te-and-time | |||
| | | | | | | +---x generate-cer\ | | | | | | | +---x generate-cer\ | |||
| \tificate-signing-request | \tificate-signing-request | |||
| | | | | | | {certifica\ | ||||
| \te-signing-request-generation}? | ||||
| | | | | | | +---w input | | | | | | | +---w input | |||
| | | | | | | | +---w subject | | | | | | | | +---w subject | |||
| | | | | | | | | bina\ | | | | | | | | | bina\ | |||
| \ry | \ry | |||
| | | | | | | | +---w attrib\ | | | | | | | | +---w attrib\ | |||
| \utes? | \utes? | |||
| | | | | | | | bina\ | | | | | | | | bina\ | |||
| \ry | \ry | |||
| | | | | | | +--ro output | | | | | | | +--ro output | |||
| | | | | | | +--ro certif\ | | | | | | | +--ro certif\ | |||
| \icate-signing-request | \icate-signing-request | |||
| | | | | | | bina\ | | | | | | | ct:c\ | |||
| \ry | \sr | |||
| | | | | | +--:(keystore) | | | | | | +--:(keystore) | |||
| | | | | | {keystore-suppo\ | | | | | | {keystore-suppo\ | |||
| \rted}? | \rted}? | |||
| | | | | | +--rw keystore-refere\ | | | | | | +--rw keystore-refere\ | |||
| \nce | \nce | |||
| | | | | | +--rw asymmetric-k\ | | | | | | +--rw asymmetric-k\ | |||
| \ey? | \ey? | |||
| | | | | | | ks:asymmet\ | | | | | | | ks:asymmet\ | |||
| \ric-key-ref | \ric-key-ref | |||
| | | | | | +--rw certificate?\ | | | | | | +--rw certificate?\ | |||
| \ leafref | \ leafref | |||
| | | | | +--:(raw-public-key) | | | | | +--:(raw-public-key) | |||
| | | | | | {raw-public-key-auth}? | | | | | | {raw-public-key-auth}? | |||
| | | | | | +--rw raw-private-key | | | | | | +--rw raw-private-key | |||
| | | | | | +--rw (local-or-keystore) | | | | | | +--rw (local-or-keystore) | |||
| | | | | | +--:(local) | | | | | | +--:(local) | |||
| | | | | | | {local-definiti\ | | | | | | | {local-definiti\ | |||
| \ons-supported}? | \ons-supported}? | |||
| | | | | | | +--rw local-definition | | | | | | | +--rw local-definition | |||
| | | | | | | +--rw algorithm | ||||
| | | | | | | | iasa:asymm\ | ||||
| \etric-algorithm-type | ||||
| | | | | | | +--rw public-key-f\ | | | | | | | +--rw public-key-f\ | |||
| \ormat | \ormat | |||
| | | | | | | | identityref | | | | | | | | identityref | |||
| | | | | | | +--rw public-key | | | | | | | +--rw public-key | |||
| | | | | | | | binary | | | | | | | | binary | |||
| | | | | | | +--rw private-key-\ | | | | | | | +--rw private-key-\ | |||
| \format? | \format? | |||
| | | | | | | | identityref | | | | | | | | identityref | |||
| | | | | | | +--rw (private-key\ | | | | | | | +--rw (private-key\ | |||
| \-type) | \-type) | |||
| skipping to change at page 45, line 8 ¶ | skipping to change at page 48, line 4 ¶ | |||
| \rted}? | \rted}? | |||
| | | | | | +--rw keystore-refere\ | | | | | | +--rw keystore-refere\ | |||
| \nce? | \nce? | |||
| | | | | | ks:asymmetric\ | | | | | | ks:asymmetric\ | |||
| \-key-ref | \-key-ref | |||
| | | | | +--:(psk) {psk-auth}? | | | | | +--:(psk) {psk-auth}? | |||
| | | | | +--rw psk | | | | | +--rw psk | |||
| | | | | +--rw (local-or-keystore) | | | | | +--rw (local-or-keystore) | |||
| | | | | +--:(local) | | | | | +--:(local) | |||
| | | | | | {local-definiti\ | | | | | | {local-definiti\ | |||
| \ons-supported}? | \ons-supported}? | |||
| | | | | | +--rw local-definition | | | | | | +--rw local-definition | |||
| | | | | | +--rw algorithm | ||||
| | | | | | | isa:symmet\ | ||||
| \ric-algorithm-type | ||||
| | | | | | +--rw key-format? | | | | | | +--rw key-format? | |||
| | | | | | | identityref | | | | | | | identityref | |||
| | | | | | +--rw (key-type) | | | | | | +--rw (key-type) | |||
| | | | | | | +--:(key) | | | | | | | +--:(key) | |||
| | | | | | | | +--rw key? | | | | | | | | +--rw key? | |||
| | | | | | | | bina\ | | | | | | | | bina\ | |||
| \ry | \ry | |||
| | | | | | | +--:(hidden-key) | | | | | | | +--:(hidden-key) | |||
| | | | | | | | +--rw hidden\ | | | | | | | | +--rw hidden\ | |||
| \-key? | \-key? | |||
| skipping to change at page 46, line 28 ¶ | skipping to change at page 49, line 20 ¶ | |||
| | | | | | | +--rw cert* | | | | | | | +--rw cert* | |||
| | | | | | | | trust-anchor-cer\ | | | | | | | | trust-anchor-cer\ | |||
| \t-cms | \t-cms | |||
| | | | | | | +---n certificate-expira\ | | | | | | | +---n certificate-expira\ | |||
| \tion | \tion | |||
| | | | | | | +-- expiration-date | | | | | | | +-- expiration-date | |||
| | | | | | | yang:date-and\ | | | | | | | yang:date-and\ | |||
| \-time | \-time | |||
| | | | | | +--:(truststore) | | | | | | +--:(truststore) | |||
| | | | | | {truststore-supported\ | | | | | | {truststore-supported\ | |||
| \,x509-certificates}? | \,certificates}? | |||
| | | | | | +--rw truststore-reference? | | | | | | +--rw truststore-reference? | |||
| | | | | | ts:certificate-bag-\ | | | | | | ts:certificate-bag-\ | |||
| \ref | \ref | |||
| | | | | +--rw server-certs! | | | | | +--rw ee-certs! | |||
| | | | | | {x509-certificate-auth}? | | | | | | {x509-certificate-auth}? | |||
| | | | | | +--rw (local-or-truststore) | | | | | | +--rw (local-or-truststore) | |||
| | | | | | +--:(local) | | | | | | +--:(local) | |||
| | | | | | | {local-definitions-su\ | | | | | | | {local-definitions-su\ | |||
| \pported}? | \pported}? | |||
| | | | | | | +--rw local-definition | | | | | | | +--rw local-definition | |||
| | | | | | | +--rw cert* | | | | | | | +--rw cert* | |||
| | | | | | | | trust-anchor-cer\ | | | | | | | | trust-anchor-cer\ | |||
| \t-cms | \t-cms | |||
| | | | | | | +---n certificate-expira\ | | | | | | | +---n certificate-expira\ | |||
| \tion | \tion | |||
| | | | | | | +-- expiration-date | | | | | | | +-- expiration-date | |||
| | | | | | | yang:date-and\ | | | | | | | yang:date-and\ | |||
| \-time | \-time | |||
| | | | | | +--:(truststore) | | | | | | +--:(truststore) | |||
| | | | | | {truststore-supported\ | | | | | | {truststore-supported\ | |||
| \,x509-certificates}? | \,certificates}? | |||
| | | | | | +--rw truststore-reference? | | | | | | +--rw truststore-reference? | |||
| | | | | | ts:certificate-bag-\ | | | | | | ts:certificate-bag-\ | |||
| \ref | \ref | |||
| | | | | +--rw raw-public-keys! | | | | | +--rw raw-public-keys! | |||
| | | | | | {raw-public-key-auth}? | | | | | | {raw-public-key-auth}? | |||
| | | | | | +--rw (local-or-truststore) | | | | | | +--rw (local-or-truststore) | |||
| | | | | | +--:(local) | | | | | | +--:(local) | |||
| | | | | | | {local-definitions-su\ | | | | | | | {local-definitions-su\ | |||
| \pported}? | \pported}? | |||
| | | | | | | +--rw local-definition | | | | | | | +--rw local-definition | |||
| | | | | | | +--rw public-key* [name] | | | | | | | +--rw public-key* [name] | |||
| | | | | | | +--rw name | | | | | | | +--rw name | |||
| | | | | | | | string | | | | | | | | string | |||
| | | | | | | +--rw algorithm | ||||
| | | | | | | | iasa:asymmetr\ | ||||
| \ic-algorithm-type | ||||
| | | | | | | +--rw public-key-form\ | | | | | | | +--rw public-key-form\ | |||
| \at | \at | |||
| | | | | | | | identityref | | | | | | | | identityref | |||
| | | | | | | +--rw public-key | | | | | | | +--rw public-key | |||
| | | | | | | binary | | | | | | | binary | |||
| | | | | | +--:(truststore) | | | | | | +--:(truststore) | |||
| | | | | | {truststore-supported\ | | | | | | {truststore-supported\ | |||
| \,public-keys}? | \,public-keys}? | |||
| | | | | | +--rw truststore-reference? | | | | | | +--rw truststore-reference? | |||
| | | | | | ts:public-key-bag-r\ | | | | | | ts:public-key-bag-r\ | |||
| \ef | \ef | |||
| | | | | +--rw psks! {psk-auth}? | | | | | +--rw psks! {psk-auth}? | |||
| | | | +--rw hello-params | | | | +--rw hello-params | |||
| | | | | {tls-client-hello-params-config\ | | | | | {tls-client-hello-params-config\ | |||
| \}? | \}? | |||
| | | | | +--rw tls-versions | | | | | +--rw tls-versions | |||
| | | | | | +--rw tls-version* identityref | | | | | | +--rw tls-version* identityref | |||
| | | | | +--rw cipher-suites | | | | | +--rw cipher-suites | |||
| | | | | +--rw cipher-suite* identityref | | | | | +--rw cipher-suite* identityref | |||
| | | | +--rw keepalives! | | | | +--rw keepalives | |||
| | | | {tls-client-keepalives}? | | | | {tls-client-keepalives}? | |||
| | | | +--rw max-wait? uint16 | | | | +--rw peer-allowed-to-send? empty | |||
| | | | +--rw max-attempts? uint8 | | | | +--rw test-peer-aliveness! | |||
| | | | +--rw max-wait? uint16 | ||||
| | | | +--rw max-attempts? uint8 | ||||
| | | +--rw http-client-parameters | | | +--rw http-client-parameters | |||
| | | | +--rw client-identity | | | | +--rw client-identity! | |||
| | | | | +--rw (auth-type) | | | | | +--rw (auth-type)? | |||
| | | | | +--:(basic) | | | | | +--:(basic) | |||
| | | | | +--rw basic {basic-auth}? | | | | | +--rw basic {basic-auth}? | |||
| | | | | +--rw user-id string | | | | | +--rw user-id string | |||
| | | | | +--rw password string | | | | | +--rw password string | |||
| | | | +--rw proxy-server! {proxy-connect}? | | | | +--rw proxy-server! {proxy-connect}? | |||
| | | | +--rw tcp-client-parameters | | | | +--rw tcp-client-parameters | |||
| | | | | +--rw remote-address inet:host | | | | | +--rw remote-address inet:host | |||
| | | | | +--rw remote-port? | | | | | +--rw remote-port? | |||
| | | | | | inet:port-number | | | | | | inet:port-number | |||
| | | | | +--rw local-address? | | | | | +--rw local-address? | |||
| skipping to change at page 48, line 29 ¶ | skipping to change at page 51, line 21 ¶ | |||
| | | | | | | {x509-certificate-\ | | | | | | | {x509-certificate-\ | |||
| \auth}? | \auth}? | |||
| | | | | | | +--rw certificate | | | | | | | +--rw certificate | |||
| | | | | | | +--rw (local-or-keyst\ | | | | | | | +--rw (local-or-keyst\ | |||
| \ore) | \ore) | |||
| | | | | | | +--:(local) | | | | | | | +--:(local) | |||
| | | | | | | | {local-de\ | | | | | | | | {local-de\ | |||
| \finitions-supported}? | \finitions-supported}? | |||
| | | | | | | | +--rw local-def\ | | | | | | | | +--rw local-def\ | |||
| \inition | \inition | |||
| | | | | | | | +--rw algori\ | ||||
| \thm | ||||
| | | | | | | | | iasa\ | ||||
| \:asymmetric-algorithm-type | ||||
| | | | | | | | +--rw public\ | | | | | | | | +--rw public\ | |||
| \-key-format | \-key-format | |||
| | | | | | | | | iden\ | | | | | | | | | iden\ | |||
| \tityref | \tityref | |||
| | | | | | | | +--rw public\ | | | | | | | | +--rw public\ | |||
| \-key | \-key | |||
| | | | | | | | | bina\ | | | | | | | | | bina\ | |||
| \ry | \ry | |||
| | | | | | | | +--rw privat\ | | | | | | | | +--rw privat\ | |||
| \e-key-format? | \e-key-format? | |||
| skipping to change at page 49, line 45 ¶ | skipping to change at page 52, line 33 ¶ | |||
| | | | | | | | | end-\ | | | | | | | | | end-\ | |||
| \entity-cert-cms | \entity-cert-cms | |||
| | | | | | | | +---n certif\ | | | | | | | | +---n certif\ | |||
| \icate-expiration | \icate-expiration | |||
| | | | | | | | | +-- expir\ | | | | | | | | | +-- expir\ | |||
| \ation-date | \ation-date | |||
| | | | | | | | | y\ | | | | | | | | | y\ | |||
| \ang:date-and-time | \ang:date-and-time | |||
| | | | | | | | +---x genera\ | | | | | | | | +---x genera\ | |||
| \te-certificate-signing-request | \te-certificate-signing-request | |||
| | | | | | | | {cer\ | ||||
| \tificate-signing-request-generation}? | ||||
| | | | | | | | +---w inp\ | | | | | | | | +---w inp\ | |||
| \ut | \ut | |||
| | | | | | | | | +---w \ | | | | | | | | | +---w \ | |||
| \subject | \subject | |||
| | | | | | | | | | \ | | | | | | | | | | \ | |||
| \ binary | \ binary | |||
| | | | | | | | | +---w \ | | | | | | | | | +---w \ | |||
| \attributes? | \attributes? | |||
| | | | | | | | | \ | | | | | | | | | \ | |||
| \ binary | \ binary | |||
| | | | | | | | +--ro out\ | | | | | | | | +--ro out\ | |||
| \put | \put | |||
| | | | | | | | +--ro \ | | | | | | | | +--ro \ | |||
| \certificate-signing-request | \certificate-signing-request | |||
| | | | | | | | \ | | | | | | | | \ | |||
| \ binary | \ ct:csr | |||
| | | | | | | +--:(keystore) | | | | | | | +--:(keystore) | |||
| | | | | | | {keystore\ | | | | | | | {keystore\ | |||
| \-supported}? | \-supported}? | |||
| | | | | | | +--rw keystore-\ | | | | | | | +--rw keystore-\ | |||
| \reference | \reference | |||
| | | | | | | +--rw asymme\ | | | | | | | +--rw asymme\ | |||
| \tric-key? | \tric-key? | |||
| | | | | | | | ks:a\ | | | | | | | | ks:a\ | |||
| \symmetric-key-ref | \symmetric-key-ref | |||
| | | | | | | +--rw certif\ | | | | | | | +--rw certif\ | |||
| \icate? leafref | \icate? leafref | |||
| | | | | | +--:(raw-public-key) | | | | | | +--:(raw-public-key) | |||
| | | | | | | {raw-public-key-au\ | | | | | | | {raw-public-key-au\ | |||
| \th}? | \th}? | |||
| | | | | | | +--rw raw-private-key | | | | | | | +--rw raw-private-key | |||
| | | | | | | +--rw (local-or-keyst\ | | | | | | | +--rw (local-or-keyst\ | |||
| \ore) | \ore) | |||
| | | | | | | +--:(local) | | | | | | | +--:(local) | |||
| | | | | | | | {local-de\ | | | | | | | | {local-de\ | |||
| \finitions-supported}? | \finitions-supported}? | |||
| | | | | | | | +--rw local-def\ | | | | | | | | +--rw local-def\ | |||
| \inition | \inition | |||
| | | | | | | | +--rw algori\ | ||||
| \thm | ||||
| | | | | | | | | iasa\ | ||||
| \:asymmetric-algorithm-type | ||||
| | | | | | | | +--rw public\ | | | | | | | | +--rw public\ | |||
| \-key-format | \-key-format | |||
| | | | | | | | | iden\ | | | | | | | | | iden\ | |||
| \tityref | \tityref | |||
| | | | | | | | +--rw public\ | | | | | | | | +--rw public\ | |||
| \-key | \-key | |||
| | | | | | | | | bina\ | | | | | | | | | bina\ | |||
| \ry | \ry | |||
| | | | | | | | +--rw privat\ | | | | | | | | +--rw privat\ | |||
| \e-key-format? | \e-key-format? | |||
| skipping to change at page 52, line 6 ¶ | skipping to change at page 54, line 40 ¶ | |||
| \metric-key-ref | \metric-key-ref | |||
| | | | | | +--:(psk) {psk-auth}? | | | | | | +--:(psk) {psk-auth}? | |||
| | | | | | +--rw psk | | | | | | +--rw psk | |||
| | | | | | +--rw (local-or-keyst\ | | | | | | +--rw (local-or-keyst\ | |||
| \ore) | \ore) | |||
| | | | | | +--:(local) | | | | | | +--:(local) | |||
| | | | | | | {local-de\ | | | | | | | {local-de\ | |||
| \finitions-supported}? | \finitions-supported}? | |||
| | | | | | | +--rw local-def\ | | | | | | | +--rw local-def\ | |||
| \inition | \inition | |||
| | | | | | | +--rw algori\ | ||||
| \thm | ||||
| | | | | | | | isa:\ | ||||
| \symmetric-algorithm-type | ||||
| | | | | | | +--rw key-fo\ | | | | | | | +--rw key-fo\ | |||
| \rmat? | \rmat? | |||
| | | | | | | | iden\ | | | | | | | | iden\ | |||
| \tityref | \tityref | |||
| | | | | | | +--rw (key-t\ | | | | | | | +--rw (key-t\ | |||
| \ype) | \ype) | |||
| | | | | | | | +--:(key) | | | | | | | | +--:(key) | |||
| | | | | | | | | +--rw \ | | | | | | | | | +--rw \ | |||
| \key? | \key? | |||
| | | | | | | | | \ | | | | | | | | | \ | |||
| skipping to change at page 53, line 33 ¶ | skipping to change at page 56, line 15 ¶ | |||
| | | | | | | | | trust-anch\ | | | | | | | | | trust-anch\ | |||
| \or-cert-cms | \or-cert-cms | |||
| | | | | | | | +---n certificate-\ | | | | | | | | +---n certificate-\ | |||
| \expiration | \expiration | |||
| | | | | | | | +-- expiration-\ | | | | | | | | +-- expiration-\ | |||
| \date | \date | |||
| | | | | | | | yang:da\ | | | | | | | | yang:da\ | |||
| \te-and-time | \te-and-time | |||
| | | | | | | +--:(truststore) | | | | | | | +--:(truststore) | |||
| | | | | | | {truststore-sup\ | | | | | | | {truststore-sup\ | |||
| \ported,x509-certificates}? | \ported,certificates}? | |||
| | | | | | | +--rw truststore-refe\ | | | | | | | +--rw truststore-refe\ | |||
| \rence? | \rence? | |||
| | | | | | | ts:certificat\ | | | | | | | ts:certificat\ | |||
| \e-bag-ref | \e-bag-ref | |||
| | | | | | +--rw server-certs! | | | | | | +--rw ee-certs! | |||
| | | | | | | {x509-certificate-auth\ | | | | | | | {x509-certificate-auth\ | |||
| \}? | \}? | |||
| | | | | | | +--rw (local-or-truststore) | | | | | | | +--rw (local-or-truststore) | |||
| | | | | | | +--:(local) | | | | | | | +--:(local) | |||
| | | | | | | | {local-definiti\ | | | | | | | | {local-definiti\ | |||
| \ons-supported}? | \ons-supported}? | |||
| | | | | | | | +--rw local-definition | | | | | | | | +--rw local-definition | |||
| | | | | | | | +--rw cert* | | | | | | | | +--rw cert* | |||
| | | | | | | | | trust-anch\ | | | | | | | | | trust-anch\ | |||
| \or-cert-cms | \or-cert-cms | |||
| skipping to change at page 54, line 4 ¶ | skipping to change at page 56, line 34 ¶ | |||
| | | | | | | +--:(local) | | | | | | | +--:(local) | |||
| | | | | | | | {local-definiti\ | | | | | | | | {local-definiti\ | |||
| \ons-supported}? | \ons-supported}? | |||
| | | | | | | | +--rw local-definition | | | | | | | | +--rw local-definition | |||
| | | | | | | | +--rw cert* | | | | | | | | +--rw cert* | |||
| | | | | | | | | trust-anch\ | | | | | | | | | trust-anch\ | |||
| \or-cert-cms | \or-cert-cms | |||
| | | | | | | | +---n certificate-\ | | | | | | | | +---n certificate-\ | |||
| \expiration | \expiration | |||
| | | | | | | | +-- expiration-\ | | | | | | | | +-- expiration-\ | |||
| \date | \date | |||
| | | | | | | | yang:da\ | | | | | | | | yang:da\ | |||
| \te-and-time | \te-and-time | |||
| | | | | | | +--:(truststore) | | | | | | | +--:(truststore) | |||
| | | | | | | {truststore-sup\ | | | | | | | {truststore-sup\ | |||
| \ported,x509-certificates}? | \ported,certificates}? | |||
| | | | | | | +--rw truststore-refe\ | | | | | | | +--rw truststore-refe\ | |||
| \rence? | \rence? | |||
| | | | | | | ts:certificat\ | | | | | | | ts:certificat\ | |||
| \e-bag-ref | \e-bag-ref | |||
| | | | | | +--rw raw-public-keys! | | | | | | +--rw raw-public-keys! | |||
| | | | | | | {raw-public-key-auth}? | | | | | | | {raw-public-key-auth}? | |||
| | | | | | | +--rw (local-or-truststore) | | | | | | | +--rw (local-or-truststore) | |||
| | | | | | | +--:(local) | | | | | | | +--:(local) | |||
| | | | | | | | {local-definiti\ | | | | | | | | {local-definiti\ | |||
| \ons-supported}? | \ons-supported}? | |||
| | | | | | | | +--rw local-definition | | | | | | | | +--rw local-definition | |||
| | | | | | | | +--rw public-key* | | | | | | | | +--rw public-key* | |||
| | | | | | | | [name] | | | | | | | | [name] | |||
| | | | | | | | +--rw name | | | | | | | | +--rw name | |||
| | | | | | | | | string | | | | | | | | | string | |||
| | | | | | | | +--rw algorithm | ||||
| | | | | | | | | iasa:as\ | ||||
| \ymmetric-algorithm-type | ||||
| | | | | | | | +--rw public-ke\ | | | | | | | | +--rw public-ke\ | |||
| \y-format | \y-format | |||
| | | | | | | | | identit\ | | | | | | | | | identit\ | |||
| \yref | \yref | |||
| | | | | | | | +--rw public-key | | | | | | | | +--rw public-key | |||
| | | | | | | | binary | | | | | | | | binary | |||
| | | | | | | +--:(truststore) | | | | | | | +--:(truststore) | |||
| | | | | | | {truststore-sup\ | | | | | | | {truststore-sup\ | |||
| \ported,public-keys}? | \ported,public-keys}? | |||
| | | | | | | +--rw truststore-refe\ | | | | | | | +--rw truststore-refe\ | |||
| skipping to change at page 54, line 52 ¶ | skipping to change at page 57, line 30 ¶ | |||
| | | | | | +--rw psks! {psk-auth}? | | | | | | +--rw psks! {psk-auth}? | |||
| | | | | +--rw hello-params | | | | | +--rw hello-params | |||
| | | | | | {tls-client-hello-params-\ | | | | | | {tls-client-hello-params-\ | |||
| \config}? | \config}? | |||
| | | | | | +--rw tls-versions | | | | | | +--rw tls-versions | |||
| | | | | | | +--rw tls-version* | | | | | | | +--rw tls-version* | |||
| | | | | | | identityref | | | | | | | identityref | |||
| | | | | | +--rw cipher-suites | | | | | | +--rw cipher-suites | |||
| | | | | | +--rw cipher-suite* | | | | | | +--rw cipher-suite* | |||
| | | | | | identityref | | | | | | identityref | |||
| | | | | +--rw keepalives! | | | | | +--rw keepalives | |||
| | | | | {tls-client-keepalives}? | | | | | {tls-client-keepalives}? | |||
| | | | | +--rw max-wait? uint16 | | | | | +--rw peer-allowed-to-send? | |||
| | | | | +--rw max-attempts? uint8 | | | | | | empty | |||
| | | | +--rw proxy-client-identity | | | | | +--rw test-peer-aliveness! | |||
| | | | +--rw (auth-type) | | | | | +--rw max-wait? uint16 | |||
| | | | +--:(basic) | | | | | +--rw max-attempts? uint8 | |||
| | | | +--rw basic {basic-auth}? | | | | +--rw http-client-parameters | |||
| | | | +--rw user-id string | | | | +--rw client-identity! | |||
| | | | +--rw password string | | | | +--rw (auth-type)? | |||
| | | | +--:(basic) | ||||
| | | | +--rw basic {basic-auth}? | ||||
| | | | +--rw user-id | ||||
| | | | | string | ||||
| | | | +--rw password | ||||
| | | | string | ||||
| | | +--rw restconf-client-parameters | | | +--rw restconf-client-parameters | |||
| | +--rw connection-type | | +--rw connection-type | |||
| | | +--rw (connection-type) | | | +--rw (connection-type) | |||
| | | +--:(persistent-connection) | | | +--:(persistent-connection) | |||
| | | | +--rw persistent! | | | | +--rw persistent! | |||
| | | +--:(periodic-connection) | | | +--:(periodic-connection) | |||
| | | +--rw periodic! | | | +--rw periodic! | |||
| | | +--rw period? uint16 | | | +--rw period? uint16 | |||
| | | +--rw anchor-time? yang:date-and-time | | | +--rw anchor-time? yang:date-and-time | |||
| | | +--rw idle-timeout? uint16 | | | +--rw idle-timeout? uint16 | |||
| | +--rw reconnect-strategy | | +--rw reconnect-strategy | |||
| | +--rw start-with? enumeration | | +--rw start-with? enumeration | |||
| | +--rw max-attempts? uint8 | | +--rw max-attempts? uint8 | |||
| +--rw listen! {http-listen or https-listen}? | +--rw listen! {http-listen or https-listen}? | |||
| +--rw idle-timeout? uint16 | +--rw idle-timeout? uint16 | |||
| +--rw endpoint* [name] | +--rw endpoint* [name] | |||
| +--rw name string | +--rw name string | |||
| +--rw (transport) | +--rw (transport) | |||
| +--:(http) {http-listen}? | +--:(http) {http-listen}? | |||
| | +--rw FIXME | | +--rw http | |||
| | +--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 http-client-parameters | ||||
| | | +--rw client-identity! | ||||
| | | | +--rw (auth-type)? | ||||
| | | | +--:(basic) | ||||
| | | | +--rw basic {basic-auth}? | ||||
| | | | +--rw user-id string | ||||
| | | | +--rw password string | ||||
| | | +--rw proxy-server! {proxy-connect}? | ||||
| | | +--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 http-client-parameters | ||||
| | | +--rw client-identity! | ||||
| | | +--rw (auth-type)? | ||||
| | | +--:(basic) | ||||
| | | +--rw basic {basic-auth}? | ||||
| | | +--rw user-id string | ||||
| | | +--rw password string | ||||
| | +--rw restconf-client-parameters | ||||
| +--:(https) {https-listen}? | +--:(https) {https-listen}? | |||
| +--rw https | +--rw https | |||
| +--rw tcp-server-parameters | +--rw tcp-server-parameters | |||
| | +--rw local-address inet:ip-address | | +--rw local-address inet:ip-address | |||
| | +--rw local-port? inet:port-number | | +--rw local-port? inet:port-number | |||
| | +--rw keepalives! {keepalives-supported}? | | +--rw keepalives! {keepalives-supported}? | |||
| | +--rw idle-time uint16 | | +--rw idle-time uint16 | |||
| | +--rw max-probes uint16 | | +--rw max-probes uint16 | |||
| | +--rw probe-interval uint16 | | +--rw probe-interval uint16 | |||
| +--rw tls-client-parameters | +--rw tls-client-parameters | |||
| | +--rw client-identity | | +--rw client-identity | |||
| | | +--rw (auth-type)? | | | +--rw (auth-type)? | |||
| | | +--:(certificate) | | | +--:(certificate) | |||
| | | | {x509-certificate-auth}? | | | | {x509-certificate-auth}? | |||
| | | | +--rw certificate | | | | +--rw certificate | |||
| | | | +--rw (local-or-keystore) | | | | +--rw (local-or-keystore) | |||
| | | | +--:(local) | | | | +--:(local) | |||
| | | | | {local-definitions-su\ | | | | | {local-definitions-su\ | |||
| \pported}? | \pported}? | |||
| | | | | +--rw local-definition | | | | | +--rw local-definition | |||
| | | | | +--rw algorithm | ||||
| | | | | | iasa:asymmetric-\ | ||||
| \algorithm-type | ||||
| | | | | +--rw public-key-format | | | | | +--rw public-key-format | |||
| | | | | | identityref | | | | | | identityref | |||
| | | | | +--rw public-key | | | | | +--rw public-key | |||
| | | | | | binary | | | | | | binary | |||
| | | | | +--rw private-key-format? | | | | | +--rw private-key-format? | |||
| | | | | | identityref | | | | | | identityref | |||
| | | | | +--rw (private-key-type) | | | | | +--rw (private-key-type) | |||
| | | | | | +--:(private-key) | | | | | | +--:(private-key) | |||
| | | | | | | +--rw private-key? | | | | | | | +--rw private-key? | |||
| | | | | | | binary | | | | | | | binary | |||
| skipping to change at page 57, line 4 ¶ | skipping to change at page 66, line 11 ¶ | |||
| | | | | +--rw cert? | | | | | +--rw cert? | |||
| | | | | | end-entity-cert-\ | | | | | | end-entity-cert-\ | |||
| \cms | \cms | |||
| | | | | +---n certificate-expira\ | | | | | +---n certificate-expira\ | |||
| \tion | \tion | |||
| | | | | | +-- expiration-date | | | | | | +-- expiration-date | |||
| | | | | | yang:date-and\ | | | | | | yang:date-and\ | |||
| \-time | \-time | |||
| | | | | +---x generate-certifica\ | | | | | +---x generate-certifica\ | |||
| \te-signing-request | \te-signing-request | |||
| | | | | {certificate-sig\ | ||||
| \ning-request-generation}? | ||||
| | | | | +---w input | | | | | +---w input | |||
| | | | | | +---w subject | | | | | | +---w subject | |||
| | | | | | | binary | | | | | | | binary | |||
| | | | | | +---w attributes? | | | | | | +---w attributes? | |||
| | | | | | binary | | | | | | binary | |||
| | | | | +--ro output | | | | | +--ro output | |||
| | | | | +--ro certificate-\ | | | | | +--ro certificate-\ | |||
| \signing-request | \signing-request | |||
| | | | | binary | | | | | ct:csr | |||
| | | | +--:(keystore) | | | | +--:(keystore) | |||
| | | | {keystore-supported}? | | | | {keystore-supported}? | |||
| | | | +--rw keystore-reference | | | | +--rw keystore-reference | |||
| | | | +--rw asymmetric-key? | | | | +--rw asymmetric-key? | |||
| | | | | ks:asymmetric-ke\ | | | | | ks:asymmetric-ke\ | |||
| \y-ref | \y-ref | |||
| | | | +--rw certificate? \ | | | | +--rw certificate? \ | |||
| \leafref | \leafref | |||
| | | +--:(raw-public-key) | | | +--:(raw-public-key) | |||
| | | | {raw-public-key-auth}? | | | | {raw-public-key-auth}? | |||
| | | | +--rw raw-private-key | | | | +--rw raw-private-key | |||
| | | | +--rw (local-or-keystore) | | | | +--rw (local-or-keystore) | |||
| | | | +--:(local) | | | | +--:(local) | |||
| | | | | {local-definitions-su\ | | | | | {local-definitions-su\ | |||
| \pported}? | \pported}? | |||
| | | | | +--rw local-definition | | | | | +--rw local-definition | |||
| | | | | +--rw algorithm | ||||
| | | | | | iasa:asymmetric-\ | ||||
| \algorithm-type | ||||
| | | | | +--rw public-key-format | | | | | +--rw public-key-format | |||
| | | | | | identityref | | | | | | identityref | |||
| | | | | +--rw public-key | | | | | +--rw public-key | |||
| | | | | | binary | | | | | | binary | |||
| | | | | +--rw private-key-format? | | | | | +--rw private-key-format? | |||
| | | | | | identityref | | | | | | identityref | |||
| | | | | +--rw (private-key-type) | | | | | +--rw (private-key-type) | |||
| | | | | +--:(private-key) | | | | | +--:(private-key) | |||
| | | | | | +--rw private-key? | | | | | | +--rw private-key? | |||
| | | | | | binary | | | | | | binary | |||
| skipping to change at page 58, line 30 ¶ | skipping to change at page 67, line 36 ¶ | |||
| | | | +--rw keystore-reference? | | | | +--rw keystore-reference? | |||
| | | | ks:asymmetric-key-r\ | | | | ks:asymmetric-key-r\ | |||
| \ef | \ef | |||
| | | +--:(psk) {psk-auth}? | | | +--:(psk) {psk-auth}? | |||
| | | +--rw psk | | | +--rw psk | |||
| | | +--rw (local-or-keystore) | | | +--rw (local-or-keystore) | |||
| | | +--:(local) | | | +--:(local) | |||
| | | | {local-definitions-su\ | | | | {local-definitions-su\ | |||
| \pported}? | \pported}? | |||
| | | | +--rw local-definition | | | | +--rw local-definition | |||
| | | | +--rw algorithm | ||||
| | | | | isa:symmetric-al\ | ||||
| \gorithm-type | ||||
| | | | +--rw key-format? | | | | +--rw key-format? | |||
| | | | | identityref | | | | | identityref | |||
| | | | +--rw (key-type) | | | | +--rw (key-type) | |||
| | | | | +--:(key) | | | | | +--:(key) | |||
| | | | | | +--rw key? | | | | | | +--rw key? | |||
| | | | | | binary | | | | | | binary | |||
| | | | | +--:(hidden-key) | | | | | +--:(hidden-key) | |||
| | | | | | +--rw hidden-key? | | | | | | +--rw hidden-key? | |||
| | | | | | empty | | | | | | empty | |||
| | | | | +--:(encrypted-key) | | | | | +--:(encrypted-key) | |||
| skipping to change at page 59, line 33 ¶ | skipping to change at page 68, line 35 ¶ | |||
| | | | +--:(local) | | | | +--:(local) | |||
| | | | | {local-definitions-supporte\ | | | | | {local-definitions-supporte\ | |||
| \d}? | \d}? | |||
| | | | | +--rw local-definition | | | | | +--rw local-definition | |||
| | | | | +--rw cert* | | | | | +--rw cert* | |||
| | | | | | trust-anchor-cert-cms | | | | | | trust-anchor-cert-cms | |||
| | | | | +---n certificate-expiration | | | | | +---n certificate-expiration | |||
| | | | | +-- expiration-date | | | | | +-- expiration-date | |||
| | | | | yang:date-and-time | | | | | yang:date-and-time | |||
| | | | +--:(truststore) | | | | +--:(truststore) | |||
| | | | {truststore-supported,x509-\ | | | | {truststore-supported,certi\ | |||
| \certificates}? | \ficates}? | |||
| | | | +--rw truststore-reference? | | | | +--rw truststore-reference? | |||
| | | | ts:certificate-bag-ref | | | | ts:certificate-bag-ref | |||
| | | +--rw server-certs! | | | +--rw ee-certs! {x509-certificate-auth}? | |||
| | | | {x509-certificate-auth}? | ||||
| | | | +--rw (local-or-truststore) | | | | +--rw (local-or-truststore) | |||
| | | | +--:(local) | | | | +--:(local) | |||
| | | | | {local-definitions-supporte\ | | | | | {local-definitions-supporte\ | |||
| \d}? | \d}? | |||
| | | | | +--rw local-definition | | | | | +--rw local-definition | |||
| | | | | +--rw cert* | | | | | +--rw cert* | |||
| | | | | | trust-anchor-cert-cms | | | | | | trust-anchor-cert-cms | |||
| | | | | +---n certificate-expiration | | | | | +---n certificate-expiration | |||
| | | | | +-- expiration-date | | | | | +-- expiration-date | |||
| | | | | yang:date-and-time | | | | | yang:date-and-time | |||
| | | | +--:(truststore) | | | | +--:(truststore) | |||
| | | | {truststore-supported,x509-\ | | | | {truststore-supported,certi\ | |||
| \certificates}? | ||||
| \ficates}? | ||||
| | | | +--rw truststore-reference? | | | | +--rw truststore-reference? | |||
| | | | ts:certificate-bag-ref | | | | ts:certificate-bag-ref | |||
| | | +--rw raw-public-keys! | | | +--rw raw-public-keys! | |||
| | | | {raw-public-key-auth}? | | | | {raw-public-key-auth}? | |||
| | | | +--rw (local-or-truststore) | | | | +--rw (local-or-truststore) | |||
| | | | +--:(local) | | | | +--:(local) | |||
| | | | | {local-definitions-supporte\ | | | | | {local-definitions-supporte\ | |||
| \d}? | \d}? | |||
| | | | | +--rw local-definition | | | | | +--rw local-definition | |||
| | | | | +--rw public-key* [name] | | | | | +--rw public-key* [name] | |||
| | | | | +--rw name | | | | | +--rw name | |||
| | | | | | string | | | | | | string | |||
| | | | | +--rw algorithm | ||||
| | | | | | iasa:asymmetric-alg\ | ||||
| \orithm-type | ||||
| | | | | +--rw public-key-format | | | | | +--rw public-key-format | |||
| | | | | | identityref | | | | | | identityref | |||
| | | | | +--rw public-key | | | | | +--rw public-key | |||
| | | | | binary | | | | | binary | |||
| | | | +--:(truststore) | | | | +--:(truststore) | |||
| | | | {truststore-supported,publi\ | | | | {truststore-supported,publi\ | |||
| \c-keys}? | \c-keys}? | |||
| | | | +--rw truststore-reference? | | | | +--rw truststore-reference? | |||
| | | | ts:public-key-bag-ref | | | | ts:public-key-bag-ref | |||
| | | +--rw psks! {psk-auth}? | | | +--rw psks! {psk-auth}? | |||
| | +--rw hello-params | | +--rw hello-params | |||
| | | {tls-client-hello-params-config}? | | | {tls-client-hello-params-config}? | |||
| | | +--rw tls-versions | | | +--rw tls-versions | |||
| | | | +--rw tls-version* identityref | | | | +--rw tls-version* identityref | |||
| | | +--rw cipher-suites | | | +--rw cipher-suites | |||
| | | +--rw cipher-suite* identityref | | | +--rw cipher-suite* identityref | |||
| | +--rw keepalives! {tls-client-keepalives}? | | +--rw keepalives {tls-client-keepalives}? | |||
| | +--rw max-wait? uint16 | | +--rw peer-allowed-to-send? empty | |||
| | +--rw max-attempts? uint8 | | +--rw test-peer-aliveness! | |||
| | +--rw max-wait? uint16 | ||||
| | +--rw max-attempts? uint8 | ||||
| +--rw http-client-parameters | +--rw http-client-parameters | |||
| | +--rw client-identity | | +--rw client-identity! | |||
| | | +--rw (auth-type) | | | +--rw (auth-type)? | |||
| | | +--:(basic) | | | +--:(basic) | |||
| | | +--rw basic {basic-auth}? | | | +--rw basic {basic-auth}? | |||
| | | +--rw user-id string | | | +--rw user-id string | |||
| | | +--rw password string | | | +--rw password string | |||
| | +--rw proxy-server! {proxy-connect}? | | +--rw proxy-server! {proxy-connect}? | |||
| | +--rw tcp-client-parameters | | +--rw tcp-client-parameters | |||
| | | +--rw remote-address inet:host | | | +--rw remote-address inet:host | |||
| | | +--rw remote-port? inet:port-number | | | +--rw remote-port? inet:port-number | |||
| | | +--rw local-address? inet:ip-address | | | +--rw local-address? inet:ip-address | |||
| | | | {local-binding-supported}? | | | | {local-binding-supported}? | |||
| skipping to change at page 61, line 20 ¶ | skipping to change at page 70, line 21 ¶ | |||
| | | +--rw client-identity | | | +--rw client-identity | |||
| | | | +--rw (auth-type)? | | | | +--rw (auth-type)? | |||
| | | | +--:(certificate) | | | | +--:(certificate) | |||
| | | | | {x509-certificate-auth}? | | | | | {x509-certificate-auth}? | |||
| | | | | +--rw certificate | | | | | +--rw certificate | |||
| | | | | +--rw (local-or-keystore) | | | | | +--rw (local-or-keystore) | |||
| | | | | +--:(local) | | | | | +--:(local) | |||
| | | | | | {local-definiti\ | | | | | | {local-definiti\ | |||
| \ons-supported}? | \ons-supported}? | |||
| | | | | | +--rw local-definition | | | | | | +--rw local-definition | |||
| | | | | | +--rw algorithm | ||||
| | | | | | | iasa:asymm\ | ||||
| \etric-algorithm-type | ||||
| | | | | | +--rw public-key-f\ | | | | | | +--rw public-key-f\ | |||
| \ormat | \ormat | |||
| | | | | | | identityref | | | | | | | identityref | |||
| | | | | | +--rw public-key | | | | | | +--rw public-key | |||
| | | | | | | binary | | | | | | | binary | |||
| | | | | | +--rw private-key-\ | | | | | | +--rw private-key-\ | |||
| \format? | \format? | |||
| | | | | | | identityref | | | | | | | identityref | |||
| | | | | | +--rw (private-key\ | | | | | | +--rw (private-key\ | |||
| \-type) | \-type) | |||
| skipping to change at page 62, line 29 ¶ | skipping to change at page 71, line 27 ¶ | |||
| | | | | | | end-entity\ | | | | | | | end-entity\ | |||
| \-cert-cms | \-cert-cms | |||
| | | | | | +---n certificate-\ | | | | | | +---n certificate-\ | |||
| \expiration | \expiration | |||
| | | | | | | +-- expiration-\ | | | | | | | +-- expiration-\ | |||
| \date | \date | |||
| | | | | | | yang:da\ | | | | | | | yang:da\ | |||
| \te-and-time | \te-and-time | |||
| | | | | | +---x generate-cer\ | | | | | | +---x generate-cer\ | |||
| \tificate-signing-request | \tificate-signing-request | |||
| | | | | | {certifica\ | ||||
| \te-signing-request-generation}? | ||||
| | | | | | +---w input | | | | | | +---w input | |||
| | | | | | | +---w subject | | | | | | | +---w subject | |||
| | | | | | | | bina\ | | | | | | | | bina\ | |||
| \ry | \ry | |||
| | | | | | | +---w attrib\ | | | | | | | +---w attrib\ | |||
| \utes? | \utes? | |||
| | | | | | | bina\ | | | | | | | bina\ | |||
| \ry | \ry | |||
| | | | | | +--ro output | | | | | | +--ro output | |||
| | | | | | +--ro certif\ | | | | | | +--ro certif\ | |||
| \icate-signing-request | \icate-signing-request | |||
| | | | | | bina\ | | | | | | ct:c\ | |||
| \ry | \sr | |||
| | | | | +--:(keystore) | | | | | +--:(keystore) | |||
| | | | | {keystore-suppo\ | | | | | {keystore-suppo\ | |||
| \rted}? | \rted}? | |||
| | | | | +--rw keystore-refere\ | | | | | +--rw keystore-refere\ | |||
| \nce | \nce | |||
| | | | | +--rw asymmetric-k\ | | | | | +--rw asymmetric-k\ | |||
| \ey? | \ey? | |||
| | | | | | ks:asymmet\ | | | | | | ks:asymmet\ | |||
| \ric-key-ref | \ric-key-ref | |||
| | | | | +--rw certificate?\ | | | | | +--rw certificate?\ | |||
| \ leafref | \ leafref | |||
| | | | +--:(raw-public-key) | | | | +--:(raw-public-key) | |||
| | | | | {raw-public-key-auth}? | | | | | {raw-public-key-auth}? | |||
| | | | | +--rw raw-private-key | | | | | +--rw raw-private-key | |||
| | | | | +--rw (local-or-keystore) | | | | | +--rw (local-or-keystore) | |||
| | | | | +--:(local) | | | | | +--:(local) | |||
| | | | | | {local-definiti\ | | | | | | {local-definiti\ | |||
| \ons-supported}? | \ons-supported}? | |||
| | | | | | +--rw local-definition | | | | | | +--rw local-definition | |||
| | | | | | +--rw algorithm | ||||
| | | | | | | iasa:asymm\ | ||||
| \etric-algorithm-type | ||||
| | | | | | +--rw public-key-f\ | | | | | | +--rw public-key-f\ | |||
| \ormat | \ormat | |||
| | | | | | | identityref | | | | | | | identityref | |||
| | | | | | +--rw public-key | | | | | | +--rw public-key | |||
| | | | | | | binary | | | | | | | binary | |||
| | | | | | +--rw private-key-\ | | | | | | +--rw private-key-\ | |||
| \format? | \format? | |||
| | | | | | | identityref | | | | | | | identityref | |||
| | | | | | +--rw (private-key\ | | | | | | +--rw (private-key\ | |||
| \-type) | \-type) | |||
| skipping to change at page 64, line 26 ¶ | skipping to change at page 73, line 22 ¶ | |||
| \nce? | \nce? | |||
| | | | | ks:asymmetric\ | | | | | ks:asymmetric\ | |||
| \-key-ref | \-key-ref | |||
| | | | +--:(psk) {psk-auth}? | | | | +--:(psk) {psk-auth}? | |||
| | | | +--rw psk | | | | +--rw psk | |||
| | | | +--rw (local-or-keystore) | | | | +--rw (local-or-keystore) | |||
| | | | +--:(local) | | | | +--:(local) | |||
| | | | | {local-definiti\ | | | | | {local-definiti\ | |||
| \ons-supported}? | \ons-supported}? | |||
| | | | | +--rw local-definition | | | | | +--rw local-definition | |||
| | | | | +--rw algorithm | ||||
| | | | | | isa:symmet\ | ||||
| \ric-algorithm-type | ||||
| | | | | +--rw key-format? | | | | | +--rw key-format? | |||
| | | | | | identityref | | | | | | identityref | |||
| | | | | +--rw (key-type) | | | | | +--rw (key-type) | |||
| | | | | | +--:(key) | | | | | | +--:(key) | |||
| | | | | | | +--rw key? | | | | | | | +--rw key? | |||
| | | | | | | bina\ | | | | | | | bina\ | |||
| \ry | \ry | |||
| | | | | | +--:(hidden-key) | | | | | | +--:(hidden-key) | |||
| | | | | | | +--rw hidden\ | | | | | | | +--rw hidden\ | |||
| \-key? | \-key? | |||
| skipping to change at page 65, line 43 ¶ | skipping to change at page 74, line 37 ¶ | |||
| | | | | | +--rw cert* | | | | | | +--rw cert* | |||
| | | | | | | trust-anchor-cer\ | | | | | | | trust-anchor-cer\ | |||
| \t-cms | \t-cms | |||
| | | | | | +---n certificate-expira\ | | | | | | +---n certificate-expira\ | |||
| \tion | \tion | |||
| | | | | | +-- expiration-date | | | | | | +-- expiration-date | |||
| | | | | | yang:date-and\ | | | | | | yang:date-and\ | |||
| \-time | \-time | |||
| | | | | +--:(truststore) | | | | | +--:(truststore) | |||
| | | | | {truststore-supported\ | | | | | {truststore-supported\ | |||
| \,x509-certificates}? | \,certificates}? | |||
| | | | | +--rw truststore-reference? | | | | | +--rw truststore-reference? | |||
| | | | | ts:certificate-bag-\ | | | | | ts:certificate-bag-\ | |||
| \ref | \ref | |||
| | | | +--rw server-certs! | | | | +--rw ee-certs! | |||
| | | | | {x509-certificate-auth}? | | | | | {x509-certificate-auth}? | |||
| | | | | +--rw (local-or-truststore) | | | | | +--rw (local-or-truststore) | |||
| | | | | +--:(local) | | | | | +--:(local) | |||
| | | | | | {local-definitions-su\ | | | | | | {local-definitions-su\ | |||
| \pported}? | \pported}? | |||
| | | | | | +--rw local-definition | | | | | | +--rw local-definition | |||
| | | | | | +--rw cert* | | | | | | +--rw cert* | |||
| | | | | | | trust-anchor-cer\ | | | | | | | trust-anchor-cer\ | |||
| \t-cms | \t-cms | |||
| | | | | | +---n certificate-expira\ | | | | | | +---n certificate-expira\ | |||
| \tion | \tion | |||
| | | | | | +-- expiration-date | | | | | | +-- expiration-date | |||
| | | | | | yang:date-and\ | | | | | | yang:date-and\ | |||
| \-time | \-time | |||
| | | | | +--:(truststore) | | | | | +--:(truststore) | |||
| | | | | {truststore-supported\ | | | | | {truststore-supported\ | |||
| \,x509-certificates}? | \,certificates}? | |||
| | | | | +--rw truststore-reference? | | | | | +--rw truststore-reference? | |||
| | | | | ts:certificate-bag-\ | | | | | ts:certificate-bag-\ | |||
| \ref | \ref | |||
| | | | +--rw raw-public-keys! | | | | +--rw raw-public-keys! | |||
| | | | | {raw-public-key-auth}? | | | | | {raw-public-key-auth}? | |||
| | | | | +--rw (local-or-truststore) | | | | | +--rw (local-or-truststore) | |||
| | | | | +--:(local) | | | | | +--:(local) | |||
| | | | | | {local-definitions-su\ | | | | | | {local-definitions-su\ | |||
| \pported}? | \pported}? | |||
| | | | | | +--rw local-definition | | | | | | +--rw local-definition | |||
| | | | | | +--rw public-key* [name] | | | | | | +--rw public-key* [name] | |||
| | | | | | +--rw name | | | | | | +--rw name | |||
| | | | | | | string | | | | | | | string | |||
| | | | | | +--rw algorithm | ||||
| | | | | | | iasa:asymmetr\ | ||||
| \ic-algorithm-type | ||||
| | | | | | +--rw public-key-form\ | | | | | | +--rw public-key-form\ | |||
| \at | \at | |||
| | | | | | | identityref | | | | | | | identityref | |||
| | | | | | +--rw public-key | | | | | | +--rw public-key | |||
| | | | | | binary | | | | | | binary | |||
| | | | | +--:(truststore) | | | | | +--:(truststore) | |||
| | | | | {truststore-supported\ | | | | | {truststore-supported\ | |||
| \,public-keys}? | \,public-keys}? | |||
| | | | | +--rw truststore-reference? | | | | | +--rw truststore-reference? | |||
| | | | | ts:public-key-bag-r\ | | | | | ts:public-key-bag-r\ | |||
| \ef | \ef | |||
| | | | +--rw psks! {psk-auth}? | | | | +--rw psks! {psk-auth}? | |||
| | | +--rw hello-params | | | +--rw hello-params | |||
| | | | {tls-client-hello-params-config\ | | | | {tls-client-hello-params-config\ | |||
| \}? | \}? | |||
| | | | +--rw tls-versions | | | | +--rw tls-versions | |||
| | | | | +--rw tls-version* identityref | | | | | +--rw tls-version* identityref | |||
| | | | +--rw cipher-suites | | | | +--rw cipher-suites | |||
| | | | +--rw cipher-suite* identityref | | | | +--rw cipher-suite* identityref | |||
| | | +--rw keepalives! | | | +--rw keepalives | |||
| | | {tls-client-keepalives}? | | | {tls-client-keepalives}? | |||
| | | +--rw max-wait? uint16 | | | +--rw peer-allowed-to-send? empty | |||
| | | +--rw max-attempts? uint8 | | | +--rw test-peer-aliveness! | |||
| | +--rw proxy-client-identity | | | +--rw max-wait? uint16 | |||
| | +--rw (auth-type) | | | +--rw max-attempts? uint8 | |||
| | +--:(basic) | | +--rw http-client-parameters | |||
| | +--rw basic {basic-auth}? | | +--rw client-identity! | |||
| | +--rw user-id string | | +--rw (auth-type)? | |||
| | +--rw password string | | +--:(basic) | |||
| | +--rw basic {basic-auth}? | ||||
| | +--rw user-id string | ||||
| | +--rw password string | ||||
| +--rw restconf-client-parameters | +--rw restconf-client-parameters | |||
| A.2. Expanded Tree Diagram for 'ietf-restconf-server' | A.2. Expanded Tree Diagram for 'ietf-restconf-server' | |||
| The following tree diagram [RFC8340] provides an overview of the data | The following tree diagram [RFC8340] provides an overview of the data | |||
| model for the "ietf-restconf-server" module. | model for the "ietf-restconf-server" module. | |||
| This tree diagram shows all the nodes defined in this module, | This tree diagram shows all the nodes defined in this module, | |||
| including those defined by "grouping" statements used by this module. | including those defined by "grouping" statements used by this module. | |||
| skipping to change at page 67, line 48 ¶ | skipping to change at page 76, line 42 ¶ | |||
| | | | +--rw port? inet:port-number | | | | +--rw port? inet:port-number | |||
| | | +--rw tcp-server-parameters | | | +--rw tcp-server-parameters | |||
| | | | +--rw local-address inet:ip-address | | | | +--rw local-address inet:ip-address | |||
| | | | +--rw local-port? inet:port-number | | | | +--rw local-port? inet:port-number | |||
| | | | +--rw keepalives! {keepalives-supported}? | | | | +--rw keepalives! {keepalives-supported}? | |||
| | | | +--rw idle-time uint16 | | | | +--rw idle-time uint16 | |||
| | | | +--rw max-probes uint16 | | | | +--rw max-probes uint16 | |||
| | | | +--rw probe-interval uint16 | | | | +--rw probe-interval uint16 | |||
| | | +--rw http-server-parameters | | | +--rw http-server-parameters | |||
| | | | +--rw server-name? string | | | | +--rw server-name? string | |||
| | | | +--rw protocol-versions | ||||
| | | | | +--rw protocol-version* enumeration | ||||
| | | | +--rw client-authentication! | | | | +--rw client-authentication! | |||
| | | | {client-auth-config-supported}? | | | | {client-auth-config-supported}? | |||
| | | | +--rw users | | | | +--rw users | |||
| | | | +--rw user* [user-id] | | | | +--rw user* [user-id] | |||
| | | | +--rw user-id string | | | | +--rw user-id string | |||
| | | | +--rw (auth-type)? | | | | +--rw (auth-type)? | |||
| | | | +--:(basic) | | | | +--:(basic) | |||
| | | | +--rw basic {basic-auth}? | | | | +--rw basic {basic-auth}? | |||
| | | | +--rw user-id? string | | | | +--rw user-id? string | |||
| | | | +--rw password? | | | | +--rw password? | |||
| skipping to change at page 68, line 41 ¶ | skipping to change at page 77, line 33 ¶ | |||
| | | +--rw server-identity | | | +--rw server-identity | |||
| | | | +--rw (auth-type) | | | | +--rw (auth-type) | |||
| | | | +--:(certificate) | | | | +--:(certificate) | |||
| | | | | {x509-certificate-auth}? | | | | | {x509-certificate-auth}? | |||
| | | | | +--rw certificate | | | | | +--rw certificate | |||
| | | | | +--rw (local-or-keystore) | | | | | +--rw (local-or-keystore) | |||
| | | | | +--:(local) | | | | | +--:(local) | |||
| | | | | | {local-definitions-su\ | | | | | | {local-definitions-su\ | |||
| \pported}? | \pported}? | |||
| | | | | | +--rw local-definition | | | | | | +--rw local-definition | |||
| | | | | | +--rw algorithm | ||||
| | | | | | | iasa:asymmetric-\ | ||||
| \algorithm-type | ||||
| | | | | | +--rw public-key-format | | | | | | +--rw public-key-format | |||
| | | | | | | identityref | | | | | | | identityref | |||
| | | | | | +--rw public-key | | | | | | +--rw public-key | |||
| | | | | | | binary | | | | | | | binary | |||
| | | | | | +--rw private-key-format? | | | | | | +--rw private-key-format? | |||
| | | | | | | identityref | | | | | | | identityref | |||
| | | | | | +--rw (private-key-type) | | | | | | +--rw (private-key-type) | |||
| | | | | | | +--:(private-key) | | | | | | | +--:(private-key) | |||
| | | | | | | | +--rw private-key? | | | | | | | | +--rw private-key? | |||
| | | | | | | | binary | | | | | | | | binary | |||
| skipping to change at page 69, line 40 ¶ | skipping to change at page 78, line 29 ¶ | |||
| | | | | | +--rw cert? | | | | | | +--rw cert? | |||
| | | | | | | end-entity-cert-\ | | | | | | | end-entity-cert-\ | |||
| \cms | \cms | |||
| | | | | | +---n certificate-expira\ | | | | | | +---n certificate-expira\ | |||
| \tion | \tion | |||
| | | | | | | +-- expiration-date | | | | | | | +-- expiration-date | |||
| | | | | | | yang:date-and\ | | | | | | | yang:date-and\ | |||
| \-time | \-time | |||
| | | | | | +---x generate-certifica\ | | | | | | +---x generate-certifica\ | |||
| \te-signing-request | \te-signing-request | |||
| | | | | | {certificate-sig\ | ||||
| \ning-request-generation}? | ||||
| | | | | | +---w input | | | | | | +---w input | |||
| | | | | | | +---w subject | | | | | | | +---w subject | |||
| | | | | | | | binary | | | | | | | | binary | |||
| | | | | | | +---w attributes? | | | | | | | +---w attributes? | |||
| | | | | | | binary | | | | | | | binary | |||
| | | | | | +--ro output | | | | | | +--ro output | |||
| | | | | | +--ro certificate-\ | | | | | | +--ro certificate-\ | |||
| \signing-request | \signing-request | |||
| | | | | | binary | | | | | | ct:csr | |||
| | | | | +--:(keystore) | | | | | +--:(keystore) | |||
| | | | | {keystore-supported}? | | | | | {keystore-supported}? | |||
| | | | | +--rw keystore-reference | | | | | +--rw keystore-reference | |||
| | | | | +--rw asymmetric-key? | | | | | +--rw asymmetric-key? | |||
| | | | | | ks:asymmetric-ke\ | | | | | | ks:asymmetric-ke\ | |||
| \y-ref | \y-ref | |||
| | | | | +--rw certificate? \ | | | | | +--rw certificate? \ | |||
| \leafref | \leafref | |||
| | | | +--:(raw-private-key) | | | | +--:(raw-private-key) | |||
| | | | | {raw-public-key-auth}? | | | | | {raw-public-key-auth}? | |||
| | | | | +--rw raw-private-key | | | | | +--rw raw-private-key | |||
| | | | | +--rw (local-or-keystore) | | | | | +--rw (local-or-keystore) | |||
| | | | | +--:(local) | | | | | +--:(local) | |||
| | | | | | {local-definitions-su\ | | | | | | {local-definitions-su\ | |||
| \pported}? | \pported}? | |||
| | | | | | +--rw local-definition | | | | | | +--rw local-definition | |||
| | | | | | +--rw algorithm | ||||
| | | | | | | iasa:asymmetric-\ | ||||
| \algorithm-type | ||||
| | | | | | +--rw public-key-format | | | | | | +--rw public-key-format | |||
| | | | | | | identityref | | | | | | | identityref | |||
| | | | | | +--rw public-key | | | | | | +--rw public-key | |||
| | | | | | | binary | | | | | | | binary | |||
| | | | | | +--rw private-key-format? | | | | | | +--rw private-key-format? | |||
| | | | | | | identityref | | | | | | | identityref | |||
| | | | | | +--rw (private-key-type) | | | | | | +--rw (private-key-type) | |||
| | | | | | +--:(private-key) | | | | | | +--:(private-key) | |||
| | | | | | | +--rw private-key? | | | | | | | +--rw private-key? | |||
| | | | | | | binary | | | | | | | binary | |||
| skipping to change at page 71, line 16 ¶ | skipping to change at page 80, line 4 ¶ | |||
| | | | | +--:(keystore) | | | | | +--:(keystore) | |||
| | | | | {keystore-supported}? | | | | | {keystore-supported}? | |||
| | | | | +--rw keystore-reference? | | | | | +--rw keystore-reference? | |||
| | | | | ks:asymmetric-key-r\ | | | | | ks:asymmetric-key-r\ | |||
| \ef | \ef | |||
| | | | +--:(psk) {psk-auth}? | | | | +--:(psk) {psk-auth}? | |||
| | | | +--rw psk | | | | +--rw psk | |||
| | | | +--rw (local-or-keystore) | | | | +--rw (local-or-keystore) | |||
| | | | +--:(local) | | | | +--:(local) | |||
| | | | | {local-definitions-su\ | | | | | {local-definitions-su\ | |||
| \pported}? | \pported}? | |||
| | | | | +--rw local-definition | | | | | +--rw local-definition | |||
| | | | | +--rw algorithm | ||||
| | | | | | isa:symmetric-al\ | ||||
| \gorithm-type | ||||
| | | | | +--rw key-format? | | | | | +--rw key-format? | |||
| | | | | | identityref | | | | | | identityref | |||
| | | | | +--rw (key-type) | | | | | +--rw (key-type) | |||
| | | | | | +--:(key) | | | | | | +--:(key) | |||
| | | | | | | +--rw key? | | | | | | | +--rw key? | |||
| | | | | | | binary | | | | | | | binary | |||
| | | | | | +--:(hidden-key) | | | | | | +--:(hidden-key) | |||
| | | | | | | +--rw hidden-key? | | | | | | | +--rw hidden-key? | |||
| | | | | | | empty | | | | | | | empty | |||
| | | | | | +--:(encrypted-key) | | | | | | +--:(encrypted-key) | |||
| skipping to change at page 72, line 21 ¶ | skipping to change at page 81, line 6 ¶ | |||
| | | | | +--:(local) | | | | | +--:(local) | |||
| | | | | | {local-definitions-supporte\ | | | | | | {local-definitions-supporte\ | |||
| \d}? | \d}? | |||
| | | | | | +--rw local-definition | | | | | | +--rw local-definition | |||
| | | | | | +--rw cert* | | | | | | +--rw cert* | |||
| | | | | | | trust-anchor-cert-cms | | | | | | | trust-anchor-cert-cms | |||
| | | | | | +---n certificate-expiration | | | | | | +---n certificate-expiration | |||
| | | | | | +-- expiration-date | | | | | | +-- expiration-date | |||
| | | | | | yang:date-and-time | | | | | | yang:date-and-time | |||
| | | | | +--:(truststore) | | | | | +--:(truststore) | |||
| | | | | {truststore-supported,x509-\ | | | | | {truststore-supported,certi\ | |||
| \certificates}? | \ficates}? | |||
| | | | | +--rw truststore-reference? | | | | | +--rw truststore-reference? | |||
| | | | | ts:certificate-bag-ref | | | | | ts:certificate-bag-ref | |||
| | | | +--rw client-certs! | | | | +--rw ee-certs! {x509-certificate-auth}? | |||
| | | | | {x509-certificate-auth}? | ||||
| | | | | +--rw (local-or-truststore) | | | | | +--rw (local-or-truststore) | |||
| | | | | +--:(local) | | | | | +--:(local) | |||
| | | | | | {local-definitions-supporte\ | | | | | | {local-definitions-supporte\ | |||
| \d}? | \d}? | |||
| | | | | | +--rw local-definition | | | | | | +--rw local-definition | |||
| | | | | | +--rw cert* | | | | | | +--rw cert* | |||
| | | | | | | trust-anchor-cert-cms | | | | | | | trust-anchor-cert-cms | |||
| | | | | | +---n certificate-expiration | | | | | | +---n certificate-expiration | |||
| | | | | | +-- expiration-date | | | | | | +-- expiration-date | |||
| | | | | | yang:date-and-time | | | | | | yang:date-and-time | |||
| | | | | +--:(truststore) | | | | | +--:(truststore) | |||
| | | | | {truststore-supported,x509-\ | | | | | {truststore-supported,certi\ | |||
| \certificates}? | \ficates}? | |||
| | | | | +--rw truststore-reference? | | | | | +--rw truststore-reference? | |||
| | | | | ts:certificate-bag-ref | | | | | ts:certificate-bag-ref | |||
| | | | +--rw raw-public-keys! | | | | +--rw raw-public-keys! | |||
| | | | | {raw-public-key-auth}? | | | | | {raw-public-key-auth}? | |||
| | | | | +--rw (local-or-truststore) | | | | | +--rw (local-or-truststore) | |||
| | | | | +--:(local) | | | | | +--:(local) | |||
| | | | | | {local-definitions-supporte\ | | | | | | {local-definitions-supporte\ | |||
| \d}? | \d}? | |||
| | | | | | +--rw local-definition | | | | | | +--rw local-definition | |||
| | | | | | +--rw public-key* [name] | | | | | | +--rw public-key* [name] | |||
| | | | | | +--rw name | | | | | | +--rw name | |||
| | | | | | | string | | | | | | | string | |||
| | | | | | +--rw algorithm | ||||
| | | | | | | iasa:asymmetric-alg\ | ||||
| \orithm-type | ||||
| | | | | | +--rw public-key-format | | | | | | +--rw public-key-format | |||
| | | | | | | identityref | | | | | | | identityref | |||
| | | | | | +--rw public-key | | | | | | +--rw public-key | |||
| | | | | | binary | | | | | | binary | |||
| | | | | +--:(truststore) | | | | | +--:(truststore) | |||
| | | | | {truststore-supported,publi\ | | | | | {truststore-supported,publi\ | |||
| \c-keys}? | \c-keys}? | |||
| | | | | +--rw truststore-reference? | | | | | +--rw truststore-reference? | |||
| | | | | ts:public-key-bag-ref | | | | | ts:public-key-bag-ref | |||
| | | | +--rw psks! {psk-auth}? | | | | +--rw psks! {psk-auth}? | |||
| | | +--rw hello-params | | | +--rw hello-params | |||
| | | | {tls-server-hello-params-config}? | | | | {tls-server-hello-params-config}? | |||
| | | | +--rw tls-versions | | | | +--rw tls-versions | |||
| | | | | +--rw tls-version* identityref | | | | | +--rw tls-version* identityref | |||
| | | | +--rw cipher-suites | | | | +--rw cipher-suites | |||
| | | | +--rw cipher-suite* identityref | | | | +--rw cipher-suite* identityref | |||
| | | +--rw keepalives! {tls-server-keepalives}? | | | +--rw keepalives {tls-server-keepalives}? | |||
| | | +--rw max-wait? uint16 | | | +--rw peer-allowed-to-send? empty | |||
| | | +--rw max-attempts? uint8 | | | +--rw test-peer-aliveness! | |||
| | | +--rw max-wait? uint16 | ||||
| | | +--rw max-attempts? uint8 | ||||
| | +--rw http-server-parameters | | +--rw http-server-parameters | |||
| | | +--rw server-name? string | | | +--rw server-name? string | |||
| | | +--rw protocol-versions | ||||
| | | | +--rw protocol-version* enumeration | ||||
| | | +--rw client-authentication! | | | +--rw client-authentication! | |||
| | | {client-auth-config-supported}? | | | {client-auth-config-supported}? | |||
| | | +--rw users | | | +--rw users | |||
| | | +--rw user* [user-id] | | | +--rw user* [user-id] | |||
| | | +--rw user-id string | | | +--rw user-id string | |||
| | | +--rw (auth-type)? | | | +--rw (auth-type)? | |||
| | | +--:(basic) | | | +--:(basic) | |||
| | | +--rw basic {basic-auth}? | | | +--rw basic {basic-auth}? | |||
| | | +--rw user-id? string | | | +--rw user-id? string | |||
| | | +--rw password? | | | +--rw password? | |||
| skipping to change at page 74, line 33 ¶ | skipping to change at page 83, line 14 ¶ | |||
| | | +--rw server-identity | | | +--rw server-identity | |||
| | | | +--rw (auth-type) | | | | +--rw (auth-type) | |||
| | | | +--:(certificate) | | | | +--:(certificate) | |||
| | | | | {x509-certificate-auth}? | | | | | {x509-certificate-auth}? | |||
| | | | | +--rw certificate | | | | | +--rw certificate | |||
| | | | | +--rw (local-or-keystore) | | | | | +--rw (local-or-keystore) | |||
| | | | | +--:(local) | | | | | +--:(local) | |||
| | | | | | {local-definiti\ | | | | | | {local-definiti\ | |||
| \ons-supported}? | \ons-supported}? | |||
| | | | | | +--rw local-definition | | | | | | +--rw local-definition | |||
| | | | | | +--rw algorithm | ||||
| | | | | | | iasa:asymm\ | ||||
| \etric-algorithm-type | ||||
| | | | | | +--rw public-key-f\ | | | | | | +--rw public-key-f\ | |||
| \ormat | \ormat | |||
| | | | | | | identityref | | | | | | | identityref | |||
| | | | | | +--rw public-key | | | | | | +--rw public-key | |||
| | | | | | | binary | | | | | | | binary | |||
| | | | | | +--rw private-key-\ | | | | | | +--rw private-key-\ | |||
| \format? | \format? | |||
| | | | | | | identityref | | | | | | | identityref | |||
| | | | | | +--rw (private-key\ | | | | | | +--rw (private-key\ | |||
| \-type) | \-type) | |||
| skipping to change at page 75, line 26 ¶ | skipping to change at page 84, line 4 ¶ | |||
| \ymmetric-key-ref) | \ymmetric-key-ref) | |||
| | | | | | | | | +--\ | | | | | | | | | +--\ | |||
| \rw symmetric-key-ref? leafref | \rw symmetric-key-ref? leafref | |||
| | | | | | | | | \ | | | | | | | | | \ | |||
| \ {keystore-supported}? | \ {keystore-supported}? | |||
| | | | | | | | +--:(a\ | | | | | | | | +--:(a\ | |||
| \symmetric-key-ref) | \symmetric-key-ref) | |||
| | | | | | | | +--\ | | | | | | | | +--\ | |||
| \rw asymmetric-key-ref? leafref | \rw asymmetric-key-ref? leafref | |||
| | | | | | | | \ | | | | | | | | \ | |||
| \ {keystore-supported}? | \ {keystore-supported}? | |||
| | | | | | | +--rw val\ | | | | | | | +--rw val\ | |||
| \ue? | \ue? | |||
| | | | | | | b\ | | | | | | | b\ | |||
| \inary | \inary | |||
| | | | | | +--rw cert? | | | | | | +--rw cert? | |||
| | | | | | | end-entity\ | | | | | | | end-entity\ | |||
| \-cert-cms | \-cert-cms | |||
| | | | | | +---n certificate-\ | | | | | | +---n certificate-\ | |||
| \expiration | \expiration | |||
| | | | | | | +-- expiration-\ | | | | | | | +-- expiration-\ | |||
| \date | \date | |||
| | | | | | | yang:da\ | | | | | | | yang:da\ | |||
| \te-and-time | \te-and-time | |||
| | | | | | +---x generate-cer\ | | | | | | +---x generate-cer\ | |||
| \tificate-signing-request | \tificate-signing-request | |||
| | | | | | {certifica\ | ||||
| \te-signing-request-generation}? | ||||
| | | | | | +---w input | | | | | | +---w input | |||
| | | | | | | +---w subject | | | | | | | +---w subject | |||
| | | | | | | | bina\ | | | | | | | | bina\ | |||
| \ry | \ry | |||
| | | | | | | +---w attrib\ | | | | | | | +---w attrib\ | |||
| \utes? | \utes? | |||
| | | | | | | bina\ | | | | | | | bina\ | |||
| \ry | \ry | |||
| | | | | | +--ro output | | | | | | +--ro output | |||
| | | | | | +--ro certif\ | | | | | | +--ro certif\ | |||
| skipping to change at page 76, line 4 ¶ | skipping to change at page 84, line 33 ¶ | |||
| | | | | | +---w input | | | | | | +---w input | |||
| | | | | | | +---w subject | | | | | | | +---w subject | |||
| | | | | | | | bina\ | | | | | | | | bina\ | |||
| \ry | \ry | |||
| | | | | | | +---w attrib\ | | | | | | | +---w attrib\ | |||
| \utes? | \utes? | |||
| | | | | | | bina\ | | | | | | | bina\ | |||
| \ry | \ry | |||
| | | | | | +--ro output | | | | | | +--ro output | |||
| | | | | | +--ro certif\ | | | | | | +--ro certif\ | |||
| \icate-signing-request | \icate-signing-request | |||
| | | | | | bina\ | | | | | | ct:c\ | |||
| \ry | \sr | |||
| | | | | +--:(keystore) | | | | | +--:(keystore) | |||
| | | | | {keystore-suppo\ | | | | | {keystore-suppo\ | |||
| \rted}? | \rted}? | |||
| | | | | +--rw keystore-refere\ | | | | | +--rw keystore-refere\ | |||
| \nce | \nce | |||
| | | | | +--rw asymmetric-k\ | | | | | +--rw asymmetric-k\ | |||
| \ey? | \ey? | |||
| | | | | | ks:asymmet\ | | | | | | ks:asymmet\ | |||
| \ric-key-ref | \ric-key-ref | |||
| | | | | +--rw certificate?\ | | | | | +--rw certificate?\ | |||
| skipping to change at page 76, line 25 ¶ | skipping to change at page 85, line 4 ¶ | |||
| | | | | | ks:asymmet\ | | | | | | ks:asymmet\ | |||
| \ric-key-ref | \ric-key-ref | |||
| | | | | +--rw certificate?\ | | | | | +--rw certificate?\ | |||
| \ leafref | \ leafref | |||
| | | | +--:(raw-private-key) | | | | +--:(raw-private-key) | |||
| | | | | {raw-public-key-auth}? | | | | | {raw-public-key-auth}? | |||
| | | | | +--rw raw-private-key | | | | | +--rw raw-private-key | |||
| | | | | +--rw (local-or-keystore) | | | | | +--rw (local-or-keystore) | |||
| | | | | +--:(local) | | | | | +--:(local) | |||
| | | | | | {local-definiti\ | | | | | | {local-definiti\ | |||
| \ons-supported}? | \ons-supported}? | |||
| | | | | | +--rw local-definition | | | | | | +--rw local-definition | |||
| | | | | | +--rw algorithm | ||||
| | | | | | | iasa:asymm\ | ||||
| \etric-algorithm-type | ||||
| | | | | | +--rw public-key-f\ | | | | | | +--rw public-key-f\ | |||
| \ormat | \ormat | |||
| | | | | | | identityref | | | | | | | identityref | |||
| | | | | | +--rw public-key | | | | | | +--rw public-key | |||
| | | | | | | binary | | | | | | | binary | |||
| | | | | | +--rw private-key-\ | | | | | | +--rw private-key-\ | |||
| \format? | \format? | |||
| | | | | | | identityref | | | | | | | identityref | |||
| | | | | | +--rw (private-key\ | | | | | | +--rw (private-key\ | |||
| \-type) | \-type) | |||
| skipping to change at page 77, line 38 ¶ | skipping to change at page 86, line 15 ¶ | |||
| \nce? | \nce? | |||
| | | | | ks:asymmetric\ | | | | | ks:asymmetric\ | |||
| \-key-ref | \-key-ref | |||
| | | | +--:(psk) {psk-auth}? | | | | +--:(psk) {psk-auth}? | |||
| | | | +--rw psk | | | | +--rw psk | |||
| | | | +--rw (local-or-keystore) | | | | +--rw (local-or-keystore) | |||
| | | | +--:(local) | | | | +--:(local) | |||
| | | | | {local-definiti\ | | | | | {local-definiti\ | |||
| \ons-supported}? | \ons-supported}? | |||
| | | | | +--rw local-definition | | | | | +--rw local-definition | |||
| | | | | +--rw algorithm | ||||
| | | | | | isa:symmet\ | ||||
| \ric-algorithm-type | ||||
| | | | | +--rw key-format? | | | | | +--rw key-format? | |||
| | | | | | identityref | | | | | | identityref | |||
| | | | | +--rw (key-type) | | | | | +--rw (key-type) | |||
| | | | | | +--:(key) | | | | | | +--:(key) | |||
| | | | | | | +--rw key? | | | | | | | +--rw key? | |||
| | | | | | | bina\ | | | | | | | bina\ | |||
| \ry | \ry | |||
| | | | | | +--:(hidden-key) | | | | | | +--:(hidden-key) | |||
| | | | | | | +--rw hidden\ | | | | | | | +--rw hidden\ | |||
| \-key? | \-key? | |||
| skipping to change at page 79, line 8 ¶ | skipping to change at page 87, line 30 ¶ | |||
| | | | | | +--rw cert* | | | | | | +--rw cert* | |||
| | | | | | | trust-anchor-cer\ | | | | | | | trust-anchor-cer\ | |||
| \t-cms | \t-cms | |||
| | | | | | +---n certificate-expira\ | | | | | | +---n certificate-expira\ | |||
| \tion | \tion | |||
| | | | | | +-- expiration-date | | | | | | +-- expiration-date | |||
| | | | | | yang:date-and\ | | | | | | yang:date-and\ | |||
| \-time | \-time | |||
| | | | | +--:(truststore) | | | | | +--:(truststore) | |||
| | | | | {truststore-supported\ | | | | | {truststore-supported\ | |||
| \,x509-certificates}? | \,certificates}? | |||
| | | | | +--rw truststore-reference? | | | | | +--rw truststore-reference? | |||
| | | | | ts:certificate-bag-\ | | | | | ts:certificate-bag-\ | |||
| \ref | \ref | |||
| | | | +--rw client-certs! | | | | +--rw ee-certs! | |||
| | | | | {x509-certificate-auth}? | | | | | {x509-certificate-auth}? | |||
| | | | | +--rw (local-or-truststore) | | | | | +--rw (local-or-truststore) | |||
| | | | | +--:(local) | | | | | +--:(local) | |||
| | | | | | {local-definitions-su\ | | | | | | {local-definitions-su\ | |||
| \pported}? | \pported}? | |||
| | | | | | +--rw local-definition | | | | | | +--rw local-definition | |||
| | | | | | +--rw cert* | | | | | | +--rw cert* | |||
| | | | | | | trust-anchor-cer\ | | | | | | | trust-anchor-cer\ | |||
| \t-cms | \t-cms | |||
| | | | | | +---n certificate-expira\ | | | | | | +---n certificate-expira\ | |||
| \tion | \tion | |||
| | | | | | +-- expiration-date | | | | | | +-- expiration-date | |||
| | | | | | yang:date-and\ | | | | | | yang:date-and\ | |||
| \-time | \-time | |||
| | | | | +--:(truststore) | | | | | +--:(truststore) | |||
| | | | | {truststore-supported\ | | | | | {truststore-supported\ | |||
| \,x509-certificates}? | \,certificates}? | |||
| | | | | +--rw truststore-reference? | | | | | +--rw truststore-reference? | |||
| | | | | ts:certificate-bag-\ | | | | | ts:certificate-bag-\ | |||
| \ref | \ref | |||
| | | | +--rw raw-public-keys! | | | | +--rw raw-public-keys! | |||
| | | | | {raw-public-key-auth}? | | | | | {raw-public-key-auth}? | |||
| | | | | +--rw (local-or-truststore) | | | | | +--rw (local-or-truststore) | |||
| | | | | +--:(local) | | | | | +--:(local) | |||
| | | | | | {local-definitions-su\ | | | | | | {local-definitions-su\ | |||
| \pported}? | \pported}? | |||
| | | | | | +--rw local-definition | | | | | | +--rw local-definition | |||
| | | | | | +--rw public-key* [name] | | | | | | +--rw public-key* [name] | |||
| | | | | | +--rw name | | | | | | +--rw name | |||
| | | | | | | string | | | | | | | string | |||
| | | | | | +--rw algorithm | ||||
| | | | | | | iasa:asymmetr\ | ||||
| \ic-algorithm-type | ||||
| | | | | | +--rw public-key-form\ | | | | | | +--rw public-key-form\ | |||
| \at | \at | |||
| | | | | | | identityref | | | | | | | identityref | |||
| | | | | | +--rw public-key | | | | | | +--rw public-key | |||
| | | | | | binary | | | | | | binary | |||
| | | | | +--:(truststore) | | | | | +--:(truststore) | |||
| | | | | {truststore-supported\ | | | | | {truststore-supported\ | |||
| \,public-keys}? | \,public-keys}? | |||
| | | | | +--rw truststore-reference? | | | | | +--rw truststore-reference? | |||
| | | | | ts:public-key-bag-r\ | | | | | ts:public-key-bag-r\ | |||
| \ef | \ef | |||
| | | | +--rw psks! {psk-auth}? | | | | +--rw psks! {psk-auth}? | |||
| | | +--rw hello-params | | | +--rw hello-params | |||
| | | | {tls-server-hello-params-config\ | | | | {tls-server-hello-params-config\ | |||
| \}? | \}? | |||
| | | | +--rw tls-versions | | | | +--rw tls-versions | |||
| | | | | +--rw tls-version* identityref | | | | | +--rw tls-version* identityref | |||
| | | | +--rw cipher-suites | | | | +--rw cipher-suites | |||
| | | | +--rw cipher-suite* identityref | | | | +--rw cipher-suite* identityref | |||
| | | +--rw keepalives! | | | +--rw keepalives | |||
| | | {tls-server-keepalives}? | | | {tls-server-keepalives}? | |||
| | | +--rw max-wait? uint16 | | | +--rw peer-allowed-to-send? empty | |||
| | | +--rw max-attempts? uint8 | | | +--rw test-peer-aliveness! | |||
| | | +--rw max-wait? uint16 | ||||
| | | +--rw max-attempts? uint8 | ||||
| | +--rw http-server-parameters | | +--rw http-server-parameters | |||
| | | +--rw server-name? string | | | +--rw server-name? string | |||
| | | +--rw protocol-versions | ||||
| | | | +--rw protocol-version* enumeration | ||||
| | | +--rw client-authentication! | | | +--rw client-authentication! | |||
| | | {client-auth-config-supported}? | | | {client-auth-config-supported}? | |||
| | | +--rw users | | | +--rw users | |||
| | | +--rw user* [user-id] | | | +--rw user* [user-id] | |||
| | | +--rw user-id string | | | +--rw user-id string | |||
| | | +--rw (auth-type)? | | | +--rw (auth-type)? | |||
| | | +--:(basic) | | | +--:(basic) | |||
| | | +--rw basic {basic-auth}? | | | +--rw basic {basic-auth}? | |||
| | | +--rw user-id? | | | +--rw user-id? | |||
| | | | string | | | | string | |||
| skipping to change at page 85, line 9 ¶ | skipping to change at page 93, line 26 ¶ | |||
| B.17. 16 to 17 | B.17. 16 to 17 | |||
| o 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. | o Updated examples to remove the "required" nodes. | |||
| B.18. 17 to 18 | B.18. 17 to 18 | |||
| o Updated examples to reflect new "bag" addition to truststore. | o Updated examples to reflect new "bag" addition to truststore. | |||
| B.19. 18 to 19 | ||||
| o Updated examples to remove the 'algorithm' nodes. | ||||
| o Updated examples to reflect the new TLS keepalives structure. | ||||
| o Removed the 'protocol-versions' node from the restconf-server | ||||
| examples. | ||||
| o Added a "Note to Reviewers" note to first page. | ||||
| 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 first name): Alan Luchuk, Andy | on list and in the halls (ordered by last name): Andy Bierman, Martin | |||
| Bierman, Balazs Kovacs, Benoit Claise, Bert Wijnen David Lamparter, | Bjorklund, Benoit Claise, Mehmet Ersue, Ramkumar Dhanapal, Balazs | |||
| Juergen Schoenwaelder, Ladislav Lhotka, Martin Bjorklund, Mehmet | Kovacs, Radek Krejci, David Lamparter, Ladislav Lhotka, Alan Luchuk, | |||
| Ersue, Phil Shafer, Radek Krejci, Ramkumar Dhanapal, Sean Turner, and | Tom Petch, Juergen Schoenwaelder, Phil Shafer, Sean Turner, Bert | |||
| Tom Petch. | 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. 164 change blocks. | ||||
| 309 lines changed or deleted | 706 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||