| < draft-ietf-ospf-sr-yang-00.txt | draft-ietf-ospf-sr-yang-01.txt > | |||
|---|---|---|---|---|
| Internet D. Yeung | Internet D. Yeung | |||
| Internet-Draft Arrcus | Internet-Draft Arrcus | |||
| Intended status: Informational Y. Qu | Intended status: Informational Y. Qu | |||
| Expires: May 4, 2017 Cisco Systems | Expires: September 14, 2017 Huawei | |||
| J. Zhang | J. Zhang | |||
| Juniper Networks | Juniper Networks | |||
| I. Chen | I. Chen | |||
| Kuatro Technologies | Jabil Circuit | |||
| A. Lindem | A. Lindem | |||
| Cisco Systems | Cisco Systems | |||
| October 31, 2016 | March 13, 2017 | |||
| Yang Data Model for OSPF SR (Segment Routing) Protocol | Yang Data Model for OSPF SR (Segment Routing) Protocol | |||
| draft-ietf-ospf-sr-yang-00 | draft-ietf-ospf-sr-yang-01 | |||
| Abstract | Abstract | |||
| This document defines a YANG data model that can be used to configure | This document defines a YANG data model that can be used to configure | |||
| and manage OSPF Segment Routing. | and manage OSPF Segment Routing. | |||
| 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. | |||
| skipping to change at page 1, line 38 ¶ | skipping to change at page 1, line 38 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on May 4, 2017. | This Internet-Draft will expire on September 14, 2017. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2017 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| 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 . . . . . . . . . . . . . . . . . . 2 | |||
| 2. OSPF Segment Routing . . . . . . . . . . . . . . . . . . . . 2 | 2. OSPF Segment Routing . . . . . . . . . . . . . . . . . . . . 2 | |||
| 3. OSPF Segment Routing Yang Module . . . . . . . . . . . . . . 9 | 3. OSPF Segment Routing Yang Module . . . . . . . . . . . . . . 10 | |||
| 4. Security Considerations . . . . . . . . . . . . . . . . . . . 24 | 4. Security Considerations . . . . . . . . . . . . . . . . . . . 25 | |||
| 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 24 | 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 25 | |||
| 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 24 | 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
| 6.1. Normative References . . . . . . . . . . . . . . . . . . 24 | 6.1. Normative References . . . . . . . . . . . . . . . . . . 25 | |||
| 6.2. Informative References . . . . . . . . . . . . . . . . . 26 | 6.2. Informative References . . . . . . . . . . . . . . . . . 27 | |||
| Appendix A. Contributors' Addreses . . . . . . . . . . . . . . . 28 | Appendix A. Contributors' Addreses . . . . . . . . . . . . . . . 28 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 28 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 28 | |||
| 1. Overview | 1. Overview | |||
| YANG [RFC6020] [RFC7950] is a data definition language used to | YANG [RFC6020] [RFC7950] is a data definition language used to | |||
| define the contents of a conceptual data store that allows networked | define the contents of a conceptual data store that allows networked | |||
| devices to be managed using NETCONF [RFC6241]. YANG is proving | devices to be managed using NETCONF [RFC6241]. YANG is proving | |||
| relevant beyond its initial confines, as bindings to other interfaces | relevant beyond its initial confines, as bindings to other interfaces | |||
| (e.g., ReST) and encodings other than XML (e.g., JSON) are being | (e.g., ReST) and encodings other than XML (e.g., JSON) are being | |||
| skipping to change at page 3, line 7 ¶ | skipping to change at page 3, line 7 ¶ | |||
| This document defines a model for OSPF Segment Routing feature. It | This document defines a model for OSPF Segment Routing feature. It | |||
| is an augmentation of the OSPF base model. | 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. | |||
| module: ietf-ospf-sr | module: ietf-ospf-sr | |||
| augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol | augment /rt:routing/rt:control-plane-protocols | |||
| /ospf:ospf/ospf:instance: | /rt:control-plane-protocol/ospf:ospf/ospf:instance: | |||
| +--rw segment-routing | +--rw segment-routing | |||
| | +--rw enabled? boolean | | +--rw enabled? boolean | |||
| | +--rw bindings | | +--rw bindings | |||
| | +--rw advertise | | +--rw advertise | |||
| | | +--rw policies* string | | | +--rw policies* string | |||
| | +--rw receive? boolean | | +--rw receive? boolean | |||
| +--rw protocol-srgb {sr:protocol-srgb}? | +--rw protocol-srgb {sr:protocol-srgb}? | |||
| +--rw srgb* [lower-bound upper-bound] | +--rw srgb* [lower-bound upper-bound] | |||
| +--rw lower-bound uint32 | +--rw lower-bound uint32 | |||
| +--rw upper-bound uint32 | +--rw upper-bound uint32 | |||
| augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol | augment /rt:routing/rt:control-plane-protocols | |||
| /ospf:ospf/ospf:instance/ospf:areas/ospf:area/ospf:interfaces | /rt:control-plane-protocol/ospf:ospf | |||
| /ospf:interface: | /ospf:instance/ospf:areas/ospf:area | |||
| +--rw segment-routing | /ospf:interfaces/ospf:interface: | |||
| +--rw adjacency-sid | +--rw segment-routing | |||
| +--rw advertise-adj-group-sid* [group-id] | +--rw adjacency-sid | |||
| | +--rw group-id uint32 | +--rw advertise-adj-group-sid* [group-id] | |||
| +--rw advertise-protection? enumeration | | +--rw group-id uint32 | |||
| augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol | +--rw advertise-protection? enumeration | |||
| /ospf:ospf/ospf:instance/ospf:areas/ospf:area/ospf:interfaces | augment /rt:routing/rt:control-plane-protocols | |||
| /ospf:interface/ospf:fast-reroute: | /rt:control-plane-protocol/ospf:ospf | |||
| +--rw ti-lfa {ti-lfa}? | /ospf:instance/ospf:areas/ospf:area | |||
| +--rw enable? boolean | /ospf:interfaces/ospf:interface/ospf:fast-reroute: | |||
| augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-protocol | +--rw ti-lfa {ti-lfa}? | |||
| /ospf:ospf/ospf:instance: | +--rw enable? boolean | |||
| +--ro segment-routing | augment /rt:routing-state/rt:control-plane-protocols | |||
| | +--ro enabled? boolean | /rt:control-plane-protocol/ospf:ospf/ospf:instance: | |||
| | +--ro bindings | +--ro segment-routing | |||
| | +--ro advertise | | +--ro enabled? boolean | |||
| | | +--ro policies* string | | +--ro bindings | |||
| | +--ro receive? boolean | | +--ro advertise | |||
| +--ro protocol-srgb {sr:protocol-srgb}? | | | +--ro policies* string | |||
| +--ro srgb* [lower-bound upper-bound] | | +--ro receive? boolean | |||
| +--ro lower-bound uint32 | +--ro protocol-srgb {sr:protocol-srgb}? | |||
| +--ro upper-bound uint32 | +--ro srgb* [lower-bound upper-bound] | |||
| augment /rt:routing-state/rt:control-plane-protocols | +--ro lower-bound uint32 | |||
| /rt:control-plane-protocol/ospf:ospf/ospf:instance | +--ro upper-bound uint32 | |||
| /ospf:areas/ospf:area/ospf:interfaces/ospf:interface: | augment /rt:routing-state/rt:control-plane-protocols | |||
| +--ro segment-routing | /rt:control-plane-protocol/ospf:ospf | |||
| +--ro adjacency-sid | /ospf:instance/ospf:areas/ospf:area | |||
| +--ro advertise-adj-group-sid* [group-id] | /ospf:interfaces/ospf:interface: | |||
| | +--ro group-id uint32 | +--ro segment-routing | |||
| +--ro advertise-protection? enumeration | +--ro adjacency-sid | |||
| augment /rt:routing-state/rt:control-plane-protocols | +--ro advertise-adj-group-sid* [group-id] | |||
| /rt:control-plane-protocol/ospf:ospf/ospf:instance/ospf:areas | | +--ro group-id uint32 | |||
| /ospf:area/ospf:interfaces/ospf:interface/ospf:database | +--ro advertise-protection? enumeration | |||
| /ospf:link-scope-lsa-type/ospf:link-scope-lsas/ospf:link-scope-lsa | augment /rt:routing-state/rt:control-plane-protocols | |||
| /ospf:version/ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque | /rt:control-plane-protocol/ospf:ospf/ospf:instance | |||
| /ospf:extended-prefix-tlvs/ospf:extended-prefix-tlv: | /ospf:areas/ospf:area/ospf:interfaces/ospf:interface | |||
| +--ro perfix-sid-sub-tlvs | /ospf:database/ospf:link-scope-lsa-type | |||
| | +--ro prefix-sid-sub-tlv* | /ospf:link-scope-lsas/ospf:link-scope-lsa/ospf:version | |||
| | +--ro flags? bits | /ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque | |||
| | +--ro mt-id? uint8 | /ospf:extended-prefix-tlvs/ospf:extended-prefix-tlv: | |||
| | +--ro algorithm? uint8 | +--ro perfix-sid-sub-tlvs | |||
| | +--ro sid? uint32 | | +--ro prefix-sid-sub-tlv* | |||
| +--ro sid-binding-sub-tlvs | | +--ro flags? bits | |||
| +--ro sid-binding-sub-tlv* | | +--ro mt-id? uint8 | |||
| +--ro flags? bits | | +--ro algorithm? uint8 | |||
| +--ro mt-id? uint8 | | +--ro sid? uint32 | |||
| +--ro weight? uint8 | +--ro sid-binding-sub-tlvs | |||
| +--ro sid-sub-tlv | +--ro sid-binding-sub-tlv* | |||
| | +--ro sid? uint32 | +--ro flags? bits | |||
| +--ro ero-metric-sub-tlv | +--ro mt-id? uint8 | |||
| | +--ro metric? uint32 | +--ro weight? uint8 | |||
| +--ro ipv4-ero-sub-tlv | +--ro sid-sub-tlv | |||
| | +--ro flags? bits | | +--ro sid? uint32 | |||
| | +--ro ipv4-address? inet:ipv4-address | +--ro ero-metric-sub-tlv | |||
| +--ro unnumbered-ero-sub-tlv | | +--ro metric? uint32 | |||
| | +--ro flags? bits | +--ro ipv4-ero-sub-tlv | |||
| | +--ro router-id? yang:dotted-quad | | +--ro flags? bits | |||
| | +--ro interface-id? uint32 | | +--ro ipv4-address? inet:ipv4-address | |||
| +--ro ipv4-backup-ero-sub-tlv | +--ro unnumbered-ero-sub-tlv | |||
| | +--ro flags? bits | | +--ro flags? bits | |||
| | +--ro ipv4-address? inet:ipv4-address | | +--ro router-id? yang:dotted-quad | |||
| +--ro unnumbered-backup-ero-sub-tlv | | +--ro interface-id? uint32 | |||
| +--ro flags? bits | +--ro ipv4-backup-ero-sub-tlv | |||
| +--ro router-id? yang:dotted-quad | | +--ro flags? bits | |||
| +--ro interface-id? uint32 | | +--ro ipv4-address? inet:ipv4-address | |||
| augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-protocol | +--ro unnumbered-backup-ero-sub-tlv | |||
| /ospf:ospf/ospf:instance/ospf:areas/ospf:area/ospf:database | +--ro flags? bits | |||
| /ospf:area-scope-lsa-type/ospf:area-scope-lsas/ospf:area-scope-lsa | +--ro router-id? yang:dotted-quad | |||
| /ospf:version/ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque | +--ro interface-id? uint32 | |||
| /ospf:extended-prefix-tlvs/ospf:extended-prefix-tlv: | augment /rt:routing-state/rt:control-plane-protocols | |||
| +--ro perfix-sid-sub-tlvs | /rt:control-plane-protocol/ospf:ospf/ospf:instance | |||
| | +--ro prefix-sid-sub-tlv* | /ospf:areas/ospf:area/ospf:database | |||
| | +--ro flags? bits | /ospf:area-scope-lsa-type/ospf:area-scope-lsas | |||
| | +--ro mt-id? uint8 | /ospf:area-scope-lsa/ospf:version/ospf:ospfv2 | |||
| | +--ro algorithm? uint8 | /ospf:ospfv2/ospf:body/ospf:opaque | |||
| | +--ro sid? uint32 | /ospf:extended-prefix-tlvs/ospf:extended-prefix-tlv: | |||
| +--ro sid-binding-sub-tlvs | +--ro perfix-sid-sub-tlvs | |||
| +--ro sid-binding-sub-tlv* | | +--ro prefix-sid-sub-tlv* | |||
| +--ro flags? bits | | +--ro flags? bits | |||
| +--ro mt-id? uint8 | | +--ro mt-id? uint8 | |||
| +--ro weight? uint8 | | +--ro algorithm? uint8 | |||
| +--ro sid-sub-tlv | | +--ro sid? uint32 | |||
| | +--ro sid? uint32 | +--ro sid-binding-sub-tlvs | |||
| +--ro ero-metric-sub-tlv | +--ro sid-binding-sub-tlv* | |||
| | +--ro metric? uint32 | +--ro flags? bits | |||
| +--ro ipv4-ero-sub-tlv | +--ro mt-id? uint8 | |||
| | +--ro flags? bits | +--ro weight? uint8 | |||
| | +--ro ipv4-address? inet:ipv4-address | +--ro sid-sub-tlv | |||
| +--ro unnumbered-ero-sub-tlv | | +--ro sid? uint32 | |||
| | +--ro flags? bits | +--ro ero-metric-sub-tlv | |||
| | +--ro router-id? yang:dotted-quad | | +--ro metric? uint32 | |||
| | +--ro interface-id? uint32 | +--ro ipv4-ero-sub-tlv | |||
| +--ro ipv4-backup-ero-sub-tlv | | +--ro flags? bits | |||
| | +--ro flags? bits | | +--ro ipv4-address? inet:ipv4-address | |||
| | +--ro ipv4-address? inet:ipv4-address | +--ro unnumbered-ero-sub-tlv | |||
| +--ro unnumbered-backup-ero-sub-tlv | | +--ro flags? bits | |||
| +--ro flags? bits | | +--ro router-id? yang:dotted-quad | |||
| +--ro router-id? yang:dotted-quad | | +--ro interface-id? uint32 | |||
| +--ro interface-id? uint32 | +--ro ipv4-backup-ero-sub-tlv | |||
| augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-protocol | | +--ro flags? bits | |||
| /ospf:ospf/ospf:instance/ospf:database/ospf:as-scope-lsa-type | | +--ro ipv4-address? inet:ipv4-address | |||
| /ospf:as-scope-lsas/ospf:as-scope-lsa/ospf:version/ospf:ospfv2 | +--ro unnumbered-backup-ero-sub-tlv | |||
| /ospf:ospfv2/ospf:body/ospf:opaque/ospf:extended-prefix-tlvs | +--ro flags? bits | |||
| /ospf:extended-prefix-tlv: | +--ro router-id? yang:dotted-quad | |||
| +--ro perfix-sid-sub-tlvs | +--ro interface-id? uint32 | |||
| | +--ro prefix-sid-sub-tlv* | augment /rt:routing-state/rt:control-plane-protocols | |||
| | +--ro flags? bits | /rt:control-plane-protocol/ospf:ospf/ospf:instance | |||
| | +--ro mt-id? uint8 | /ospf:database/ospf:as-scope-lsa-type/ospf:as-scope-lsas | |||
| | +--ro algorithm? uint8 | /ospf:as-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2 | |||
| | +--ro sid? uint32 | /ospf:body/ospf:opaque/ospf:extended-prefix-tlvs | |||
| +--ro sid-binding-sub-tlvs | /ospf:extended-prefix-tlv: | |||
| +--ro sid-binding-sub-tlv* | +--ro perfix-sid-sub-tlvs | |||
| +--ro flags? bits | | +--ro prefix-sid-sub-tlv* | |||
| +--ro mt-id? uint8 | | +--ro flags? bits | |||
| +--ro weight? uint8 | | +--ro mt-id? uint8 | |||
| +--ro sid-sub-tlv | | +--ro algorithm? uint8 | |||
| | +--ro sid? uint32 | | +--ro sid? uint32 | |||
| +--ro ero-metric-sub-tlv | +--ro sid-binding-sub-tlvs | |||
| | +--ro metric? uint32 | +--ro sid-binding-sub-tlv* | |||
| +--ro ipv4-ero-sub-tlv | +--ro flags? bits | |||
| | +--ro flags? bits | +--ro mt-id? uint8 | |||
| | +--ro ipv4-address? inet:ipv4-address | +--ro weight? uint8 | |||
| +--ro unnumbered-ero-sub-tlv | +--ro sid-sub-tlv | |||
| | +--ro flags? bits | | +--ro sid? uint32 | |||
| | +--ro router-id? yang:dotted-quad | +--ro ero-metric-sub-tlv | |||
| | +--ro interface-id? uint32 | | +--ro metric? uint32 | |||
| +--ro ipv4-backup-ero-sub-tlv | +--ro ipv4-ero-sub-tlv | |||
| | +--ro flags? bits | | +--ro flags? bits | |||
| | +--ro ipv4-address? inet:ipv4-address | | +--ro ipv4-address? inet:ipv4-address | |||
| +--ro unnumbered-backup-ero-sub-tlv | +--ro unnumbered-ero-sub-tlv | |||
| +--ro flags? bits | | +--ro flags? bits | |||
| +--ro router-id? yang:dotted-quad | | +--ro router-id? yang:dotted-quad | |||
| +--ro interface-id? uint32 | | +--ro interface-id? uint32 | |||
| augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-protocol | +--ro ipv4-backup-ero-sub-tlv | |||
| /ospf:ospf/ospf:instance/ospf:areas/ospf:area/ospf:database | | +--ro flags? bits | |||
| /ospf:area-scope-lsa-type/ospf:area-scope-lsas/ospf:area-scope-lsa | | +--ro ipv4-address? inet:ipv4-address | |||
| /ospf:version/ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque | +--ro unnumbered-backup-ero-sub-tlv | |||
| /ospf:extended-link-tlvs/ospf:extended-link-tlv: | +--ro flags? bits | |||
| +--ro adj-sid-sub-tlvs | +--ro router-id? yang:dotted-quad | |||
| | +--ro adj-sid-sub-tlv* | +--ro interface-id? uint32 | |||
| | +--ro flags? bits | augment /rt:routing-state/rt:control-plane-protocols | |||
| | +--ro mt-id? uint8 | /rt:control-plane-protocol/ospf:ospf/ospf:instance | |||
| | +--ro weight? uint8 | /ospf:areas/ospf:area/ospf:database | |||
| | +--ro sid? uint32 | /ospf:area-scope-lsa-type/ospf:area-scope-lsas | |||
| +--ro lan-adj-sid-sub-tlvs | /ospf:area-scope-lsa/ospf:version/ospf:ospfv2 | |||
| +--ro lan-adj-sid-sub-tlv* | /ospf:ospfv2/ospf:body/ospf:opaque | |||
| +--ro flags? bits | /ospf:extended-link-tlvs/ospf:extended-link-tlv: | |||
| +--ro mt-id? uint8 | +--ro adj-sid-sub-tlvs | |||
| +--ro weight? uint8 | | +--ro adj-sid-sub-tlv* | |||
| +--ro neighbor-router-id? yang:dotted-quad | | +--ro flags? bits | |||
| +--ro sid? uint32 | | +--ro mt-id? uint8 | |||
| augment /rt:routing-state/rt:control-plane-protocols | | +--ro weight? uint8 | |||
| /rt:control-plane-protocol/ospf:ospf/ospf:instance/ospf:areas/ospf:area | | +--ro sid? uint32 | |||
| /ospf:interfaces/ospf:interface/ospf:database/ospf:link-scope-lsa-type | +--ro lan-adj-sid-sub-tlvs | |||
| /ospf:link-scope-lsas/ospf:link-scope-lsa/ospf:version/ospf:ospfv2 | +--ro lan-adj-sid-sub-tlv* | |||
| /ospf:ospfv2/ospf:body/ospf:opaque: | +--ro flags? bits | |||
| +--ro extended-prefix-range-tlvs | +--ro mt-id? uint8 | |||
| | +--ro extended-prefix-range-tlv* | +--ro weight? uint8 | |||
| | +--ro range-size? uint16 | +--ro neighbor-router-id? yang:dotted-quad | |||
| | +--ro flags? bits | +--ro sid? uint32 | |||
| | +--ro prefix? inet:ip-prefix | augment /rt:routing-state/rt:control-plane-protocols | |||
| | +--ro perfix-sid-sub-tlvs | /rt:control-plane-protocol/ospf:ospf/ospf:instance | |||
| | | +--ro prefix-sid-sub-tlv* | /ospf:areas/ospf:area/ospf:interfaces/ospf:interface | |||
| | | +--ro flags? bits | /ospf:database/ospf:link-scope-lsa-type | |||
| | | +--ro mt-id? uint8 | /ospf:link-scope-lsas/ospf:link-scope-lsa | |||
| | | +--ro algorithm? uint8 | /ospf:version/ospf:ospfv2/ospf:ospfv2 | |||
| | | +--ro sid? uint32 | /ospf:body/ospf:opaque: | |||
| | +--ro sid-binding-sub-tlvs | +--ro extended-prefix-range-tlvs | |||
| | | +--ro sid-binding-sub-tlv* | | +--ro extended-prefix-range-tlv* | |||
| | | +--ro flags? bits | | +--ro range-size? uint16 | |||
| | | +--ro mt-id? uint8 | | +--ro flags? bits | |||
| | | +--ro weight? uint8 | | +--ro prefix? inet:ip-prefix | |||
| | | +--ro sid-sub-tlv | | +--ro perfix-sid-sub-tlvs | |||
| | | | +--ro sid? uint32 | | | +--ro prefix-sid-sub-tlv* | |||
| | | +--ro ero-metric-sub-tlv | | | +--ro flags? bits | |||
| | | | +--ro metric? uint32 | | | +--ro mt-id? uint8 | |||
| | | +--ro ipv4-ero-sub-tlv | | | +--ro algorithm? uint8 | |||
| | | | +--ro flags? bits | | | +--ro sid? uint32 | |||
| | | | +--ro ipv4-address? inet:ipv4-address | | +--ro sid-binding-sub-tlvs | |||
| | | +--ro unnumbered-ero-sub-tlv | | | +--ro sid-binding-sub-tlv* | |||
| | | | +--ro flags? bits | | | +--ro flags? bits | |||
| | | | +--ro router-id? yang:dotted-quad | | | +--ro mt-id? uint8 | |||
| | | | +--ro interface-id? uint32 | | | +--ro weight? uint8 | |||
| | | +--ro ipv4-backup-ero-sub-tlv | | | +--ro sid-sub-tlv | |||
| | | | +--ro flags? bits | | | | +--ro sid? uint32 | |||
| | | | +--ro ipv4-address? inet:ipv4-address | | | +--ro ero-metric-sub-tlv | |||
| | | +--ro unnumbered-backup-ero-sub-tlv | | | | +--ro metric? uint32 | |||
| | | +--ro flags? bits | | | +--ro ipv4-ero-sub-tlv | |||
| | | +--ro router-id? yang:dotted-quad | | | | +--ro flags? bits | |||
| | | +--ro interface-id? uint32 | | | | +--ro ipv4-address? inet:ipv4-address | |||
| | +--ro unknown-tlvs | | | +--ro unnumbered-ero-sub-tlv | |||
| | +--ro unknown-tlv* | | | | +--ro flags? bits | |||
| | +--ro type? uint16 | | | | +--ro router-id? yang:dotted-quad | |||
| | +--ro length? uint16 | | | | +--ro interface-id? uint32 | |||
| | +--ro value? yang:hex-string | | | +--ro ipv4-backup-ero-sub-tlv | |||
| +--ro sr-algorithm-tlv | | | | +--ro flags? bits | |||
| | +--ro sr-algorithm* uint8 | | | | +--ro ipv4-address? inet:ipv4-address | |||
| +--ro sid-range-tlvs | | | +--ro unnumbered-backup-ero-sub-tlv | |||
| +--ro sid-range-tlv* | | | +--ro flags? bits | |||
| +--ro range-size? ospf:uint24 | | | +--ro router-id? yang:dotted-quad | |||
| +--ro sid-sub-tlv | | | +--ro interface-id? uint32 | |||
| +--ro sid? uint32 | | +--ro unknown-tlvs | |||
| augment /rt:routing-state/rt:control-plane-protocols | | +--ro unknown-tlv* | |||
| /rt:control-plane-protocol/ospf:ospf/ospf:instance/ospf:areas | | +--ro type? uint16 | |||
| /ospf:area/ospf:database/ospf:area-scope-lsa-type | | +--ro length? uint16 | |||
| /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version | | +--ro value? yang:hex-string | |||
| /ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque: | +--ro sr-algorithm-tlv | |||
| +--ro extended-prefix-range-tlvs | | +--ro sr-algorithm* uint8 | |||
| | +--ro extended-prefix-range-tlv* | +--ro sid-range-tlvs | |||
| | +--ro range-size? uint16 | +--ro sid-range-tlv* | |||
| | +--ro flags? bits | +--ro range-size? ospf:uint24 | |||
| | +--ro prefix? inet:ip-prefix | +--ro sid-sub-tlv | |||
| | +--ro perfix-sid-sub-tlvs | +--ro sid? uint32 | |||
| | | +--ro prefix-sid-sub-tlv* | augment /rt:routing-state/rt:control-plane-protocols | |||
| | | +--ro flags? bits | /rt:control-plane-protocol/ospf:ospf/ospf:instance | |||
| | | +--ro mt-id? uint8 | /ospf:areas/ospf:area/ospf:database | |||
| | | +--ro algorithm? uint8 | /ospf:area-scope-lsa-type/ospf:area-scope-lsas | |||
| | | +--ro sid? uint32 | /ospf:area-scope-lsa/ospf:version/ospf:ospfv2 | |||
| | +--ro sid-binding-sub-tlvs | /ospf:ospfv2/ospf:body/ospf:opaque: | |||
| | | +--ro sid-binding-sub-tlv* | +--ro extended-prefix-range-tlvs | |||
| | | +--ro flags? bits | | +--ro extended-prefix-range-tlv* | |||
| | | +--ro mt-id? uint8 | | +--ro range-size? uint16 | |||
| | | +--ro weight? uint8 | | +--ro flags? bits | |||
| | | +--ro sid-sub-tlv | | +--ro prefix? inet:ip-prefix | |||
| | | | +--ro sid? uint32 | | +--ro perfix-sid-sub-tlvs | |||
| | | +--ro ero-metric-sub-tlv | | | +--ro prefix-sid-sub-tlv* | |||
| | | | +--ro metric? uint32 | | | +--ro flags? bits | |||
| | | +--ro ipv4-ero-sub-tlv | | | +--ro mt-id? uint8 | |||
| | | | +--ro flags? bits | | | +--ro algorithm? uint8 | |||
| | | | +--ro ipv4-address? inet:ipv4-address | | | +--ro sid? uint32 | |||
| | | +--ro unnumbered-ero-sub-tlv | | +--ro sid-binding-sub-tlvs | |||
| | | | +--ro flags? bits | | | +--ro sid-binding-sub-tlv* | |||
| | | | +--ro router-id? yang:dotted-quad | | | +--ro flags? bits | |||
| | | | +--ro interface-id? uint32 | | | +--ro mt-id? uint8 | |||
| | | +--ro ipv4-backup-ero-sub-tlv | | | +--ro weight? uint8 | |||
| | | | +--ro flags? bits | | | +--ro sid-sub-tlv | |||
| | | | +--ro ipv4-address? inet:ipv4-address | | | | +--ro sid? uint32 | |||
| | | +--ro unnumbered-backup-ero-sub-tlv | | | +--ro ero-metric-sub-tlv | |||
| | | +--ro flags? bits | | | | +--ro metric? uint32 | |||
| | | +--ro router-id? yang:dotted-quad | | | +--ro ipv4-ero-sub-tlv | |||
| | | +--ro interface-id? uint32 | | | | +--ro flags? bits | |||
| | +--ro unknown-tlvs | | | | +--ro ipv4-address? inet:ipv4-address | |||
| | +--ro unknown-tlv* | | | +--ro unnumbered-ero-sub-tlv | |||
| | +--ro type? uint16 | | | | +--ro flags? bits | |||
| | +--ro length? uint16 | | | | +--ro router-id? yang:dotted-quad | |||
| | +--ro value? yang:hex-string | | | | +--ro interface-id? uint32 | |||
| +--ro sr-algorithm-tlv | | | +--ro ipv4-backup-ero-sub-tlv | |||
| | +--ro sr-algorithm* uint8 | | | | +--ro flags? bits | |||
| +--ro sid-range-tlvs | | | | +--ro ipv4-address? inet:ipv4-address | |||
| +--ro sid-range-tlv* | | | +--ro unnumbered-backup-ero-sub-tlv | |||
| +--ro range-size? ospf:uint24 | | | +--ro flags? bits | |||
| +--ro sid-sub-tlv | | | +--ro router-id? yang:dotted-quad | |||
| +--ro sid? uint32 | | | +--ro interface-id? uint32 | |||
| augment /rt:routing-state/rt:control-plane-protocols | | +--ro unknown-tlvs | |||
| /rt:control-plane-protocol/ospf:ospf/ospf:instance/ospf:database | | +--ro unknown-tlv* | |||
| /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa | | +--ro type? uint16 | |||
| /ospf:version/ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque: | | +--ro length? uint16 | |||
| +--ro extended-prefix-range-tlvs | | +--ro value? yang:hex-string | |||
| | +--ro extended-prefix-range-tlv* | +--ro sr-algorithm-tlv | |||
| | +--ro range-size? uint16 | | +--ro sr-algorithm* uint8 | |||
| | +--ro flags? bits | +--ro sid-range-tlvs | |||
| | +--ro prefix? inet:ip-prefix | +--ro sid-range-tlv* | |||
| | +--ro perfix-sid-sub-tlvs | +--ro range-size? ospf:uint24 | |||
| | | +--ro prefix-sid-sub-tlv* | +--ro sid-sub-tlv | |||
| | | +--ro flags? bits | +--ro sid? uint32 | |||
| | | +--ro mt-id? uint8 | augment /rt:routing-state/rt:control-plane-protocols | |||
| | | +--ro algorithm? uint8 | /rt:control-plane-protocol/ospf:ospf/ospf:instance | |||
| | | +--ro sid? uint32 | /ospf:database/ospf:as-scope-lsa-type | |||
| | +--ro sid-binding-sub-tlvs | /ospf:as-scope-lsas/ospf:as-scope-lsa/ospf:version | |||
| | | +--ro sid-binding-sub-tlv* | /ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque: | |||
| | | +--ro flags? bits | +--ro extended-prefix-range-tlvs | |||
| | | +--ro mt-id? uint8 | | +--ro extended-prefix-range-tlv* | |||
| | | +--ro weight? uint8 | | +--ro range-size? uint16 | |||
| | | +--ro sid-sub-tlv | | +--ro flags? bits | |||
| | | | +--ro sid? uint32 | | +--ro prefix? inet:ip-prefix | |||
| | | +--ro ero-metric-sub-tlv | | +--ro perfix-sid-sub-tlvs | |||
| | | | +--ro metric? uint32 | | | +--ro prefix-sid-sub-tlv* | |||
| | | +--ro ipv4-ero-sub-tlv | | | +--ro flags? bits | |||
| | | | +--ro flags? bits | | | +--ro mt-id? uint8 | |||
| | | | +--ro ipv4-address? inet:ipv4-address | | | +--ro algorithm? uint8 | |||
| | | +--ro unnumbered-ero-sub-tlv | | | +--ro sid? uint32 | |||
| | | | +--ro flags? bits | | +--ro sid-binding-sub-tlvs | |||
| | | | +--ro router-id? yang:dotted-quad | | | +--ro sid-binding-sub-tlv* | |||
| | | | +--ro interface-id? uint32 | | | +--ro flags? bits | |||
| | | +--ro ipv4-backup-ero-sub-tlv | | | +--ro mt-id? uint8 | |||
| | | | +--ro flags? bits | | | +--ro weight? uint8 | |||
| | | | +--ro ipv4-address? inet:ipv4-address | | | +--ro sid-sub-tlv | |||
| | | +--ro unnumbered-backup-ero-sub-tlv | | | | +--ro sid? uint32 | |||
| | | +--ro flags? bits | | | +--ro ero-metric-sub-tlv | |||
| | | +--ro router-id? yang:dotted-quad | | | | +--ro metric? uint32 | |||
| | | +--ro interface-id? uint32 | | | +--ro ipv4-ero-sub-tlv | |||
| | +--ro unknown-tlvs | | | | +--ro flags? bits | |||
| | +--ro unknown-tlv* | | | | +--ro ipv4-address? inet:ipv4-address | |||
| | +--ro type? uint16 | | | +--ro unnumbered-ero-sub-tlv | |||
| | +--ro length? uint16 | | | | +--ro flags? bits | |||
| | +--ro value? yang:hex-string | | | | +--ro router-id? yang:dotted-quad | |||
| +--ro sr-algorithm-tlv | | | | +--ro interface-id? uint32 | |||
| | +--ro sr-algorithm* uint8 | | | +--ro ipv4-backup-ero-sub-tlv | |||
| +--ro sid-range-tlvs | | | | +--ro flags? bits | |||
| +--ro sid-range-tlv* | | | | +--ro ipv4-address? inet:ipv4-address | |||
| +--ro range-size? ospf:uint24 | | | +--ro unnumbered-backup-ero-sub-tlv | |||
| +--ro sid-sub-tlv | | | +--ro flags? bits | |||
| +--ro sid? uint32 | | | +--ro router-id? yang:dotted-quad | |||
| | | +--ro interface-id? uint32 | ||||
| | +--ro unknown-tlvs | ||||
| | +--ro unknown-tlv* | ||||
| | +--ro type? uint16 | ||||
| | +--ro length? uint16 | ||||
| | +--ro value? yang:hex-string | ||||
| +--ro sr-algorithm-tlv | ||||
| | +--ro sr-algorithm* uint8 | ||||
| +--ro sid-range-tlvs | ||||
| +--ro sid-range-tlv* | ||||
| +--ro range-size? ospf:uint24 | ||||
| +--ro sid-sub-tlv | ||||
| +--ro sid? uint32 | ||||
| 3. OSPF Segment Routing Yang Module | 3. OSPF Segment Routing Yang Module | |||
| <CODE BEGINS> file "ietf-ospf-sr@2016-10-31.yang" | <CODE BEGINS> file "ietf-ospf-sr@2017-03-13.yang" | |||
| module ietf-ospf-sr { | module ietf-ospf-sr { | |||
| 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"; | |||
| } | } | |||
| import ietf-yang-types { | import ietf-yang-types { | |||
| skipping to change at page 10, line 41 ¶ | skipping to change at page 11, line 6 ¶ | |||
| <mailto:acee@cisco.com> | <mailto:acee@cisco.com> | |||
| WG Chair: Abhay Roy | WG Chair: Abhay Roy | |||
| <mailto:akr@cisco.com> | <mailto:akr@cisco.com> | |||
| Editor: Derek Yeung | Editor: Derek Yeung | |||
| <mailto:derek@arrcus.com> | <mailto:derek@arrcus.com> | |||
| Author: Derek Yeung | Author: Derek Yeung | |||
| <mailto:derek@arrcus.com> | <mailto:derek@arrcus.com> | |||
| Author: Yingzhen Qu | Author: Yingzhen Qu | |||
| <mailto:yiqu@cisco.com> | <mailto:yingzhen.qu@huawei.com> | |||
| Author: Acee Lindem | Author: Acee Lindem | |||
| <mailto:acee@cisco.com> | <mailto:acee@cisco.com> | |||
| Author: Jeffrey Zhang | Author: Jeffrey Zhang | |||
| <mailto:zzhang@juniper.net> | <mailto:zzhang@juniper.net> | |||
| Author: Ing-Wher Chen | Author: Ing-Wher Chen | |||
| <mailto:ichen@kuatrotech.com> | <mailto:ing-wher_chen@jabil.com> | |||
| Author: Greg Hankins | Author: Greg Hankins | |||
| <mailto:greg.hankins@alcatel-lucent.com>"; | <mailto:greg.hankins@alcatel-lucent.com>"; | |||
| description | description | |||
| "This YANG module defines the generic configuration | "This YANG module defines the generic configuration | |||
| and operational state for OSPF Segment Routing, which is | and operational state for OSPF Segment Routing, which is | |||
| common across all of the vendor implementations. It is | common across all of the vendor implementations. It is | |||
| intended that the module will be extended by vendors to | intended that the module will be extended by vendors to | |||
| define vendor-specific OSPF Segment Routing configuration | define vendor-specific OSPF Segment Routing configuration | |||
| and operational parameters and policies. | and operational parameters and policies. | |||
| skipping to change at page 11, line 22 ¶ | skipping to change at page 11, line 35 ¶ | |||
| OSPF (ospf): Open Shortest Path First | OSPF (ospf): Open Shortest Path First | |||
| IP (ip): Internet Protocol | IP (ip): Internet Protocol | |||
| IPv4 (ipv4):Internet Protocol Version 4 | IPv4 (ipv4):Internet Protocol Version 4 | |||
| IPv6 (ipv6): Internet Protocol Version 6 | IPv6 (ipv6): Internet Protocol Version 6 | |||
| "; | "; | |||
| revision 2017-03-13 { | ||||
| description | ||||
| "* Add p-flag in adj-sid sub-tlv."; | ||||
| reference | ||||
| "RFC XXXX: A YANG Data Model for OSPF Segment Routing."; | ||||
| } | ||||
| revision 2016-10-31 { | revision 2016-10-31 { | |||
| description | description | |||
| "* Update authors information. | "* Update authors information. | |||
| * Add import of ietf-segment-routing-common module."; | * Add import of ietf-segment-routing-common module."; | |||
| reference | reference | |||
| "RFC XXXX: A YANG Data Model for OSPF Segment Routing."; | "RFC XXXX: A YANG Data Model for OSPF Segment Routing."; | |||
| } | } | |||
| revision 2016-07-07 { | revision 2016-07-07 { | |||
| description | description | |||
| skipping to change at page 19, line 49 ¶ | skipping to change at page 20, line 20 ¶ | |||
| } | } | |||
| } | } | |||
| augment "/rt:routing-state/" | augment "/rt:routing-state/" | |||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | + "rt:control-plane-protocols/rt:control-plane-protocol/" | |||
| + "ospf:ospf/ospf:instance/ospf:areas/ospf:area/" | + "ospf:ospf/ospf:instance/ospf:areas/ospf:area/" | |||
| + "ospf:interfaces/ospf:interface/ospf:database/" | + "ospf:interfaces/ospf:interface/ospf:database/" | |||
| + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/" | + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/" | |||
| + "ospf:link-scope-lsa/ospf:version/ospf:ospfv2/" | + "ospf:link-scope-lsa/ospf:version/ospf:ospfv2/" | |||
| + "ospf:ospfv2/ospf:body/ospf:opaque/" | + "ospf:ospfv2/ospf:body/ospf:opaque/" | |||
| + "ospf:extended-prefix-tlvs/ospf:extended-prefix-tlv" { | + "ospf:extended-prefix-tlvs/ospf:extended-prefix-tlv" { | |||
| when "../../../../../../../../../../../../../../../../../" | when "../../../../../../../../../../../../../../../" | |||
| + "rt:type = 'ospf:ospfv2'" { | + "rt:type = 'ospf:ospfv2'" { | |||
| description | description | |||
| "This augmentation is only valid for OSPFv2."; | "This augmentation is only valid for OSPFv2."; | |||
| } | } | |||
| description | description | |||
| "SR specific TLVs for OSPFv2 extended prefix TLV | "SR specific TLVs for OSPFv2 extended prefix TLV | |||
| in type 9 opaque LSA."; | in type 9 opaque LSA."; | |||
| uses prefix-sid-sub-tlvs; | uses prefix-sid-sub-tlvs; | |||
| uses sid-binding-sub-tlvs; | uses sid-binding-sub-tlvs; | |||
| } | } | |||
| augment "/rt:routing-state/" | augment "/rt:routing-state/" | |||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | + "rt:control-plane-protocols/rt:control-plane-protocol/" | |||
| + "ospf:ospf/ospf:instance/ospf:areas/" | + "ospf:ospf/ospf:instance/ospf:areas/" | |||
| + "ospf:area/ospf:database/" | + "ospf:area/ospf:database/" | |||
| + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | |||
| + "ospf:area-scope-lsa/ospf:version/ospf:ospfv2/" | + "ospf:area-scope-lsa/ospf:version/ospf:ospfv2/" | |||
| + "ospf:ospfv2/ospf:body/ospf:opaque/" | + "ospf:ospfv2/ospf:body/ospf:opaque/" | |||
| + "ospf:extended-prefix-tlvs/ospf:extended-prefix-tlv" { | + "ospf:extended-prefix-tlvs/ospf:extended-prefix-tlv" { | |||
| when "../../../../../../../../../../../../../../../" | when "../../../../../../../../../../../../../" | |||
| + "rt:type = 'ospf:ospfv2'" { | + "rt:type = 'ospf:ospfv2'" { | |||
| description | description | |||
| "This augmentation is only valid for OSPFv2."; | "This augmentation is only valid for OSPFv2."; | |||
| } | } | |||
| description | description | |||
| "SR specific TLVs for OSPFv2 extended prefix TLV | "SR specific TLVs for OSPFv2 extended prefix TLV | |||
| in type 10 opaque LSA."; | in type 10 opaque LSA."; | |||
| uses prefix-sid-sub-tlvs; | uses prefix-sid-sub-tlvs; | |||
| uses sid-binding-sub-tlvs; | uses sid-binding-sub-tlvs; | |||
| } | } | |||
| skipping to change at page 20, line 32 ¶ | skipping to change at page 21, line 4 ¶ | |||
| + "rt:type = 'ospf:ospfv2'" { | + "rt:type = 'ospf:ospfv2'" { | |||
| description | description | |||
| "This augmentation is only valid for OSPFv2."; | "This augmentation is only valid for OSPFv2."; | |||
| } | } | |||
| description | description | |||
| "SR specific TLVs for OSPFv2 extended prefix TLV | "SR specific TLVs for OSPFv2 extended prefix TLV | |||
| in type 10 opaque LSA."; | in type 10 opaque LSA."; | |||
| uses prefix-sid-sub-tlvs; | uses prefix-sid-sub-tlvs; | |||
| uses sid-binding-sub-tlvs; | uses sid-binding-sub-tlvs; | |||
| } | } | |||
| augment "/rt:routing-state/" | augment "/rt:routing-state/" | |||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | + "rt:control-plane-protocols/rt:control-plane-protocol/" | |||
| + "ospf:ospf/ospf:instance/ospf:database/" | + "ospf:ospf/ospf:instance/ospf:database/" | |||
| + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" | + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" | |||
| + "ospf:as-scope-lsa/ospf:version/ospf:ospfv2/" | + "ospf:as-scope-lsa/ospf:version/ospf:ospfv2/" | |||
| + "ospf:ospfv2/ospf:body/ospf:opaque/" | + "ospf:ospfv2/ospf:body/ospf:opaque/" | |||
| + "ospf:extended-prefix-tlvs/ospf:extended-prefix-tlv" { | + "ospf:extended-prefix-tlvs/ospf:extended-prefix-tlv" { | |||
| when "../../../../../../../../../../../../../" | when "../../../../../../../../../../../" | |||
| + "rt:type = 'ospf:ospfv2'" { | + "rt:type = 'ospf:ospfv2'" { | |||
| description | description | |||
| "This augmentation is only valid for OSPFv2."; | "This augmentation is only valid for OSPFv2."; | |||
| } | } | |||
| description | description | |||
| "SR specific TLVs for OSPFv2 extended prefix TLV | "SR specific TLVs for OSPFv2 extended prefix TLV | |||
| in type 11 opaque LSA."; | in type 11 opaque LSA."; | |||
| uses prefix-sid-sub-tlvs; | uses prefix-sid-sub-tlvs; | |||
| uses sid-binding-sub-tlvs; | uses sid-binding-sub-tlvs; | |||
| } | } | |||
| skipping to change at page 21, line 4 ¶ | skipping to change at page 21, line 22 ¶ | |||
| + "rt:type = 'ospf:ospfv2'" { | + "rt:type = 'ospf:ospfv2'" { | |||
| description | description | |||
| "This augmentation is only valid for OSPFv2."; | "This augmentation is only valid for OSPFv2."; | |||
| } | } | |||
| description | description | |||
| "SR specific TLVs for OSPFv2 extended prefix TLV | "SR specific TLVs for OSPFv2 extended prefix TLV | |||
| in type 11 opaque LSA."; | in type 11 opaque LSA."; | |||
| uses prefix-sid-sub-tlvs; | uses prefix-sid-sub-tlvs; | |||
| uses sid-binding-sub-tlvs; | uses sid-binding-sub-tlvs; | |||
| } | } | |||
| augment "/rt:routing-state/" | augment "/rt:routing-state/" | |||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | + "rt:control-plane-protocols/rt:control-plane-protocol/" | |||
| + "ospf:ospf/ospf:instance/ospf:areas/" | + "ospf:ospf/ospf:instance/ospf:areas/" | |||
| + "ospf:area/ospf:database/" | + "ospf:area/ospf:database/" | |||
| + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | |||
| + "ospf:area-scope-lsa/ospf:version/ospf:ospfv2/" | + "ospf:area-scope-lsa/ospf:version/ospf:ospfv2/" | |||
| + "ospf:ospfv2/ospf:body/ospf:opaque/" | + "ospf:ospfv2/ospf:body/ospf:opaque/" | |||
| + "ospf:extended-link-tlvs/ospf:extended-link-tlv" { | + "ospf:extended-link-tlvs/ospf:extended-link-tlv" { | |||
| when "../../../../../../../../../../../../../../../" | when "../../../../../../../../../../../../../" | |||
| + "rt:type = 'ospf:ospfv2'" { | + "rt:type = 'ospf:ospfv2'" { | |||
| description | description | |||
| "This augmentation is only valid for OSPFv2."; | "This augmentation is only valid for OSPFv2."; | |||
| } | } | |||
| description | description | |||
| "SR specific TLVs for OSPFv2 extended link TLV | "SR specific TLVs for OSPFv2 extended link TLV | |||
| in type 10 opaque LSA."; | in type 10 opaque LSA."; | |||
| container adj-sid-sub-tlvs { | container adj-sid-sub-tlvs { | |||
| description "Adjacency SID optional sub-TLVs."; | description "Adjacency SID optional sub-TLVs."; | |||
| skipping to change at page 21, line 43 ¶ | skipping to change at page 22, line 14 ¶ | |||
| "Value/Index flag."; | "Value/Index flag."; | |||
| } | } | |||
| bit L { | bit L { | |||
| description | description | |||
| "Local/Global flag."; | "Local/Global flag."; | |||
| } | } | |||
| bit G { | bit G { | |||
| description | description | |||
| "Group flag."; | "Group flag."; | |||
| } | } | |||
| bit P { | ||||
| description | ||||
| "Persistent flag."; | ||||
| } | ||||
| } | } | |||
| description "Flags."; | description "Flags."; | |||
| } | } | |||
| leaf mt-id { | leaf mt-id { | |||
| type uint8; | type uint8; | |||
| description "Multi-topology ID."; | description "Multi-topology ID."; | |||
| } | } | |||
| leaf weight { | leaf weight { | |||
| type uint8; | type uint8; | |||
| description "Weight used for load-balancing."; | description "Weight used for load-balancing."; | |||
| skipping to change at page 22, line 35 ¶ | skipping to change at page 23, line 10 ¶ | |||
| "Value/Index flag."; | "Value/Index flag."; | |||
| } | } | |||
| bit L { | bit L { | |||
| description | description | |||
| "Local/Global flag."; | "Local/Global flag."; | |||
| } | } | |||
| bit G { | bit G { | |||
| description | description | |||
| "Group flag."; | "Group flag."; | |||
| } | } | |||
| bit P { | ||||
| description | ||||
| "Persistent flag."; | ||||
| } | ||||
| } | } | |||
| description "Flags."; | description "Flags."; | |||
| } | } | |||
| leaf mt-id { | leaf mt-id { | |||
| type uint8; | type uint8; | |||
| description "Multi-topology ID."; | description "Multi-topology ID."; | |||
| } | } | |||
| leaf weight { | leaf weight { | |||
| type uint8; | type uint8; | |||
| description "Weight used for load-balancing."; | description "Weight used for load-balancing."; | |||
| skipping to change at page 23, line 17 ¶ | skipping to change at page 23, line 44 ¶ | |||
| } | } | |||
| } | } | |||
| augment "/rt:routing-state/" | augment "/rt:routing-state/" | |||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | + "rt:control-plane-protocols/rt:control-plane-protocol/" | |||
| + "ospf:ospf/ospf:instance/ospf:areas/ospf:area/" | + "ospf:ospf/ospf:instance/ospf:areas/ospf:area/" | |||
| + "ospf:interfaces/ospf:interface/ospf:database/" | + "ospf:interfaces/ospf:interface/ospf:database/" | |||
| + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/" | + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/" | |||
| + "ospf:link-scope-lsa/ospf:version/ospf:ospfv2/" | + "ospf:link-scope-lsa/ospf:version/ospf:ospfv2/" | |||
| + "ospf:ospfv2/ospf:body/ospf:opaque" { | + "ospf:ospfv2/ospf:body/ospf:opaque" { | |||
| when "../../../../../../../../../../../../../../../" | when "../../../../../../../../../../../../../" | |||
| + "rt:type = 'ospf:ospfv2'" { | + "rt:type = 'ospf:ospfv2'" { | |||
| description | description | |||
| "This augmentation is only valid for OSPFv2."; | "This augmentation is only valid for OSPFv2."; | |||
| } | } | |||
| description | description | |||
| "SR specific TLVs for OSPFv2 type 9 opaque LSA."; | "SR specific TLVs for OSPFv2 type 9 opaque LSA."; | |||
| 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; | |||
| } | } | |||
| augment "/rt:routing-state/" | augment "/rt:routing-state/" | |||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | + "rt:control-plane-protocols/rt:control-plane-protocol/" | |||
| + "ospf:ospf/ospf:instance/ospf:areas/" | + "ospf:ospf/ospf:instance/ospf:areas/" | |||
| + "ospf:area/ospf:database/" | + "ospf:area/ospf:database/" | |||
| + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | |||
| + "ospf:area-scope-lsa/ospf:version/ospf:ospfv2/" | + "ospf:area-scope-lsa/ospf:version/ospf:ospfv2/" | |||
| + "ospf:ospfv2/ospf:body/ospf:opaque" { | + "ospf:ospfv2/ospf:body/ospf:opaque" { | |||
| when "../../../../../../../../../../../../../" | when "../../../../../../../../../../../" | |||
| + "rt:type = 'ospf:ospfv2'" { | + "rt:type = 'ospf:ospfv2'" { | |||
| description | description | |||
| "This augmentation is only valid for OSPFv2."; | "This augmentation is only valid for OSPFv2."; | |||
| } | } | |||
| description | description | |||
| "SR specific TLVs for OSPFv2 type 10 opaque LSA."; | "SR specific TLVs for OSPFv2 type 10 opaque LSA."; | |||
| uses extended-prefix-range-tlvs; | uses extended-prefix-range-tlvs; | |||
| uses sr-algorithm-tlv; | uses sr-algorithm-tlv; | |||
| skipping to change at page 24, line 4 ¶ | skipping to change at page 24, line 30 ¶ | |||
| "This augmentation is only valid for OSPFv2."; | "This augmentation is only valid for OSPFv2."; | |||
| } | } | |||
| description | description | |||
| "SR specific TLVs for OSPFv2 type 10 opaque LSA."; | "SR specific TLVs for OSPFv2 type 10 opaque LSA."; | |||
| 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; | |||
| } | } | |||
| augment "/rt:routing-state/" | augment "/rt:routing-state/" | |||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | + "rt:control-plane-protocols/rt:control-plane-protocol/" | |||
| + "ospf:ospf/ospf:instance/ospf:database/" | + "ospf:ospf/ospf:instance/ospf:database/" | |||
| + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" | + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" | |||
| + "ospf:as-scope-lsa/ospf:version/ospf:ospfv2/" | + "ospf:as-scope-lsa/ospf:version/ospf:ospfv2/" | |||
| + "ospf:ospfv2/ospf:body/ospf:opaque" { | + "ospf:ospfv2/ospf:body/ospf:opaque" { | |||
| when "../../../../../../../../../../../" | when "../../../../../../../../../" | |||
| + "rt:type = 'ospf:ospfv2'" { | + "rt:type = 'ospf:ospfv2'" { | |||
| description | description | |||
| "This augmentation is only valid for OSPFv2."; | "This augmentation is only valid for OSPFv2."; | |||
| } | } | |||
| description | description | |||
| "SR specific TLVs for OSPFv2 type 11 opaque LSA."; | "SR specific TLVs for OSPFv2 type 11 opaque LSA."; | |||
| 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; | |||
| skipping to change at page 26, line 28 ¶ | skipping to change at page 27, line 13 ¶ | |||
| June 2012, <http://www.rfc-editor.org/info/rfc6565>. | June 2012, <http://www.rfc-editor.org/info/rfc6565>. | |||
| [RFC7223] Bjorklund, M., "A YANG Data Model for Interface | [RFC7223] Bjorklund, M., "A YANG Data Model for Interface | |||
| Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, | Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, | |||
| <http://www.rfc-editor.org/info/rfc7223>. | <http://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, | |||
| <http://www.rfc-editor.org/info/rfc7950>. | <http://www.rfc-editor.org/info/rfc7950>. | |||
| 6.2. Informative References | [RFC8022] Lhotka, L. and A. Lindem, "A YANG Data Model for Routing | |||
| Management", RFC 8022, DOI 10.17487/RFC8022, November | ||||
| [I-D.ietf-bfd-yang] | 2016, <http://www.rfc-editor.org/info/rfc8022>. | |||
| Zheng, L., Rahman, R., Networks, J., Jethanandani, M., and | ||||
| G. Mirsky, "Yang Data Model for Bidirectional Forwarding | ||||
| Detection (BFD)", draft-ietf-bfd-yang-03 (work in | ||||
| progress), July 2016. | ||||
| [I-D.ietf-netmod-routing-cfg] | 6.2. Informative References | |||
| Lhotka, L. and A. Lindem, "A YANG Data Model for Routing | ||||
| Management", draft-ietf-netmod-routing-cfg-24 (work in | ||||
| progress), October 2016. | ||||
| [I-D.ietf-ospf-yang] | [I-D.ietf-ospf-yang] | |||
| Yeung, D., Qu, Y., Zhang, Z., Bogdanovic, D., and K. | Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, | |||
| Koushik, "Yang Data Model for OSPF Protocol", draft-ietf- | "Yang Data Model for OSPF Protocol", draft-ietf-ospf- | |||
| ospf-yang-05 (work in progress), July 2016. | yang-06 (work in progress), October 2016. | |||
| [I-D.ietf-rtgwg-yang-key-chain] | ||||
| Lindem, A., Qu, Y., Yeung, D., Chen, I., Zhang, Z., and Y. | ||||
| Yang, "Routing Key Chain YANG Data Model", draft-ietf- | ||||
| rtgwg-yang-key-chain-10 (work in progress), October 2016. | ||||
| [I-D.ietf-spring-sr-yang] | [I-D.ietf-spring-sr-yang] | |||
| Litkowski, S., Qu, Y., Sarkar, P., and J. Tantsura, "YANG | Litkowski, S., Qu, Y., Sarkar, P., and J. Tantsura, "YANG | |||
| Data Model for Segment Routing", draft-ietf-spring-sr- | Data Model for Segment Routing", draft-ietf-spring-sr- | |||
| yang-05 (work in progress), October 2016. | yang-06 (work in progress), March 2017. | |||
| Appendix A. Contributors' Addreses | Appendix A. Contributors' Addreses | |||
| Dean Bogdanovic | Dean Bogdanovic | |||
| Volta Networks, Inc. | Volta Networks, Inc. | |||
| EMail: dean@voltanet.io | EMail: dean@voltanet.io | |||
| Kiran Koushik Agrahara Sreenivasa | Kiran Koushik Agrahara Sreenivasa | |||
| Cisco Systems | Cisco Systems | |||
| skipping to change at page 28, line 28 ¶ | skipping to change at page 28, line 28 ¶ | |||
| EMail: kkoushik@cisco.com | EMail: kkoushik@cisco.com | |||
| Authors' Addresses | Authors' Addresses | |||
| Derek Yeung | Derek Yeung | |||
| Arrcus | Arrcus | |||
| EMail: derek@arrcus.com | EMail: derek@arrcus.com | |||
| Yingzhen Qu | Yingzhen Qu | |||
| Cisco Systems | Huawei | |||
| 170 West Tasman Drive | 2330 Central Expressway | |||
| San Jose, CA 95134 | Santa Clara, CA 95050 | |||
| USA | USA | |||
| EMail: yiqu@cisco.com | EMail: yingzhen.qu@huawei.com | |||
| Jeffrey Zhang | Jeffrey Zhang | |||
| Juniper Networks | Juniper Networks | |||
| 10 Technology Park Drive | 10 Technology Park Drive | |||
| Westford, MA 01886 | Westford, MA 01886 | |||
| USA | USA | |||
| EMail: zzhang@juniper.net | EMail: zzhang@juniper.net | |||
| Ing-Wher Chen | Ing-Wher Chen | |||
| Kuatro Technologies | Jabil Circuit | |||
| EMail: ichen@kuatrotech.com | EMail: Ing-Wher_chen@jabil.com | |||
| Acee Lindem | Acee Lindem | |||
| Cisco Systems | Cisco Systems | |||
| 301 Midenhall Way | 301 Midenhall Way | |||
| Cary, NC 27513 | Cary, NC 27513 | |||
| EMail: acee@cisco.com | EMail: acee@cisco.com | |||
| End of changes. 32 change blocks. | ||||
| 368 lines changed or deleted | 385 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/ | ||||