| < draft-ietf-ospf-sr-yang-13.txt | draft-ietf-ospf-sr-yang-14.txt > | |||
|---|---|---|---|---|
| Internet D. Yeung | Internet D. Yeung | |||
| Internet-Draft Arrcus | Internet-Draft Arrcus | |||
| Intended status: Standards Track Y. Qu | Intended status: Standards Track Y. Qu | |||
| Expires: July 15, 2021 Futurewei | Expires: August 25, 2021 Futurewei | |||
| J. Zhang | J. Zhang | |||
| Juniper Networks | Juniper Networks | |||
| I. Chen | I. Chen | |||
| The MITRE Corporation | The MITRE Corporation | |||
| A. Lindem | A. Lindem | |||
| Cisco Systems | Cisco Systems | |||
| January 11, 2021 | February 21, 2021 | |||
| YANG Data Model for OSPF SR (Segment Routing) Protocol | YANG Data Model for OSPF SR (Segment Routing) Protocol | |||
| draft-ietf-ospf-sr-yang-13 | draft-ietf-ospf-sr-yang-14 | |||
| Abstract | Abstract | |||
| This document defines a YANG data model that can be used to configure | This document defines a YANG data module that can be used to | |||
| and manage OSPF Segment Routing. The model is based on YANG 1.1 as | configure and manage OSPF Segment Routing. It also defines a module | |||
| defined in RFC 7950 and conforms to the Network Management Datastore | for management of Signaling Maximum SID Depth (MSD) Using OSPF. The | |||
| Architecture (NDMA) as described in RFC 8342. | modules are based on YANG 1.1 as defined in RFC 7950 and conform to | |||
| the Network Management Datastore Architecture (NDMA) as described in | ||||
| RFC 8342. | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on July 15, 2021. | This Internet-Draft will expire on August 25, 2021. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2021 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 | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2 | 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. OSPF Segment Routing . . . . . . . . . . . . . . . . . . . . 3 | 2. OSPF MSD . . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 4. OSPF Segment Routing YANG Module . . . . . . . . . . . . . . 7 | 2.1. OSPF MSD YANG Module . . . . . . . . . . . . . . . . . . 5 | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 20 | 3. OSPF Segment Routing . . . . . . . . . . . . . . . . . . . . 11 | |||
| 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 20 | 3.1. OSPF Segment Routing YANG Module . . . . . . . . . . . . 16 | |||
| 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 21 | 4. Security Considerations . . . . . . . . . . . . . . . . . . . 28 | |||
| 7.1. Normative References . . . . . . . . . . . . . . . . . . 21 | 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 29 | |||
| 7.2. Informative References . . . . . . . . . . . . . . . . . 22 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29 | |||
| Appendix A. Contributors' Addreses . . . . . . . . . . . . . . . 24 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 30 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 24 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 30 | |||
| 7.2. Informative References . . . . . . . . . . . . . . . . . 32 | ||||
| Appendix A. Contributors' Addreses . . . . . . . . . . . . . . . 33 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 33 | ||||
| 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 | |||
| APIs. | APIs. | |||
| This document defines a YANG data model that can be used to configure | This document defines a YANG data model that can be used to configure | |||
| and manage OSPF Segment Routing [RFC8665] and it is an augmentation | and manage OSPF Segment Routing [RFC8665] and it is an augmentation | |||
| to the OSPF YANG data model. | to the OSPF YANG data model. | |||
| This document also defines a YANG data model for Signaling Maximum | ||||
| SID Depth (MSD) Using OSPF [RFC8476], which augments the base OSPF | ||||
| YANG data model. | ||||
| The YANG module in this document conforms to the Network Management | The YANG module in this document conforms to the Network Management | |||
| Datastore Architecture (NMDA) [RFC8342]. | Datastore Architecture (NMDA) [RFC8342]. | |||
| 1.1. Requirements Language | 1.1. Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
| 2. Tree Diagrams | 1.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]. | |||
| 2. OSPF MSD | ||||
| This document defines a model for Signaling Maximum SID Depth (MSD) | ||||
| Using OSPF [RFC8476]. It is an augmentation of the OSPF base model. | ||||
| module: ietf-ospf-msd | ||||
| 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:ospfv2/ospf:ospfv2 | ||||
| /ospf:body/ospf:opaque/ospf:ri-opaque: | ||||
| +--ro node-msd-tlv | ||||
| +--ro node-msds* [msd-type] | ||||
| +--ro msd-type identityref | ||||
| +--ro msd-value? uint8 | ||||
| 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:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque | ||||
| /ospf:ri-opaque: | ||||
| +--ro node-msd-tlv | ||||
| +--ro node-msds* [msd-type] | ||||
| +--ro msd-type identityref | ||||
| +--ro msd-value? 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 node-msd-tlv | ||||
| +--ro node-msds* [msd-type] | ||||
| +--ro msd-type identityref | ||||
| +--ro msd-value? uint8 | ||||
| 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 node-msd-tlv | ||||
| +--ro node-msds* [msd-type] | ||||
| +--ro msd-type identityref | ||||
| +--ro msd-value? 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:ospfv2/ospf:ospfv2 | ||||
| /ospf:body/ospf:opaque/ospf:extended-link-opaque | ||||
| /ospf:extended-link-tlv: | ||||
| +--ro link-msd-sub-tlv | ||||
| +--ro link-msds* [msd-type] | ||||
| +--ro msd-type identityref | ||||
| +--ro msd-value? 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:ospfv2/ospf:ospfv2 | ||||
| /ospf:body/ospf:opaque/ospf:extended-link-opaque | ||||
| /ospf:extended-link-tlv: | ||||
| +--ro link-msd-sub-tlv | ||||
| +--ro link-msds* [msd-type] | ||||
| +--ro msd-type identityref | ||||
| +--ro msd-value? uint8 | ||||
| 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:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque | ||||
| /ospf:extended-link-opaque/ospf:extended-link-tlv: | ||||
| +--ro link-msd-sub-tlv | ||||
| +--ro link-msds* [msd-type] | ||||
| +--ro msd-type identityref | ||||
| +--ro msd-value? 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-router/ospfv3-e-lsa:e-router-tlvs: | ||||
| +--ro link-msd-sub-tlv | ||||
| +--ro link-msds* [msd-type] | ||||
| +--ro msd-type identityref | ||||
| +--ro msd-value? uint8 | ||||
| 2.1. OSPF MSD YANG Module | ||||
| <CODE BEGINS> file "ietf-ospf-msd@2021-02-21.yang" | ||||
| module ietf-ospf-msd { | ||||
| yang-version 1.1; | ||||
| namespace "urn:ietf:params:xml:ns:yang:ietf-ospf-msd"; | ||||
| prefix ospf-msd; | ||||
| import ietf-routing { | ||||
| prefix rt; | ||||
| reference "RFC 8349: A YANG Data Model for Routing | ||||
| Management (NMDA Version)"; | ||||
| } | ||||
| import ietf-ospf { | ||||
| prefix ospf; | ||||
| } | ||||
| import ietf-ospfv3-extended-lsa { | ||||
| prefix ospfv3-e-lsa; | ||||
| } | ||||
| organization | ||||
| "IETF LSR - LSR Working Group"; | ||||
| contact | ||||
| "WG Web: <https://tools.ietf.org/wg/mpls/> | ||||
| WG List: <mailto:mpls@ietf.org> | ||||
| Author: Yingzhen Qu | ||||
| <mailto:yingzhen.qu@futurewei.com> | ||||
| Author: Acee Lindem | ||||
| <mailto:acee@cisco.com> | ||||
| Author: Stephane Litkowski | ||||
| <mailto:slitkows.ietf@gmail.com> | ||||
| Author: Jeff Tantsura | ||||
| <jefftant.ietf@gmail.com> | ||||
| "; | ||||
| description | ||||
| "The YANG module augments the base OSPF model to | ||||
| manage different types of MSDs. | ||||
| This YANG model conforms to the Network Management | ||||
| Datastore Architecture (NMDA) as described in RFC 8342. | ||||
| Copyright (c) 2021 IETF Trust and the persons identified as | ||||
| authors of the code. All rights reserved. | ||||
| Redistribution and use in source and binary forms, with or | ||||
| without modification, is permitted pursuant to, and subject | ||||
| to the license terms contained in, the Simplified BSD License | ||||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | ||||
| Relating to IETF Documents | ||||
| (https://trustee.ietf.org/license-info). | ||||
| This version of this YANG module is part of RFC XXXX; | ||||
| see the RFC itself for full legal notices. | ||||
| The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | ||||
| 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."; | ||||
| reference "RFC XXXX: YANG Data Model for OSPF MSD."; | ||||
| revision 2021-02-21 { | ||||
| description | ||||
| "Initial Version"; | ||||
| reference "RFC XXXX: YANG Data Model for OSPF MSD."; | ||||
| } | ||||
| identity msd-base-type { | ||||
| description | ||||
| "Base identity for MSD Type"; | ||||
| } | ||||
| identity base-mpls-msd { | ||||
| base msd-base-type; | ||||
| description | ||||
| "Base MPLS Imposition MSD."; | ||||
| reference | ||||
| "RFC 8491: Singling MSD using IS-IS."; | ||||
| } | ||||
| identity erld-msd { | ||||
| base msd-base-type; | ||||
| description | ||||
| "ERLD-MSD is defined to advertise the ERLD."; | ||||
| reference | ||||
| "RFC 8662: Entropy Label for Source Packet Routing in | ||||
| Networking (SPRING) Tunnels"; | ||||
| } | ||||
| grouping node-msd-tlv { | ||||
| description | ||||
| "Grouping for node MSD."; | ||||
| container node-msd-tlv { | ||||
| list node-msds { | ||||
| key "msd-type"; | ||||
| leaf msd-type { | ||||
| type identityref { | ||||
| base msd-base-type; | ||||
| } | ||||
| description | ||||
| "MSD-Types"; | ||||
| } | ||||
| leaf msd-value { | ||||
| type uint8; | ||||
| description | ||||
| "MSD value, in the range of 0-255."; | ||||
| } | ||||
| description | ||||
| "Node MSD is the smallest link MSD supported by | ||||
| the node."; | ||||
| } | ||||
| description | ||||
| "Node MSD is the number of SIDs supported by a node."; | ||||
| reference | ||||
| "RFC 8476: Signaling Maximum SID Depth (MSD) Using OSPF"; | ||||
| } | ||||
| } | ||||
| grouping link-msd-sub-tlv { | ||||
| description | ||||
| "Link Maximum SID Depth (MSD) grouping for an interface."; | ||||
| container link-msd-sub-tlv { | ||||
| list link-msds { | ||||
| key "msd-type"; | ||||
| leaf msd-type { | ||||
| type identityref { | ||||
| base msd-base-type; | ||||
| } | ||||
| description | ||||
| "MSD-Types"; | ||||
| } | ||||
| leaf msd-value { | ||||
| type uint8; | ||||
| description | ||||
| "MSD value, in the range of 0-255."; | ||||
| } | ||||
| description | ||||
| "List of link MSDs"; | ||||
| } | ||||
| description | ||||
| "Link MSD sub-tlvs."; | ||||
| } | ||||
| } | ||||
| /* Node MSD TLV */ | ||||
| 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:ospfv2/" | ||||
| + "ospf:ospfv2/ospf:body/ospf:opaque/" | ||||
| + "ospf:ri-opaque" { | ||||
| when "../../../../../../../../../../../" | ||||
| + "rt:type = 'ospf:ospfv2'" { | ||||
| description | ||||
| "This augmentation is only valid for OSPFv2."; | ||||
| } | ||||
| description | ||||
| "Node MSD TLV is an optional TLV of OSPFv2 RI Opaque | ||||
| LSA (RFC7770) and has a type of 12."; | ||||
| uses node-msd-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:ospfv2/" | ||||
| + "ospf:ospfv2/ospf:body/ospf:opaque/" | ||||
| + "ospf:ri-opaque" { | ||||
| when "../../../../../../../../../" | ||||
| + "rt:type = 'ospf:ospfv2'" { | ||||
| description | ||||
| "This augmentation is only valid for OSPFv2."; | ||||
| } | ||||
| description | ||||
| "Node MSD TLV is an optional TLV of OSPFv2 RI Opaque | ||||
| LSA (RFC7770) and has a type of 12."; | ||||
| uses node-msd-tlv; | ||||
| } | ||||
| 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" { | ||||
| when "../../../../../../../../../../" | ||||
| + "rt:type = 'ospf:ospfv3'" { | ||||
| description | ||||
| "This augmentation is only valid for OSPFv3."; | ||||
| } | ||||
| description | ||||
| "Node MSD TLV is an optional TLV of OSPFv3 RI Opaque | ||||
| LSA (RFC7770) and has a type of 12."; | ||||
| uses node-msd-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/ospf:router-information" { | ||||
| when "../../../../../../../../" | ||||
| + "rt:type = 'ospf:ospfv3'" { | ||||
| description | ||||
| "This augmentation is only valid for OSPFv3."; | ||||
| } | ||||
| description | ||||
| "Node MSD TLV is an optional TLV of OSPFv3 RI Opaque | ||||
| LSA (RFC7770) and has a type of 12."; | ||||
| uses node-msd-tlv; | ||||
| } | ||||
| /* link MSD sub-tlv */ | ||||
| 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:ospfv2/" | ||||
| + "ospf:ospfv2/ospf:body/ospf:opaque/" | ||||
| + "ospf:extended-link-opaque/ospf:extended-link-tlv" { | ||||
| when "../../../../../../../../../../../../../../" | ||||
| + "rt:type = 'ospf:ospfv2'" { | ||||
| description | ||||
| "This augmentation is only valid for OSPFv2."; | ||||
| } | ||||
| description | ||||
| "Link MSD sub-TLV is an optional sub-TLV of OSPFv2 extended | ||||
| link TLV as defined in RFC 7684 and has a type of 6."; | ||||
| uses link-msd-sub-tlv; | ||||
| } | ||||
| 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:ospfv2/" | ||||
| + "ospf:ospfv2/ospf:body/ospf:opaque/" | ||||
| + "ospf:extended-link-opaque/ospf:extended-link-tlv" { | ||||
| when "../../../../../../../../../../../../" | ||||
| + "rt:type = 'ospf:ospfv2'" { | ||||
| description | ||||
| "This augmentation is only valid for OSPFv2."; | ||||
| } | ||||
| description | ||||
| "Link MSD sub-TLV is an optional sub-TLV of OSPFv2 extended | ||||
| link TLV as defined in RFC 7684 and has a type of 6."; | ||||
| uses link-msd-sub-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:ospfv2/" | ||||
| + "ospf:ospfv2/ospf:body/ospf:opaque/" | ||||
| + "ospf:extended-link-opaque/ospf:extended-link-tlv" { | ||||
| when "../../../../../../../../../../" | ||||
| + "rt:type = 'ospf:ospfv2'" { | ||||
| description | ||||
| "This augmentation is only valid for OSPFv2."; | ||||
| } | ||||
| description | ||||
| "Link MSD sub-TLV is an optional sub-TLV of OSPFv2 extended | ||||
| link TLV as defined in RFC 7684 and has a type of 6."; | ||||
| uses link-msd-sub-tlv; | ||||
| } | ||||
| 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" { | ||||
| when "'ospf:../../../../../../../../" | ||||
| + "rt:type' = 'ospf:ospfv3'" { | ||||
| description | ||||
| "This augmentation is only valid for OSPFv3 | ||||
| E-Router LSAs"; | ||||
| } | ||||
| description | ||||
| "Augment OSPFv3 Area scope router-link TLV."; | ||||
| uses link-msd-sub-tlv; | ||||
| } | ||||
| } | ||||
| <CODE ENDS> | ||||
| 3. OSPF Segment Routing | 3. OSPF Segment Routing | |||
| This document defines a model for OSPF Segment Routing feature | This document defines a model for OSPF Segment Routing feature | |||
| [RFC8665]. It is an augmentation of the OSPF base model. | [RFC8665]. It is an augmentation of the OSPF base model. | |||
| The OSPF SR YANG module requires support for the base segment routing | The OSPF SR YANG module requires support for the base segment routing | |||
| module [I-D.ietf-spring-sr-yang], which defines the global segment | module [I-D.ietf-spring-sr-yang], which defines the global segment | |||
| routing configuration independent of any specific routing protocol | routing configuration independent of any specific routing protocol | |||
| configuration, and support of OSPF base model[I-D.ietf-ospf-yang] | configuration, and support of OSPF base model[I-D.ietf-ospf-yang] | |||
| which defines basic OSPF configuration and state. | which defines basic OSPF configuration and state. | |||
| skipping to change at page 7, line 36 ¶ | skipping to change at page 16, line 5 ¶ | |||
| | +--ro sid-sub-tlv | | +--ro sid-sub-tlv | |||
| | +--ro sid? uint32 | | +--ro sid? uint32 | |||
| +--ro local-block-tlvs | +--ro local-block-tlvs | |||
| | +--ro local-block-tlv* | | +--ro local-block-tlv* | |||
| | +--ro range-size? uint24 | | +--ro range-size? uint24 | |||
| | +--ro sid-sub-tlv | | +--ro sid-sub-tlv | |||
| | +--ro sid? uint32 | | +--ro sid? uint32 | |||
| +--ro srms-preference-tlv | +--ro srms-preference-tlv | |||
| +--ro preference? uint8 | +--ro preference? uint8 | |||
| 4. OSPF Segment Routing YANG Module | 3.1. OSPF Segment Routing YANG Module | |||
| <CODE BEGINS> file "ietf-ospf-sr@2021-01-10.yang" | <CODE BEGINS> file "ietf-ospf-sr@2021-01-10.yang" | |||
| module ietf-ospf-sr { | module ietf-ospf-sr { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-ospf-sr"; | namespace "urn:ietf:params:xml:ns:yang:ietf-ospf-sr"; | |||
| prefix ospf-sr; | prefix ospf-sr; | |||
| import ietf-inet-types { | import ietf-inet-types { | |||
| prefix "inet"; | prefix "inet"; | |||
| skipping to change at page 20, line 18 ¶ | skipping to change at page 28, line 31 ¶ | |||
| uses extended-prefix-range-tlvs; | uses extended-prefix-range-tlvs; | |||
| uses sr-algorithm-tlv; | uses sr-algorithm-tlv; | |||
| uses sid-range-tlvs; | uses sid-range-tlvs; | |||
| uses local-block-tlvs; | uses local-block-tlvs; | |||
| uses srms-preference-tlv; | uses srms-preference-tlv; | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 5. 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]. | |||
| The NETCONF access control model [RFC6536] provides the means to | The NETCONF access control model [RFC6536] provides the means to | |||
| skipping to change at page 20, line 45 ¶ | skipping to change at page 29, line 10 ¶ | |||
| default). These data nodes may be considered sensitive or vulnerable | default). These data nodes may be considered sensitive or vulnerable | |||
| in some network environments. Write operations (e.g., edit-config) | in some network environments. Write operations (e.g., edit-config) | |||
| to these data nodes without proper protection can have a negative | to these data nodes without proper protection can have a negative | |||
| effect on network operations. | effect on network operations. | |||
| Some of the readable data nodes in the modules may be considered | Some of the readable data nodes in the modules may be considered | |||
| sensitive or vulnerable in some network environments. It is thus | sensitive or vulnerable in some network environments. It is thus | |||
| important to control read access (e.g., via get, get-config, or | important to control read access (e.g., via get, get-config, or | |||
| notification) to these data nodes. | notification) to these data nodes. | |||
| 6. Acknowledgements | 5. Acknowledgements | |||
| The authors wish to thank Yi Yang, Alexander Clemm, Gaurav Gupta, | The authors wish to thank Yi Yang, Alexander Clemm, Gaurav Gupta, | |||
| Ladislav Lhotka, Stephane Litkowski, Greg Hankins, Manish Gupta and | Ladislav Lhotka, Stephane Litkowski, Greg Hankins, Manish Gupta and | |||
| Alan Davey for their thorough reviews and helpful comments. | Alan Davey for their thorough reviews and helpful comments. | |||
| This document was produced using Marshall Rose's xml2rfc tool. | This document was produced using Marshall Rose's xml2rfc tool. | |||
| Author affiliation with The MITRE Corporation is provided for | Author affiliation with The MITRE Corporation is provided for | |||
| identification purposes only, and is not intended to convey or imply | identification purposes only, and is not intended to convey or imply | |||
| MITRE's concurrence with, or support for, the positions, opinions or | MITRE's concurrence with, or support for, the positions, opinions or | |||
| viewpoints expressed. MITRE has approved this document for Public | viewpoints expressed. MITRE has approved this document for Public | |||
| Release, Distribution Unlimited, with Public Release Case Number | Release, Distribution Unlimited, with Public Release Case Number | |||
| 18-3281. | 18-3281. | |||
| 6. IANA Considerations | ||||
| This document registers a URI in the IETF XML registry [RFC3688]. | ||||
| Following the format in [RFC3688], the following registration is | ||||
| requested to be made: | ||||
| URI: urn:ietf:params:xml:ns:yang:ietf-ospf-sr | ||||
| Registrant Contact: The IESG. | ||||
| XML: N/A, the requested URI is an XML namespace. | ||||
| URI: urn:ietf:params:xml:ns:yang:ietf-ospf-msd | ||||
| Registrant Contact: The IESG. | ||||
| XML: N/A, the requested URI is an XML namespace. | ||||
| This document registers a YANG module in the YANG Module Names | ||||
| registry [RFC6020]. | ||||
| name: ietf-ospf-sr | ||||
| namespace: urn:ietf:params:xml:ns:yang:ietf-ospf-sr | ||||
| prefix: ospf-sr | ||||
| reference: RFC XXXX | ||||
| name: ietf-ospf-msd | ||||
| namespace: urn:ietf:params:xml:ns:yang:ietf-ospf-msd | ||||
| prefix: ospf-msd | ||||
| reference: RFC XXXX | ||||
| 7. References | 7. References | |||
| 7.1. Normative References | 7.1. Normative References | |||
| [I-D.ietf-ospf-yang] | [I-D.ietf-ospf-yang] | |||
| Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, | Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, | |||
| "YANG Data Model for OSPF Protocol", draft-ietf-ospf- | "YANG Data Model for OSPF Protocol", draft-ietf-ospf- | |||
| yang-29 (work in progress), October 2019. | yang-29 (work in progress), October 2019. | |||
| [I-D.ietf-spring-sr-yang] | [I-D.ietf-spring-sr-yang] | |||
| Litkowski, S., Qu, Y., Lindem, A., Sarkar, P., and J. | Litkowski, S., Qu, Y., Lindem, A., Sarkar, P., and J. | |||
| Tantsura, "YANG Data Model for Segment Routing", draft- | Tantsura, "YANG Data Model for Segment Routing", draft- | |||
| ietf-spring-sr-yang-29 (work in progress), December 2020. | ietf-spring-sr-yang-30 (work in progress), January 2021. | |||
| [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>. | |||
| [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, | [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, | |||
| DOI 10.17487/RFC2328, April 1998, | DOI 10.17487/RFC2328, April 1998, | |||
| <https://www.rfc-editor.org/info/rfc2328>. | <https://www.rfc-editor.org/info/rfc2328>. | |||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | ||||
| DOI 10.17487/RFC3688, January 2004, | ||||
| <https://www.rfc-editor.org/info/rfc3688>. | ||||
| [RFC4750] Joyal, D., Ed., Galecki, P., Ed., Giacalone, S., Ed., | [RFC4750] Joyal, D., Ed., Galecki, P., Ed., Giacalone, S., Ed., | |||
| Coltun, R., and F. Baker, "OSPF Version 2 Management | Coltun, R., and F. Baker, "OSPF Version 2 Management | |||
| Information Base", RFC 4750, DOI 10.17487/RFC4750, | Information Base", RFC 4750, DOI 10.17487/RFC4750, | |||
| December 2006, <https://www.rfc-editor.org/info/rfc4750>. | December 2006, <https://www.rfc-editor.org/info/rfc4750>. | |||
| [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security | [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security | |||
| (TLS) Protocol Version 1.2", RFC 5246, | (TLS) Protocol Version 1.2", RFC 5246, | |||
| DOI 10.17487/RFC5246, August 2008, | DOI 10.17487/RFC5246, August 2008, | |||
| <https://www.rfc-editor.org/info/rfc5246>. | <https://www.rfc-editor.org/info/rfc5246>. | |||
| skipping to change at page 22, line 41 ¶ | skipping to change at page 31, line 41 ¶ | |||
| <https://www.rfc-editor.org/info/rfc7223>. | <https://www.rfc-editor.org/info/rfc7223>. | |||
| [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | |||
| RFC 7950, DOI 10.17487/RFC7950, August 2016, | RFC 7950, DOI 10.17487/RFC7950, August 2016, | |||
| <https://www.rfc-editor.org/info/rfc7950>. | <https://www.rfc-editor.org/info/rfc7950>. | |||
| [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | |||
| Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | |||
| <https://www.rfc-editor.org/info/rfc8040>. | <https://www.rfc-editor.org/info/rfc8040>. | |||
| [RFC8476] Tantsura, J., Chunduri, U., Aldrin, S., and P. Psenak, | ||||
| "Signaling Maximum SID Depth (MSD) Using OSPF", RFC 8476, | ||||
| DOI 10.17487/RFC8476, December 2018, | ||||
| <https://www.rfc-editor.org/info/rfc8476>. | ||||
| [RFC8665] Psenak, P., Ed., Previdi, S., Ed., Filsfils, C., Gredler, | [RFC8665] Psenak, P., Ed., Previdi, S., Ed., Filsfils, C., Gredler, | |||
| H., Shakir, R., Henderickx, W., and J. Tantsura, "OSPF | H., Shakir, R., Henderickx, W., and J. Tantsura, "OSPF | |||
| Extensions for Segment Routing", RFC 8665, | Extensions for Segment Routing", RFC 8665, | |||
| DOI 10.17487/RFC8665, December 2019, | DOI 10.17487/RFC8665, December 2019, | |||
| <https://www.rfc-editor.org/info/rfc8665>. | <https://www.rfc-editor.org/info/rfc8665>. | |||
| 7.2. Informative References | 7.2. Informative References | |||
| [RFC8022] Lhotka, L. and A. Lindem, "A YANG Data Model for Routing | [RFC8022] Lhotka, L. and A. Lindem, "A YANG Data Model for Routing | |||
| Management", RFC 8022, DOI 10.17487/RFC8022, November | Management", RFC 8022, DOI 10.17487/RFC8022, November | |||
| End of changes. 16 change blocks. | ||||
| 24 lines changed or deleted | 460 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/ | ||||