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.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/