rfc9129.txt | rfc9129-13Oct2021.txt | |||
---|---|---|---|---|
skipping to change at line 12 ¶ | skipping to change at line 12 ¶ | |||
Internet Engineering Task Force (IETF) D. Yeung | Internet Engineering Task Force (IETF) D. Yeung | |||
Request for Comments: 9129 Arrcus | Request for Comments: 9129 Arrcus | |||
Category: Standards Track Y. Qu | Category: Standards Track Y. Qu | |||
ISSN: 2070-1721 Futurewei | ISSN: 2070-1721 Futurewei | |||
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 | |||
November 2021 | October 2021 | |||
YANG Data Model for the OSPF Protocol | YANG Data Model for the OSPF Protocol | |||
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 | |||
(NMDA) as described in RFC 8342. | (NMDA) as described in RFC 8342. | |||
skipping to change at line 292 ¶ | skipping to change at line 292 ¶ | |||
stub-router: Support for OSPF stub router advertisements [RFC6987]. | stub-router: Support for OSPF stub router advertisements [RFC6987]. | |||
pe-ce-protocol: Support for OSPF as a PE-CE protocol [RFC4577] | pe-ce-protocol: Support for OSPF as a PE-CE protocol [RFC4577] | |||
[RFC6565]. | [RFC6565]. | |||
ietf-spf-delay: Support for the IETF Shortest Path First (SPF) delay | ietf-spf-delay: Support for the IETF Shortest Path First (SPF) delay | |||
algorithm [RFC8405]. | algorithm [RFC8405]. | |||
bfd: Support for Bidirectional Forwarding Detection (BFD) to detect | bfd: Support for Bidirectional Forwarding Detection (BFD) to detect | |||
OSPF neighbor reachability [RFC5880] [RFC5881]. | OSPF neighbor reachability [RFC5880] [RFC5881] [RFC9127]. | |||
bfd-client-cfg: Support for Bidirectional Forwarding Detection (BFD) | ||||
configuration of client parameters [RFC9127]. | ||||
hybrid-interface: Support for OSPF hybrid broadcast and point-to- | hybrid-interface: Support for OSPF hybrid broadcast and point-to- | |||
multipoint interfaces [RFC6845]. | multipoint interfaces [RFC6845]. | |||
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. | The "ospf" container is the top-level container in this data model. | |||
skipping to change at line 338 ¶ | skipping to change at line 335 ¶ | |||
| | +--:(detail) | | | +--:(detail) | |||
| | | +--rw intra-area? uint8 | | | | +--rw intra-area? uint8 | |||
| | | +--rw inter-area? uint8 | | | | +--rw inter-area? uint8 | |||
| | +--:(coarse) | | | +--:(coarse) | |||
| | +--rw internal? uint8 | | | +--rw internal? uint8 | |||
| +--rw external? uint8 | | +--rw external? uint8 | |||
+--rw nsr {nsr}? | +--rw nsr {nsr}? | |||
| +--rw enabled? boolean | | +--rw enabled? boolean | |||
+--rw graceful-restart {graceful-restart}? | +--rw graceful-restart {graceful-restart}? | |||
| +--rw enabled? boolean | | +--rw enabled? boolean | |||
| +--rw helper-enabled? boolean | | +--rw helper-enable? boolean | |||
| +--rw restart-interval? uint16 | | +--rw restart-interval? uint16 | |||
| +--rw helper-strict-lsa-checking? boolean | | +--rw helper-strict-lsa-checking? boolean | |||
+--rw auto-cost {auto-cost}? | +--rw auto-cost {auto-cost}? | |||
| +--rw enabled? boolean | | +--rw enabled? boolean | |||
| +--rw reference-bandwidth? uint32 | | +--rw reference-bandwidth? uint32 | |||
+--rw spf-control | +--rw spf-control | |||
| +--rw paths? uint16 {max-ecmp}? | | +--rw paths? uint16 {max-ecmp}? | |||
| +--rw ietf-spf-delay {ietf-spf-delay}? | | +--rw ietf-spf-delay {ietf-spf-delay}? | |||
| +--rw initial-delay? uint16 | | +--rw initial-delay? uint16 | |||
| +--rw short-delay? uint16 | | +--rw short-delay? uint16 | |||
skipping to change at line 799 ¶ | skipping to change at line 796 ¶ | |||
| +--rw static-neighbors | | +--rw static-neighbors | |||
| | +--rw neighbor* [identifier] | | | +--rw neighbor* [identifier] | |||
| | +--rw identifier inet:ip-address | | | +--rw identifier inet:ip-address | |||
| | +--rw cost? uint16 | | | +--rw cost? uint16 | |||
| | +--rw poll-interval? uint16 | | | +--rw poll-interval? uint16 | |||
| | +--rw priority? uint8 | | | +--rw priority? uint8 | |||
| +--rw node-flag? boolean | | +--rw node-flag? boolean | |||
| {node-flag}? | | {node-flag}? | |||
| +--rw bfd {bfd}? | | +--rw bfd {bfd}? | |||
| | +--rw enabled? boolean | | | +--rw enabled? boolean | |||
| | +--rw bfd-client-parms {bfd-client-cfg}? | ||||
| | +--rw local-multiplier? multiplier | ||||
| | +--rw (interval-config-type)? | ||||
| | +--:(tx-rx-intervals) | ||||
| | | +--rw desired-min-tx-interval? | ||||
| | | uint32 | ||||
| | | +--rw required-min-rx-interval? | ||||
| | | uint32 | ||||
| | +--:(single-interval) | ||||
| | {single-minimum-interval}? | ||||
| | +--rw min-interval? uint32 | ||||
| +--rw fast-reroute {fast-reroute}? | | +--rw fast-reroute {fast-reroute}? | |||
| | +--rw lfa {lfa}? | | | +--rw lfa {lfa}? | |||
| | +--rw candidate-enabled? boolean | | | +--rw candidate-enable? boolean | |||
| | +--rw enabled? boolean | | | +--rw enabled? boolean | |||
| | +--rw remote-lfa {remote-lfa}? | | | +--rw remote-lfa {remote-lfa}? | |||
| | +--rw enabled? boolean | | | +--rw enabled? boolean | |||
| +--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 enabled? boolean | | | +--rw enabled? boolean | |||
skipping to change at line 1457 ¶ | skipping to change at line 1443 ¶ | |||
feature bfd { | feature bfd { | |||
description | description | |||
"Support for BFD to detect OSPF neighbor reachability."; | "Support for BFD to detect OSPF neighbor reachability."; | |||
reference | reference | |||
"RFC 5880: Bidirectional Forwarding Detection (BFD) | "RFC 5880: Bidirectional Forwarding Detection (BFD) | |||
RFC 5881: Bidirectional Forwarding Detection | RFC 5881: Bidirectional Forwarding Detection | |||
(BFD) for IPv4 and IPv6 (Single Hop)"; | (BFD) for IPv4 and IPv6 (Single Hop)"; | |||
} | } | |||
feature bfd-client-cfg { | ||||
description | ||||
"Support for BFD configuration of client parameters."; | ||||
reference | ||||
"RFC 9127: YANG Data Model for Bidirectional Forwarding | ||||
Detection (BFD)"; | ||||
} | ||||
feature hybrid-interface { | feature hybrid-interface { | |||
description | description | |||
"Support for the OSPF hybrid interface type."; | "Support for the OSPF hybrid interface type."; | |||
reference | reference | |||
"RFC 6845: OSPF Hybrid Broadcast and | "RFC 6845: OSPF Hybrid Broadcast and | |||
Point-to-Multipoint Interface Type"; | Point-to-Multipoint Interface Type"; | |||
} | } | |||
identity ospf { | identity ospf { | |||
base rt:routing-protocol; | base rt:routing-protocol; | |||
skipping to change at line 3952 ¶ | skipping to change at line 3930 ¶ | |||
} | } | |||
} | } | |||
grouping interface-fast-reroute-config { | grouping interface-fast-reroute-config { | |||
description | description | |||
"This group defines interface configuration of IP-FRR."; | "This group defines interface configuration of IP-FRR."; | |||
container fast-reroute { | container fast-reroute { | |||
if-feature "fast-reroute"; | if-feature "fast-reroute"; | |||
container lfa { | container lfa { | |||
if-feature "lfa"; | if-feature "lfa"; | |||
leaf candidate-enabled { | leaf candidate-enable { | |||
type boolean; | type boolean; | |||
default "true"; | default "true"; | |||
description | description | |||
"Enables the interface to be used as a backup."; | "Enables the interface to be used as a backup."; | |||
} | } | |||
leaf enabled { | leaf enabled { | |||
type boolean; | type boolean; | |||
default "false"; | default "false"; | |||
description | description | |||
"Activates an LFA. Per-prefix LFA computation | "Activates an LFA. Per-prefix LFA computation | |||
skipping to change at line 4367 ¶ | skipping to change at line 4345 ¶ | |||
default "false"; | default "false"; | |||
description | description | |||
"Sets the prefix as identifying the advertising router."; | "Sets the prefix as identifying the advertising router."; | |||
reference | reference | |||
"RFC 7684: OSPFv2 Prefix/Link Attribute Advertisement"; | "RFC 7684: OSPFv2 Prefix/Link Attribute Advertisement"; | |||
} | } | |||
container bfd { | container bfd { | |||
if-feature "bfd"; | if-feature "bfd"; | |||
description | description | |||
"BFD interface configuration."; | "BFD client configuration."; | |||
leaf enabled { | uses bfd-types:client-cfg-parms; | |||
type boolean; | ||||
default "false"; | ||||
description | ||||
"Indicate whether BFD is enabled."; | ||||
} | ||||
container bfd-client-parms { | ||||
if-feature "bfd-client-cfg"; | ||||
uses bfd-types:base-cfg-parms; | ||||
description | ||||
"BFD client configuration."; | ||||
reference | ||||
"RFC 9127: YANG Data Model for Bidirectional Forwarding | ||||
Detection (BFD)"; | ||||
} | ||||
reference | reference | |||
"RFC 5880: Bidirectional Forwarding Detection (BFD) | "RFC 9127: YANG Data Model for Bidirectional Forwarding | |||
RFC 5881: Bidirectional Forwarding Detection | Detection (BFD)"; | |||
(BFD) for IPv4 and IPv6 (Single Hop)"; | ||||
} | } | |||
uses interface-fast-reroute-config; | uses interface-fast-reroute-config; | |||
uses interface-common-config; | uses interface-common-config; | |||
uses interface-physical-link-config; | uses interface-physical-link-config; | |||
} | } | |||
grouping neighbor-state { | grouping neighbor-state { | |||
description | description | |||
"OSPF neighbor operational state."; | "OSPF neighbor operational state."; | |||
skipping to change at line 5020 ¶ | skipping to change at line 4983 ¶ | |||
"Graceful restart configuration state."; | "Graceful restart configuration state."; | |||
reference | reference | |||
"RFC 3623: Graceful OSPF Restart | "RFC 3623: Graceful OSPF Restart | |||
RFC 5187: OSPFv3 Graceful Restart"; | RFC 5187: OSPFv3 Graceful Restart"; | |||
leaf enabled { | leaf enabled { | |||
type boolean; | type boolean; | |||
description | description | |||
"Enables/disables graceful restart as defined in RFC 3623 | "Enables/disables graceful restart as defined in RFC 3623 | |||
for OSPFv2 and RFC 5187 for OSPFv3."; | for OSPFv2 and RFC 5187 for OSPFv3."; | |||
} | } | |||
leaf helper-enabled { | leaf helper-enable { | |||
type boolean; | type boolean; | |||
description | description | |||
"Enables graceful restart helper support for restarting | "Enables graceful restart helper support for restarting | |||
routers (Section 3 of RFC 3623)."; | routers (Section 3 of RFC 3623)."; | |||
reference | reference | |||
"RFC 3623: Graceful OSPF Restart, Section 3"; | "RFC 3623: Graceful OSPF Restart, Section 3"; | |||
} | } | |||
leaf restart-interval { | leaf restart-interval { | |||
type uint16 { | type uint16 { | |||
range "1..1800"; | range "1..1800"; | |||
skipping to change at line 5060 ¶ | skipping to change at line 5023 ¶ | |||
container auto-cost { | container auto-cost { | |||
if-feature "auto-cost"; | if-feature "auto-cost"; | |||
description | description | |||
"Interface auto-cost configuration state."; | "Interface auto-cost configuration state."; | |||
leaf enabled { | leaf enabled { | |||
type boolean; | type boolean; | |||
description | description | |||
"Enables/disables interface auto-cost."; | "Enables/disables interface auto-cost."; | |||
} | } | |||
leaf reference-bandwidth { | leaf reference-bandwidth { | |||
when "../enabled = 'true'" { | when "../enable = 'true'" { | |||
description | description | |||
"Only when auto-cost is enabled."; | "Only when auto-cost is enabled."; | |||
} | } | |||
type uint32 { | type uint32 { | |||
range "1..4294967"; | range "1..4294967"; | |||
} | } | |||
units "Mbits"; | units "Mbits"; | |||
description | description | |||
"Configures reference bandwidth used to automatically | "Configures reference bandwidth used to automatically | |||
determine interface cost (Mbits). The cost is the | determine interface cost (Mbits). The cost is the | |||
skipping to change at line 6575 ¶ | skipping to change at line 6538 ¶ | |||
(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 | |||
(BFD) for IPv4 and IPv6 (Single Hop)", RFC 5881, | (BFD) for IPv4 and IPv6 (Single Hop)", RFC 5881, | |||
DOI 10.17487/RFC5881, June 2010, | DOI 10.17487/RFC5881, June 2010, | |||
<https://www.rfc-editor.org/info/rfc5881>. | <https://www.rfc-editor.org/info/rfc5881>. | |||
[RFC9130] Litkowski, S., Yeung, D., Lindem, A., Zhang, J., and L. | [RFC9130] Litkowski, S., Yeung, D., Lindem, A., Zhang, J., and L. | |||
Lhotka, "YANG Data Model for the IS-IS Protocol", | Lhotka, "YANG Data Model for the IS-IS Protocol", | |||
RFC 9130, DOI 10.17487/RFC9130, November 2021, | RFC 9130, DOI 10.17487/RFC9130, October 2021, | |||
<https://www.rfc-editor.org/info/rfc9130>. | <https://www.rfc-editor.org/info/rfc9130>. | |||
Acknowledgments | Acknowledgments | |||
The authors wish to thank Yi Yang, Alexander Clemm, Gaurav Gupta, | The authors wish to thank Yi Yang, Alexander Clemm, Gaurav Gupta, | |||
Ladislav Lhotka, Stephane Litkowski, Greg Hankins, Manish Gupta, | Ladislav Lhotka, Stephane Litkowski, Greg Hankins, Manish Gupta, | |||
Michael Darwish, and Alan Davey for their thorough reviews and | Michael Darwish, and Alan Davey for their thorough reviews and | |||
helpful comments. | helpful comments. | |||
Thanks to Tom Petch for Last Call review and improvements to the | Thanks to Tom Petch for Last Call review and improvements to the | |||
End of changes. 12 change blocks. | ||||
49 lines changed or deleted | 12 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/ |