| < draft-acee-lsr-ospfv3-sr-yang-03.txt | draft-acee-lsr-ospfv3-sr-yang-04.txt > | |||
|---|---|---|---|---|
| Internet A. Lindem | Internet A. Lindem | |||
| Internet-Draft Cisco Systems | Internet-Draft Cisco Systems | |||
| Intended status: Informational Y. Qu | Intended status: Informational Y. Qu | |||
| Expires: April 30, 2021 Futurewei | Expires: October 31, 2021 Futurewei | |||
| October 27, 2020 | April 29, 2021 | |||
| YANG Data Model for OSPFv3 Segment Routing | YANG Data Model for OSPFv3 Segment Routing | |||
| draft-acee-lsr-ospfv3-sr-yang-03 | draft-acee-lsr-ospfv3-sr-yang-04 | |||
| Abstract | Abstract | |||
| This document defines a YANG data module augmenting the IETF OSPF | This document defines a YANG data module augmenting the IETF OSPF | |||
| Segment Routing (SR) YANG model to support OSPFv3 extensions for SR. | Segment Routing (SR) YANG model to support OSPFv3 extensions for SR. | |||
| It can be used to configure and manage OSPFv3 Segment Routing in MPLS | It can be used to configure and manage OSPFv3 Segment Routing in MPLS | |||
| data plane. | data plane. | |||
| Status of This Memo | Status of This Memo | |||
| skipping to change at page 1, line 34 ¶ | skipping to change at page 1, line 34 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on April 30, 2021. | This Internet-Draft will expire on October 31, 2021. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| skipping to change at page 2, line 17 ¶ | skipping to change at page 2, line 17 ¶ | |||
| 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2 | 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . . . 2 | 2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 3. OSPFv3 Extensions for Segment Routing . . . . . . . . . . . . 2 | 3. OSPFv3 Extensions for Segment Routing . . . . . . . . . . . . 2 | |||
| 4. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | 4. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 18 | 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 7.1. Normative References . . . . . . . . . . . . . . . . . . 18 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 18 | |||
| 7.2. Informative References . . . . . . . . . . . . . . . . . 19 | 7.2. Informative References . . . . . . . . . . . . . . . . . 19 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
| 1. Overview | 1. Overview | |||
| YANG [RFC6020] [RFC7950] is a data definition language used to define | YANG [RFC6020] [RFC7950] is a data definition language used to define | |||
| the contents of a conceptual data store that allows networked devices | the contents of a conceptual data store that allows networked devices | |||
| to be managed using NETCONF [RFC6241]. YANG is proving relevant | to be managed using NETCONF [RFC6241]. YANG is proving relevant | |||
| beyond its initial confines, as bindings to other interfaces (e.g., | beyond its initial confines, as bindings to other interfaces (e.g., | |||
| ReST) and encodings other than XML (e.g., JSON) are being defined. | ReST) and encodings other than XML (e.g., JSON) are being defined. | |||
| Furthermore, YANG data models can be used as the basis for | Furthermore, YANG data models can be used as the basis for | |||
| implementation of other interfaces, such as CLI and programmatic | implementation of other interfaces, such as CLI and programmatic | |||
| skipping to change at page 2, line 51 ¶ | skipping to change at page 2, line 51 ¶ | |||
| document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
| 2. Tree Diagrams | 2. Tree Diagrams | |||
| This document uses the graphical representation of data models | This document uses the graphical representation of data models | |||
| defined in [RFC8340]. | defined in [RFC8340]. | |||
| 3. OSPFv3 Extensions for Segment Routing | 3. OSPFv3 Extensions for Segment Routing | |||
| This document defines a YANG module for OSPFv3 extensions for Segment | This document defines a YANG module for OSPFv3 extensions for Segment | |||
| Routing [RFC8666]. It is an augmentation of the OSPF SR base model. | Routing [RFC8666]. It is an augmentation of the OSPF SR base YANG | |||
| model. [RFC8022] and [RFC8349] are not referenced in the document | ||||
| module: ietf-ospfv3-sr | text but within the YANG module itself. | |||
| augment /rt:routing/rt:control-plane-protocols | ||||
| /rt:control-plane-protocol/ospf:ospf/ospf:database | ||||
| /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa | ||||
| /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body | ||||
| /ospf:router-information: | ||||
| +--ro sr-algorithm-tlv | ||||
| | +--ro sr-algorithm* uint8 | ||||
| +--ro sid-range-tlvs | ||||
| | +--ro sid-range-tlv* [] | ||||
| | +--ro range-size? uint24 | ||||
| | +--ro sid-sub-tlv | ||||
| | +--ro sid? uint32 | ||||
| +--ro local-block-tlvs | ||||
| | +--ro local-block-tlv* [] | ||||
| | +--ro range-size? uint24 | ||||
| | +--ro sid-sub-tlv | ||||
| | +--ro sid? uint32 | ||||
| +--ro srms-preference-tlv | ||||
| +--ro preference? uint8 | ||||
| augment /rt:routing/rt:control-plane-protocols | ||||
| /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | ||||
| /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | ||||
| /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | ||||
| /ospf:body/ospf:router-information: | ||||
| +--ro sr-algorithm-tlv | ||||
| | +--ro sr-algorithm* uint8 | ||||
| +--ro sid-range-tlvs | ||||
| | +--ro sid-range-tlv* [] | ||||
| | +--ro range-size? uint24 | ||||
| | +--ro sid-sub-tlv | ||||
| | +--ro sid? uint32 | ||||
| +--ro local-block-tlvs | ||||
| | +--ro local-block-tlv* [] | ||||
| | +--ro range-size? uint24 | ||||
| | +--ro sid-sub-tlv | ||||
| | +--ro sid? uint32 | ||||
| +--ro srms-preference-tlv | ||||
| +--ro preference? uint8 | ||||
| augment /rt:routing/rt:control-plane-protocols | ||||
| /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | ||||
| /ospf:interfaces/ospf:interface/ospf:database | ||||
| /ospf:link-scope-lsa-type/ospf:link-scope-lsas | ||||
| /ospf:link-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | ||||
| /ospf:body/ospf:router-information: | ||||
| +--ro sr-algorithm-tlv | ||||
| | +--ro sr-algorithm* uint8 | ||||
| +--ro sid-range-tlvs | ||||
| | +--ro sid-range-tlv* [] | ||||
| | +--ro range-size? uint24 | ||||
| | +--ro sid-sub-tlv | ||||
| | +--ro sid? uint32 | ||||
| +--ro local-block-tlvs | ||||
| | +--ro local-block-tlv* [] | ||||
| | +--ro range-size? uint24 | ||||
| | +--ro sid-sub-tlv | ||||
| | +--ro sid? uint32 | ||||
| +--ro srms-preference-tlv | ||||
| +--ro preference? uint8 | ||||
| augment /rt:routing/rt:control-plane-protocols | ||||
| /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | ||||
| /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | ||||
| /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | ||||
| /ospf:body/ospfv3-e-lsa:e-intra-area-prefix: | ||||
| +--ro ospfv3-extended-prefix-range-tlvs | ||||
| +--ro extended-prefix-range-tlv* [] | ||||
| +--ro prefix-length? uint8 | ||||
| +--ro af? uint8 | ||||
| +--ro range-size? uint16 | ||||
| +--ro prefix? inet:ip-prefix | ||||
| +--ro perfix-sid-sub-tlvs | ||||
| | +--ro prefix-sid-sub-tlv* [] | ||||
| | +--ro ospfv3-prefix-sid-flags | ||||
| | | +--ro bits* identityref | ||||
| | +--ro algorithm? uint8 | ||||
| | +--ro sid? uint32 | ||||
| +--ro unknown-tlvs | ||||
| +--ro unknown-tlv* [] | ||||
| +--ro type? uint16 | ||||
| +--ro length? uint16 | ||||
| +--ro value? yang:hex-string | ||||
| augment /rt:routing/rt:control-plane-protocols | ||||
| /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | ||||
| /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | ||||
| /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | ||||
| /ospf:body/ospfv3-e-lsa:e-inter-area-prefix: | ||||
| +--ro ospfv3-extended-prefix-range-tlvs | ||||
| +--ro extended-prefix-range-tlv* [] | ||||
| +--ro prefix-length? uint8 | ||||
| +--ro af? uint8 | ||||
| +--ro range-size? uint16 | ||||
| +--ro prefix? inet:ip-prefix | ||||
| +--ro perfix-sid-sub-tlvs | ||||
| | +--ro prefix-sid-sub-tlv* [] | ||||
| | +--ro ospfv3-prefix-sid-flags | ||||
| | | +--ro bits* identityref | ||||
| | +--ro algorithm? uint8 | ||||
| | +--ro sid? uint32 | ||||
| +--ro unknown-tlvs | ||||
| +--ro unknown-tlv* [] | ||||
| +--ro type? uint16 | ||||
| +--ro length? uint16 | ||||
| +--ro value? yang:hex-string | ||||
| augment /rt:routing/rt:control-plane-protocols | ||||
| /rt:control-plane-protocol/ospf:ospf/ospf:database | ||||
| /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa | ||||
| /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body | ||||
| /ospfv3-e-lsa:e-as-external: | ||||
| +--ro ospfv3-extended-prefix-range-tlvs | ||||
| +--ro extended-prefix-range-tlv* [] | ||||
| +--ro prefix-length? uint8 | ||||
| +--ro af? uint8 | ||||
| +--ro range-size? uint16 | ||||
| +--ro prefix? inet:ip-prefix | ||||
| +--ro perfix-sid-sub-tlvs | ||||
| | +--ro prefix-sid-sub-tlv* [] | ||||
| | +--ro ospfv3-prefix-sid-flags | ||||
| | | +--ro bits* identityref | ||||
| | +--ro algorithm? uint8 | ||||
| | +--ro sid? uint32 | ||||
| +--ro unknown-tlvs | ||||
| +--ro unknown-tlv* [] | ||||
| +--ro type? uint16 | ||||
| +--ro length? uint16 | ||||
| +--ro value? yang:hex-string | ||||
| augment /rt:routing/rt:control-plane-protocols | ||||
| /rt:control-plane-protocol/ospf:ospf/ospf:database | ||||
| /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa | ||||
| /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body | ||||
| /ospfv3-e-lsa:e-nssa: | ||||
| +--ro ospfv3-extended-prefix-range-tlvs | ||||
| +--ro extended-prefix-range-tlv* [] | ||||
| +--ro prefix-length? uint8 | ||||
| +--ro af? uint8 | ||||
| +--ro range-size? uint16 | ||||
| +--ro prefix? inet:ip-prefix | ||||
| +--ro perfix-sid-sub-tlvs | ||||
| | +--ro prefix-sid-sub-tlv* [] | ||||
| | +--ro ospfv3-prefix-sid-flags | ||||
| | | +--ro bits* identityref | ||||
| | +--ro algorithm? uint8 | ||||
| | +--ro sid? uint32 | ||||
| +--ro unknown-tlvs | ||||
| +--ro unknown-tlv* [] | ||||
| +--ro type? uint16 | ||||
| +--ro length? uint16 | ||||
| +--ro value? yang:hex-string | ||||
| augment /rt:routing/rt:control-plane-protocols | ||||
| /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | ||||
| /ospf:interfaces/ospf:interface/ospf:database | ||||
| /ospf:link-scope-lsa-type/ospf:link-scope-lsas | ||||
| /ospf:link-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | ||||
| /ospf:body/ospfv3-e-lsa:e-link/ospfv3-e-lsa:e-link-tlvs | ||||
| /ospfv3-e-lsa:intra-prefix-tlv: | ||||
| +--ro perfix-sid-sub-tlvs | ||||
| +--ro prefix-sid-sub-tlv* [] | ||||
| +--ro ospfv3-prefix-sid-flags | ||||
| | +--ro bits* identityref | ||||
| +--ro algorithm? uint8 | ||||
| +--ro sid? uint32 | ||||
| augment /rt:routing/rt:control-plane-protocols | ||||
| /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | ||||
| /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | ||||
| /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | ||||
| /ospf:body/ospfv3-e-lsa:e-intra-area-prefix | ||||
| /ospfv3-e-lsa:e-intra-prefix-tlvs | ||||
| /ospfv3-e-lsa:intra-prefix-tlv: | ||||
| +--ro perfix-sid-sub-tlvs | ||||
| +--ro prefix-sid-sub-tlv* [] | ||||
| +--ro ospfv3-prefix-sid-flags | ||||
| | +--ro bits* identityref | ||||
| +--ro algorithm? uint8 | ||||
| +--ro sid? uint32 | ||||
| augment /rt:routing/rt:control-plane-protocols | ||||
| /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | ||||
| /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | ||||
| /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | ||||
| /ospf:body/ospfv3-e-lsa:e-inter-area-prefix | ||||
| /ospfv3-e-lsa:e-inter-prefix-tlvs | ||||
| /ospfv3-e-lsa:inter-prefix-tlv: | ||||
| +--ro perfix-sid-sub-tlvs | ||||
| +--ro prefix-sid-sub-tlv* [] | ||||
| +--ro ospfv3-prefix-sid-flags | ||||
| | +--ro bits* identityref | ||||
| +--ro algorithm? uint8 | ||||
| +--ro sid? uint32 | ||||
| augment /rt:routing/rt:control-plane-protocols | ||||
| /rt:control-plane-protocol/ospf:ospf/ospf:database | ||||
| /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa | ||||
| /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body | ||||
| /ospfv3-e-lsa:e-as-external/ospfv3-e-lsa:e-external-tlvs | ||||
| /ospfv3-e-lsa:external-prefix-tlv: | ||||
| +--ro perfix-sid-sub-tlvs | ||||
| +--ro prefix-sid-sub-tlv* [] | ||||
| +--ro ospfv3-prefix-sid-flags | ||||
| | +--ro bits* identityref | ||||
| +--ro algorithm? uint8 | ||||
| +--ro sid? uint32 | ||||
| augment /rt:routing/rt:control-plane-protocols | ||||
| /rt:control-plane-protocol/ospf:ospf/ospf:database | ||||
| /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa | ||||
| /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body | ||||
| /ospfv3-e-lsa:e-nssa/ospfv3-e-lsa:e-external-tlvs | ||||
| /ospfv3-e-lsa:external-prefix-tlv: | ||||
| +--ro perfix-sid-sub-tlvs | ||||
| +--ro prefix-sid-sub-tlv* [] | ||||
| +--ro ospfv3-prefix-sid-flags | ||||
| | +--ro bits* identityref | ||||
| +--ro algorithm? uint8 | ||||
| +--ro sid? uint32 | ||||
| augment /rt:routing/rt:control-plane-protocols | ||||
| /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | ||||
| /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | ||||
| /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | ||||
| /ospf:body/ospfv3-e-lsa:e-router/ospfv3-e-lsa:e-router-tlvs | ||||
| /ospfv3-e-lsa:link-tlv: | ||||
| +--ro adj-sid-sub-tlvs | ||||
| | +--ro adj-sid-sub-tlv* [] | ||||
| | +--ro adj-sid-flags | ||||
| | | +--ro bits* identityref | ||||
| | +--ro weight? uint8 | ||||
| | +--ro sid? uint32 | ||||
| +--ro lan-adj-sid-sub-tlvs | ||||
| +--ro lan-adj-sid-sub-tlv* [] | ||||
| +--ro lan-adj-sid-flags | ||||
| | +--ro bits* identityref | ||||
| +--ro weight? uint8 | ||||
| +--ro neighbor-router-id? yang:dotted-quad | ||||
| +--ro sid? uint32 | ||||
| <CODE BEGINS> file "ietf-ospfv3-sr@2020-10-27.yang" | ||||
| module ietf-ospfv3-sr { | ||||
| yang-version 1.1; | ||||
| namespace "urn:ietf:params:xml:ns:yang:ietf-ospfv3-sr"; | ||||
| prefix ospfv3-sr; | ||||
| import ietf-inet-types { | ||||
| prefix "inet"; | ||||
| } | ||||
| import ietf-yang-types { | ||||
| prefix "yang"; | ||||
| } | ||||
| import ietf-routing { | module: ietf-ospfv3-sr | |||
| prefix "rt"; | augment /rt:routing/rt:control-plane-protocols | |||
| } | /rt:control-plane-protocol/ospf:ospf/ospf:database | |||
| /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa | ||||
| /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body | ||||
| /ospf:router-information: | ||||
| +--ro sr-algorithm-tlv | ||||
| | +--ro sr-algorithm* uint8 | ||||
| +--ro sid-range-tlvs | ||||
| | +--ro sid-range-tlv* [] | ||||
| | +--ro range-size? uint24 | ||||
| | +--ro sid-sub-tlv | ||||
| | +--ro sid? uint32 | ||||
| +--ro local-block-tlvs | ||||
| | +--ro local-block-tlv* [] | ||||
| | +--ro range-size? uint24 | ||||
| | +--ro sid-sub-tlv | ||||
| | +--ro sid? uint32 | ||||
| +--ro srms-preference-tlv | ||||
| +--ro preference? uint8 | ||||
| augment /rt:routing/rt:control-plane-protocols | ||||
| /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | ||||
| /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | ||||
| /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | ||||
| /ospf:body/ospf:router-information: | ||||
| +--ro sr-algorithm-tlv | ||||
| | +--ro sr-algorithm* uint8 | ||||
| +--ro sid-range-tlvs | ||||
| | +--ro sid-range-tlv* [] | ||||
| | +--ro range-size? uint24 | ||||
| | +--ro sid-sub-tlv | ||||
| | +--ro sid? uint32 | ||||
| +--ro local-block-tlvs | ||||
| | +--ro local-block-tlv* [] | ||||
| | +--ro range-size? uint24 | ||||
| | +--ro sid-sub-tlv | ||||
| | +--ro sid? uint32 | ||||
| +--ro srms-preference-tlv | ||||
| +--ro preference? uint8 | ||||
| augment /rt:routing/rt:control-plane-protocols | ||||
| /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | ||||
| /ospf:interfaces/ospf:interface/ospf:database | ||||
| /ospf:link-scope-lsa-type/ospf:link-scope-lsas | ||||
| /ospf:link-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | ||||
| /ospf:body/ospf:router-information: | ||||
| import ietf-ospf { | +--ro sr-algorithm-tlv | |||
| prefix "ospf"; | | +--ro sr-algorithm* uint8 | |||
| } | +--ro sid-range-tlvs | |||
| | +--ro sid-range-tlv* [] | ||||
| | +--ro range-size? uint24 | ||||
| | +--ro sid-sub-tlv | ||||
| | +--ro sid? uint32 | ||||
| +--ro local-block-tlvs | ||||
| | +--ro local-block-tlv* [] | ||||
| | +--ro range-size? uint24 | ||||
| | +--ro sid-sub-tlv | ||||
| | +--ro sid? uint32 | ||||
| +--ro srms-preference-tlv | ||||
| +--ro preference? uint8 | ||||
| augment /rt:routing/rt:control-plane-protocols | ||||
| /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | ||||
| /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | ||||
| /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | ||||
| /ospf:body/ospfv3-e-lsa:e-intra-area-prefix: | ||||
| +--ro ospfv3-extended-prefix-range-tlvs | ||||
| +--ro extended-prefix-range-tlv* [] | ||||
| +--ro prefix-length? uint8 | ||||
| +--ro af? uint8 | ||||
| +--ro range-size? uint16 | ||||
| +--ro prefix? inet:ip-prefix | ||||
| +--ro perfix-sid-sub-tlvs | ||||
| | +--ro prefix-sid-sub-tlv* [] | ||||
| | +--ro ospfv3-prefix-sid-flags | ||||
| | | +--ro bits* identityref | ||||
| | +--ro algorithm? uint8 | ||||
| | +--ro sid? uint32 | ||||
| +--ro unknown-tlvs | ||||
| +--ro unknown-tlv* [] | ||||
| +--ro type? uint16 | ||||
| +--ro length? uint16 | ||||
| +--ro value? yang:hex-string | ||||
| augment /rt:routing/rt:control-plane-protocols | ||||
| /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | ||||
| /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | ||||
| /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | ||||
| /ospf:body/ospfv3-e-lsa:e-inter-area-prefix: | ||||
| +--ro ospfv3-extended-prefix-range-tlvs | ||||
| +--ro extended-prefix-range-tlv* [] | ||||
| +--ro prefix-length? uint8 | ||||
| +--ro af? uint8 | ||||
| +--ro range-size? uint16 | ||||
| +--ro prefix? inet:ip-prefix | ||||
| +--ro perfix-sid-sub-tlvs | ||||
| | +--ro prefix-sid-sub-tlv* [] | ||||
| | +--ro ospfv3-prefix-sid-flags | ||||
| | | +--ro bits* identityref | ||||
| | +--ro algorithm? uint8 | ||||
| | +--ro sid? uint32 | ||||
| +--ro unknown-tlvs | ||||
| +--ro unknown-tlv* [] | ||||
| +--ro type? uint16 | ||||
| +--ro length? uint16 | ||||
| +--ro value? yang:hex-string | ||||
| augment /rt:routing/rt:control-plane-protocols | ||||
| /rt:control-plane-protocol/ospf:ospf/ospf:database | ||||
| /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa | ||||
| /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body | ||||
| /ospfv3-e-lsa:e-as-external: | ||||
| +--ro ospfv3-extended-prefix-range-tlvs | ||||
| +--ro extended-prefix-range-tlv* [] | ||||
| +--ro prefix-length? uint8 | ||||
| +--ro af? uint8 | ||||
| +--ro range-size? uint16 | ||||
| +--ro prefix? inet:ip-prefix | ||||
| +--ro perfix-sid-sub-tlvs | ||||
| | +--ro prefix-sid-sub-tlv* [] | ||||
| | +--ro ospfv3-prefix-sid-flags | ||||
| | | +--ro bits* identityref | ||||
| | +--ro algorithm? uint8 | ||||
| | +--ro sid? uint32 | ||||
| +--ro unknown-tlvs | ||||
| +--ro unknown-tlv* [] | ||||
| +--ro type? uint16 | ||||
| +--ro length? uint16 | ||||
| +--ro value? yang:hex-string | ||||
| augment /rt:routing/rt:control-plane-protocols | ||||
| /rt:control-plane-protocol/ospf:ospf/ospf:database | ||||
| /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa | ||||
| /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body | ||||
| /ospfv3-e-lsa:e-nssa: | ||||
| +--ro ospfv3-extended-prefix-range-tlvs | ||||
| +--ro extended-prefix-range-tlv* [] | ||||
| +--ro prefix-length? uint8 | ||||
| +--ro af? uint8 | ||||
| +--ro range-size? uint16 | ||||
| +--ro prefix? inet:ip-prefix | ||||
| +--ro perfix-sid-sub-tlvs | ||||
| | +--ro prefix-sid-sub-tlv* [] | ||||
| | +--ro ospfv3-prefix-sid-flags | ||||
| | | +--ro bits* identityref | ||||
| | +--ro algorithm? uint8 | ||||
| | +--ro sid? uint32 | ||||
| +--ro unknown-tlvs | ||||
| +--ro unknown-tlv* [] | ||||
| +--ro type? uint16 | ||||
| +--ro length? uint16 | ||||
| +--ro value? yang:hex-string | ||||
| augment /rt:routing/rt:control-plane-protocols | ||||
| /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | ||||
| /ospf:interfaces/ospf:interface/ospf:database | ||||
| /ospf:link-scope-lsa-type/ospf:link-scope-lsas | ||||
| /ospf:link-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | ||||
| /ospf:body/ospfv3-e-lsa:e-link/ospfv3-e-lsa:e-link-tlvs | ||||
| /ospfv3-e-lsa:intra-prefix-tlv: | ||||
| +--ro perfix-sid-sub-tlvs | ||||
| +--ro prefix-sid-sub-tlv* [] | ||||
| +--ro ospfv3-prefix-sid-flags | ||||
| | +--ro bits* identityref | ||||
| +--ro algorithm? uint8 | ||||
| +--ro sid? uint32 | ||||
| augment /rt:routing/rt:control-plane-protocols | ||||
| /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | ||||
| /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | ||||
| /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | ||||
| /ospf:body/ospfv3-e-lsa:e-intra-area-prefix | ||||
| /ospfv3-e-lsa:e-intra-prefix-tlvs | ||||
| /ospfv3-e-lsa:intra-prefix-tlv: | ||||
| +--ro perfix-sid-sub-tlvs | ||||
| +--ro prefix-sid-sub-tlv* [] | ||||
| +--ro ospfv3-prefix-sid-flags | ||||
| | +--ro bits* identityref | ||||
| +--ro algorithm? uint8 | ||||
| +--ro sid? uint32 | ||||
| augment /rt:routing/rt:control-plane-protocols | ||||
| /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | ||||
| /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | ||||
| /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | ||||
| /ospf:body/ospfv3-e-lsa:e-inter-area-prefix | ||||
| /ospfv3-e-lsa:e-inter-prefix-tlvs | ||||
| /ospfv3-e-lsa:inter-prefix-tlv: | ||||
| +--ro perfix-sid-sub-tlvs | ||||
| +--ro prefix-sid-sub-tlv* [] | ||||
| +--ro ospfv3-prefix-sid-flags | ||||
| | +--ro bits* identityref | ||||
| +--ro algorithm? uint8 | ||||
| +--ro sid? uint32 | ||||
| augment /rt:routing/rt:control-plane-protocols | ||||
| /rt:control-plane-protocol/ospf:ospf/ospf:database | ||||
| /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa | ||||
| /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body | ||||
| /ospfv3-e-lsa:e-as-external/ospfv3-e-lsa:e-external-tlvs | ||||
| /ospfv3-e-lsa:external-prefix-tlv: | ||||
| +--ro perfix-sid-sub-tlvs | ||||
| +--ro prefix-sid-sub-tlv* [] | ||||
| +--ro ospfv3-prefix-sid-flags | ||||
| | +--ro bits* identityref | ||||
| +--ro algorithm? uint8 | ||||
| +--ro sid? uint32 | ||||
| augment /rt:routing/rt:control-plane-protocols | ||||
| /rt:control-plane-protocol/ospf:ospf/ospf:database | ||||
| /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa | ||||
| /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body | ||||
| /ospfv3-e-lsa:e-nssa/ospfv3-e-lsa:e-external-tlvs | ||||
| /ospfv3-e-lsa:external-prefix-tlv: | ||||
| +--ro perfix-sid-sub-tlvs | ||||
| +--ro prefix-sid-sub-tlv* [] | ||||
| +--ro ospfv3-prefix-sid-flags | ||||
| | +--ro bits* identityref | ||||
| +--ro algorithm? uint8 | ||||
| +--ro sid? uint32 | ||||
| augment /rt:routing/rt:control-plane-protocols | ||||
| /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | ||||
| /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | ||||
| /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | ||||
| /ospf:body/ospfv3-e-lsa:e-router/ospfv3-e-lsa:e-router-tlvs | ||||
| /ospfv3-e-lsa:link-tlv: | ||||
| +--ro adj-sid-sub-tlvs | ||||
| | +--ro adj-sid-sub-tlv* [] | ||||
| | +--ro adj-sid-flags | ||||
| | | +--ro bits* identityref | ||||
| | +--ro weight? uint8 | ||||
| | +--ro sid? uint32 | ||||
| +--ro lan-adj-sid-sub-tlvs | ||||
| +--ro lan-adj-sid-sub-tlv* [] | ||||
| +--ro lan-adj-sid-flags | ||||
| | +--ro bits* identityref | ||||
| +--ro weight? uint8 | ||||
| +--ro neighbor-router-id? yang:dotted-quad | ||||
| +--ro sid? uint32 | ||||
| import ietf-ospfv3-extended-lsa { | <CODE BEGINS> file "ietf-ospfv3-sr@2021-04-29.yang" | |||
| prefix "ospfv3-e-lsa"; | module ietf-ospfv3-sr { | |||
| } | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-ospfv3-sr"; | ||||
| import ietf-ospf-sr { | prefix ospfv3-sr; | |||
| prefix "ospf-sr"; | import ietf-inet-types { | |||
| } | prefix "inet"; | |||
| } | ||||
| organization | import ietf-yang-types { | |||
| "IETF LSR - Link State Routing Working Group"; | prefix "yang"; | |||
| } | ||||
| contact | import ietf-routing { | |||
| "WG Web: <http://tools.ietf.org/wg/lsr> | prefix "rt"; | |||
| WG List: <mailto:lsr@ietf.org> | } | |||
| Author: Yingzhen Qu | import ietf-ospf { | |||
| <mailto:yqu@futurewei.com> | prefix "ospf"; | |||
| Author: Acee Lindem | } | |||
| <mailto:acee@cisco.com>"; | ||||
| description | import ietf-ospfv3-extended-lsa { | |||
| "This YANG module defines the operational state for OSPFv3 | prefix "ospfv3-e-lsa"; | |||
| Segment Routing, which is common across all of the vendor | } | |||
| implementations. It is intended that the module will be | ||||
| extended by vendors to define vendor-specific OSPFv3 | ||||
| Segment Routing configuration and operational parameters | ||||
| and policies. | ||||
| This YANG model conforms to the Network Management | import ietf-ospf-sr { | |||
| Datastore Architecture (NMDA) as described in RFC 8242. | prefix "ospf-sr"; | |||
| } | ||||
| Copyright (c) 2020 IETF Trust and the persons identified as | organization | |||
| authors of the code. All rights reserved. | "IETF LSR - Link State Routing Working Group"; | |||
| Redistribution and use in source and binary forms, with or | contact | |||
| without modification, is permitted pursuant to, and subject | "WG Web: <http://tools.ietf.org/wg/lsr> | |||
| to the license terms contained in, the Simplified BSD License | WG List: <mailto:lsr@ietf.org> | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | ||||
| Relating to IETF Documents | ||||
| (http://trustee.ietf.org/license-info). | ||||
| This version of this YANG module is part of RFC XXXX; | Author: Yingzhen Qu | |||
| see the RFC itself for full legal notices. | <mailto:yqu@futurewei.com> | |||
| Author: Acee Lindem | ||||
| <mailto:acee@cisco.com>"; | ||||
| The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | description | |||
| NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', | "This YANG module defines the operational state for OSPFv3 | |||
| 'MAY', and 'OPTIONAL' in this document are to be interpreted as | Segment Routing, which is common across all of the vendor | |||
| described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, | implementations. It is intended that the module will be | |||
| they appear in all capitals, as shown here."; | extended by vendors to define vendor-specific OSPFv3 | |||
| Segment Routing configuration and operational parameters | ||||
| and policies. | ||||
| reference "RFC XXXX"; | This YANG model conforms to the Network Management | |||
| Datastore Architecture (NMDA) as described in RFC 8242. | ||||
| revision 2020-10-27 { | Copyright (c) 2020 IETF Trust and the persons identified as | |||
| description | authors of the code. All rights reserved. | |||
| "Initial revision."; | ||||
| reference | ||||
| "RFC XXXX: A YANG Data Model for OSPFv3 Segment Routing."; | ||||
| } | ||||
| /* groupings */ | Redistribution and use in source and binary forms, with or | |||
| grouping ospfv3-prefix-sid-sub-tlvs { | without modification, is permitted pursuant to, and subject | |||
| description "Prefix Segment ID (SID) sub-TLVs."; | to the license terms contained in, the Simplified BSD License | |||
| container perfix-sid-sub-tlvs{ | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| description "Prefix SID sub-TLV."; | Relating to IETF Documents | |||
| list prefix-sid-sub-tlv { | (http://trustee.ietf.org/license-info). | |||
| description "Prefix SID sub-TLV."; | ||||
| container ospfv3-prefix-sid-flags { | ||||
| leaf-list bits { | ||||
| type identityref { | ||||
| base ospf-sr:prefix-sid-bit; | ||||
| } | ||||
| description | ||||
| "Prefix SID Sub-TLV flag bits list."; | ||||
| } | ||||
| description "Segment Identifier (SID) Flags."; | ||||
| } | ||||
| leaf algorithm { | ||||
| type uint8; | ||||
| description | ||||
| "The algorithm associated with the prefix-SID."; | ||||
| } | ||||
| leaf sid { | ||||
| type uint32; | ||||
| description "An index or label."; | ||||
| } | This version of this YANG module is part of RFC XXXX; | |||
| } | see the RFC itself for full legal notices. | |||
| } | ||||
| } | ||||
| grouping ospfv3-extended-prefix-range-tlvs { | The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | |||
| description "Extended prefix range TLV grouping."; | NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', | |||
| 'MAY', and 'OPTIONAL' in this document are to be interpreted as | ||||
| described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, | ||||
| they appear in all capitals, as shown here."; | ||||
| container ospfv3-extended-prefix-range-tlvs { | reference "RFC XXXX"; | |||
| description "The list of range of prefixes."; | ||||
| list extended-prefix-range-tlv { //type=2? | ||||
| description "The range of prefixes."; | ||||
| leaf prefix-length { | ||||
| type uint8; | ||||
| description "Length of prefix in bits."; | ||||
| } | ||||
| leaf af { | ||||
| type uint8; | ||||
| description "Address family for the prefix."; | ||||
| } | ||||
| leaf range-size { | ||||
| type uint16; | ||||
| description "The number of prefixes covered by the | ||||
| advertisement."; | ||||
| } | ||||
| leaf prefix { | ||||
| type inet:ip-prefix; | ||||
| description "Address prefix."; | ||||
| } | ||||
| uses ospfv3-prefix-sid-sub-tlvs; | ||||
| uses ospf:unknown-tlvs; | ||||
| } | ||||
| } | ||||
| } | ||||
| grouping ospfv3-adj-sid-sub-tlvs { | revision 2021-04-29 { | |||
| description "Adjacency SID sub TLV grouping."; | description | |||
| container adj-sid-sub-tlvs { | "Initial revision."; | |||
| description "Adjacency SID optional sub-TLVs."; | reference | |||
| list adj-sid-sub-tlv { | "RFC XXXX: A YANG Data Model for OSPFv3 Segment Routing."; | |||
| description "List of Adjacency SID sub-TLVs."; | } | |||
| container adj-sid-flags { | ||||
| leaf-list bits { | ||||
| type identityref { | ||||
| base ospf-sr:adj-sid-bit; | ||||
| } | ||||
| description "Adj sid sub-tlv flags list."; | ||||
| } | ||||
| description "Adj-sid sub-tlv flags."; | ||||
| } | ||||
| leaf weight { | ||||
| type uint8; | ||||
| description "Weight used for load-balancing."; | ||||
| } | ||||
| leaf sid { | ||||
| type uint32; | ||||
| description "Segment Identifier (SID) index/label."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| grouping ospfv3-lan-adj-sid-sub-tlvs { | /* groupings */ | |||
| description "LAN adj-sid sub TLV grouping."; | grouping ospfv3-prefix-sid-sub-tlvs { | |||
| container lan-adj-sid-sub-tlvs { | description "Prefix Segment ID (SID) sub-TLVs."; | |||
| description "LAN Adjacency SID optional sub-TLVs."; | container perfix-sid-sub-tlvs{ | |||
| list lan-adj-sid-sub-tlv { | description "Prefix SID sub-TLV."; | |||
| description "List of LAN adjacency SID sub-TLVs."; | list prefix-sid-sub-tlv { | |||
| container lan-adj-sid-flags { | description "Prefix SID sub-TLV."; | |||
| leaf-list bits { | container ospfv3-prefix-sid-flags { | |||
| type identityref { | leaf-list bits { | |||
| base ospf-sr:adj-sid-bit; | type identityref { | |||
| } | base ospf-sr:prefix-sid-bit; | |||
| description "LAN adj sid sub-tlv flags list."; | } | |||
| } | description | |||
| description "LAN adj-sid sub-tlv flags."; | "Prefix SID Sub-TLV flag bits list."; | |||
| } | } | |||
| leaf weight { | description "Segment Identifier (SID) Flags."; | |||
| type uint8; | } | |||
| description "Weight used for load-balancing."; | leaf algorithm { | |||
| } | type uint8; | |||
| leaf neighbor-router-id { | description | |||
| type yang:dotted-quad; | "The algorithm associated with the prefix-SID."; | |||
| description "Neighbor router ID."; | ||||
| } | ||||
| leaf sid { | ||||
| type uint32; | ||||
| description "Segment Identifier (SID) index/label."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| /* Database */ | } | |||
| /* Segment Routing Capabilities */ | leaf sid { | |||
| augment "/rt:routing/" | type uint32; | |||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | description "An index or label."; | |||
| + "ospf:ospf/ospf:database/" | } | |||
| + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" | } | |||
| + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" | } | |||
| + "ospf:ospfv3/ospf:body/ospf:router-information" { | } | |||
| when "../../../../../../../../" | ||||
| + "rt:type = 'ospf:ospfv3'" { | ||||
| description | ||||
| "This augmentation is only valid for OSPFv3."; | ||||
| } | ||||
| description | ||||
| "SR specific TLVs for OSPFv3 Router Information | ||||
| opaque LSA."; | ||||
| uses ospf-sr:sr-algorithm-tlv; | ||||
| uses ospf-sr:sid-range-tlvs; | ||||
| uses ospf-sr:local-block-tlvs; | ||||
| uses ospf-sr:srms-preference-tlv; | ||||
| } | ||||
| augment "/rt:routing/" | grouping ospfv3-extended-prefix-range-tlvs { | |||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | description "Extended prefix range TLV grouping."; | |||
| + "ospf:ospf/ospf:areas/" | ||||
| + "ospf:area/ospf:database/" | ||||
| + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | ||||
| + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" | ||||
| + "ospf:ospfv3/ospf:body/ospf:router-information" { | ||||
| when "../../../../../../../../../../" | ||||
| + "rt:type = 'ospf:ospfv3'" { | ||||
| description | ||||
| "This augmentation is only valid for OSPFv3."; | ||||
| } | ||||
| description | container ospfv3-extended-prefix-range-tlvs { | |||
| "SR specific TLVs for OSPFv3 Router Information LSA."; | description "The list of range of prefixes."; | |||
| list extended-prefix-range-tlv { //type=2? | ||||
| description "The range of prefixes."; | ||||
| leaf prefix-length { | ||||
| type uint8; | ||||
| description "Length of prefix in bits."; | ||||
| } | ||||
| leaf af { | ||||
| type uint8; | ||||
| description "Address family for the prefix."; | ||||
| } | ||||
| leaf range-size { | ||||
| type uint16; | ||||
| description "The number of prefixes covered by the | ||||
| advertisement."; | ||||
| } | ||||
| leaf prefix { | ||||
| type inet:ip-prefix; | ||||
| description "Address prefix."; | ||||
| } | ||||
| uses ospfv3-prefix-sid-sub-tlvs; | ||||
| uses ospf:unknown-tlvs; | ||||
| } | ||||
| } | ||||
| } | ||||
| uses ospf-sr:sr-algorithm-tlv; | grouping ospfv3-adj-sid-sub-tlvs { | |||
| uses ospf-sr:sid-range-tlvs; | description "Adjacency SID sub TLV grouping."; | |||
| uses ospf-sr:local-block-tlvs; | container adj-sid-sub-tlvs { | |||
| uses ospf-sr:srms-preference-tlv; | description "Adjacency SID optional sub-TLVs."; | |||
| } | list adj-sid-sub-tlv { | |||
| description "List of Adjacency SID sub-TLVs."; | ||||
| container adj-sid-flags { | ||||
| leaf-list bits { | ||||
| type identityref { | ||||
| base ospf-sr:adj-sid-bit; | ||||
| } | ||||
| description "Adj sid sub-tlv flags list."; | ||||
| } | ||||
| description "Adj-sid sub-tlv flags."; | ||||
| } | ||||
| leaf weight { | ||||
| type uint8; | ||||
| description "Weight used for load-balancing."; | ||||
| } | ||||
| leaf sid { | ||||
| type uint32; | ||||
| description "Segment Identifier (SID) index/label."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| augment "/rt:routing/" | grouping ospfv3-lan-adj-sid-sub-tlvs { | |||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | description "LAN adj-sid sub TLV grouping."; | |||
| + "ospf:ospf/ospf:areas/ospf:area/" | container lan-adj-sid-sub-tlvs { | |||
| + "ospf:interfaces/ospf:interface/ospf:database/" | description "LAN Adjacency SID optional sub-TLVs."; | |||
| + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/" | list lan-adj-sid-sub-tlv { | |||
| + "ospf:link-scope-lsa/ospf:version/ospf:ospfv3/" | description "List of LAN adjacency SID sub-TLVs."; | |||
| + "ospf:ospfv3/ospf:body/ospf:router-information" { | container lan-adj-sid-flags { | |||
| leaf-list bits { | ||||
| type identityref { | ||||
| base ospf-sr:adj-sid-bit; | ||||
| } | ||||
| description "LAN adj sid sub-tlv flags list."; | ||||
| } | ||||
| description "LAN adj-sid sub-tlv flags."; | ||||
| } | ||||
| leaf weight { | ||||
| type uint8; | ||||
| description "Weight used for load-balancing."; | ||||
| } | ||||
| leaf neighbor-router-id { | ||||
| type yang:dotted-quad; | ||||
| description "Neighbor router ID."; | ||||
| } | ||||
| leaf sid { | ||||
| type uint32; | ||||
| description "Segment Identifier (SID) index/label."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| /* Database */ | ||||
| /* Segment Routing Capabilities */ | ||||
| augment "/rt:routing/" | ||||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | ||||
| + "ospf:ospf/ospf:database/" | ||||
| + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" | ||||
| + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" | ||||
| + "ospf:ospfv3/ospf:body/ospf:router-information" { | ||||
| when "../../../../../../../../" | ||||
| + "rt:type = 'ospf:ospfv3'" { | ||||
| description | ||||
| "This augmentation is only valid for OSPFv3."; | ||||
| } | ||||
| description | ||||
| "SR specific TLVs for OSPFv3 Router Information | ||||
| opaque LSA."; | ||||
| uses ospf-sr:sr-algorithm-tlv; | ||||
| uses ospf-sr:sid-range-tlvs; | ||||
| uses ospf-sr:local-block-tlvs; | ||||
| uses ospf-sr:srms-preference-tlv; | ||||
| } | ||||
| when "../../../../../../../../../../../../" | augment "/rt:routing/" | |||
| + "rt:type = 'ospf:ospfv3'" { | + "rt:control-plane-protocols/rt:control-plane-protocol/" | |||
| description | + "ospf:ospf/ospf:areas/" | |||
| "This augmentation is only valid for OSPFv3."; | + "ospf:area/ospf:database/" | |||
| } | + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | |||
| + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" | ||||
| + "ospf:ospfv3/ospf:body/ospf:router-information" { | ||||
| when "../../../../../../../../../../" | ||||
| + "rt:type = 'ospf:ospfv3'" { | ||||
| description | ||||
| "This augmentation is only valid for OSPFv3."; | ||||
| } | ||||
| description | description | |||
| "SR specific TLVs for OSPFv3 Router Information LSA."; | "SR specific TLVs for OSPFv3 Router Information LSA."; | |||
| uses ospf-sr:sr-algorithm-tlv; | uses ospf-sr:sr-algorithm-tlv; | |||
| uses ospf-sr:sid-range-tlvs; | uses ospf-sr:sid-range-tlvs; | |||
| uses ospf-sr:local-block-tlvs; | uses ospf-sr:local-block-tlvs; | |||
| uses ospf-sr:srms-preference-tlv; | uses ospf-sr:srms-preference-tlv; | |||
| } | } | |||
| /* OSPFv3 Extended Prefix Range TLV */ | augment "/rt:routing/" | |||
| augment "/rt:routing/" | + "rt:control-plane-protocols/rt:control-plane-protocol/" | |||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | + "ospf:ospf/ospf:areas/ospf:area/" | |||
| + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" | + "ospf:interfaces/ospf:interface/ospf:database/" | |||
| + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/" | |||
| + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" | + "ospf:link-scope-lsa/ospf:version/ospf:ospfv3/" | |||
| + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-intra-area-prefix" { | + "ospf:ospfv3/ospf:body/ospf:router-information" { | |||
| when "../../../../../../../../../../" | when "../../../../../../../../../../../../" | |||
| + "rt:type = 'ospf:ospfv3'" { | + "rt:type = 'ospf:ospfv3'" { | |||
| description | description | |||
| "This augmentation is only valid for OSPFv3 | "This augmentation is only valid for OSPFv3."; | |||
| E-Router LSAs"; | } | |||
| } | ||||
| uses ospfv3-extended-prefix-range-tlvs; | ||||
| description | ||||
| "OSPFv3 Area-Scoped E-Intra-Area-Prefix LSA."; | ||||
| } | ||||
| augment "/rt:routing/" | description | |||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | "SR specific TLVs for OSPFv3 Router Information LSA."; | |||
| + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" | ||||
| + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | ||||
| + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" | ||||
| + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-inter-area-prefix" { | ||||
| when "../../../../../../../../../../" | ||||
| + "rt:type = 'ospf:ospfv3'" { | ||||
| description | ||||
| "This augmentation is only valid for OSPFv3 | ||||
| E-Router LSAs"; | ||||
| } | ||||
| uses ospfv3-extended-prefix-range-tlvs; | ||||
| description | ||||
| "OSPFv3 Area-Scoped E-Inter-Area-Prefix LSA."; | ||||
| } | uses ospf-sr:sr-algorithm-tlv; | |||
| uses ospf-sr:sid-range-tlvs; | ||||
| uses ospf-sr:local-block-tlvs; | ||||
| uses ospf-sr:srms-preference-tlv; | ||||
| } | ||||
| augment "/rt:routing/" | /* OSPFv3 Extended Prefix Range TLV */ | |||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | augment "/rt:routing/" | |||
| + "ospf:ospf/ospf:database/" | + "rt:control-plane-protocols/rt:control-plane-protocol/" | |||
| + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" | + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" | |||
| + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" | + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | |||
| + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-as-external" { | + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" | |||
| when "'ospf:../../../../../../../../../" | + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-intra-area-prefix" { | |||
| + "rt:type' = 'ospf:ospfv3'" { | when "../../../../../../../../../../" | |||
| description | + "rt:type = 'ospf:ospfv3'" { | |||
| "This augmentation is only valid for OSPFv3."; | description | |||
| } | "This augmentation is only valid for OSPFv3 | |||
| uses ospfv3-extended-prefix-range-tlvs; | E-Router LSAs"; | |||
| description | } | |||
| "OSPFv3 AS-Scoped E-AS-External LSA."; | uses ospfv3-extended-prefix-range-tlvs; | |||
| } | description | |||
| "OSPFv3 Area-Scoped E-Intra-Area-Prefix LSA."; | ||||
| } | ||||
| augment "/rt:routing/" | augment "/rt:routing/" | |||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | + "rt:control-plane-protocols/rt:control-plane-protocol/" | |||
| + "ospf:ospf/ospf:database/" | + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" | |||
| + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" | + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | |||
| + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" | + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" | |||
| + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-nssa" { | + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-inter-area-prefix" { | |||
| when "'ospf:../../../../../../../../../" | when "../../../../../../../../../../" | |||
| + "rt:type' = 'ospf:ospfv3'" { | + "rt:type = 'ospf:ospfv3'" { | |||
| description | description | |||
| "This augmentation is only valid for OSPFv3."; | "This augmentation is only valid for OSPFv3 | |||
| } | E-Router LSAs"; | |||
| uses ospfv3-extended-prefix-range-tlvs; | } | |||
| description | uses ospfv3-extended-prefix-range-tlvs; | |||
| "OSPFv3 AS-Scoped E-NSSA LSA."; | description | |||
| } | "OSPFv3 Area-Scoped E-Inter-Area-Prefix LSA."; | |||
| } | ||||
| /* Prefix SID Sub-TLV in Intra-Area Prefix TLV */ | augment "/rt:routing/" | |||
| augment "/rt:routing/" | + "rt:control-plane-protocols/rt:control-plane-protocol/" | |||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | + "ospf:ospf/ospf:database/" | |||
| + "ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/" | + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" | |||
| + "ospf:database/ospf:link-scope-lsa-type/ospf:link-scope-lsas/" | + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" | |||
| + "ospf:link-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3/" | + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-as-external" { | |||
| + "ospf:body/ospfv3-e-lsa:e-link/" | when "'ospf:../../../../../../../../../" | |||
| + "ospfv3-e-lsa:e-link-tlvs/ospfv3-e-lsa:intra-prefix-tlv" { | + "rt:type' = 'ospf:ospfv3'" { | |||
| when "../../../../../../../../../../../../../../" | description | |||
| + "rt:type = 'ospf:ospfv3'" { | "This augmentation is only valid for OSPFv3."; | |||
| description | } | |||
| "This augmentation is only valid for OSPFv3 | uses ospfv3-extended-prefix-range-tlvs; | |||
| E-Router LSAs"; | description | |||
| } | "OSPFv3 AS-Scoped E-AS-External LSA."; | |||
| uses ospfv3-prefix-sid-sub-tlvs; | } | |||
| description | ||||
| "OSPFv3 Link-Scoped Intra-Area Prefix TLV."; | ||||
| } | ||||
| augment "/rt:routing/" | augment "/rt:routing/" | |||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | + "rt:control-plane-protocols/rt:control-plane-protocol/" | |||
| + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" | + "ospf:ospf/ospf:database/" | |||
| + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" | |||
| + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" | + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" | |||
| + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-intra-area-prefix/" | + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-nssa" { | |||
| + "ospfv3-e-lsa:e-intra-prefix-tlvs/ospfv3-e-lsa:intra-prefix-tlv" { | when "'ospf:../../../../../../../../../" | |||
| when "../../../../../../../../../../../../" | + "rt:type' = 'ospf:ospfv3'" { | |||
| + "rt:type = 'ospf:ospfv3'" { | description | |||
| description | "This augmentation is only valid for OSPFv3."; | |||
| "This augmentation is only valid for OSPFv3 | } | |||
| E-Router LSAs"; | uses ospfv3-extended-prefix-range-tlvs; | |||
| } | description | |||
| uses ospfv3-prefix-sid-sub-tlvs; | "OSPFv3 AS-Scoped E-NSSA LSA."; | |||
| description | } | |||
| "OSPFv3 Area-Scoped Intra-Area Prefix TLV."; | ||||
| } | ||||
| /* Prefix SID Sub-TLV in Inter-Area Prefix TLV */ | /* Prefix SID Sub-TLV in Intra-Area Prefix TLV */ | |||
| augment "/rt:routing/" | augment "/rt:routing/" | |||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | + "rt:control-plane-protocols/rt:control-plane-protocol/" | |||
| + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" | + "ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/" | |||
| + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | + "ospf:interface/" | |||
| + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" | + "ospf:database/ospf:link-scope-lsa-type/ospf:link-scope-lsas/" | |||
| + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-inter-area-prefix/" | + "ospf:link-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3/" | |||
| + "ospfv3-e-lsa:e-inter-prefix-tlvs/ospfv3-e-lsa:inter-prefix-tlv" { | + "ospf:body/ospfv3-e-lsa:e-link/" | |||
| when "../../../../../../../../../../../../" | + "ospfv3-e-lsa:e-link-tlvs/ospfv3-e-lsa:intra-prefix-tlv" { | |||
| + "rt:type = 'ospf:ospfv3'" { | when "../../../../../../../../../../../../../../" | |||
| description | + "rt:type = 'ospf:ospfv3'" { | |||
| "This augmentation is only valid for OSPFv3 | description | |||
| E-Router LSAs"; | "This augmentation is only valid for OSPFv3 | |||
| } | E-Router LSAs"; | |||
| uses ospfv3-prefix-sid-sub-tlvs; | } | |||
| description | uses ospfv3-prefix-sid-sub-tlvs; | |||
| "OSPFv3 Area-Scoped Inter-Area Prefix TLV."; | description | |||
| } | "OSPFv3 Link-Scoped Intra-Area Prefix TLV."; | |||
| } | ||||
| /* Prefix SID Sub-TLV in External Prefix TLV */ | augment "/rt:routing/" | |||
| augment "/rt:routing/" | + "rt:control-plane-protocols/rt:control-plane-protocol/" | |||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" | |||
| + "ospf:ospf/ospf:database/" | + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | |||
| + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" | + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" | |||
| + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" | + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-intra-area-prefix/" | |||
| + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-as-external/" | + "ospfv3-e-lsa:e-intra-prefix-tlvs/" | |||
| + "ospfv3-e-lsa:e-external-tlvs/ospfv3-e-lsa:external-prefix-tlv" { | + "ospfv3-e-lsa:intra-prefix-tlv" { | |||
| when "'ospf:../../../../../../../../../" | when "../../../../../../../../../../../../" | |||
| + "rt:type' = 'ospf:ospfv3'" { | + "rt:type = 'ospf:ospfv3'" { | |||
| description | description | |||
| "This augmentation is only valid for OSPFv3."; | "This augmentation is only valid for OSPFv3 | |||
| } | E-Router LSAs"; | |||
| uses ospfv3-prefix-sid-sub-tlvs; | } | |||
| description | uses ospfv3-prefix-sid-sub-tlvs; | |||
| "OSPFv3 AS-Scoped External Prefix TLV."; | description | |||
| } | "OSPFv3 Area-Scoped Intra-Area Prefix TLV."; | |||
| } | ||||
| augment "/rt:routing/" | /* Prefix SID Sub-TLV in Inter-Area Prefix TLV */ | |||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | augment "/rt:routing/" | |||
| + "ospf:ospf/ospf:database/" | + "rt:control-plane-protocols/rt:control-plane-protocol/" | |||
| + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" | + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" | |||
| + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" | + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | |||
| + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-nssa/" | + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" | |||
| + "ospfv3-e-lsa:e-external-tlvs/ospfv3-e-lsa:external-prefix-tlv" { | + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-inter-area-prefix/" | |||
| when "'ospf:../../../../../../../../../" | + "ospfv3-e-lsa:e-inter-prefix-tlvs/" | |||
| + "rt:type' = 'ospf:ospfv3'" { | + "ospfv3-e-lsa:inter-prefix-tlv" { | |||
| description | when "../../../../../../../../../../../../" | |||
| "This augmentation is only valid for OSPFv3."; | + "rt:type = 'ospf:ospfv3'" { | |||
| } | description | |||
| uses ospfv3-prefix-sid-sub-tlvs; | "This augmentation is only valid for OSPFv3 | |||
| description | E-Router LSAs"; | |||
| "OSPFv3 AS-Scoped External Prefix TLV."; | } | |||
| } | uses ospfv3-prefix-sid-sub-tlvs; | |||
| description | ||||
| "OSPFv3 Area-Scoped Inter-Area Prefix TLV."; | ||||
| } | ||||
| /* Prefix SID Sub-TLV in External Prefix TLV */ | ||||
| augment "/rt:routing/" | ||||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | ||||
| + "ospf:ospf/ospf:database/" | ||||
| + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" | ||||
| + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" | ||||
| + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-as-external/" | ||||
| + "ospfv3-e-lsa:e-external-tlvs/" | ||||
| + "ospfv3-e-lsa:external-prefix-tlv" { | ||||
| when "'ospf:../../../../../../../../../" | ||||
| + "rt:type' = 'ospf:ospfv3'" { | ||||
| description | ||||
| "This augmentation is only valid for OSPFv3."; | ||||
| } | ||||
| uses ospfv3-prefix-sid-sub-tlvs; | ||||
| description | ||||
| "OSPFv3 AS-Scoped External Prefix TLV."; | ||||
| } | ||||
| /* Adj-SID sub-TLV */ | augment "/rt:routing/" | |||
| augment "/rt:routing/" | + "rt:control-plane-protocols/rt:control-plane-protocol/" | |||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | + "ospf:ospf/ospf:database/" | |||
| + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" | + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" | |||
| + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" | |||
| + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" | + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-nssa/" | |||
| + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-router/" | + "ospfv3-e-lsa:e-external-tlvs/" | |||
| + "ospfv3-e-lsa:e-router-tlvs/ospfv3-e-lsa:link-tlv" { | + "ospfv3-e-lsa:external-prefix-tlv" { | |||
| when "../../../../../../../../../../../../" | when "'ospf:../../../../../../../../../" | |||
| + "rt:type = 'ospf:ospfv3'" { | + "rt:type' = 'ospf:ospfv3'" { | |||
| description | description | |||
| "This augmentation is only valid for OSPFv3 | "This augmentation is only valid for OSPFv3."; | |||
| E-Router LSAs"; | } | |||
| } | uses ospfv3-prefix-sid-sub-tlvs; | |||
| uses ospfv3-adj-sid-sub-tlvs; | description | |||
| uses ospfv3-lan-adj-sid-sub-tlvs; | "OSPFv3 AS-Scoped External Prefix TLV."; | |||
| description | } | |||
| "OSPFv3 Area-Scoped Adj-SID Sub-TLV."; | ||||
| } | /* Adj-SID sub-TLV */ | |||
| } | augment "/rt:routing/" | |||
| <CODE ENDS> | + "rt:control-plane-protocols/rt:control-plane-protocol/" | |||
| + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" | ||||
| + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | ||||
| + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" | ||||
| + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-router/" | ||||
| + "ospfv3-e-lsa:e-router-tlvs/ospfv3-e-lsa:link-tlv" { | ||||
| when "../../../../../../../../../../../../" | ||||
| + "rt:type = 'ospf:ospfv3'" { | ||||
| description | ||||
| "This augmentation is only valid for OSPFv3 | ||||
| E-Router LSAs"; | ||||
| } | ||||
| uses ospfv3-adj-sid-sub-tlvs; | ||||
| uses ospfv3-lan-adj-sid-sub-tlvs; | ||||
| description | ||||
| "OSPFv3 Area-Scoped Adj-SID Sub-TLV."; | ||||
| } | ||||
| } | ||||
| <CODE ENDS> | ||||
| 4. Security Considerations | 4. Security Considerations | |||
| The YANG modules specified in this document define a schema for data | The YANG modules specified in this document define a schema for data | |||
| that is designed to be accessed via network management protocols such | that is designed to be accessed via network management protocols such | |||
| as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer | as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer | |||
| is the secure transport layer, and the mandatory-to-implement secure | is the secure transport layer, and the mandatory-to-implement secure | |||
| transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer | transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer | |||
| is HTTPS, and the mandatory-to-implement secure transport is TLS | is HTTPS, and the mandatory-to-implement secure transport is TLS | |||
| [RFC5246]. | [RFC5246]. | |||
| skipping to change at page 18, line 21 ¶ | skipping to change at page 18, line 28 ¶ | |||
| This document was produced using Marshall Rose's xml2rfc tool. | This document was produced using Marshall Rose's xml2rfc tool. | |||
| The YANG model was developed using the suite of YANG tools written | The YANG model was developed using the suite of YANG tools written | |||
| and maintained by numerous authors. | and maintained by numerous authors. | |||
| 7. References | 7. References | |||
| 7.1. Normative References | 7.1. Normative References | |||
| [I-D.ietf-ospf-sr-yang] | ||||
| Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, | ||||
| "YANG Data Model for OSPF SR (Segment Routing) Protocol", | ||||
| draft-ietf-ospf-sr-yang-14 (work in progress), February | ||||
| 2021. | ||||
| [I-D.ietf-ospf-yang] | ||||
| Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, | ||||
| "YANG Data Model for OSPF Protocol", draft-ietf-ospf- | ||||
| yang-29 (work in progress), October 2019. | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
| <https://www.rfc-editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
| [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security | [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security | |||
| skipping to change at page 19, line 28 ¶ | skipping to change at page 19, line 47 ¶ | |||
| Routing Management (NMDA Version)", RFC 8349, | Routing Management (NMDA Version)", RFC 8349, | |||
| DOI 10.17487/RFC8349, March 2018, | DOI 10.17487/RFC8349, March 2018, | |||
| <https://www.rfc-editor.org/info/rfc8349>. | <https://www.rfc-editor.org/info/rfc8349>. | |||
| [RFC8666] Psenak, P., Ed. and S. Previdi, Ed., "OSPFv3 Extensions | [RFC8666] Psenak, P., Ed. and S. Previdi, Ed., "OSPFv3 Extensions | |||
| for Segment Routing", RFC 8666, DOI 10.17487/RFC8666, | for Segment Routing", RFC 8666, DOI 10.17487/RFC8666, | |||
| December 2019, <https://www.rfc-editor.org/info/rfc8666>. | December 2019, <https://www.rfc-editor.org/info/rfc8666>. | |||
| 7.2. Informative References | 7.2. Informative References | |||
| [I-D.ietf-ospf-sr-yang] | ||||
| Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, | ||||
| "YANG Data Model for OSPF SR (Segment Routing) Protocol", | ||||
| draft-ietf-ospf-sr-yang-12 (work in progress), July 2020. | ||||
| [I-D.ietf-ospf-yang] | ||||
| Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, | ||||
| "YANG Data Model for OSPF Protocol", draft-ietf-ospf- | ||||
| yang-29 (work in progress), October 2019. | ||||
| [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | |||
| BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | |||
| <https://www.rfc-editor.org/info/rfc8340>. | <https://www.rfc-editor.org/info/rfc8340>. | |||
| Authors' Addresses | Authors' Addresses | |||
| Acee Lindem | Acee Lindem | |||
| Cisco Systems | Cisco Systems | |||
| 301 Midenhall Way | 301 Midenhall Way | |||
| Cary, NC 27513 | Cary, NC 27513 | |||
| End of changes. 49 change blocks. | ||||
| 656 lines changed or deleted | 659 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/ | ||||