draft-ietf-ospf-yang-19.txt | draft-ietf-ospf-yang-20.txt | |||
---|---|---|---|---|
Internet D. Yeung | Internet D. Yeung | |||
Internet-Draft Arrcus | Internet-Draft Arrcus | |||
Intended status: Standards Track Y. Qu | Intended status: Standards Track Y. Qu | |||
Expires: June 13, 2019 Huawei | Expires: June 22, 2019 Huawei | |||
J. Zhang | J. Zhang | |||
Juniper Networks | Juniper Networks | |||
I. Chen | I. Chen | |||
The MITRE Corporation | The MITRE Corporation | |||
A. Lindem | A. Lindem | |||
Cisco Systems | Cisco Systems | |||
December 10, 2018 | December 19, 2018 | |||
YANG Data Model for OSPF Protocol | YANG Data Model for OSPF Protocol | |||
draft-ietf-ospf-yang-19 | draft-ietf-ospf-yang-20 | |||
Abstract | Abstract | |||
This document defines a YANG data model that can be used to configure | This document defines a YANG data model that can be used to configure | |||
and manage OSPF. The model is based on YANG 1.1 as defined in RFC | and manage OSPF. The model is based on YANG 1.1 as defined in RFC | |||
7950 and conforms to the Network Management Datastore Architecture | 7950 and conforms to the Network Management Datastore Architecture | |||
(NDMA) as described in RFC 8342. | (NDMA) as described in RFC 8342. | |||
Status of This Memo | Status of This Memo | |||
skipping to change at page 1, line 40 ¶ | skipping to change at page 1, line 40 ¶ | |||
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 http://datatracker.ietf.org/drafts/current/. | Drafts is at http://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 June 13, 2019. | This Internet-Draft will expire on June 22, 2019. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 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 | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://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 | |||
skipping to change at page 2, line 23 ¶ | skipping to change at page 2, line 23 ¶ | |||
1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | |||
1.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 3 | 1.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Design of Data Model . . . . . . . . . . . . . . . . . . . . 3 | 2. Design of Data Model . . . . . . . . . . . . . . . . . . . . 3 | |||
2.1. OSPF Operational State . . . . . . . . . . . . . . . . . 3 | 2.1. OSPF Operational State . . . . . . . . . . . . . . . . . 3 | |||
2.2. Overview . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2.2. Overview . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
2.3. OSPFv2 and OSPFv3 . . . . . . . . . . . . . . . . . . . . 5 | 2.3. OSPFv2 and OSPFv3 . . . . . . . . . . . . . . . . . . . . 5 | |||
2.4. Optional Features . . . . . . . . . . . . . . . . . . . . 5 | 2.4. Optional Features . . . . . . . . . . . . . . . . . . . . 5 | |||
2.5. OSPF Router Configuration/Operational State . . . . . . . 7 | 2.5. OSPF Router Configuration/Operational State . . . . . . . 7 | |||
2.6. OSPF Area Configuration/Operational State . . . . . . . . 10 | 2.6. OSPF Area Configuration/Operational State . . . . . . . . 10 | |||
2.7. OSPF Interface Configuration/Operational State . . . . . 15 | 2.7. OSPF Interface Configuration/Operational State . . . . . 16 | |||
2.8. OSPF notification . . . . . . . . . . . . . . . . . . . . 18 | 2.8. OSPF notification . . . . . . . . . . . . . . . . . . . . 19 | |||
2.9. OSPF RPC Operations . . . . . . . . . . . . . . . . . . . 21 | 2.9. OSPF RPC Operations . . . . . . . . . . . . . . . . . . . 22 | |||
3. OSPF YANG Module . . . . . . . . . . . . . . . . . . . . . . 22 | 3. OSPF YANG Module . . . . . . . . . . . . . . . . . . . . . . 23 | |||
4. Security Considerations . . . . . . . . . . . . . . . . . . . 112 | 4. Security Considerations . . . . . . . . . . . . . . . . . . . 115 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 113 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 116 | |||
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 113 | 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 117 | |||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 114 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 117 | |||
7.1. Normative References . . . . . . . . . . . . . . . . . . 114 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 117 | |||
7.2. Informative References . . . . . . . . . . . . . . . . . 119 | 7.2. Informative References . . . . . . . . . . . . . . . . . 122 | |||
Appendix A. Contributors' Addreses . . . . . . . . . . . . . . . 120 | Appendix A. Contributors' Addreses . . . . . . . . . . . . . . . 124 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 120 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 124 | |||
1. Overview | 1. Overview | |||
YANG [RFC6020][RFC7950] is a data definition language used to define | YANG [RFC6020][RFC7950] is a data definition language used to define | |||
the contents of a conceptual data store that allows networked devices | the contents of a conceptual data store that allows networked devices | |||
to be managed using NETCONF [RFC6241]. YANG is proving relevant | to be managed using NETCONF [RFC6241]. YANG is proving relevant | |||
beyond its initial confines, as bindings to other interfaces (e.g., | beyond its initial confines, as bindings to other interfaces (e.g., | |||
ReST) and encodings other than XML (e.g., JSON) are being defined. | ReST) and encodings other than XML (e.g., JSON) are being defined. | |||
Furthermore, YANG data models can be used as the basis for | Furthermore, YANG data models can be used as the basis for | |||
implementation of other interfaces, such as CLI and programmatic | implementation of other interfaces, such as CLI and programmatic | |||
skipping to change at page 6, line 18 ¶ | skipping to change at page 6, line 18 ¶ | |||
12. auto-cost: Support OSPF interface cost calculation according to | 12. auto-cost: Support OSPF interface cost calculation according to | |||
reference bandwidth [RFC2328]. | reference bandwidth [RFC2328]. | |||
13. max-ecmp: Support configuration of the maximum number of Equal- | 13. max-ecmp: Support configuration of the maximum number of Equal- | |||
Cost Multi-Path (ECMP) paths. | Cost Multi-Path (ECMP) paths. | |||
14. max-lsa: Support configuration of the maximum number of LSAs the | 14. max-lsa: Support configuration of the maximum number of LSAs the | |||
OSPF instance will accept [RFC1765]. | OSPF instance will accept [RFC1765]. | |||
15. te-rid: Support configuration of the Traffic Engineering (TE) | 15. te-rid: Support configuration of the Traffic Engineering (TE) | |||
Router-ID [RFC3630], [RFC5329]. | Router-ID, i.e., the Router Address described in Section 2.4.1 | |||
of [RFC3630] or the Router IPv6 Address TLV described in | ||||
Section 3 of [RFC5329]. | ||||
16. ldp-igp-sync: Support LDP IGP synchronization [RFC5443]. | 16. ldp-igp-sync: Support LDP IGP synchronization [RFC5443]. | |||
17. ospfv3-authentication-ipsec: Support IPsec for OSPFv3 | 17. ospfv2-authentication-trailer: Support OSPFv2 Authentication | |||
trailer as specified in [RFC5709] or [RFC7166]. | ||||
18. ospfv3-authentication-ipsec: Support IPsec for OSPFv3 | ||||
authentication [RFC4552]. | authentication [RFC4552]. | |||
18. fast-reroute: Support IP Fast Reroute (IP-FRR) [RFC5714]. | 19. ospfv3-authentication-trailer: Support OSPFv3 Authentication | |||
trailer as specified in [RFC7474]. | ||||
19. node-flag: Support node-flag for OSPF prefixes. [RFC7684]. | 20. fast-reroute: Support IP Fast Reroute (IP-FRR) [RFC5714]. | |||
20. node-tag: Support node admin tag for OSPF instances [RFC7777]. | 21. node-flag: Support node-flag for OSPF prefixes. [RFC7684]. | |||
21. lfa: Support Loop-Free Alternates (LFAs) [RFC5286]. | 22. node-tag: Support node admin tag for OSPF instances [RFC7777]. | |||
22. remote-lfa: Support Remote Loop-Free Alternates (R-LFA) | 23. lfa: Support Loop-Free Alternates (LFAs) [RFC5286]. | |||
24. remote-lfa: Support Remote Loop-Free Alternates (R-LFA) | ||||
[RFC7490]. | [RFC7490]. | |||
23. stub-router: Support RFC 6987 OSPF Stub Router advertisement | 25. stub-router: Support RFC 6987 OSPF Stub Router advertisement | |||
[RFC6987]. | [RFC6987]. | |||
24. pe-ce-protocol: Support OSPF as a PE-CE protocol [RFC4577], | 26. pe-ce-protocol: Support OSPF as a PE-CE protocol [RFC4577], | |||
[RFC6565]. | [RFC6565]. | |||
25. ietf-spf-delay: Support IETF SPF delay algorithm [RFC8405]. | 27. ietf-spf-delay: Support IETF SPF delay algorithm [RFC8405]. | |||
26. bfd: Support BFD detection of OSPF neighbor reachability | 28. bfd: Support BFD detection of OSPF neighbor reachability | |||
[RFC5880], [RFC5881], and [I-D.ietf-bfd-yang]. | [RFC5880], [RFC5881], and [I-D.ietf-bfd-yang]. | |||
27. hygrid-interface: Support OSPF Hybrid Broadcast and Point-to- | 29. hygrid-interface: Support OSPF Hybrid Broadcast and Point-to- | |||
Point Interfaces [RFC6845]. | Point Interfaces [RFC6845]. | |||
28. two-part-metric: Support OSPF Two-Part Metric [RFC8042]. | 30. two-part-metric: Support OSPF Two-Part Metric [RFC8042]. | |||
It is expected that vendors will support additional features through | It is expected that vendors will support additional features through | |||
vendor-specific augmentations. | vendor-specific augmentations. | |||
2.5. OSPF Router Configuration/Operational State | 2.5. OSPF Router Configuration/Operational State | |||
The ospf container is the top level container in this data model. It | The ospf container is the top level container in this data model. It | |||
represents an OSPF protocol engine instance and contains the router | represents an OSPF protocol engine instance and contains the router | |||
level configuration and operational state. The operational state | level configuration and operational state. The operational state | |||
includes the instance statistics, IETF SPF delay statistics, AS- | includes the instance statistics, IETF SPF delay statistics, AS- | |||
skipping to change at page 12, line 44 ¶ | skipping to change at page 13, line 4 ¶ | |||
| | +--rw router-id rt-types:router-id | | | +--rw router-id rt-types:router-id | |||
| | +--rw hello-interval? uint16 | | | +--rw hello-interval? uint16 | |||
| | +--rw dead-interval? uint32 | | | +--rw dead-interval? uint32 | |||
| | +--rw retransmit-interval? uint16 | | | +--rw retransmit-interval? uint16 | |||
| | +--rw transmit-delay? uint16 | | | +--rw transmit-delay? uint16 | |||
| | +--rw lls? boolean {lls}? | | | +--rw lls? boolean {lls}? | |||
| | +--rw ttl-security {ttl-security}? | | | +--rw ttl-security {ttl-security}? | |||
| | | +--rw enable? boolean | | | | +--rw enable? boolean | |||
| | | +--rw hops? uint8 | | | | +--rw hops? uint8 | |||
| | +--rw enable? boolean | | | +--rw enable? boolean | |||
| | {admin-control}? | | | | {admin-control}? | |||
| | +--rw authentication | | | +--rw authentication | |||
| | +--rw (auth-type-selection)? | | | | +--rw (auth-type-selection)? | |||
| | +--:(auth-ipsec) | | | | +--:(ospfv2-auth) | |||
| | {ospfv3-authentication-ipsec}? | | | | | +--rw ospfv2-auth-trailer-rfc? | |||
| | | +--rw sa? string | | | | | | ospfv2-auth-trailer-rfc-version | |||
| | +--:(auth-trailer-key-chain) | | | | | | {ospfv2-authentication-trailer}? | |||
| | | +--rw key-chain? | | | | | +--rw (ospfv2-auth-specification)? | |||
| | key-chain:key-chain-ref | | | | | +--:(auth-key-chain) {key-chain}? | |||
| | +--:(auth-trailer-key) | | | | | | +--rw ospfv2-key-chain? | |||
| | +--rw key? string | | | | | | key-chain:key-chain-ref | |||
| | +--rw crypto-algorithm? identityref | | | | | +--:(auth-key-explicit) | |||
| | | | +--rw ospfv2-key-id? uint32 | ||||
| | | | +--rw ospfv2-key? string | ||||
| | | | +--rw ospfv2-crypto-algorithm? | ||||
| | | | identityref | ||||
| | | +--:(ospfv3-auth-ipsec) | ||||
| | | | {ospfv3-authentication-ipsec}? | ||||
| | | | +--rw sa? string | ||||
| | | +--:(ospfv3-auth-trailer) | ||||
| | | | {ospfv3-authentication-trailer}? | ||||
| | | +--rw (ospfv3-auth-specification)? | ||||
| | | +--:(auth-key-chain) {key-chain}? | ||||
| | | | +--rw ospfv3-key-chain? | ||||
| | | | key-chain:key-chain-ref | ||||
| | | +--:(auth-key-explicit) | ||||
| | | +--rw ospfv3-sa-id? uint16 | ||||
| | | +--rw ospfv3-key? string | ||||
| | | +--rw ospfv3-crypto-algorithm? | ||||
| | | identityref | ||||
| | +--ro cost? uint16 | | | +--ro cost? uint16 | |||
| | +--ro state? if-state-type | | | +--ro state? if-state-type | |||
| | +--ro hello-timer? uint32 | | | +--ro hello-timer? uint32 | |||
| | +--ro wait-timer? uint32 | | | +--ro wait-timer? uint32 | |||
| | +--ro dr-router-id? rt-types:router-id | | | +--ro dr-router-id? rt-types:router-id | |||
| | +--ro dr-ip-addr? inet:ip-address | | | +--ro dr-ip-addr? inet:ip-address | |||
| | +--ro bdr-router-id? rt-types:router-id | | | +--ro bdr-router-id? rt-types:router-id | |||
| | +--ro bdr-ip-addr? inet:ip-address | | | +--ro bdr-ip-addr? inet:ip-address | |||
| | +--ro statistics | | | +--ro statistics | |||
| | | +--ro if-event-count? yang:counter32 | | | | +--ro if-event-count? yang:counter32 | |||
skipping to change at page 14, line 13 ¶ | skipping to change at page 14, line 39 ¶ | |||
| | +--rw remote-id inet:ip-address | | | +--rw remote-id inet:ip-address | |||
| | +--rw hello-interval? uint16 | | | +--rw hello-interval? uint16 | |||
| | +--rw dead-interval? uint32 | | | +--rw dead-interval? uint32 | |||
| | +--rw retransmit-interval? uint16 | | | +--rw retransmit-interval? uint16 | |||
| | +--rw transmit-delay? uint16 | | | +--rw transmit-delay? uint16 | |||
| | +--rw lls? boolean {lls}? | | | +--rw lls? boolean {lls}? | |||
| | +--rw ttl-security {ttl-security}? | | | +--rw ttl-security {ttl-security}? | |||
| | | +--rw enable? boolean | | | | +--rw enable? boolean | |||
| | | +--rw hops? uint8 | | | | +--rw hops? uint8 | |||
| | +--rw enable? boolean | | | +--rw enable? boolean | |||
| | {admin-control}? | | | | {admin-control}? | |||
| | +--rw authentication | | | +--rw authentication | |||
| | | +--rw (auth-type-selection)? | | | | +--rw (auth-type-selection)? | |||
| | | +--:(auth-ipsec) | | | | +--:(ospfv2-auth) | |||
| | | {ospfv3-authentication-ipsec}? | | | | | +--rw ospfv2-auth-trailer-rfc? | |||
| | | | +--rw sa? string | | | | | | ospfv2-auth-trailer-rfc-version | |||
| | | +--:(auth-trailer-key-chain) | | | | | | {ospfv2-authentication-trailer}? | |||
| | | | +--rw key-chain? | | | | | +--rw (ospfv2-auth-specification)? | |||
| | | key-chain:key-chain-ref | | | | | +--:(auth-key-chain) {key-chain}? | |||
| | | +--:(auth-trailer-key) | | | | | | +--rw ospfv2-key-chain? | |||
| | | +--rw key? string | | | | | | key-chain:key-chain-ref | |||
| | | +--rw crypto-algorithm? identityref | | | | | +--:(auth-key-explicit) | |||
| | | | +--rw ospfv2-key-id? uint32 | ||||
| | | | +--rw ospfv2-key? string | ||||
| | | | +--rw ospfv2-crypto-algorithm? | ||||
| | | | identityref | ||||
| | | +--:(ospfv3-auth-ipsec) | ||||
| | | | {ospfv3-authentication-ipsec}? | ||||
| | | | +--rw sa? string | ||||
| | | +--:(ospfv3-auth-trailer) | ||||
| | | | {ospfv3-authentication-trailer}? | ||||
| | | +--rw (ospfv3-auth-specification)? | ||||
| | | +--:(auth-key-chain) {key-chain}? | ||||
| | | | +--rw ospfv3-key-chain? | ||||
| | | | key-chain:key-chain-ref | ||||
| | | +--:(auth-key-explicit) | ||||
| | | +--rw ospfv3-sa-id? uint16 | ||||
| | | +--rw ospfv3-key? string | ||||
| | | +--rw ospfv3-crypto-algorithm? | ||||
| | | identityref | ||||
| | +--rw cost? uint16 | | | +--rw cost? uint16 | |||
| | +--rw mtu-ignore? boolean | | | +--rw mtu-ignore? boolean | |||
| | {mtu-ignore}? | | | {mtu-ignore}? | |||
| | +--rw prefix-suppression? boolean | | | +--rw prefix-suppression? boolean | |||
| | {prefix-suppression}? | | | {prefix-suppression}? | |||
| | +--rw two-part-metric? boolean | | | +--rw two-part-metric? boolean | |||
| | {two-part-metric}? | | | {two-part-metric}? | |||
| | +--ro state? if-state-type | | | +--ro state? if-state-type | |||
| | +--ro hello-timer? uint32 | | | +--ro hello-timer? uint32 | |||
| | +--ro wait-timer? uint32 | | | +--ro wait-timer? uint32 | |||
skipping to change at page 16, line 34 ¶ | skipping to change at page 17, line 30 ¶ | |||
| +--rw retransmit-interval? uint16 | | +--rw retransmit-interval? uint16 | |||
| +--rw transmit-delay? uint16 | | +--rw transmit-delay? uint16 | |||
| +--rw lls? boolean {lls}? | | +--rw lls? boolean {lls}? | |||
| +--rw ttl-security {ttl-security}? | | +--rw ttl-security {ttl-security}? | |||
| | +--rw enable? boolean | | | +--rw enable? boolean | |||
| | +--rw hops? uint8 | | | +--rw hops? uint8 | |||
| +--rw enable? boolean | | +--rw enable? boolean | |||
| {admin-control}? | | {admin-control}? | |||
| +--rw authentication | | +--rw authentication | |||
| | +--rw (auth-type-selection)? | | | +--rw (auth-type-selection)? | |||
| | +--:(auth-ipsec) | | | +--:(ospfv2-auth) | |||
| | | {ospfv3-authentication-ipsec}? | | | | +--rw ospfv2-auth-trailer-rfc? | |||
| | | +--rw sa? string | | | | | ospfv2-auth-trailer-rfc-version | |||
| | +--:(auth-trailer-key-chain) | | | | | {ospfv2-authentication-trailer}? | |||
| | | +--rw key-chain? | | | | +--rw (ospfv2-auth-specification)? | |||
| | | key-chain:key-chain-ref | | | | +--:(auth-key-chain) {key-chain}? | |||
| | +--:(auth-trailer-key) | | | | | +--rw ospfv2-key-chain? | |||
| | +--rw key? string | | | | | key-chain:key-chain-ref | |||
| | +--rw crypto-algorithm? identityref | | | | +--:(auth-key-explicit) | |||
| | | +--rw ospfv2-key-id? uint32 | ||||
| | | +--rw ospfv2-key? string | ||||
| | | +--rw ospfv2-crypto-algorithm? | ||||
| | | identityref | ||||
| | +--:(ospfv3-auth-ipsec) | ||||
| | | {ospfv3-authentication-ipsec}? | ||||
| | | +--rw sa? string | ||||
| | +--:(ospfv3-auth-trailer) | ||||
| | | {ospfv3-authentication-trailer}? | ||||
| | +--rw (ospfv3-auth-specification)? | ||||
| | +--:(auth-key-chain) {key-chain}? | ||||
| | | +--rw ospfv3-key-chain? | ||||
| | | key-chain:key-chain-ref | ||||
| | +--:(auth-key-explicit) | ||||
| | +--rw ospfv3-sa-id? uint16 | ||||
| | +--rw ospfv3-key? string | ||||
| | +--rw ospfv3-crypto-algorithm? | ||||
| | identityref | ||||
| +--rw cost? uint16 | | +--rw cost? uint16 | |||
| +--rw mtu-ignore? boolean | | +--rw mtu-ignore? boolean | |||
| | {mtu-ignore}? | | | {mtu-ignore}? | |||
| +--rw prefix-suppression? boolean | | +--rw prefix-suppression? boolean | |||
| | {prefix-suppression}? | | | {prefix-suppression}? | |||
| +--ro state? if-state-type | | +--ro state? if-state-type | |||
| +--ro hello-timer? uint32 | | +--ro hello-timer? uint32 | |||
| +--ro wait-timer? uint32 | | +--ro wait-timer? uint32 | |||
| +--ro dr-router-id? rt-types:router-id | | +--ro dr-router-id? rt-types:router-id | |||
| +--ro dr-ip-addr? inet:ip-address | | +--ro dr-ip-addr? inet:ip-address | |||
skipping to change at page 22, line 23 ¶ | skipping to change at page 23, line 25 ¶ | |||
+---w input | +---w input | |||
+---w routing-protocol-name | +---w routing-protocol-name | |||
-> /rt:routing/control-plane-protocols/ | -> /rt:routing/control-plane-protocols/ | |||
control-plane-protocol/name | control-plane-protocol/name | |||
3. OSPF YANG Module | 3. OSPF YANG Module | |||
The following RFCs and drafts are not referenced in the document text | The following RFCs and drafts are not referenced in the document text | |||
but are referenced in the ietf-ospf.yang module: [RFC0905], | but are referenced in the ietf-ospf.yang module: [RFC0905], | |||
[RFC4576], [RFC4973], [RFC5250], [RFC5309], [RFC5642], [RFC5881], | [RFC4576], [RFC4973], [RFC5250], [RFC5309], [RFC5642], [RFC5881], | |||
[RFC6991], [RFC7770], and [RFC8294]. | [RFC6991], [RFC7770], [RFC8294], and [RFC8476]. | |||
<CODE BEGINS> file "ietf-ospf@2018-12-10.yang" | <CODE BEGINS> file "ietf-ospf@2018-12-16.yang" | |||
module ietf-ospf { | module ietf-ospf { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-ospf"; | namespace "urn:ietf:params:xml:ns:yang:ietf-ospf"; | |||
prefix ospf; | prefix ospf; | |||
import ietf-inet-types { | import ietf-inet-types { | |||
prefix "inet"; | prefix "inet"; | |||
reference "RFC 6991 - Common YANG Data Types"; | reference "RFC 6991 - Common YANG Data Types"; | |||
} | } | |||
skipping to change at page 24, line 26 ¶ | skipping to change at page 25, line 29 ¶ | |||
Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
Relating to IETF Documents | Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info). | (http://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 XXXX; | |||
see the RFC itself for full legal notices."; | see the RFC itself for full legal notices."; | |||
revision 2018-12-10 { | revision 2018-12-16 { | |||
description | description | |||
"Initial revision."; | "Initial revision."; | |||
reference | reference | |||
"RFC XXXX: A YANG Data Model for OSPF."; | "RFC XXXX: A YANG Data Model for OSPF."; | |||
} | } | |||
feature multi-topology { | feature multi-topology { | |||
description | description | |||
"Support Multiple-Topology Routing (MTR)."; | "Support Multiple-Topology Routing (MTR)."; | |||
reference "RFC 4915 - Multi-Topology Routing"; | reference "RFC 4915 - Multi-Topology Routing"; | |||
skipping to change at page 26, line 29 ¶ | skipping to change at page 27, line 30 ¶ | |||
feature max-lsa { | feature max-lsa { | |||
description | description | |||
"Setting the maximum number of LSAs the OSPF instance | "Setting the maximum number of LSAs the OSPF instance | |||
will accept."; | will accept."; | |||
reference "RFC 1765 - OSPF Database Overload"; | reference "RFC 1765 - OSPF Database Overload"; | |||
} | } | |||
feature te-rid { | feature te-rid { | |||
description | description | |||
"TE Router-ID."; | "Support configuration of the Traffic Engineering (TE) | |||
Router-ID, i.e., the Router Address described in Section | ||||
2.4.1 of RFC3630 or the Router IPv6 Address TLV described | ||||
in Section 3 of RFC5329."; | ||||
reference "RFC 3630 - Traffic Engineering (TE) Extensions | reference "RFC 3630 - Traffic Engineering (TE) Extensions | |||
to OSPF Version 2 | to OSPF Version 2 | |||
RFC 5329 - Traffic Engineering (TE) Extensions | RFC 5329 - Traffic Engineering (TE) Extensions | |||
to OSPF Version 3"; | to OSPF Version 3"; | |||
} | } | |||
feature ldp-igp-sync { | feature ldp-igp-sync { | |||
description | description | |||
"LDP IGP synchronization."; | "LDP IGP synchronization."; | |||
reference "RFC 5443 - LDP IGP Synchronization"; | reference "RFC 5443 - LDP IGP Synchronization"; | |||
} | } | |||
feature ospfv2-authentication-trailer { | ||||
description | ||||
"Use OSPFv2 authentication trailer for OSPFv2 | ||||
authentication."; | ||||
reference "RFC 5709 - Supporting Authentication | ||||
Trailer for OSPFv2 | ||||
RFC 7474 - Security Extension for OSPFv2 When | ||||
Using Manual Key Management"; | ||||
} | ||||
feature ospfv3-authentication-ipsec { | feature ospfv3-authentication-ipsec { | |||
description | description | |||
"Use IPsec for OSPFv3 authentication."; | "Use IPsec for OSPFv3 authentication."; | |||
reference "RFC 4552 - Authentication/Confidentiality | reference "RFC 4552 - Authentication/Confidentiality | |||
for OSPFv3"; | for OSPFv3"; | |||
} | } | |||
feature ospfv3-authentication-trailer { | ||||
description | ||||
"Use OSPFv3 authentication trailer for OSPFv3 | ||||
authenticatiom."; | ||||
reference "RFC 7166 - Supporting Authentication | ||||
Trailer for OSPFv3"; | ||||
} | ||||
feature fast-reroute { | feature fast-reroute { | |||
description | description | |||
"Support for IP Fast Reroute (IP-FRR)."; | "Support for IP Fast Reroute (IP-FRR)."; | |||
reference "RFC 5714 - IP Fast Reroute Framework"; | reference "RFC 5714 - IP Fast Reroute Framework"; | |||
} | } | |||
feature key-chain { | feature key-chain { | |||
description | description | |||
"Support of keychain for authentication."; | "Support of keychain for authentication."; | |||
reference "RFC8177 - YANG Data Model for Key Chains"; | reference "RFC8177 - YANG Data Model for Key Chains"; | |||
} | } | |||
feature node-flag { | feature node-flag { | |||
skipping to change at page 39, line 41 ¶ | skipping to change at page 41, line 17 ¶ | |||
typedef fletcher-checksum16-type { | typedef fletcher-checksum16-type { | |||
type string { | type string { | |||
pattern '(0x)?[0-9a-fA-F]{4}'; | pattern '(0x)?[0-9a-fA-F]{4}'; | |||
} | } | |||
description | description | |||
"Fletcher 16-bit checksum in hex-string format 0xXXXX."; | "Fletcher 16-bit checksum in hex-string format 0xXXXX."; | |||
reference "RFC 905 - ISO Transport Protocol specification | reference "RFC 905 - ISO Transport Protocol specification | |||
ISO DP 8073"; | ISO DP 8073"; | |||
} | } | |||
typedef ospfv2-auth-trailer-rfc-version { | ||||
type enumeration { | ||||
enum rfc5709 { | ||||
description | ||||
"Support OSPF Authentication Trailer as | ||||
described in RFC 5709"; | ||||
reference "RFC 5709 - OSPFv2 HMAC-SHA Cryptographic | ||||
Authentication"; | ||||
} | ||||
enum rfc7474 { | ||||
description | ||||
"Support OSPF Authentication Trailer as | ||||
described in RFC 7474"; | ||||
reference | ||||
"RFC 7474 - Security Extension for OSPFv2 | ||||
When Using Manual Key Management Authentication"; | ||||
} | ||||
} | ||||
description | ||||
"OSPFv2 Authentication Trailer Support"; | ||||
} | ||||
grouping tlv { | grouping tlv { | |||
description | description | |||
"Type-Length-Value (TLV)"; | "Type-Length-Value (TLV)"; | |||
leaf type { | leaf type { | |||
type uint16; | type uint16; | |||
description "TLV type."; | description "TLV type."; | |||
} | } | |||
leaf length { | leaf length { | |||
type uint16; | type uint16; | |||
description "TLV length (octets)."; | description "TLV length (octets)."; | |||
skipping to change at page 74, line 18 ¶ | skipping to change at page 76, line 18 ¶ | |||
type boolean; | type boolean; | |||
default true; | default true; | |||
description | description | |||
"Enable/disable OSPF protocol on the interface."; | "Enable/disable OSPF protocol on the interface."; | |||
} | } | |||
container authentication { | container authentication { | |||
description "Authentication configuration."; | description "Authentication configuration."; | |||
choice auth-type-selection { | choice auth-type-selection { | |||
description | description | |||
"Options for OSPFv3 authentication configuration."; | "Options for OSPFv2/OSPFv3 authentication | |||
case auth-ipsec { | configuration."; | |||
case ospfv2-auth { | ||||
when "derived-from-or-self(../../../../../../rt:type, " | ||||
+ "'ospf:ospfv2')" { | ||||
description "Applied to OSPFv2 only."; | ||||
} | ||||
leaf ospfv2-auth-trailer-rfc { | ||||
if-feature ospfv2-authentication-trailer; | ||||
type ospfv2-auth-trailer-rfc-version; | ||||
description | ||||
"Version of OSFPv2 authentication trailer support - | ||||
RFC 5709 or RFC 7474"; | ||||
} | ||||
choice ospfv2-auth-specification { | ||||
description | ||||
"Key chain or explicit key parameter specification"; | ||||
case auth-key-chain { | ||||
if-feature key-chain; | ||||
leaf ospfv2-key-chain { | ||||
type key-chain:key-chain-ref; | ||||
description | ||||
"key-chain name."; | ||||
} | ||||
} | ||||
case auth-key-explicit { | ||||
leaf ospfv2-key-id { | ||||
type uint32; | ||||
description | ||||
"Key Identifier"; | ||||
} | ||||
leaf ospfv2-key { | ||||
type string; | ||||
description | ||||
"Key string in ASCII format."; | ||||
} | ||||
leaf ospfv2-crypto-algorithm { | ||||
type identityref { | ||||
base key-chain:crypto-algorithm; | ||||
} | ||||
description | ||||
"Cryptographic algorithm associated with key."; | ||||
} | ||||
} | ||||
} | ||||
} | ||||
case ospfv3-auth-ipsec { | ||||
when "derived-from-or-self(../../../../../../rt:type, " | when "derived-from-or-self(../../../../../../rt:type, " | |||
+ "'ospf:ospfv3')" { | + "'ospf:ospfv3')" { | |||
description "Applied to OSPFv3 only."; | description "Applied to OSPFv3 only."; | |||
} | } | |||
if-feature ospfv3-authentication-ipsec; | if-feature ospfv3-authentication-ipsec; | |||
leaf sa { | leaf sa { | |||
type string; | type string; | |||
description | description | |||
"Security Association (SA) name."; | "Security Association (SA) name."; | |||
} | } | |||
} | } | |||
case auth-trailer-key-chain { | case ospfv3-auth-trailer { | |||
if-feature key-chain; | when "derived-from-or-self(../../../../../../rt:type, " | |||
leaf key-chain { | + "'ospf:ospfv3')" { | |||
type key-chain:key-chain-ref; | description "Applied to OSPFv3 only."; | |||
description | ||||
"key-chain name."; | ||||
} | ||||
} | } | |||
case auth-trailer-key { | if-feature ospfv3-authentication-trailer; | |||
leaf key { | choice ospfv3-auth-specification { | |||
type string; | ||||
description | description | |||
"Key string in ASCII format."; | "Key chain or explicit key parameter specification"; | |||
} | case auth-key-chain { | |||
leaf crypto-algorithm { | if-feature key-chain; | |||
type identityref { | leaf ospfv3-key-chain { | |||
base key-chain:crypto-algorithm; | type key-chain:key-chain-ref; | |||
description | ||||
"key-chain name."; | ||||
} | ||||
} | ||||
case auth-key-explicit { | ||||
leaf ospfv3-sa-id { | ||||
type uint16; | ||||
description | ||||
"Security Association (SA) Identifier"; | ||||
} | ||||
leaf ospfv3-key { | ||||
type string; | ||||
description | ||||
"Key string in ASCII format."; | ||||
} | ||||
leaf ospfv3-crypto-algorithm { | ||||
type identityref { | ||||
base key-chain:crypto-algorithm; | ||||
} | ||||
description | ||||
"Cryptographic algorithm associated with key."; | ||||
} | ||||
} | } | |||
description | ||||
"Cryptographic algorithm associated with key."; | ||||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
grouping interface-config { | grouping interface-config { | |||
description "Configuration for real interfaces."; | description "Configuration for real interfaces."; | |||
leaf interface-type { | leaf interface-type { | |||
type enumeration { | type enumeration { | |||
enum "broadcast" { | enum "broadcast" { | |||
skipping to change at page 116, line 33 ¶ | skipping to change at page 119, line 42 ¶ | |||
[RFC5642] Venkata, S., Harwani, S., Pignataro, C., and D. McPherson, | [RFC5642] Venkata, S., Harwani, S., Pignataro, C., and D. McPherson, | |||
"Dynamic Hostname Exchange Mechanism for OSPF", RFC 5642, | "Dynamic Hostname Exchange Mechanism for OSPF", RFC 5642, | |||
DOI 10.17487/RFC5642, August 2009, <https://www.rfc- | DOI 10.17487/RFC5642, August 2009, <https://www.rfc- | |||
editor.org/info/rfc5642>. | editor.org/info/rfc5642>. | |||
[RFC5643] Joyal, D., Ed. and V. Manral, Ed., "Management Information | [RFC5643] Joyal, D., Ed. and V. Manral, Ed., "Management Information | |||
Base for OSPFv3", RFC 5643, DOI 10.17487/RFC5643, August | Base for OSPFv3", RFC 5643, DOI 10.17487/RFC5643, August | |||
2009, <https://www.rfc-editor.org/info/rfc5643>. | 2009, <https://www.rfc-editor.org/info/rfc5643>. | |||
[RFC5709] Bhatia, M., Manral, V., Fanto, M., White, R., Barnes, M., | ||||
Li, T., and R. Atkinson, "OSPFv2 HMAC-SHA Cryptographic | ||||
Authentication", RFC 5709, DOI 10.17487/RFC5709, October | ||||
2009, <https://www.rfc-editor.org/info/rfc5709>. | ||||
[RFC5838] Lindem, A., Ed., Mirtorabi, S., Roy, A., Barnes, M., and | [RFC5838] Lindem, A., Ed., Mirtorabi, S., Roy, A., Barnes, M., and | |||
R. Aggarwal, "Support of Address Families in OSPFv3", | R. Aggarwal, "Support of Address Families in OSPFv3", | |||
RFC 5838, DOI 10.17487/RFC5838, April 2010, | RFC 5838, DOI 10.17487/RFC5838, April 2010, | |||
<https://www.rfc-editor.org/info/rfc5838>. | <https://www.rfc-editor.org/info/rfc5838>. | |||
[RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | |||
(BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, | (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, | |||
<https://www.rfc-editor.org/info/rfc5880>. | <https://www.rfc-editor.org/info/rfc5880>. | |||
[RFC5881] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | [RFC5881] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | |||
skipping to change at page 117, line 32 ¶ | skipping to change at page 120, line 46 ¶ | |||
editor.org/info/rfc6845>. | editor.org/info/rfc6845>. | |||
[RFC6860] Yang, Y., Retana, A., and A. Roy, "Hiding Transit-Only | [RFC6860] Yang, Y., Retana, A., and A. Roy, "Hiding Transit-Only | |||
Networks in OSPF", RFC 6860, DOI 10.17487/RFC6860, January | Networks in OSPF", RFC 6860, DOI 10.17487/RFC6860, January | |||
2013, <https://www.rfc-editor.org/info/rfc6860>. | 2013, <https://www.rfc-editor.org/info/rfc6860>. | |||
[RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", | [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", | |||
RFC 6991, DOI 10.17487/RFC6991, July 2013, | RFC 6991, DOI 10.17487/RFC6991, July 2013, | |||
<https://www.rfc-editor.org/info/rfc6991>. | <https://www.rfc-editor.org/info/rfc6991>. | |||
[RFC7166] Bhatia, M., Manral, V., and A. Lindem, "Supporting | ||||
Authentication Trailer for OSPFv3", RFC 7166, | ||||
DOI 10.17487/RFC7166, March 2014, <https://www.rfc- | ||||
editor.org/info/rfc7166>. | ||||
[RFC7474] Bhatia, M., Hartman, S., Zhang, D., and A. Lindem, Ed., | ||||
"Security Extension for OSPFv2 When Using Manual Key | ||||
Management", RFC 7474, DOI 10.17487/RFC7474, April 2015, | ||||
<https://www.rfc-editor.org/info/rfc7474>. | ||||
[RFC7490] Bryant, S., Filsfils, C., Previdi, S., Shand, M., and N. | [RFC7490] Bryant, S., Filsfils, C., Previdi, S., Shand, M., and N. | |||
So, "Remote Loop-Free Alternate (LFA) Fast Reroute (FRR)", | So, "Remote Loop-Free Alternate (LFA) Fast Reroute (FRR)", | |||
RFC 7490, DOI 10.17487/RFC7490, April 2015, | RFC 7490, DOI 10.17487/RFC7490, April 2015, | |||
<https://www.rfc-editor.org/info/rfc7490>. | <https://www.rfc-editor.org/info/rfc7490>. | |||
[RFC7684] Psenak, P., Gredler, H., Shakir, R., Henderickx, W., | [RFC7684] Psenak, P., Gredler, H., Shakir, R., Henderickx, W., | |||
Tantsura, J., and A. Lindem, "OSPFv2 Prefix/Link Attribute | Tantsura, J., and A. Lindem, "OSPFv2 Prefix/Link Attribute | |||
Advertisement", RFC 7684, DOI 10.17487/RFC7684, November | Advertisement", RFC 7684, DOI 10.17487/RFC7684, November | |||
2015, <https://www.rfc-editor.org/info/rfc7684>. | 2015, <https://www.rfc-editor.org/info/rfc7684>. | |||
skipping to change at page 119, line 15 ¶ | skipping to change at page 122, line 43 ¶ | |||
[RFC8405] Decraene, B., Litkowski, S., Gredler, H., Lindem, A., | [RFC8405] Decraene, B., Litkowski, S., Gredler, H., Lindem, A., | |||
Francois, P., and C. Bowers, "Shortest Path First (SPF) | Francois, P., and C. Bowers, "Shortest Path First (SPF) | |||
Back-Off Delay Algorithm for Link-State IGPs", RFC 8405, | Back-Off Delay Algorithm for Link-State IGPs", RFC 8405, | |||
DOI 10.17487/RFC8405, June 2018, <https://www.rfc- | DOI 10.17487/RFC8405, June 2018, <https://www.rfc- | |||
editor.org/info/rfc8405>. | editor.org/info/rfc8405>. | |||
[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>. | |||
[RFC8476] Tantsura, J., Chunduri, U., Aldrin, S., and P. Psenak, | ||||
"Signaling Maximum SID Depth (MSD) Using OSPF", RFC 8476, | ||||
DOI 10.17487/RFC8476, December 2018, <https://www.rfc- | ||||
editor.org/info/rfc8476>. | ||||
7.2. Informative References | 7.2. Informative References | |||
[RFC0905] "ISO Transport Protocol specification ISO DP 8073", | [RFC0905] "ISO Transport Protocol specification ISO DP 8073", | |||
RFC 905, DOI 10.17487/RFC0905, April 1984, | RFC 905, DOI 10.17487/RFC0905, April 1984, | |||
<https://www.rfc-editor.org/info/rfc905>. | <https://www.rfc-editor.org/info/rfc905>. | |||
[RFC1765] Moy, J., "OSPF Database Overflow", RFC 1765, | [RFC1765] Moy, J., "OSPF Database Overflow", RFC 1765, | |||
DOI 10.17487/RFC1765, March 1995, <https://www.rfc- | DOI 10.17487/RFC1765, March 1995, <https://www.rfc- | |||
editor.org/info/rfc1765>. | editor.org/info/rfc1765>. | |||
End of changes. 40 change blocks. | ||||
84 lines changed or deleted | 271 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |