| ietf-ospf.yang | ietf-ospf-formatted.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 | reference | |||
| "RFC 6991: Common YANG Data Types"; | "RFC 6991: Common YANG Data Types"; | |||
| } | } | |||
| 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-interfaces { | import ietf-interfaces { | |||
| prefix "if"; | prefix if; | |||
| reference | reference | |||
| "RFC 8343: A YANG Data Model for Interface Management"; | "RFC 8343: A YANG Data Model for Interface Management"; | |||
| } | } | |||
| import ietf-routing-types { | import ietf-routing-types { | |||
| prefix "rt-types"; | prefix rt-types; | |||
| reference | reference | |||
| "RFC 8294: Common YANG Data Types for the Routing Area"; | "RFC 8294: Common YANG Data Types for the Routing Area"; | |||
| } | } | |||
| import iana-routing-types { | import iana-routing-types { | |||
| prefix "iana-rt-types"; | prefix iana-rt-types; | |||
| reference | reference | |||
| "RFC 8294: Common YANG Data Types for the Routing Area"; | "RFC 8294: Common YANG Data Types for the Routing Area"; | |||
| } | } | |||
| import ietf-routing { | import ietf-routing { | |||
| prefix "rt"; | prefix rt; | |||
| reference | reference | |||
| "RFC 8349: A YANG Data Model for Routing Management | "RFC 8349: A YANG Data Model for Routing Management | |||
| (NMDA Version)"; | (NMDA Version)"; | |||
| } | } | |||
| import ietf-key-chain { | import ietf-key-chain { | |||
| prefix "key-chain"; | prefix key-chain; | |||
| reference | reference | |||
| "RFC 8177: YANG Data Model for Key Chains"; | "RFC 8177: YANG Data Model for Key Chains"; | |||
| } | } | |||
| import ietf-bfd-types { | import ietf-bfd-types { | |||
| prefix "bfd-types"; | prefix bfd-types; | |||
| reference | reference | |||
| "RFC 9127: YANG Data Model for Bidirectional Forwarding | "RFC 9127: YANG Data Model for Bidirectional Forwarding | |||
| Detection (BFD)"; | Detection (BFD)"; | |||
| } | } | |||
| organization | organization | |||
| "IETF Link State Routing (lsr) Working Group"; | "IETF Link State Routing (lsr) Working Group"; | |||
| contact | contact | |||
| "WG Web: <https://datatracker.ietf.org/wg/lsr/> | "WG Web: <https://datatracker.ietf.org/wg/lsr/> | |||
| WG List: <mailto:lsr@ietf.org> | WG List: <mailto:lsr@ietf.org> | |||
| Editor: Derek Yeung | Editor: Derek Yeung | |||
| <mailto:derek@arrcus.com> | <mailto:derek@arrcus.com> | |||
| Author: Acee Lindem | Author: Acee Lindem | |||
| <mailto:acee@cisco.com> | <mailto:acee@cisco.com> | |||
| Author: Yingzhen Qu | Author: Yingzhen Qu | |||
| <mailto:yingzhen.qu@futurewei.com> | <mailto:yingzhen.qu@futurewei.com> | |||
| skipping to change at line 192 ¶ | skipping to change at line 183 ¶ | |||
| "Graceful OSPF restart as defined in RFCs 3623 and 5187."; | "Graceful OSPF restart as defined in RFCs 3623 and 5187."; | |||
| reference | reference | |||
| "RFC 3623: Graceful OSPF Restart | "RFC 3623: Graceful OSPF Restart | |||
| RFC 5187: OSPFv3 Graceful Restart"; | RFC 5187: OSPFv3 Graceful Restart"; | |||
| } | } | |||
| feature auto-cost { | feature auto-cost { | |||
| description | description | |||
| "Calculates the OSPF interface cost according to | "Calculates the OSPF interface cost according to | |||
| reference bandwidth."; | reference bandwidth."; | |||
| reference | reference | |||
| "RFC 2328: OSPF Version 2"; | "RFC 2328: OSPF Version 2"; | |||
| } | } | |||
| feature max-ecmp { | feature max-ecmp { | |||
| description | description | |||
| "Sets the maximum number of ECMP paths."; | "Sets the maximum number of ECMP paths."; | |||
| } | } | |||
| feature max-lsa { | feature max-lsa { | |||
| description | description | |||
| "Sets the maximum number of Link State Advertisements (LSAs) | "Sets the maximum number of Link State Advertisements (LSAs) | |||
| skipping to change at line 255 ¶ | skipping to change at line 246 ¶ | |||
| feature ospfv3-authentication-trailer { | feature ospfv3-authentication-trailer { | |||
| description | description | |||
| "Support for the OSPFv3 Authentication Trailer for OSPFv3 | "Support for the OSPFv3 Authentication Trailer for OSPFv3 | |||
| authentication."; | authentication."; | |||
| reference | reference | |||
| "RFC 7166: Supporting Authentication Trailer for OSPFv3"; | "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 | reference | |||
| "RFC 5714: IP Fast Reroute Framework"; | "RFC 5714: IP Fast Reroute Framework"; | |||
| } | } | |||
| feature key-chain { | feature key-chain { | |||
| description | description | |||
| "Support of key chains for authentication."; | "Support of key chains for authentication."; | |||
| reference | reference | |||
| "RFC 8177: YANG Data Model for Key Chains"; | "RFC 8177: YANG Data Model for Key Chains"; | |||
| } | } | |||
| feature node-flag { | feature node-flag { | |||
| description | description | |||
| "Support for node flags for OSPF prefixes."; | "Support for node flags for OSPF prefixes."; | |||
| reference | reference | |||
| "RFC 7684: OSPFv2 Prefix/Link Attribute Advertisement"; | "RFC 7684: OSPFv2 Prefix/Link Attribute Advertisement"; | |||
| } | } | |||
| feature node-tag { | feature node-tag { | |||
| description | description | |||
| "Support for node administrative tags for OSPF routing | "Support for node administrative tags for OSPF routing | |||
| instances."; | instances."; | |||
| reference | reference | |||
| "RFC 7777: Advertising Node Administrative Tags in OSPF"; | "RFC 7777: Advertising Node Administrative Tags in OSPF"; | |||
| } | } | |||
| feature lfa { | feature lfa { | |||
| description | description | |||
| "Support for Loop-Free Alternates (LFAs)."; | "Support for Loop-Free Alternates (LFAs)."; | |||
| reference | reference | |||
| "RFC 5286: Basic Specification for IP Fast Reroute: | "RFC 5286: Basic Specification for IP Fast Reroute: | |||
| Loop-Free Alternates"; | Loop-Free Alternates"; | |||
| } | } | |||
| feature remote-lfa { | feature remote-lfa { | |||
| description | description | |||
| "Support for Remote LFAs (R-LFAs)."; | "Support for Remote LFAs (R-LFAs)."; | |||
| reference | reference | |||
| "RFC 7490: Remote Loop-Free Alternate (LFA) Fast Reroute (FRR)"; | "RFC 7490: Remote Loop-Free Alternate (LFA) Fast Reroute (FRR)"; | |||
| } | } | |||
| feature stub-router { | feature stub-router { | |||
| description | description | |||
| "Support for OSPF stub router advertisements as defined in | "Support for OSPF stub router advertisements as defined in | |||
| RFC 6987."; | RFC 6987."; | |||
| reference | reference | |||
| "RFC 6987: OSPF Stub Router Advertisement"; | "RFC 6987: OSPF Stub Router Advertisement"; | |||
| } | } | |||
| skipping to change at line 344 ¶ | skipping to change at line 335 ¶ | |||
| 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; | |||
| description | description | |||
| "Any OSPF protocol version."; | "Any OSPF protocol version."; | |||
| } | } | |||
| identity ospfv2 { | identity ospfv2 { | |||
| base "ospf"; | base ospf; | |||
| description | description | |||
| "OSPFv2 protocol."; | "OSPFv2 protocol."; | |||
| } | } | |||
| identity ospfv3 { | identity ospfv3 { | |||
| base "ospf"; | base ospf; | |||
| description | description | |||
| "OSPFv3 protocol."; | "OSPFv3 protocol."; | |||
| } | } | |||
| identity area-type { | identity area-type { | |||
| description | description | |||
| "Base identity for an OSPF area type."; | "Base identity for an OSPF area type."; | |||
| } | } | |||
| identity normal-area { | identity normal-area { | |||
| skipping to change at line 918 ¶ | skipping to change at line 909 ¶ | |||
| "OSPF type 2 NSSA route."; | "OSPF type 2 NSSA route."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "OSPF route type."; | "OSPF route type."; | |||
| } | } | |||
| typedef if-state-type { | typedef if-state-type { | |||
| type enumeration { | type enumeration { | |||
| enum down { | enum down { | |||
| value "1"; | value 1; | |||
| description | description | |||
| "Interface is in the 'Down' state."; | "Interface is in the 'Down' state."; | |||
| } | } | |||
| enum loopback { | enum loopback { | |||
| value "2"; | value 2; | |||
| description | description | |||
| "Interface is in the 'Loopback' state."; | "Interface is in the 'Loopback' state."; | |||
| } | } | |||
| enum waiting { | enum waiting { | |||
| value "3"; | value 3; | |||
| description | description | |||
| "Interface is in the 'Waiting' state."; | "Interface is in the 'Waiting' state."; | |||
| } | } | |||
| enum point-to-point { | enum point-to-point { | |||
| value "4"; | value 4; | |||
| description | description | |||
| "Interface is in the 'Point-to-point' state."; | "Interface is in the 'Point-to-point' state."; | |||
| } | } | |||
| enum dr { | enum dr { | |||
| value "5"; | value 5; | |||
| description | description | |||
| "Interface is in the 'DR' (Designated Router) state."; | "Interface is in the 'DR' (Designated Router) state."; | |||
| } | } | |||
| enum bdr { | enum bdr { | |||
| value "6"; | value 6; | |||
| description | description | |||
| "Interface is in the 'Backup' (Backup Designated Router | "Interface is in the 'Backup' (Backup Designated Router | |||
| (BDR)) state."; | (BDR)) state."; | |||
| } | } | |||
| enum dr-other { | enum dr-other { | |||
| value "7"; | value 7; | |||
| description | description | |||
| "Interface is in the 'DR Other' state."; | "Interface is in the 'DR Other' state."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "OSPF interface state type."; | "OSPF interface state type."; | |||
| reference | reference | |||
| "RFC 2328: OSPF Version 2"; | "RFC 2328: OSPF Version 2"; | |||
| } | } | |||
| typedef router-link-type { | typedef router-link-type { | |||
| type enumeration { | type enumeration { | |||
| enum point-to-point-link { | enum point-to-point-link { | |||
| value "1"; | value 1; | |||
| description | description | |||
| "Point-to-point link to the router."; | "Point-to-point link to the router."; | |||
| } | } | |||
| enum transit-network-link { | enum transit-network-link { | |||
| value "2"; | value 2; | |||
| description | description | |||
| "Link to the transit network, identified by the DR."; | "Link to the transit network, identified by the DR."; | |||
| } | } | |||
| enum stub-network-link { | enum stub-network-link { | |||
| value "3"; | value 3; | |||
| description | description | |||
| "Link to the stub network, identified by the subnet."; | "Link to the stub network, identified by the subnet."; | |||
| } | } | |||
| enum virtual-link { | enum virtual-link { | |||
| value "4"; | value 4; | |||
| description | description | |||
| "Virtual link across a transit area."; | "Virtual link across a transit area."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "OSPF router link type."; | "OSPF router link type."; | |||
| } | } | |||
| typedef nbr-state-type { | typedef nbr-state-type { | |||
| type enumeration { | type enumeration { | |||
| enum down { | enum down { | |||
| value "1"; | value 1; | |||
| description | description | |||
| "Neighbor is in the 'Down' state."; | "Neighbor is in the 'Down' state."; | |||
| } | } | |||
| enum attempt { | enum attempt { | |||
| value "2"; | value 2; | |||
| description | description | |||
| "Neighbor is in the 'Attempt' state."; | "Neighbor is in the 'Attempt' state."; | |||
| } | } | |||
| enum init { | enum init { | |||
| value "3"; | value 3; | |||
| description | description | |||
| "Neighbor is in the 'Init' state."; | "Neighbor is in the 'Init' state."; | |||
| } | } | |||
| enum 2-way { | enum 2-way { | |||
| value "4"; | value 4; | |||
| description | description | |||
| "Neighbor is in the '2-Way' state."; | "Neighbor is in the '2-Way' state."; | |||
| } | } | |||
| enum exstart { | enum exstart { | |||
| value "5"; | value 5; | |||
| description | description | |||
| "Neighbor is in the 'ExStart' (exchange start) state."; | "Neighbor is in the 'ExStart' (exchange start) state."; | |||
| } | } | |||
| enum exchange { | enum exchange { | |||
| value "6"; | value 6; | |||
| description | description | |||
| "Neighbor is in the 'Exchange' state."; | "Neighbor is in the 'Exchange' state."; | |||
| } | } | |||
| enum loading { | enum loading { | |||
| value "7"; | value 7; | |||
| description | description | |||
| "Neighbor is in the 'Loading' state."; | "Neighbor is in the 'Loading' state."; | |||
| } | } | |||
| enum full { | enum full { | |||
| value "8"; | value 8; | |||
| description | description | |||
| "Neighbor is in the 'Full' state."; | "Neighbor is in the 'Full' state."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "OSPF neighbor state type."; | "OSPF neighbor state type."; | |||
| reference | reference | |||
| "RFC 2328: OSPF Version 2"; | "RFC 2328: OSPF Version 2"; | |||
| } | } | |||
| typedef restart-helper-status-type { | typedef restart-helper-status-type { | |||
| type enumeration { | type enumeration { | |||
| enum not-helping { | enum not-helping { | |||
| value "1"; | value 1; | |||
| description | description | |||
| "Restart helper status of 'not-helping'."; | "Restart helper status of 'not-helping'."; | |||
| } | } | |||
| enum helping { | enum helping { | |||
| value "2"; | value 2; | |||
| description | description | |||
| "Restart helper status of 'helping'."; | "Restart helper status of 'helping'."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "Restart helper status type."; | "Restart helper status type."; | |||
| } | } | |||
| typedef restart-exit-reason-type { | typedef restart-exit-reason-type { | |||
| type enumeration { | type enumeration { | |||
| enum none { | enum none { | |||
| value "1"; | value 1; | |||
| description | description | |||
| "Restart not attempted."; | "Restart not attempted."; | |||
| } | } | |||
| enum in-progress { | enum in-progress { | |||
| value "2"; | value 2; | |||
| description | description | |||
| "Restart in progress."; | "Restart in progress."; | |||
| } | } | |||
| enum completed { | enum completed { | |||
| value "3"; | value 3; | |||
| description | description | |||
| "Restart successfully completed."; | "Restart successfully completed."; | |||
| } | } | |||
| enum timed-out { | enum timed-out { | |||
| value "4"; | value 4; | |||
| description | description | |||
| "Restart timed out."; | "Restart timed out."; | |||
| } | } | |||
| enum topology-changed { | enum topology-changed { | |||
| value "5"; | value 5; | |||
| description | description | |||
| "Restart aborted due to a topology change."; | "Restart aborted due to a topology change."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "Describes the outcome of the last attempt at a | "Describes the outcome of the last attempt at a | |||
| graceful restart, either by itself or acting | graceful restart, either by itself or acting | |||
| as a helper."; | as a helper."; | |||
| } | } | |||
| typedef packet-type { | typedef packet-type { | |||
| type enumeration { | type enumeration { | |||
| enum hello { | enum hello { | |||
| value "1"; | value 1; | |||
| description | description | |||
| "OSPF Hello packet."; | "OSPF Hello packet."; | |||
| } | } | |||
| enum database-description { | enum database-description { | |||
| value "2"; | value 2; | |||
| description | description | |||
| "OSPF Database Description packet."; | "OSPF Database Description packet."; | |||
| } | } | |||
| enum link-state-request { | enum link-state-request { | |||
| value "3"; | value 3; | |||
| description | description | |||
| "OSPF Link State Request packet."; | "OSPF Link State Request packet."; | |||
| } | } | |||
| enum link-state-update { | enum link-state-update { | |||
| value "4"; | value 4; | |||
| description | description | |||
| "OSPF Link State Update packet."; | "OSPF Link State Update packet."; | |||
| } | } | |||
| enum link-state-ack { | enum link-state-ack { | |||
| value "5"; | value 5; | |||
| description | description | |||
| "OSPF Link State Acknowledgment packet."; | "OSPF Link State Acknowledgment packet."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "OSPF packet type."; | "OSPF packet type."; | |||
| } | } | |||
| typedef nssa-translator-state-type { | typedef nssa-translator-state-type { | |||
| type enumeration { | type enumeration { | |||
| enum enabled { | enum enabled { | |||
| value "1"; | value 1; | |||
| description | description | |||
| "NSSA translator enabled state."; | "NSSA translator enabled state."; | |||
| } | } | |||
| enum elected { | enum elected { | |||
| value "2"; | value 2; | |||
| description | description | |||
| "NSSA translator elected state."; | "NSSA translator elected state."; | |||
| } | } | |||
| enum disabled { | enum disabled { | |||
| value "3"; | value 3; | |||
| description | description | |||
| "NSSA translator disabled state."; | "NSSA translator disabled state."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "OSPF NSSA translator state type."; | "OSPF NSSA translator state type."; | |||
| } | } | |||
| typedef restart-status-type { | typedef restart-status-type { | |||
| type enumeration { | type enumeration { | |||
| enum not-restarting { | enum not-restarting { | |||
| value "1"; | value 1; | |||
| description | description | |||
| "The router is not restarting."; | "The router is not restarting."; | |||
| } | } | |||
| enum planned-restart { | enum planned-restart { | |||
| value "2"; | value 2; | |||
| description | description | |||
| "The router is going through a planned restart."; | "The router is going through a planned restart."; | |||
| } | } | |||
| enum unplanned-restart { | enum unplanned-restart { | |||
| value "3"; | value 3; | |||
| description | description | |||
| "The router is going through an unplanned restart."; | "The router is going through an unplanned restart."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "OSPF graceful restart status type."; | "OSPF graceful restart status type."; | |||
| } | } | |||
| 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 | reference | |||
| "RFC 905: ISO Transport Protocol Specification ISO DP 8073"; | "RFC 905: ISO Transport Protocol Specification ISO DP 8073"; | |||
| } | } | |||
| typedef ospfv2-auth-trailer-rfc-version { | typedef ospfv2-auth-trailer-rfc-version { | |||
| type enumeration { | type enumeration { | |||
| enum rfc5709 { | enum rfc5709 { | |||
| description | description | |||
| "Support for the OSPF Authentication Trailer as | "Support for the OSPF Authentication Trailer as | |||
| described in RFC 5709."; | described in RFC 5709."; | |||
| reference | reference | |||
| "RFC 5709: OSPFv2 HMAC-SHA Cryptographic Authentication"; | "RFC 5709: OSPFv2 HMAC-SHA Cryptographic Authentication"; | |||
| skipping to change at line 1260 ¶ | skipping to change at line 1251 ¶ | |||
| leaf-list informational-capabilities { | leaf-list informational-capabilities { | |||
| type identityref { | type identityref { | |||
| base informational-capability; | base informational-capability; | |||
| } | } | |||
| description | description | |||
| "List of informational capabilities. This list will | "List of informational capabilities. This list will | |||
| contain the identities for the informational | contain the identities for the informational | |||
| capabilities supported by the router."; | capabilities supported by the router."; | |||
| } | } | |||
| description | description | |||
| "OSPF Router Informational Flag definitions."; | "OSPF Router Informational Flag definitions."; | |||
| } | } | |||
| list informational-capabilities-flags { | list informational-capabilities-flags { | |||
| leaf informational-flag { | leaf informational-flag { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Individual informational capability flag."; | "Individual informational capability flag."; | |||
| } | } | |||
| description | description | |||
| "List of informational capability flags. This will | "List of informational capability flags. This will | |||
| return all the 32-bit informational flags, irrespective | return all the 32-bit informational flags, irrespective | |||
| skipping to change at line 1388 ¶ | skipping to change at line 1379 ¶ | |||
| description | description | |||
| "Router-LSA link type."; | "Router-LSA link type."; | |||
| } | } | |||
| } | } | |||
| grouping ospfv2-lsa-body { | grouping ospfv2-lsa-body { | |||
| description | description | |||
| "OSPFv2 LSA body."; | "OSPFv2 LSA body."; | |||
| container router { | container router { | |||
| when "derived-from-or-self(../../header/type, " | when "derived-from-or-self(../../header/type, " | |||
| + "'ospfv2-router-lsa')" { | + "'ospfv2-router-lsa')" { | |||
| description | description | |||
| "Only applies to Router-LSAs."; | "Only applies to Router-LSAs."; | |||
| } | } | |||
| description | description | |||
| "Router LSA."; | "Router LSA."; | |||
| uses ospf-router-lsa-bits; | uses ospf-router-lsa-bits; | |||
| leaf num-of-links { | leaf num-of-links { | |||
| type uint16; | type uint16; | |||
| description | description | |||
| "Number of links in the Router LSA."; | "Number of links in the Router LSA."; | |||
| skipping to change at line 1430 ¶ | skipping to change at line 1421 ¶ | |||
| description | description | |||
| "Metric for the topology."; | "Metric for the topology."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container network { | container network { | |||
| when "derived-from-or-self(../../header/type, " | when "derived-from-or-self(../../header/type, " | |||
| + "'ospfv2-network-lsa')" { | + "'ospfv2-network-lsa')" { | |||
| description | description | |||
| "Only applies to Network LSAs."; | "Only applies to Network LSAs."; | |||
| } | } | |||
| description | description | |||
| "Network LSA."; | "Network LSA."; | |||
| leaf network-mask { | leaf network-mask { | |||
| type yang:dotted-quad; | type yang:dotted-quad; | |||
| description | description | |||
| "The IP address mask for the network."; | "The IP address mask for the network."; | |||
| } | } | |||
| skipping to change at line 1687 ¶ | skipping to change at line 1669 ¶ | |||
| } | } | |||
| } | } | |||
| leaf admin-group { | leaf admin-group { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Administrative Group / Resource Class/Color."; | "Administrative Group / Resource Class/Color."; | |||
| } | } | |||
| uses unknown-tlvs; | uses unknown-tlvs; | |||
| } | } | |||
| } | } | |||
| container extended-prefix-opaque { | container extended-prefix-opaque { | |||
| description | description | |||
| "All Extended Prefix TLVs in the LSA."; | "All Extended Prefix TLVs in the LSA."; | |||
| list extended-prefix-tlv { | list extended-prefix-tlv { | |||
| description | description | |||
| "Extended Prefix TLV."; | "Extended Prefix TLV."; | |||
| leaf route-type { | leaf route-type { | |||
| type enumeration { | type enumeration { | |||
| enum unspecified { | enum unspecified { | |||
| value "0"; | value 0; | |||
| description | description | |||
| "Unspecified."; | "Unspecified."; | |||
| } | } | |||
| enum intra-area { | enum intra-area { | |||
| value "1"; | value 1; | |||
| description | description | |||
| "OSPF intra-area route."; | "OSPF intra-area route."; | |||
| } | } | |||
| enum inter-area { | enum inter-area { | |||
| value "3"; | value 3; | |||
| description | description | |||
| "OSPF inter-area route."; | "OSPF inter-area route."; | |||
| } | } | |||
| enum external { | enum external { | |||
| value "5"; | value 5; | |||
| description | description | |||
| "OSPF external route."; | "OSPF external route."; | |||
| } | } | |||
| enum nssa { | enum nssa { | |||
| value "7"; | value 7; | |||
| description | description | |||
| "OSPF NSSA external route."; | "OSPF NSSA external route."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "Route type."; | "Route type."; | |||
| } | } | |||
| container flags { | container flags { | |||
| leaf-list extended-prefix-flags { | leaf-list extended-prefix-flags { | |||
| type identityref { | type identityref { | |||
| skipping to change at line 1919 ¶ | skipping to change at line 1893 ¶ | |||
| leaf type { | leaf type { | |||
| type router-link-type; | type router-link-type; | |||
| description | description | |||
| "Link type: 1 - Point-to-Point Link | "Link type: 1 - Point-to-Point Link | |||
| 2 - Transit Network Link | 2 - Transit Network Link | |||
| 3 - Stub Network Link | 3 - Stub Network Link | |||
| 4 - Virtual Link."; | 4 - Virtual Link."; | |||
| } | } | |||
| leaf metric { | leaf metric { | |||
| type uint16; | type uint16; | |||
| description | description | |||
| "Link metric."; | "Link metric."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container network { | container network { | |||
| when "derived-from-or-self(../../header/type, " | when "derived-from-or-self(../../header/type, " | |||
| + "'ospfv3-network-lsa')" { | + "'ospfv3-network-lsa')" { | |||
| description | description | |||
| "Only applies to Network LSAs."; | "Only applies to Network LSAs."; | |||
| } | } | |||
| skipping to change at line 2591 ¶ | skipping to change at line 2551 ¶ | |||
| description | description | |||
| "The current length of the retransmission queue."; | "The current length of the retransmission queue."; | |||
| } | } | |||
| } | } | |||
| grouping instance-fast-reroute-config { | grouping instance-fast-reroute-config { | |||
| description | description | |||
| "This group defines the global configuration of | "This group defines the global configuration of | |||
| IP Fast Reroute (IP-FRR)."; | IP Fast Reroute (IP-FRR)."; | |||
| container fast-reroute { | container fast-reroute { | |||
| if-feature fast-reroute; | if-feature "fast-reroute"; | |||
| description | description | |||
| "This container may be augmented with global | "This container may be augmented with global | |||
| parameters for IP-FRR."; | parameters for IP-FRR."; | |||
| container lfa { | container lfa { | |||
| if-feature lfa; | if-feature "lfa"; | |||
| description | description | |||
| "This container may be augmented with | "This container may be augmented with | |||
| global parameters for Loop-Free Alternates (LFAs). | global parameters for Loop-Free Alternates (LFAs). | |||
| Container creation has no effect on LFA activation."; | Container creation has no effect on LFA activation."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping instance-fast-reroute-state { | grouping instance-fast-reroute-state { | |||
| description | description | |||
| skipping to change at line 2608 ¶ | skipping to change at line 2568 ¶ | |||
| "This container may be augmented with | "This container may be augmented with | |||
| global parameters for Loop-Free Alternates (LFAs). | global parameters for Loop-Free Alternates (LFAs). | |||
| Container creation has no effect on LFA activation."; | Container creation has no effect on LFA activation."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping instance-fast-reroute-state { | grouping instance-fast-reroute-state { | |||
| description | description | |||
| "IP-FRR state data grouping."; | "IP-FRR state data grouping."; | |||
| container protected-routes { | container protected-routes { | |||
| if-feature fast-reroute; | if-feature "fast-reroute"; | |||
| config false; | config false; | |||
| description | description | |||
| "Instance protection statistics."; | "Instance protection statistics."; | |||
| list address-family-stats { | list address-family-stats { | |||
| key "address-family prefix alternate"; | key "address-family prefix alternate"; | |||
| description | description | |||
| "Per-Address-Family (AF) protected prefix information."; | "Per-Address-Family (AF) protected prefix information."; | |||
| leaf address-family { | leaf address-family { | |||
| type iana-rt-types:address-family; | type iana-rt-types:address-family; | |||
| description | description | |||
| "Address family."; | "Address family."; | |||
| } | } | |||
| leaf prefix { | leaf prefix { | |||
| type inet:ip-prefix; | type inet:ip-prefix; | |||
| description | description | |||
| "Protected prefix."; | "Protected prefix."; | |||
| } | } | |||
| skipping to change at line 2732 ¶ | skipping to change at line 2689 ¶ | |||
| description | description | |||
| "Metric from the PLR to the alternate node."; | "Metric from the PLR to the alternate node."; | |||
| } | } | |||
| leaf alternate-metric3 { | leaf alternate-metric3 { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Metric from the alternate node to the destination."; | "Metric from the alternate node to the destination."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container unprotected-routes { | container unprotected-routes { | |||
| if-feature fast-reroute; | if-feature "fast-reroute"; | |||
| config false; | config false; | |||
| description | description | |||
| "List of prefixes that are not protected."; | "List of prefixes that are not protected."; | |||
| list address-family-stats { | list address-family-stats { | |||
| key "address-family prefix"; | key "address-family prefix"; | |||
| description | description | |||
| "Per-AF unprotected prefix statistics."; | "Per-AF unprotected prefix statistics."; | |||
| leaf address-family { | leaf address-family { | |||
| type iana-rt-types:address-family; | type iana-rt-types:address-family; | |||
| description | description | |||
| "Address family."; | "Address family."; | |||
| } | } | |||
| leaf prefix { | leaf prefix { | |||
| type inet:ip-prefix; | type inet:ip-prefix; | |||
| description | description | |||
| "Unprotected prefix."; | "Unprotected prefix."; | |||
| } | } | |||
| skipping to change at line 2756 ¶ | skipping to change at line 2710 ¶ | |||
| description | description | |||
| "Address family."; | "Address family."; | |||
| } | } | |||
| leaf prefix { | leaf prefix { | |||
| type inet:ip-prefix; | type inet:ip-prefix; | |||
| description | description | |||
| "Unprotected prefix."; | "Unprotected prefix."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| list protection-statistics { | list protection-statistics { | |||
| key frr-protection-method; | key "frr-protection-method"; | |||
| config false; | config false; | |||
| description | description | |||
| "List of protection method statistics."; | "List of protection method statistics."; | |||
| leaf frr-protection-method { | leaf frr-protection-method { | |||
| type string; | type string; | |||
| description | description | |||
| "Protection method used."; | "Protection method used."; | |||
| } | } | |||
| list address-family-stats { | list address-family-stats { | |||
| key address-family; | key "address-family"; | |||
| description | description | |||
| "Per-AF protection statistics."; | "Per-AF protection statistics."; | |||
| leaf address-family { | leaf address-family { | |||
| type iana-rt-types:address-family; | type iana-rt-types:address-family; | |||
| description | description | |||
| "Address family."; | "Address family."; | |||
| } | } | |||
| leaf total-routes { | leaf total-routes { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Total prefixes."; | "Total prefixes."; | |||
| } | } | |||
| skipping to change at line 2811 ¶ | skipping to change at line 2762 ¶ | |||
| "Total prefixes that are node protected."; | "Total prefixes that are node protected."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| 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-enable { | 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 enable { | leaf enable { | |||
| type boolean; | type boolean; | |||
| default false; | default "false"; | |||
| description | description | |||
| "Activates an LFA. Per-prefix LFA computation | "Activates an LFA. Per-prefix LFA computation | |||
| is assumed."; | is assumed."; | |||
| } | } | |||
| container remote-lfa { | container remote-lfa { | |||
| if-feature remote-lfa; | if-feature "remote-lfa"; | |||
| leaf enable { | leaf enable { | |||
| type boolean; | type boolean; | |||
| default false; | default "false"; | |||
| description | description | |||
| "Activates a Remote LFA (R-LFA)."; | "Activates a Remote LFA (R-LFA)."; | |||
| } | } | |||
| description | description | |||
| "R-LFA configuration."; | "R-LFA configuration."; | |||
| } | } | |||
| description | description | |||
| "LFA configuration."; | "LFA configuration."; | |||
| } | } | |||
| description | description | |||
| skipping to change at line 2856 ¶ | skipping to change at line 2807 ¶ | |||
| grouping interface-physical-link-config { | grouping interface-physical-link-config { | |||
| description | description | |||
| "Interface cost configuration that only applies to | "Interface cost configuration that only applies to | |||
| physical interfaces (non-virtual) and sham links."; | physical interfaces (non-virtual) and sham links."; | |||
| leaf cost { | leaf cost { | |||
| type ospf-link-metric; | type ospf-link-metric; | |||
| description | description | |||
| "Interface's cost."; | "Interface's cost."; | |||
| } | } | |||
| leaf mtu-ignore { | leaf mtu-ignore { | |||
| if-feature mtu-ignore; | if-feature "mtu-ignore"; | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "Enables/disables bypassing the MTU mismatch check in | "Enables/disables bypassing the MTU mismatch check in | |||
| Database Description packets as specified in Section 10.6 | Database Description packets as specified in Section 10.6 | |||
| of RFC 2328."; | of RFC 2328."; | |||
| reference | reference | |||
| "RFC 2328: OSPF Version 2, Section 10.6"; | "RFC 2328: OSPF Version 2, Section 10.6"; | |||
| } | } | |||
| leaf prefix-suppression { | leaf prefix-suppression { | |||
| if-feature prefix-suppression; | if-feature "prefix-suppression"; | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "Suppresses advertisement of the prefixes associated | "Suppresses advertisement of the prefixes associated | |||
| with the interface."; | with the interface."; | |||
| } | } | |||
| } | } | |||
| grouping interface-common-config { | grouping interface-common-config { | |||
| description | description | |||
| "Common configuration for all types of interfaces, | "Common configuration for all types of interfaces, | |||
| skipping to change at line 2878 ¶ | skipping to change at line 2829 ¶ | |||
| description | description | |||
| "Suppresses advertisement of the prefixes associated | "Suppresses advertisement of the prefixes associated | |||
| with the interface."; | with the interface."; | |||
| } | } | |||
| } | } | |||
| grouping interface-common-config { | grouping interface-common-config { | |||
| description | description | |||
| "Common configuration for all types of interfaces, | "Common configuration for all types of interfaces, | |||
| including virtual links and sham links."; | including virtual links and sham links."; | |||
| leaf hello-interval { | leaf hello-interval { | |||
| type uint16; | type uint16; | |||
| units seconds; | units "seconds"; | |||
| description | description | |||
| "Interval between Hello packets (seconds). It must | "Interval between Hello packets (seconds). It must | |||
| be the same for all routers on the same network. | be the same for all routers on the same network. | |||
| Different networks, implementations, and deployments | Different networks, implementations, and deployments | |||
| will use different Hello intervals. A sample value | will use different Hello intervals. A sample value | |||
| for a LAN network would be 10 seconds."; | for a LAN network would be 10 seconds."; | |||
| reference | reference | |||
| "RFC 2328: OSPF Version 2, Appendix C.3"; | "RFC 2328: OSPF Version 2, Appendix C.3"; | |||
| } | } | |||
| leaf dead-interval { | leaf dead-interval { | |||
| type uint16; | type uint16; | |||
| units seconds; | units "seconds"; | |||
| must "../dead-interval > ../hello-interval" { | must '../dead-interval > ../hello-interval' { | |||
| error-message "The dead interval must be " | error-message "The dead interval must be " | |||
| + "larger than the Hello interval"; | + "larger than the Hello interval"; | |||
| description | description | |||
| "The value must be greater than 'hello-interval'."; | "The value must be greater than 'hello-interval'."; | |||
| } | } | |||
| description | description | |||
| "Interval after which a neighbor is declared down | "Interval after which a neighbor is declared down | |||
| (seconds) if Hello packets are not received. It is | (seconds) if Hello packets are not received. It is | |||
| typically 3 or 4 times the 'hello-interval' period. | typically 3 or 4 times the 'hello-interval' period. | |||
| A typical value for LAN networks is 40 seconds."; | A typical value for LAN networks is 40 seconds."; | |||
| reference | reference | |||
| "RFC 2328: OSPF Version 2, Appendix C.3"; | "RFC 2328: OSPF Version 2, Appendix C.3"; | |||
| } | } | |||
| leaf retransmit-interval { | leaf retransmit-interval { | |||
| type uint16 { | type uint16 { | |||
| range "1..3600"; | range "1..3600"; | |||
| } | } | |||
| units seconds; | units "seconds"; | |||
| description | description | |||
| "Interval between retransmitting unacknowledged Link | "Interval between retransmitting unacknowledged Link | |||
| State Advertisements (LSAs) (seconds). This should | State Advertisements (LSAs) (seconds). This should | |||
| be well over the round-trip transmit delay for | be well over the round-trip transmit delay for | |||
| any two routers on the network. A sample value | any two routers on the network. A sample value | |||
| would be 5 seconds."; | would be 5 seconds."; | |||
| reference | reference | |||
| "RFC 2328: OSPF Version 2, Appendix C.3"; | "RFC 2328: OSPF Version 2, Appendix C.3"; | |||
| } | } | |||
| leaf transmit-delay { | leaf transmit-delay { | |||
| type uint16; | type uint16; | |||
| units seconds; | units "seconds"; | |||
| description | description | |||
| "Estimated time needed to transmit Link State Update | "Estimated time needed to transmit Link State Update | |||
| (LSU) packets on the interface (seconds). LSAs have | (LSU) packets on the interface (seconds). LSAs have | |||
| their age incremented by this amount when advertised | their age incremented by this amount when advertised | |||
| on the interface. A sample value would be 1 second."; | on the interface. A sample value would be 1 second."; | |||
| reference | reference | |||
| "RFC 2328: OSPF Version 2, Appendix C.3"; | "RFC 2328: OSPF Version 2, Appendix C.3"; | |||
| } | } | |||
| leaf lls { | leaf lls { | |||
| if-feature lls; | if-feature "lls"; | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "Enables/disables link-local signaling (LLS) support."; | "Enables/disables link-local signaling (LLS) support."; | |||
| } | } | |||
| container ttl-security { | container ttl-security { | |||
| if-feature ttl-security; | if-feature "ttl-security"; | |||
| description | description | |||
| "Time to Live (TTL) security checking."; | "Time to Live (TTL) security checking."; | |||
| leaf enable { | leaf enable { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "Enables/disables TTL security checking."; | "Enables/disables TTL security checking."; | |||
| } | } | |||
| leaf hops { | leaf hops { | |||
| type uint8 { | type uint8 { | |||
| range "1..254"; | range "1..254"; | |||
| } | } | |||
| default 1; | default "1"; | |||
| description | description | |||
| "Maximum number of hops that an OSPF packet may | "Maximum number of hops that an OSPF packet may | |||
| have traversed before reception."; | have traversed before reception."; | |||
| } | } | |||
| } | } | |||
| leaf enable { | leaf enable { | |||
| type boolean; | type boolean; | |||
| default true; | default "true"; | |||
| description | description | |||
| "Enables/disables the OSPF protocol on the interface."; | "Enables/disables the OSPF protocol on the interface."; | |||
| } | } | |||
| container authentication { | container authentication { | |||
| description | description | |||
| "Authentication configuration."; | "Authentication configuration."; | |||
| choice auth-type-selection { | choice auth-type-selection { | |||
| description | description | |||
| "Options for OSPFv2/OSPFv3 authentication | "Options for OSPFv2/OSPFv3 authentication | |||
| configuration."; | configuration."; | |||
| case ospfv2-auth { | case ospfv2-auth { | |||
| when "derived-from-or-self(../../../../../../rt:type, " | when "derived-from-or-self(../../../../../../rt:type, " | |||
| + "'ospfv2')" { | + "'ospfv2')" { | |||
| description | description | |||
| "Applied to OSPFv2 only."; | "Applied to OSPFv2 only."; | |||
| } | } | |||
| leaf ospfv2-auth-trailer-rfc { | leaf ospfv2-auth-trailer-rfc { | |||
| if-feature ospfv2-authentication-trailer; | if-feature "ospfv2-authentication-trailer"; | |||
| type ospfv2-auth-trailer-rfc-version; | type ospfv2-auth-trailer-rfc-version; | |||
| description | description | |||
| "Version of OSPFv2 Authentication Trailer support. | "Version of OSPFv2 Authentication Trailer support. | |||
| See RFCs 5709 and 7474."; | See RFCs 5709 and 7474."; | |||
| reference | reference | |||
| "RFC 5709: OSPFv2 HMAC-SHA Cryptographic Authentication | "RFC 5709: OSPFv2 HMAC-SHA Cryptographic Authentication | |||
| RFC 7474: Security Extension for OSPFv2 When Using | RFC 7474: Security Extension for OSPFv2 When Using | |||
| Manual Key Management"; | Manual Key Management"; | |||
| } | } | |||
| choice ospfv2-auth-specification { | choice ospfv2-auth-specification { | |||
| description | description | |||
| "Key chain or explicit key parameter specification."; | "Key chain or explicit key parameter specification."; | |||
| case auth-key-chain { | case auth-key-chain { | |||
| if-feature key-chain; | if-feature "key-chain"; | |||
| leaf ospfv2-key-chain { | leaf ospfv2-key-chain { | |||
| type key-chain:key-chain-ref; | type key-chain:key-chain-ref; | |||
| description | description | |||
| "Name of the key chain."; | "Name of the key chain."; | |||
| } | } | |||
| } | } | |||
| case auth-key-explicit { | case auth-key-explicit { | |||
| leaf ospfv2-key-id { | leaf ospfv2-key-id { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| skipping to change at line 3030 ¶ | skipping to change at line 2974 ¶ | |||
| base key-chain:crypto-algorithm; | base key-chain:crypto-algorithm; | |||
| } | } | |||
| description | description | |||
| "Cryptographic algorithm associated with the key."; | "Cryptographic algorithm associated with the key."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| case ospfv3-auth-ipsec { | case ospfv3-auth-ipsec { | |||
| when "derived-from-or-self(../../../../../../rt:type, " | when "derived-from-or-self(../../../../../../rt:type, " | |||
| + "'ospfv3')" { | + "'ospfv3')" { | |||
| description | description | |||
| "Applied to OSPFv3 only."; | "Applied to OSPFv3 only."; | |||
| } | } | |||
| if-feature ospfv3-authentication-ipsec; | if-feature "ospfv3-authentication-ipsec"; | |||
| leaf sa { | leaf sa { | |||
| type string; | type string; | |||
| description | description | |||
| "Name of the Security Association (SA)."; | "Name of the Security Association (SA)."; | |||
| } | } | |||
| } | } | |||
| case ospfv3-auth-trailer { | case ospfv3-auth-trailer { | |||
| when "derived-from-or-self(../../../../../../rt:type, " | when "derived-from-or-self(../../../../../../rt:type, " | |||
| + "'ospfv3')" { | + "'ospfv3')" { | |||
| description | description | |||
| "Applied to OSPFv3 only."; | "Applied to OSPFv3 only."; | |||
| } | } | |||
| if-feature ospfv3-authentication-trailer; | if-feature "ospfv3-authentication-trailer"; | |||
| choice ospfv3-auth-specification { | choice ospfv3-auth-specification { | |||
| description | description | |||
| "Key chain or explicit key parameter specification."; | "Key chain or explicit key parameter specification."; | |||
| case auth-key-chain { | case auth-key-chain { | |||
| if-feature key-chain; | if-feature "key-chain"; | |||
| leaf ospfv3-key-chain { | leaf ospfv3-key-chain { | |||
| type key-chain:key-chain-ref; | type key-chain:key-chain-ref; | |||
| description | description | |||
| "Name of the key chain."; | "Name of the key chain."; | |||
| } | } | |||
| } | } | |||
| case auth-key-explicit { | case auth-key-explicit { | |||
| leaf ospfv3-sa-id { | leaf ospfv3-sa-id { | |||
| type uint16; | type uint16; | |||
| description | description | |||
| skipping to change at line 3089 ¶ | skipping to change at line 3033 ¶ | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping interface-config { | grouping interface-config { | |||
| description | description | |||
| "Configuration for real interfaces."; | "Configuration for real interfaces."; | |||
| leaf interface-type { | leaf interface-type { | |||
| type enumeration { | type enumeration { | |||
| enum "broadcast" { | enum broadcast { | |||
| description | description | |||
| "Specifies an OSPF broadcast multi-access network."; | "Specifies an OSPF broadcast multi-access network."; | |||
| } | } | |||
| enum "non-broadcast" { | enum non-broadcast { | |||
| description | description | |||
| "Specifies an OSPF Non-Broadcast Multi-Access | "Specifies an OSPF Non-Broadcast Multi-Access | |||
| (NBMA) network."; | (NBMA) network."; | |||
| } | } | |||
| enum "point-to-multipoint" { | enum point-to-multipoint { | |||
| description | description | |||
| "Specifies an OSPF point-to-multipoint network."; | "Specifies an OSPF point-to-multipoint network."; | |||
| } | } | |||
| enum "point-to-point" { | enum point-to-point { | |||
| description | description | |||
| "Specifies an OSPF point-to-point network."; | "Specifies an OSPF point-to-point network."; | |||
| } | } | |||
| enum "hybrid" { | enum hybrid { | |||
| if-feature hybrid-interface; | if-feature "hybrid-interface"; | |||
| description | description | |||
| "Specifies an OSPF Hybrid Broadcast / | "Specifies an OSPF Hybrid Broadcast / | |||
| point-to-multipoint network."; | point-to-multipoint network."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "Interface type."; | "Interface type."; | |||
| } | } | |||
| leaf passive { | leaf passive { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "Enables/disables a passive interface. A passive | "Enables/disables a passive interface. A passive | |||
| interface's prefix will be advertised, but no neighbor | interface's prefix will be advertised, but no neighbor | |||
| adjacencies will be formed on the interface."; | adjacencies will be formed on the interface."; | |||
| } | } | |||
| leaf demand-circuit { | leaf demand-circuit { | |||
| if-feature demand-circuit; | if-feature "demand-circuit"; | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "Enables/disables a demand circuit."; | "Enables/disables a demand circuit."; | |||
| } | } | |||
| leaf priority { | leaf priority { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "Configures OSPF router priority. In a multi-access | "Configures OSPF router priority. In a multi-access | |||
| network, this value is for Designated Router (DR) election. | network, this value is for Designated Router (DR) election. | |||
| The priority is ignored on other interface types. A router | The priority is ignored on other interface types. A router | |||
| with a higher priority will be preferred in the election. | with a higher priority will be preferred in the election. | |||
| A value of 0 indicates that the router is not eligible to | A value of 0 indicates that the router is not eligible to | |||
| become the DR or Backup DR (BDR)."; | become the DR or Backup DR (BDR)."; | |||
| } | } | |||
| skipping to change at line 3145 ¶ | skipping to change at line 3085 ¶ | |||
| leaf priority { | leaf priority { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "Configures OSPF router priority. In a multi-access | "Configures OSPF router priority. In a multi-access | |||
| network, this value is for Designated Router (DR) election. | network, this value is for Designated Router (DR) election. | |||
| The priority is ignored on other interface types. A router | The priority is ignored on other interface types. A router | |||
| with a higher priority will be preferred in the election. | with a higher priority will be preferred in the election. | |||
| A value of 0 indicates that the router is not eligible to | A value of 0 indicates that the router is not eligible to | |||
| become the DR or Backup DR (BDR)."; | become the DR or Backup DR (BDR)."; | |||
| } | } | |||
| container multi-areas { | container multi-areas { | |||
| if-feature multi-area-adj; | if-feature "multi-area-adj"; | |||
| description | description | |||
| "Container for multi-area configuration."; | "Container for multi-area configuration."; | |||
| list multi-area { | list multi-area { | |||
| key multi-area-id; | key "multi-area-id"; | |||
| description | description | |||
| "Configures an OSPF multi-area adjacency."; | "Configures an OSPF multi-area adjacency."; | |||
| leaf multi-area-id { | leaf multi-area-id { | |||
| type area-id-type; | type area-id-type; | |||
| description | description | |||
| "Multi-area adjacency area ID."; | "Multi-area adjacency area ID."; | |||
| } | } | |||
| leaf cost { | leaf cost { | |||
| type ospf-link-metric; | type ospf-link-metric; | |||
| description | description | |||
| skipping to change at line 3193 ¶ | skipping to change at line 3128 ¶ | |||
| type ospf-link-metric; | type ospf-link-metric; | |||
| description | description | |||
| "Neighbor's cost. Different implementations have | "Neighbor's cost. Different implementations have | |||
| different default costs, with some defaulting to a | different default costs, with some defaulting to a | |||
| cost inversely proportional to the interface speed. | cost inversely proportional to the interface speed. | |||
| Others will default to 1, equating the cost to a | Others will default to 1, equating the cost to a | |||
| hop count."; | hop count."; | |||
| } | } | |||
| leaf poll-interval { | leaf poll-interval { | |||
| type uint16; | type uint16; | |||
| units seconds; | units "seconds"; | |||
| description | description | |||
| "Neighbor's poll interval (seconds) for sending OSPF | "Neighbor's poll interval (seconds) for sending OSPF | |||
| Hello packets to discover the neighbor on NBMA | Hello packets to discover the neighbor on NBMA | |||
| networks. This interval dictates the granularity for | networks. This interval dictates the granularity for | |||
| discovery of new neighbors. A sample would be | discovery of new neighbors. A sample would be | |||
| 120 seconds (2 minutes) for a legacy Packet Data | 120 seconds (2 minutes) for a legacy Packet Data | |||
| Network (PDN) X.25 network."; | Network (PDN) X.25 network."; | |||
| reference | reference | |||
| "RFC 2328: OSPF Version 2, Appendix C.5"; | "RFC 2328: OSPF Version 2, Appendix C.5"; | |||
| } | } | |||
| skipping to change at line 3214 ¶ | skipping to change at line 3149 ¶ | |||
| leaf priority { | leaf priority { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "Neighbor's priority for DR election. A router with a | "Neighbor's priority for DR election. A router with a | |||
| higher priority will be preferred in the election. | higher priority will be preferred in the election. | |||
| A value of 0 indicates that the router is not | A value of 0 indicates that the router is not | |||
| eligible to become the DR or BDR."; | eligible to become the DR or BDR."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| leaf node-flag { | leaf node-flag { | |||
| if-feature node-flag; | if-feature "node-flag"; | |||
| type boolean; | type boolean; | |||
| 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 client configuration."; | "BFD client configuration."; | |||
| uses bfd-types:client-cfg-parms; | uses bfd-types:client-cfg-parms; | |||
| reference | reference | |||
| "RFC 9127: YANG Data Model for Bidirectional Forwarding | "RFC 9127: YANG Data Model for Bidirectional Forwarding | |||
| Detection (BFD)"; | Detection (BFD)"; | |||
| } | } | |||
| 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."; | |||
| leaf address { | leaf address { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| config false; | config false; | |||
| description | description | |||
| "Neighbor's address."; | "Neighbor's address."; | |||
| } | } | |||
| leaf dr-router-id { | leaf dr-router-id { | |||
| type rt-types:router-id; | type rt-types:router-id; | |||
| config false; | config false; | |||
| description | description | |||
| skipping to change at line 3499 ¶ | skipping to change at line 3412 ¶ | |||
| "IPv4 or IPv6 prefix."; | "IPv4 or IPv6 prefix."; | |||
| } | } | |||
| leaf advertise { | leaf advertise { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "Advertise or hide."; | "Advertise or hide."; | |||
| } | } | |||
| leaf cost { | leaf cost { | |||
| type ospf-metric; | type ospf-metric; | |||
| description | description | |||
| "Advertised cost of a summary route."; | "Advertised cost of a summary route."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping area-common-config { | grouping area-common-config { | |||
| description | description | |||
| "OSPF area common configuration state."; | "OSPF area common configuration state."; | |||
| leaf summary { | leaf summary { | |||
| when "derived-from(../area-type,'stub-nssa-area')" { | when "derived-from(../area-type,'stub-nssa-area')" { | |||
| description | description | |||
| "Summary advertisement into the stub area / NSSA."; | "Summary advertisement into the stub area / NSSA."; | |||
| } | } | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "Enables/disables a summary advertisement into the stub | "Enables/disables a summary advertisement into the stub | |||
| area or NSSA."; | area or NSSA."; | |||
| } | } | |||
| skipping to change at line 3521 ¶ | skipping to change at line 3433 ¶ | |||
| description | description | |||
| "Summary advertisement into the stub area / NSSA."; | "Summary advertisement into the stub area / NSSA."; | |||
| } | } | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "Enables/disables a summary advertisement into the stub | "Enables/disables a summary advertisement into the stub | |||
| area or NSSA."; | area or NSSA."; | |||
| } | } | |||
| leaf default-cost { | leaf default-cost { | |||
| when "derived-from(../area-type,'stub-nssa-area')" { | when "derived-from(../area-type,'stub-nssa-area')" { | |||
| description | description | |||
| "Cost for the LSA default route advertised into the | "Cost for the LSA default route advertised into the | |||
| stub area or NSSA."; | stub area or NSSA."; | |||
| } | } | |||
| type ospf-metric; | type ospf-metric; | |||
| description | description | |||
| "Sets the summary default route cost for a stub area | "Sets the summary default route cost for a stub area | |||
| or NSSA."; | or NSSA."; | |||
| } | } | |||
| } | } | |||
| grouping area-config { | grouping area-config { | |||
| description | description | |||
| skipping to change at line 3535 ¶ | skipping to change at line 3447 ¶ | |||
| type ospf-metric; | type ospf-metric; | |||
| description | description | |||
| "Sets the summary default route cost for a stub area | "Sets the summary default route cost for a stub area | |||
| or NSSA."; | or NSSA."; | |||
| } | } | |||
| } | } | |||
| grouping area-config { | grouping area-config { | |||
| description | description | |||
| "OSPF area configuration state."; | "OSPF area configuration state."; | |||
| leaf area-type { | leaf area-type { | |||
| type identityref { | type identityref { | |||
| base area-type; | base area-type; | |||
| } | } | |||
| default normal-area; | default "normal-area"; | |||
| description | description | |||
| "Area type."; | "Area type."; | |||
| } | } | |||
| uses area-common-config; | uses area-common-config; | |||
| uses address-family-area-config; | uses address-family-area-config; | |||
| } | } | |||
| grouping area-state { | grouping area-state { | |||
| description | description | |||
| "OSPF area operational state."; | "OSPF area operational state."; | |||
| container statistics { | container statistics { | |||
| config false; | config false; | |||
| description | description | |||
| "Per-area statistics."; | "Per-area statistics."; | |||
| uses area-stat; | uses area-stat; | |||
| } | } | |||
| container database { | container database { | |||
| config false; | config false; | |||
| description | description | |||
| "Area-scope LSDB."; | "Area-scope LSDB."; | |||
| list area-scope-lsa-type { | list area-scope-lsa-type { | |||
| key "lsa-type"; | key "lsa-type"; | |||
| description | description | |||
| "List of OSPF area-scope LSAs."; | "List of OSPF area-scope LSAs."; | |||
| leaf lsa-type { | leaf lsa-type { | |||
| type uint16; | type uint16; | |||
| skipping to change at line 3636 ¶ | skipping to change at line 3544 ¶ | |||
| list next-hop { | list next-hop { | |||
| key "next-hop"; | key "next-hop"; | |||
| description | description | |||
| "List of next hops for the route."; | "List of next hops for the route."; | |||
| leaf outgoing-interface { | leaf outgoing-interface { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description | description | |||
| "Name of the outgoing interface."; | "Name of the outgoing interface."; | |||
| } | } | |||
| leaf next-hop { | leaf next-hop { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| description | description | |||
| "Address of the next hop."; | "Address of the next hop."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| leaf metric { | leaf metric { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Metric for this route."; | "Metric for this route."; | |||
| } | } | |||
| leaf route-type { | leaf route-type { | |||
| type route-type; | type route-type; | |||
| skipping to change at line 3664 ¶ | skipping to change at line 3572 ¶ | |||
| description | description | |||
| "Route tag for this route."; | "Route tag for this route."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping ietf-spf-delay { | grouping ietf-spf-delay { | |||
| leaf initial-delay { | leaf initial-delay { | |||
| type uint32; | type uint32; | |||
| units milliseconds; | units "milliseconds"; | |||
| description | description | |||
| "Delay used while in the 'QUIET' state (milliseconds)."; | "Delay used while in the 'QUIET' state (milliseconds)."; | |||
| } | } | |||
| leaf short-delay { | leaf short-delay { | |||
| type uint32; | type uint32; | |||
| units milliseconds; | units "milliseconds"; | |||
| description | description | |||
| "Delay used while in the 'SHORT_WAIT' state (milliseconds)."; | "Delay used while in the 'SHORT_WAIT' state (milliseconds)."; | |||
| } | } | |||
| leaf long-delay { | leaf long-delay { | |||
| type uint32; | type uint32; | |||
| units milliseconds; | units "milliseconds"; | |||
| description | description | |||
| "Delay used while in the 'LONG_WAIT' state (milliseconds)."; | "Delay used while in the 'LONG_WAIT' state (milliseconds)."; | |||
| } | } | |||
| leaf hold-down { | leaf hold-down { | |||
| type uint32; | type uint32; | |||
| units milliseconds; | units "milliseconds"; | |||
| description | description | |||
| "This timer value defines the period without any changes | "This timer value defines the period without any changes | |||
| for the IGP to be considered stable (milliseconds)."; | for the IGP to be considered stable (milliseconds)."; | |||
| } | } | |||
| leaf time-to-learn { | leaf time-to-learn { | |||
| type uint32; | type uint32; | |||
| units milliseconds; | units "milliseconds"; | |||
| description | description | |||
| "Duration used to learn all the IGP events | "Duration used to learn all the IGP events | |||
| related to a single component failure (milliseconds)."; | related to a single component failure (milliseconds)."; | |||
| } | } | |||
| leaf current-state { | leaf current-state { | |||
| type enumeration { | type enumeration { | |||
| enum "quiet" { | enum quiet { | |||
| description | description | |||
| "'QUIET' state."; | "'QUIET' state."; | |||
| } | } | |||
| enum "short-wait" { | enum short-wait { | |||
| description | description | |||
| "'SHORT_WAIT' state."; | "'SHORT_WAIT' state."; | |||
| } | } | |||
| enum "long-wait" { | enum long-wait { | |||
| description | description | |||
| "'LONG_WAIT' state."; | "'LONG_WAIT' state."; | |||
| } | } | |||
| } | } | |||
| config false; | config false; | |||
| description | description | |||
| "Current SPF back-off algorithm state."; | "Current SPF back-off algorithm state."; | |||
| } | } | |||
| leaf remaining-time-to-learn { | leaf remaining-time-to-learn { | |||
| type rt-types:timer-value-milliseconds; | type rt-types:timer-value-milliseconds; | |||
| skipping to change at line 3742 ¶ | skipping to change at line 3650 ¶ | |||
| type yang:timestamp; | type yang:timestamp; | |||
| config false; | config false; | |||
| description | description | |||
| "Time when the next SPF has been scheduled."; | "Time when the next SPF has been scheduled."; | |||
| } | } | |||
| leaf last-spf-time { | leaf last-spf-time { | |||
| type yang:timestamp; | type yang:timestamp; | |||
| config false; | config false; | |||
| description | description | |||
| "Time of the last SPF computation."; | "Time of the last SPF computation."; | |||
| } | } | |||
| description | description | |||
| "Grouping for IETF SPF delay configuration and state."; | "Grouping for IETF SPF delay configuration and state."; | |||
| } | } | |||
| grouping node-tag-config { | grouping node-tag-config { | |||
| description | description | |||
| "OSPF node tag configuration state."; | "OSPF node tag configuration state."; | |||
| container node-tags { | container node-tags { | |||
| if-feature node-tag; | if-feature "node-tag"; | |||
| list node-tag { | list node-tag { | |||
| key tag; | key "tag"; | |||
| leaf tag { | leaf tag { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Node tag value."; | "Node tag value."; | |||
| } | } | |||
| description | description | |||
| "List of tags."; | "List of tags."; | |||
| } | } | |||
| description | description | |||
| "Container for node administrative tags."; | "Container for node administrative tags."; | |||
| } | } | |||
| } | } | |||
| grouping instance-config { | grouping instance-config { | |||
| skipping to change at line 3770 ¶ | skipping to change at line 3678 ¶ | |||
| "List of tags."; | "List of tags."; | |||
| } | } | |||
| description | description | |||
| "Container for node administrative tags."; | "Container for node administrative tags."; | |||
| } | } | |||
| } | } | |||
| grouping instance-config { | grouping instance-config { | |||
| description | description | |||
| "OSPF instance configuration state."; | "OSPF instance configuration state."; | |||
| leaf enable { | leaf enable { | |||
| type boolean; | type boolean; | |||
| default true; | default "true"; | |||
| description | description | |||
| "Enables/disables the protocol."; | "Enables/disables the protocol."; | |||
| } | } | |||
| leaf explicit-router-id { | leaf explicit-router-id { | |||
| if-feature explicit-router-id; | if-feature "explicit-router-id"; | |||
| type rt-types:router-id; | type rt-types:router-id; | |||
| description | description | |||
| "Defined in RFC 2328. A 32-bit number | "Defined in RFC 2328. A 32-bit number | |||
| that uniquely identifies the router."; | that uniquely identifies the router."; | |||
| reference | reference | |||
| "RFC 2328: OSPF Version 2"; | "RFC 2328: OSPF Version 2"; | |||
| } | } | |||
| container preference { | container preference { | |||
| description | description | |||
| "Route preference configuration. In many | "Route preference configuration. In many | |||
| implementations, preference is referred to as | implementations, preference is referred to as | |||
| administrative distance."; | administrative distance."; | |||
| reference | reference | |||
| "RFC 8349: A YANG Data Model for Routing Management | "RFC 8349: A YANG Data Model for Routing Management | |||
| (NMDA Version)"; | (NMDA Version)"; | |||
| choice scope { | choice scope { | |||
| description | description | |||
| skipping to change at line 3842 ¶ | skipping to change at line 3747 ¶ | |||
| } | } | |||
| } | } | |||
| leaf external { | leaf external { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "Preference for AS external routes."; | "Preference for AS external routes."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container nsr { | container nsr { | |||
| if-feature nsr; | if-feature "nsr"; | |||
| description | description | |||
| "Non-Stop Routing (NSR) configuration state."; | "Non-Stop Routing (NSR) configuration state."; | |||
| leaf enable { | leaf enable { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "Enables/disables NSR."; | "Enables/disables NSR."; | |||
| } | } | |||
| } | } | |||
| container graceful-restart { | container graceful-restart { | |||
| if-feature graceful-restart; | if-feature "graceful-restart"; | |||
| description | description | |||
| "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 enable { | leaf enable { | |||
| 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."; | |||
| skipping to change at line 3877 ¶ | skipping to change at line 3780 ¶ | |||
| leaf helper-enable { | 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"; | |||
| } | } | |||
| units seconds; | units "seconds"; | |||
| default "120"; | default "120"; | |||
| description | description | |||
| "Interval during which to attempt graceful restart prior | "Interval during which to attempt graceful restart prior | |||
| to failing (seconds) (Appendix B.1 of RFC 3623)."; | to failing (seconds) (Appendix B.1 of RFC 3623)."; | |||
| reference | reference | |||
| "RFC 3623: Graceful OSPF Restart, Appendix B.1"; | "RFC 3623: Graceful OSPF Restart, Appendix B.1"; | |||
| } | } | |||
| leaf helper-strict-lsa-checking { | leaf helper-strict-lsa-checking { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| skipping to change at line 3896 ¶ | skipping to change at line 3799 ¶ | |||
| } | } | |||
| leaf helper-strict-lsa-checking { | leaf helper-strict-lsa-checking { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "Terminates graceful restart when an LSA topology change | "Terminates graceful restart when an LSA topology change | |||
| is detected (Appendix B.2 of RFC 3623)."; | is detected (Appendix B.2 of RFC 3623)."; | |||
| reference | reference | |||
| "RFC 3623: Graceful OSPF Restart, Appendix B.2"; | "RFC 3623: Graceful OSPF Restart, Appendix B.2"; | |||
| } | } | |||
| } | } | |||
| 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 enable { | leaf enable { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "Enables/disables interface auto-cost."; | "Enables/disables interface auto-cost."; | |||
| } | } | |||
| leaf reference-bandwidth { | leaf reference-bandwidth { | |||
| when "../enable = '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 | |||
| reference bandwidth divided by the interface speed, | reference bandwidth divided by the interface speed, | |||
| with 1 being the minimum cost."; | with 1 being the minimum cost."; | |||
| } | } | |||
| } | } | |||
| container spf-control { | container spf-control { | |||
| leaf paths { | leaf paths { | |||
| if-feature max-ecmp; | if-feature "max-ecmp"; | |||
| type uint16 { | type uint16 { | |||
| range "1..65535"; | range "1..65535"; | |||
| } | } | |||
| description | description | |||
| "Maximum number of Equal-Cost Multi-Path (ECMP) paths."; | "Maximum number of Equal-Cost Multi-Path (ECMP) paths."; | |||
| } | } | |||
| container ietf-spf-delay { | container ietf-spf-delay { | |||
| if-feature ietf-spf-delay; | if-feature "ietf-spf-delay"; | |||
| uses ietf-spf-delay; | uses ietf-spf-delay; | |||
| description | description | |||
| "IETF SPF delay algorithm configuration."; | "IETF SPF delay algorithm configuration."; | |||
| } | } | |||
| description | description | |||
| "SPF calculation control."; | "SPF calculation control."; | |||
| } | } | |||
| container database-control { | container database-control { | |||
| leaf max-lsa { | leaf max-lsa { | |||
| if-feature max-lsa; | if-feature "max-lsa"; | |||
| type uint32 { | type uint32 { | |||
| range "1..4294967294"; | range "1..4294967294"; | |||
| } | } | |||
| description | description | |||
| "Maximum number of OSPF LSAs the router will accept."; | "Maximum number of OSPF LSAs the router will accept."; | |||
| } | } | |||
| description | description | |||
| "Database maintenance control."; | "Database maintenance control."; | |||
| } | } | |||
| container stub-router { | container stub-router { | |||
| if-feature stub-router; | if-feature "stub-router"; | |||
| description | description | |||
| "Sets the maximum metric configuration."; | "Sets the maximum metric configuration."; | |||
| choice trigger { | choice trigger { | |||
| description | description | |||
| "Specific triggers that will enable stub router state."; | "Specific triggers that will enable stub router state."; | |||
| container always { | container always { | |||
| presence | presence "Enables unconditional stub router support"; | |||
| "Enables unconditional stub router support"; | ||||
| description | description | |||
| "Unconditional stub router state (advertises | "Unconditional stub router state (advertises | |||
| transit links with 'MaxLinkMetric')."; | transit links with 'MaxLinkMetric')."; | |||
| reference | reference | |||
| "RFC 6987: OSPF Stub Router Advertisement"; | "RFC 6987: OSPF Stub Router Advertisement"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container mpls { | container mpls { | |||
| description | description | |||
| "OSPF MPLS configuration state."; | "OSPF MPLS configuration state."; | |||
| container te-rid { | container te-rid { | |||
| if-feature te-rid; | if-feature "te-rid"; | |||
| description | description | |||
| "Stable OSPF Router IP address used for TE."; | "Stable OSPF Router IP address used for TE."; | |||
| leaf ipv4-router-id { | leaf ipv4-router-id { | |||
| type inet:ipv4-address; | type inet:ipv4-address; | |||
| description | description | |||
| "Explicitly configures the TE IPv4 Router ID."; | "Explicitly configures the TE IPv4 Router ID."; | |||
| } | } | |||
| leaf ipv6-router-id { | leaf ipv6-router-id { | |||
| type inet:ipv6-address; | type inet:ipv6-address; | |||
| description | description | |||
| "Explicitly configures the TE IPv6 Router ID."; | "Explicitly configures the TE IPv6 Router ID."; | |||
| } | } | |||
| } | } | |||
| container ldp { | container ldp { | |||
| description | description | |||
| "OSPF MPLS LDP configuration state."; | "OSPF MPLS LDP configuration state."; | |||
| leaf igp-sync { | leaf igp-sync { | |||
| if-feature ldp-igp-sync; | if-feature "ldp-igp-sync"; | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "Enables LDP IGP synchronization."; | "Enables LDP IGP synchronization."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| uses instance-fast-reroute-config; | uses instance-fast-reroute-config; | |||
| uses node-tag-config; | uses node-tag-config; | |||
| } | } | |||
| skipping to change at line 4107 ¶ | skipping to change at line 3999 ¶ | |||
| type ospf-metric; | type ospf-metric; | |||
| description | description | |||
| "Sets the summary default route cost for a | "Sets the summary default route cost for a | |||
| stub area or NSSA."; | stub area or NSSA."; | |||
| } | } | |||
| } | } | |||
| grouping multi-topology-area-config { | grouping multi-topology-area-config { | |||
| description | description | |||
| "OSPF multi-topology area configuration state."; | "OSPF multi-topology area configuration state."; | |||
| uses multi-topology-area-common-config; | uses multi-topology-area-common-config; | |||
| uses address-family-area-config; | uses address-family-area-config; | |||
| } | } | |||
| grouping multi-topology-state { | grouping multi-topology-state { | |||
| description | description | |||
| "OSPF multi-topology operational state."; | "OSPF multi-topology operational state."; | |||
| uses local-rib; | uses local-rib; | |||
| } | } | |||
| grouping multi-topology-interface-config { | grouping multi-topology-interface-config { | |||
| description | description | |||
| "OSPF multi-topology configuration state."; | "OSPF multi-topology configuration state."; | |||
| leaf cost { | leaf cost { | |||
| type ospf-link-metric; | type ospf-link-metric; | |||
| description | description | |||
| "Interface cost for this topology."; | "Interface cost for this topology."; | |||
| } | } | |||
| } | } | |||
| grouping ospfv3-interface-config { | grouping ospfv3-interface-config { | |||
| description | description | |||
| "OSPFv3 interface-specific configuration state."; | "OSPFv3 interface-specific configuration state."; | |||
| leaf instance-id { | leaf instance-id { | |||
| type uint8 { | type uint8 { | |||
| range "0 .. 31"; | range "0 .. 31"; | |||
| } | } | |||
| description | description | |||
| "OSPFv3 instance ID."; | "OSPFv3 instance ID."; | |||
| } | } | |||
| } | } | |||
| grouping ospfv3-interface-state { | grouping ospfv3-interface-state { | |||
| skipping to change at line 4196 ¶ | skipping to change at line 4083 ¶ | |||
| } | } | |||
| grouping spf-log { | grouping spf-log { | |||
| description | description | |||
| "Grouping for the SPF log."; | "Grouping for the SPF log."; | |||
| container spf-log { | container spf-log { | |||
| config false; | config false; | |||
| description | description | |||
| "This container lists the SPF log entries."; | "This container lists the SPF log entries."; | |||
| list event { | list event { | |||
| key id; | key "id"; | |||
| description | description | |||
| "List of SPF log entries represented | "List of SPF log entries represented | |||
| as a wrapping buffer in chronological | as a wrapping buffer in chronological | |||
| order, with the oldest entry returned | order, with the oldest entry returned | |||
| first."; | first."; | |||
| leaf id { | leaf id { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Event identifier. A purely internal value."; | "Event identifier. A purely internal value."; | |||
| } | } | |||
| skipping to change at line 4269 ¶ | skipping to change at line 4156 ¶ | |||
| grouping lsa-log { | grouping lsa-log { | |||
| description | description | |||
| "Grouping for the LSA log."; | "Grouping for the LSA log."; | |||
| container lsa-log { | container lsa-log { | |||
| config false; | config false; | |||
| description | description | |||
| "This container lists the LSA log entries. | "This container lists the LSA log entries. | |||
| Local LSA modifications are also included | Local LSA modifications are also included | |||
| in the list."; | in the list."; | |||
| list event { | list event { | |||
| key id; | key "id"; | |||
| description | description | |||
| "List of LSA log entries represented | "List of LSA log entries represented | |||
| as a wrapping buffer in chronological order, | as a wrapping buffer in chronological order, | |||
| with the oldest entry returned first."; | with the oldest entry returned first."; | |||
| leaf id { | leaf id { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Event identifier. A purely internal value."; | "Event identifier. A purely internal value."; | |||
| } | } | |||
| container lsa { | container lsa { | |||
| skipping to change at line 4304 ¶ | skipping to change at line 4191 ¶ | |||
| } | } | |||
| description | description | |||
| "Reason for the LSA log entry."; | "Reason for the LSA log entry."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
| + "rt:control-plane-protocol" { | + "rt:control-plane-protocol" { | |||
| when "derived-from(rt:type, 'ospf')" { | when "derived-from(rt:type, 'ospf')" { | |||
| description | description | |||
| "This augmentation is only valid for a routing protocol | "This augmentation is only valid for a routing protocol | |||
| instance of OSPF (type 'ospfv2' or 'ospfv3')."; | instance of OSPF (type 'ospfv2' or 'ospfv3')."; | |||
| } | } | |||
| description | description | |||
| "OSPF protocol 'ietf-routing' module 'control-plane-protocol' | "OSPF protocol 'ietf-routing' module 'control-plane-protocol' | |||
| augmentation."; | augmentation."; | |||
| container ospf { | container ospf { | |||
| description | description | |||
| "OSPF protocol instance."; | "OSPF protocol instance."; | |||
| leaf address-family { | leaf address-family { | |||
| type iana-rt-types:address-family; | type iana-rt-types:address-family; | |||
| description | description | |||
| "Address family of the instance."; | "Address family of the instance."; | |||
| } | } | |||
| uses instance-config; | uses instance-config; | |||
| uses instance-state; | uses instance-state; | |||
| container areas { | container areas { | |||
| description | description | |||
| "All areas."; | "All areas."; | |||
| list area { | list area { | |||
| key "area-id"; | key "area-id"; | |||
| description | description | |||
| "List of OSPF areas."; | "List of OSPF areas."; | |||
| leaf area-id { | leaf area-id { | |||
| type area-id-type; | type area-id-type; | |||
| description | description | |||
| skipping to change at line 4338 ¶ | skipping to change at line 4221 ¶ | |||
| "All areas."; | "All areas."; | |||
| list area { | list area { | |||
| key "area-id"; | key "area-id"; | |||
| description | description | |||
| "List of OSPF areas."; | "List of OSPF areas."; | |||
| leaf area-id { | leaf area-id { | |||
| type area-id-type; | type area-id-type; | |||
| description | description | |||
| "Area ID."; | "Area ID."; | |||
| } | } | |||
| uses area-config; | uses area-config; | |||
| uses area-state; | uses area-state; | |||
| container virtual-links { | container virtual-links { | |||
| when "derived-from-or-self(../area-type, 'normal-area') " | when "derived-from-or-self(../area-type, 'normal-area') " | |||
| + "and ../area-id = '0.0.0.0'" { | + "and ../area-id = '0.0.0.0'" { | |||
| description | description | |||
| "Virtual links must be in a backbone area."; | "Virtual links must be in a backbone area."; | |||
| } | } | |||
| description | description | |||
| "All virtual links."; | "All virtual links."; | |||
| list virtual-link { | list virtual-link { | |||
| key "transit-area-id router-id"; | key "transit-area-id router-id"; | |||
| description | description | |||
| "OSPF virtual link."; | "OSPF virtual link."; | |||
| leaf transit-area-id { | leaf transit-area-id { | |||
| type leafref { | type leafref { | |||
| path "../../../../area/area-id"; | path "../../../../area/area-id"; | |||
| } | } | |||
| must "derived-from-or-self(" | must "derived-from-or-self(" | |||
| + "../../../../area[area-id=current()]/area-type, " | + "../../../../area[area-id=current()]/area-type, " | |||
| + "'normal-area') and " | + "'normal-area') and " | |||
| + "../../../../area[area-id=current()]/area-id != " | + "../../../../area[area-id=current()]/area-id != " | |||
| + "'0.0.0.0'" { | + "'0.0.0.0'" { | |||
| error-message "The virtual link transit area must " | error-message "The virtual link transit area must " | |||
| + "be non-zero."; | + "be non-zero."; | |||
| description | description | |||
| "The virtual link transit area must be a | "The virtual link transit area must be a | |||
| non-zero area."; | non-zero area."; | |||
| } | } | |||
| description | description | |||
| "Virtual link transit area ID."; | "Virtual link transit area ID."; | |||
| } | } | |||
| leaf router-id { | leaf router-id { | |||
| skipping to change at line 4377 ¶ | skipping to change at line 4258 ¶ | |||
| non-zero area."; | non-zero area."; | |||
| } | } | |||
| description | description | |||
| "Virtual link transit area ID."; | "Virtual link transit area ID."; | |||
| } | } | |||
| leaf router-id { | leaf router-id { | |||
| type rt-types:router-id; | type rt-types:router-id; | |||
| description | description | |||
| "Virtual link remote endpoint Router ID."; | "Virtual link remote endpoint Router ID."; | |||
| } | } | |||
| uses virtual-link-config; | uses virtual-link-config; | |||
| uses virtual-link-state; | uses virtual-link-state; | |||
| } | } | |||
| } | } | |||
| container sham-links { | container sham-links { | |||
| if-feature pe-ce-protocol; | if-feature "pe-ce-protocol"; | |||
| description | description | |||
| "All sham links."; | "All sham links."; | |||
| list sham-link { | list sham-link { | |||
| key "local-id remote-id"; | key "local-id remote-id"; | |||
| description | description | |||
| "OSPF sham link."; | "OSPF sham link."; | |||
| leaf local-id { | leaf local-id { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| description | description | |||
| "Address of the local sham link endpoint."; | "Address of the local sham link endpoint."; | |||
| skipping to change at line 4432 ¶ | skipping to change at line 4312 ¶ | |||
| } | } | |||
| } | } | |||
| augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
| + "rt:control-plane-protocol/ospf" { | + "rt:control-plane-protocol/ospf" { | |||
| when "derived-from(../rt:type, 'ospf')" { | when "derived-from(../rt:type, 'ospf')" { | |||
| description | description | |||
| "This augmentation is only valid for OSPF | "This augmentation is only valid for OSPF | |||
| (type 'ospfv2' or 'ospfv3')."; | (type 'ospfv2' or 'ospfv3')."; | |||
| } | } | |||
| if-feature multi-topology; | if-feature "multi-topology"; | |||
| description | description | |||
| "OSPF multi-topology instance configuration | "OSPF multi-topology instance configuration | |||
| state augmentation."; | state augmentation."; | |||
| container topologies { | container topologies { | |||
| description | description | |||
| "All topologies."; | "All topologies."; | |||
| list topology { | list topology { | |||
| key "name"; | key "name"; | |||
| description | description | |||
| "OSPF topology. The OSPF topology address family | "OSPF topology. The OSPF topology address family | |||
| skipping to change at line 4466 ¶ | skipping to change at line 4345 ¶ | |||
| } | } | |||
| augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
| + "rt:control-plane-protocol/ospf/" | + "rt:control-plane-protocol/ospf/" | |||
| + "areas/area" { | + "areas/area" { | |||
| when "derived-from-or-self(../../../rt:type, " | when "derived-from-or-self(../../../rt:type, " | |||
| + "'ospfv2')" { | + "'ospfv2')" { | |||
| description | description | |||
| "This augmentation is only valid for OSPFv2."; | "This augmentation is only valid for OSPFv2."; | |||
| } | } | |||
| if-feature multi-topology; | if-feature "multi-topology"; | |||
| description | description | |||
| "OSPF multi-topology area configuration state | "OSPF multi-topology area configuration state | |||
| augmentation."; | augmentation."; | |||
| container topologies { | container topologies { | |||
| description | description | |||
| "All topologies for the area."; | "All topologies for the area."; | |||
| list topology { | list topology { | |||
| key "name"; | key "name"; | |||
| description | description | |||
| "OSPF area topology."; | "OSPF area topology."; | |||
| skipping to change at line 4499 ¶ | skipping to change at line 4377 ¶ | |||
| } | } | |||
| augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
| + "rt:control-plane-protocol/ospf/" | + "rt:control-plane-protocol/ospf/" | |||
| + "areas/area/interfaces/interface" { | + "areas/area/interfaces/interface" { | |||
| when "derived-from-or-self(../../../../../rt:type, " | when "derived-from-or-self(../../../../../rt:type, " | |||
| + "'ospfv2')" { | + "'ospfv2')" { | |||
| description | description | |||
| "This augmentation is only valid for OSPFv2."; | "This augmentation is only valid for OSPFv2."; | |||
| } | } | |||
| if-feature multi-topology; | if-feature "multi-topology"; | |||
| description | description | |||
| "OSPF multi-topology interface configuration state | "OSPF multi-topology interface configuration state | |||
| augmentation."; | augmentation."; | |||
| container topologies { | container topologies { | |||
| description | description | |||
| "All topologies for the interface."; | "All topologies for the interface."; | |||
| list topology { | list topology { | |||
| key "name"; | key "name"; | |||
| description | description | |||
| "OSPF interface topology."; | "OSPF interface topology."; | |||
| skipping to change at line 4587 ¶ | skipping to change at line 4464 ¶ | |||
| "This RPC request clears a particular set of OSPF neighbors. | "This RPC request clears a particular set of OSPF neighbors. | |||
| If the operation fails for an OSPF-internal reason, then | If the operation fails for an OSPF-internal reason, then | |||
| 'error-tag' and 'error-app-tag' should be set to meaningful | 'error-tag' and 'error-app-tag' should be set to meaningful | |||
| values."; | values."; | |||
| input { | input { | |||
| leaf routing-protocol-name { | leaf routing-protocol-name { | |||
| type leafref { | type leafref { | |||
| path "/rt:routing/rt:control-plane-protocols/" | path "/rt:routing/rt:control-plane-protocols/" | |||
| + "rt:control-plane-protocol/rt:name"; | + "rt:control-plane-protocol/rt:name"; | |||
| } | } | |||
| mandatory "true"; | mandatory true; | |||
| description | description | |||
| "OSPF protocol instance for which information for neighbors | "OSPF protocol instance for which information for neighbors | |||
| is to be cleared. | is to be cleared. | |||
| If the referenced OSPF instance doesn't exist, then | If the referenced OSPF instance doesn't exist, then | |||
| this operation SHALL fail with an 'error-tag' setting of | this operation SHALL fail with an 'error-tag' setting of | |||
| 'data-missing' and an 'error-app-tag' setting of | 'data-missing' and an 'error-app-tag' setting of | |||
| 'routing-protocol-instance-not-found'."; | 'routing-protocol-instance-not-found'."; | |||
| } | } | |||
| leaf interface { | leaf interface { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description | description | |||
| "Name of the OSPF interface for which neighbors are to | "Name of the OSPF interface for which neighbors are to | |||
| be cleared. | be cleared. | |||
| If the referenced OSPF interface doesn't exist, then | If the referenced OSPF interface doesn't exist, then | |||
| this operation SHALL fail with an 'error-tag' setting | this operation SHALL fail with an 'error-tag' setting | |||
| of 'data-missing' and an 'error-app-tag' setting of | of 'data-missing' and an 'error-app-tag' setting of | |||
| 'ospf-interface-not-found'."; | 'ospf-interface-not-found'."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| rpc clear-database { | rpc clear-database { | |||
| description | description | |||
| "This RPC request clears a particular OSPF LSDB. | "This RPC request clears a particular OSPF LSDB. | |||
| If the operation fails for an OSPF-internal reason, | If the operation fails for an OSPF-internal reason, | |||
| then 'error-tag' and 'error-app-tag' should be set to | then 'error-tag' and 'error-app-tag' should be set to | |||
| meaningful values."; | meaningful values."; | |||
| input { | input { | |||
| leaf routing-protocol-name { | leaf routing-protocol-name { | |||
| type leafref { | type leafref { | |||
| path "/rt:routing/rt:control-plane-protocols/" | path "/rt:routing/rt:control-plane-protocols/" | |||
| + "rt:control-plane-protocol/rt:name"; | + "rt:control-plane-protocol/rt:name"; | |||
| } | } | |||
| mandatory "true"; | mandatory true; | |||
| description | description | |||
| "OSPF protocol instance whose LSDB is to be cleared. | "OSPF protocol instance whose LSDB is to be cleared. | |||
| If the referenced OSPF instance doesn't exist, then | If the referenced OSPF instance doesn't exist, then | |||
| this operation SHALL fail with an 'error-tag' setting of | this operation SHALL fail with an 'error-tag' setting of | |||
| 'data-missing' and an 'error-app-tag' setting of | 'data-missing' and an 'error-app-tag' setting of | |||
| 'routing-protocol-instance-not-found'."; | 'routing-protocol-instance-not-found'."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| skipping to change at line 4644 ¶ | skipping to change at line 4520 ¶ | |||
| } | } | |||
| /* | /* | |||
| * Notifications | * Notifications | |||
| */ | */ | |||
| grouping notification-instance-hdr { | grouping notification-instance-hdr { | |||
| description | description | |||
| "This grouping describes common instance-specific | "This grouping describes common instance-specific | |||
| data for OSPF notifications."; | data for OSPF notifications."; | |||
| leaf routing-protocol-name { | leaf routing-protocol-name { | |||
| type leafref { | type leafref { | |||
| path "/rt:routing/rt:control-plane-protocols/" | path "/rt:routing/rt:control-plane-protocols/" | |||
| + "rt:control-plane-protocol/rt:name"; | + "rt:control-plane-protocol/rt:name"; | |||
| } | } | |||
| must "derived-from( " | must "derived-from( " | |||
| + "/rt:routing/rt:control-plane-protocols/" | + "/rt:routing/rt:control-plane-protocols/" | |||
| + "rt:control-plane-protocol[rt:name=current()]/" | + "rt:control-plane-protocol[rt:name=current()]/" | |||
| + "rt:type, 'ospf')"; | + "rt:type, 'ospf')"; | |||
| description | description | |||
| "Name of the OSPF routing protocol instance."; | "Name of the OSPF routing protocol instance."; | |||
| } | } | |||
| leaf address-family { | leaf address-family { | |||
| type leafref { | type leafref { | |||
| path "/rt:routing/" | path "/rt:routing/" | |||
| + "rt:control-plane-protocols/rt:control-plane-protocol" | + "rt:control-plane-protocols/rt:control-plane-protocol" | |||
| + "[rt:name=current()/../routing-protocol-name]/" | + "[rt:name=current()/../routing-protocol-name]/" | |||
| + "ospf/address-family"; | + "ospf/address-family"; | |||
| } | } | |||
| description | description | |||
| "Address family of the OSPF instance."; | "Address family of the OSPF instance."; | |||
| } | } | |||
| skipping to change at line 4758 ¶ | skipping to change at line 4628 ¶ | |||
| "Interface state."; | "Interface state."; | |||
| } | } | |||
| description | description | |||
| "This notification is sent when an interface | "This notification is sent when an interface | |||
| state change is detected."; | state change is detected."; | |||
| } | } | |||
| notification if-config-error { | notification if-config-error { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface; | uses notification-interface; | |||
| leaf packet-source { | leaf packet-source { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| description | description | |||
| "Source address."; | "Source address."; | |||
| } | } | |||
| leaf packet-type { | leaf packet-type { | |||
| type packet-type; | type packet-type; | |||
| description | description | |||
| "OSPF packet type."; | "OSPF packet type."; | |||
| } | } | |||
| leaf error { | leaf error { | |||
| type enumeration { | type enumeration { | |||
| enum "bad-version" { | enum bad-version { | |||
| description | description | |||
| "Bad version."; | "Bad version."; | |||
| } | } | |||
| enum "area-mismatch" { | enum area-mismatch { | |||
| description | description | |||
| "Area mismatch."; | "Area mismatch."; | |||
| } | } | |||
| enum "unknown-nbma-nbr" { | enum unknown-nbma-nbr { | |||
| description | description | |||
| "Unknown NBMA neighbor."; | "Unknown NBMA neighbor."; | |||
| } | } | |||
| enum "unknown-virtual-nbr" { | enum unknown-virtual-nbr { | |||
| description | description | |||
| "Unknown virtual link neighbor."; | "Unknown virtual link neighbor."; | |||
| } | } | |||
| enum "auth-type-mismatch" { | enum auth-type-mismatch { | |||
| description | description | |||
| "Authentication type mismatch."; | "Authentication type mismatch."; | |||
| } | } | |||
| enum "auth-failure" { | enum auth-failure { | |||
| description | description | |||
| "Authentication failure."; | "Authentication failure."; | |||
| } | } | |||
| enum "net-mask-mismatch" { | enum net-mask-mismatch { | |||
| description | description | |||
| "Network mask mismatch."; | "Network mask mismatch."; | |||
| } | } | |||
| enum "hello-interval-mismatch" { | enum hello-interval-mismatch { | |||
| description | description | |||
| "Hello interval mismatch."; | "Hello interval mismatch."; | |||
| } | } | |||
| enum "dead-interval-mismatch" { | enum dead-interval-mismatch { | |||
| description | description | |||
| "Dead interval mismatch."; | "Dead interval mismatch."; | |||
| } | } | |||
| enum "option-mismatch" { | enum option-mismatch { | |||
| description | description | |||
| "Option mismatch."; | "Option mismatch."; | |||
| } | } | |||
| enum "mtu-mismatch" { | enum mtu-mismatch { | |||
| description | description | |||
| "MTU mismatch."; | "MTU mismatch."; | |||
| } | } | |||
| enum "duplicate-router-id" { | enum duplicate-router-id { | |||
| description | description | |||
| "Duplicate Router ID."; | "Duplicate Router ID."; | |||
| } | } | |||
| enum "no-error" { | enum no-error { | |||
| description | description | |||
| "No error."; | "No error."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "Error codes."; | "Error codes."; | |||
| } | } | |||
| description | description | |||
| "This notification is sent when an interface | "This notification is sent when an interface | |||
| configuration error is detected."; | configuration error is detected."; | |||
| skipping to change at line 4882 ¶ | skipping to change at line 4744 ¶ | |||
| "Restart helper exit reason."; | "Restart helper exit reason."; | |||
| } | } | |||
| description | description | |||
| "This notification is sent when a neighbor restart | "This notification is sent when a neighbor restart | |||
| helper status change is detected."; | helper status change is detected."; | |||
| } | } | |||
| notification if-rx-bad-packet { | notification if-rx-bad-packet { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface; | uses notification-interface; | |||
| leaf packet-source { | leaf packet-source { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| description | description | |||
| "Source address."; | "Source address."; | |||
| } | } | |||
| leaf packet-type { | leaf packet-type { | |||
| type packet-type; | type packet-type; | |||
| description | description | |||
| "OSPF packet type."; | "OSPF packet type."; | |||
| } | } | |||
| description | description | |||
| "This notification is sent when an OSPF packet that | "This notification is sent when an OSPF packet that | |||
| cannot be parsed is received on an OSPF interface."; | cannot be parsed is received on an OSPF interface."; | |||
| } | } | |||
| notification lsdb-approaching-overflow { | notification lsdb-approaching-overflow { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| leaf ext-lsdb-limit { | leaf ext-lsdb-limit { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "The maximum number of non-default AS-external LSA | "The maximum number of non-default AS-external LSA | |||
| entries that can be stored in the LSDB."; | entries that can be stored in the LSDB."; | |||
| } | } | |||
| description | description | |||
| "This notification is sent when the number of LSAs | "This notification is sent when the number of LSAs | |||
| in the router's LSDB has exceeded ninety percent of the | in the router's LSDB has exceeded ninety percent of the | |||
| AS-external limit ('ext-lsdb-limit')."; | AS-external limit ('ext-lsdb-limit')."; | |||
| } | } | |||
| notification lsdb-overflow { | notification lsdb-overflow { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| leaf ext-lsdb-limit { | leaf ext-lsdb-limit { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "The maximum number of non-default AS-external LSA | "The maximum number of non-default AS-external LSA | |||
| entries that can be stored in the LSDB."; | entries that can be stored in the LSDB."; | |||
| } | } | |||
| description | description | |||
| "This notification is sent when the number of LSAs | "This notification is sent when the number of LSAs | |||
| in the router's LSDB has exceeded the AS-external limit | in the router's LSDB has exceeded the AS-external limit | |||
| ('ext-lsdb-limit')."; | ('ext-lsdb-limit')."; | |||
| } | } | |||
| notification nssa-translator-status-change { | notification nssa-translator-status-change { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| leaf area-id { | leaf area-id { | |||
| type area-id-type; | type area-id-type; | |||
| description | description | |||
| "Area ID."; | "Area ID."; | |||
| } | } | |||
| leaf status { | leaf status { | |||
| type nssa-translator-state-type; | type nssa-translator-state-type; | |||
| description | description | |||
| "NSSA translator status."; | "NSSA translator status."; | |||
| } | } | |||
| description | description | |||
| "This notification is sent when there is a change | "This notification is sent when there is a change | |||
| in the router's role in translating OSPF NSSA LSAs | in the router's role in translating OSPF NSSA LSAs | |||
| to OSPF AS-External LSAs."; | to OSPF AS-External LSAs."; | |||
| } | } | |||
| notification restart-status-change { | notification restart-status-change { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| leaf status { | leaf status { | |||
| type restart-status-type; | type restart-status-type; | |||
| description | description | |||
| "Restart status."; | "Restart status."; | |||
| } | } | |||
| leaf restart-interval { | leaf restart-interval { | |||
| type uint16 { | type uint16 { | |||
| range 1..1800; | range "1..1800"; | |||
| } | } | |||
| units seconds; | units "seconds"; | |||
| default "120"; | default "120"; | |||
| description | description | |||
| "Restart interval."; | "Restart interval."; | |||
| } | } | |||
| leaf exit-reason { | leaf exit-reason { | |||
| type restart-exit-reason-type; | type restart-exit-reason-type; | |||
| description | description | |||
| "Restart exit reason."; | "Restart exit reason."; | |||
| } | } | |||
| description | description | |||
| "This notification is sent when the graceful restart | "This notification is sent when the graceful restart | |||
| state for the router has changed."; | state for the router has changed."; | |||
| } | } | |||
| } | } | |||
| End of changes. 254 change blocks. | ||||
| 298 lines changed or deleted | 215 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/ | ||||