< draft-acee-lsr-ospfv3-sr-yang-02.txt   draft-acee-lsr-ospfv3-sr-yang-03.txt >
Internet A. Lindem Internet A. Lindem
Internet-Draft Cisco Systems Internet-Draft Cisco Systems
Intended status: Informational Y. Qu Intended status: Informational Y. Qu
Expires: February 3, 2021 Futurewei Expires: April 30, 2021 Futurewei
August 2, 2020 October 27, 2020
YANG Data Model for OSPFv3 Segment Routing YANG Data Model for OSPFv3 Segment Routing
draft-acee-lsr-ospfv3-sr-yang-02 draft-acee-lsr-ospfv3-sr-yang-03
Abstract Abstract
This document defines a YANG data module augmenting the IETF OSPF This document defines a YANG data module augmenting the IETF OSPF
Segment Routing (SR) YANG model to support OSPFv3 extensions for SR. Segment Routing (SR) YANG model to support OSPFv3 extensions for SR.
It can be used to configure and manage OSPFv3 Segment Routing in MPLS It can be used to configure and manage OSPFv3 Segment Routing in MPLS
dataplane. data plane.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on February 3, 2021. This Internet-Draft will expire on April 30, 2021.
Copyright Notice Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the Copyright (c) 2020 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 11 skipping to change at page 2, line 11
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. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . . . 2
3. OSPFv3 Extensions for Segment Routing . . . . . . . . . . . . 2 3. OSPFv3 Extensions for Segment Routing . . . . . . . . . . . . 2
4. Security Considerations . . . . . . . . . . . . . . . . . . . 24 4. Security Considerations . . . . . . . . . . . . . . . . . . . 17
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 25 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 18
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 25 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 18
7.1. Normative References . . . . . . . . . . . . . . . . . . 25 7.1. Normative References . . . . . . . . . . . . . . . . . . 18
7.2. Informative References . . . . . . . . . . . . . . . . . 26 7.2. Informative References . . . . . . . . . . . . . . . . . 19
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19
1. Overview 1. Overview
YANG [RFC6020] [RFC7950] is a data definition language used to define YANG [RFC6020] [RFC7950] is a data definition language used to define
the contents of a conceptual data store that allows networked devices the contents of a conceptual data store that allows networked devices
to be managed using NETCONF [RFC6241]. YANG is proving relevant to be managed using NETCONF [RFC6241]. YANG is proving relevant
beyond its initial confines, as bindings to other interfaces (e.g., beyond its initial confines, as bindings to other interfaces (e.g.,
ReST) and encodings other than XML (e.g., JSON) are being defined. ReST) and encodings other than XML (e.g., JSON) are being defined.
Furthermore, YANG data models can be used as the basis for Furthermore, YANG data models can be used as the basis for
implementation of other interfaces, such as CLI and programmatic implementation of other interfaces, such as CLI and programmatic
skipping to change at page 3, line 14 skipping to change at page 3, line 14
module: ietf-ospfv3-sr module: ietf-ospfv3-sr
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:database /rt:control-plane-protocol/ospf:ospf/ospf:database
/ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa
/ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body
/ospf:router-information: /ospf:router-information:
+--ro sr-algorithm-tlv +--ro sr-algorithm-tlv
| +--ro sr-algorithm* uint8 | +--ro sr-algorithm* uint8
+--ro sid-range-tlvs +--ro sid-range-tlvs
| +--ro sid-range-tlv* | +--ro sid-range-tlv* []
| +--ro range-size? uint24 | +--ro range-size? uint24
| +--ro sid-sub-tlv | +--ro sid-sub-tlv
| +--ro sid? uint32 | +--ro sid? uint32
+--ro local-block-tlvs +--ro local-block-tlvs
| +--ro local-block-tlv* | +--ro local-block-tlv* []
| +--ro range-size? uint24 | +--ro range-size? uint24
| +--ro sid-sub-tlv | +--ro sid-sub-tlv
| +--ro sid? uint32 | +--ro sid? uint32
+--ro srms-preference-tlv +--ro srms-preference-tlv
+--ro preference? uint8 +--ro preference? uint8
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area
/ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas
/ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3
/ospf:body/ospf:router-information: /ospf:body/ospf:router-information:
+--ro sr-algorithm-tlv +--ro sr-algorithm-tlv
| +--ro sr-algorithm* uint8 | +--ro sr-algorithm* uint8
+--ro sid-range-tlvs +--ro sid-range-tlvs
| +--ro sid-range-tlv* | +--ro sid-range-tlv* []
| +--ro range-size? uint24 | +--ro range-size? uint24
| +--ro sid-sub-tlv | +--ro sid-sub-tlv
| +--ro sid? uint32 | +--ro sid? uint32
+--ro local-block-tlvs +--ro local-block-tlvs
| +--ro local-block-tlv* | +--ro local-block-tlv* []
| +--ro range-size? uint24 | +--ro range-size? uint24
| +--ro sid-sub-tlv | +--ro sid-sub-tlv
| +--ro sid? uint32 | +--ro sid? uint32
+--ro srms-preference-tlv +--ro srms-preference-tlv
+--ro preference? uint8 +--ro preference? uint8
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area /rt:control-plane-protocol/ospf:ospf/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:ospfv3/ospf:ospfv3 /ospf:link-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3
/ospf:body/ospf:router-information: /ospf:body/ospf:router-information:
+--ro sr-algorithm-tlv +--ro sr-algorithm-tlv
| +--ro sr-algorithm* uint8 | +--ro sr-algorithm* uint8
+--ro sid-range-tlvs +--ro sid-range-tlvs
| +--ro sid-range-tlv* | +--ro sid-range-tlv* []
| +--ro range-size? uint24 | +--ro range-size? uint24
| +--ro sid-sub-tlv | +--ro sid-sub-tlv
| +--ro sid? uint32 | +--ro sid? uint32
+--ro local-block-tlvs +--ro local-block-tlvs
| +--ro local-block-tlv* | +--ro local-block-tlv* []
| +--ro range-size? uint24 | +--ro range-size? uint24
| +--ro sid-sub-tlv | +--ro sid-sub-tlv
| +--ro sid? uint32 | +--ro sid? uint32
+--ro srms-preference-tlv +--ro srms-preference-tlv
+--ro preference? uint8 +--ro preference? uint8
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area
/ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas
/ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3
/ospf:body/ospfv3-e-lsa:e-intra-area-prefix: /ospf:body/ospfv3-e-lsa:e-intra-area-prefix:
+--ro ospfv3-extended-prefix-range-tlvs +--ro ospfv3-extended-prefix-range-tlvs
+--ro extended-prefix-range-tlv* +--ro extended-prefix-range-tlv* []
+--ro prefix-length? uint8
+--ro af? uint8
+--ro range-size? uint16
+--ro prefix? inet:ip-prefix
+--ro perfix-sid-sub-tlvs
| +--ro prefix-sid-sub-tlv*
| +--ro ospfv3-prefix-sid-flags
| | +--ro bits* identityref
| +--ro algorithm? uint8
| +--ro sid? uint32
+--ro unknown-tlvs
+--ro unknown-tlv*
+--ro type? uint16
+--ro length? uint16
+--ro value? yang:hex-string
augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:database
/ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa
/ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body
/ospfv3-e-lsa:e-intra-area-prefix:
+--ro ospfv3-extended-prefix-range-tlvs
+--ro extended-prefix-range-tlv*
+--ro prefix-length? uint8 +--ro prefix-length? uint8
+--ro af? uint8 +--ro af? uint8
+--ro range-size? uint16 +--ro range-size? uint16
+--ro prefix? inet:ip-prefix +--ro prefix? inet:ip-prefix
+--ro perfix-sid-sub-tlvs +--ro perfix-sid-sub-tlvs
| +--ro prefix-sid-sub-tlv* | +--ro prefix-sid-sub-tlv* []
| +--ro ospfv3-prefix-sid-flags | +--ro ospfv3-prefix-sid-flags
| | +--ro bits* identityref | | +--ro bits* identityref
| +--ro algorithm? uint8 | +--ro algorithm? uint8
| +--ro sid? uint32 | +--ro sid? uint32
+--ro unknown-tlvs +--ro unknown-tlvs
+--ro unknown-tlv* +--ro unknown-tlv* []
+--ro type? uint16 +--ro type? uint16
+--ro length? uint16 +--ro length? uint16
+--ro value? yang:hex-string +--ro value? yang:hex-string
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area
/ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas
/ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3
/ospf:body/ospfv3-e-lsa:e-inter-area-prefix: /ospf:body/ospfv3-e-lsa:e-inter-area-prefix:
+--ro ospfv3-extended-prefix-range-tlvs +--ro ospfv3-extended-prefix-range-tlvs
+--ro extended-prefix-range-tlv* +--ro extended-prefix-range-tlv* []
+--ro prefix-length? uint8
+--ro af? uint8
+--ro range-size? uint16
+--ro prefix? inet:ip-prefix
+--ro perfix-sid-sub-tlvs
| +--ro prefix-sid-sub-tlv*
| +--ro ospfv3-prefix-sid-flags
| | +--ro bits* identityref
| +--ro algorithm? uint8
| +--ro sid? uint32
+--ro unknown-tlvs
+--ro unknown-tlv*
+--ro type? uint16
+--ro length? uint16
+--ro value? yang:hex-string
augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:database
/ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa
/ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body
/ospfv3-e-lsa:e-inter-area-prefix:
+--ro ospfv3-extended-prefix-range-tlvs
+--ro extended-prefix-range-tlv*
+--ro prefix-length? uint8
+--ro af? uint8
+--ro range-size? uint16
+--ro prefix? inet:ip-prefix
+--ro perfix-sid-sub-tlvs
| +--ro prefix-sid-sub-tlv*
| +--ro ospfv3-prefix-sid-flags
| | +--ro bits* identityref
| +--ro algorithm? uint8
| +--ro sid? uint32
+--ro unknown-tlvs
+--ro unknown-tlv*
+--ro type? uint16
+--ro length? uint16
+--ro value? yang:hex-string
augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area
/ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas
/ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3
/ospf:body/ospfv3-e-lsa:e-as-external:
+--ro ospfv3-extended-prefix-range-tlvs
+--ro extended-prefix-range-tlv*
+--ro prefix-length? uint8 +--ro prefix-length? uint8
+--ro af? uint8 +--ro af? uint8
+--ro range-size? uint16 +--ro range-size? uint16
+--ro prefix? inet:ip-prefix +--ro prefix? inet:ip-prefix
+--ro perfix-sid-sub-tlvs +--ro perfix-sid-sub-tlvs
| +--ro prefix-sid-sub-tlv* | +--ro prefix-sid-sub-tlv* []
| +--ro ospfv3-prefix-sid-flags | +--ro ospfv3-prefix-sid-flags
| | +--ro bits* identityref | | +--ro bits* identityref
| +--ro algorithm? uint8 | +--ro algorithm? uint8
| +--ro sid? uint32 | +--ro sid? uint32
+--ro unknown-tlvs +--ro unknown-tlvs
+--ro unknown-tlv* +--ro unknown-tlv* []
+--ro type? uint16 +--ro type? uint16
+--ro length? uint16 +--ro length? uint16
+--ro value? yang:hex-string +--ro value? yang:hex-string
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:database /rt:control-plane-protocol/ospf:ospf/ospf:database
/ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa
/ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body
/ospfv3-e-lsa:e-as-external: /ospfv3-e-lsa:e-as-external:
+--ro ospfv3-extended-prefix-range-tlvs +--ro ospfv3-extended-prefix-range-tlvs
+--ro extended-prefix-range-tlv* +--ro extended-prefix-range-tlv* []
+--ro prefix-length? uint8
+--ro af? uint8
+--ro range-size? uint16
+--ro prefix? inet:ip-prefix
+--ro perfix-sid-sub-tlvs
| +--ro prefix-sid-sub-tlv*
| +--ro ospfv3-prefix-sid-flags
| | +--ro bits* identityref
| +--ro algorithm? uint8
| +--ro sid? uint32
+--ro unknown-tlvs
+--ro unknown-tlv*
+--ro type? uint16
+--ro length? uint16
+--ro value? yang:hex-string
augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area
/ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas
/ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3
/ospf:body/ospfv3-e-lsa:e-nssa:
+--ro ospfv3-extended-prefix-range-tlvs
+--ro extended-prefix-range-tlv*
+--ro prefix-length? uint8 +--ro prefix-length? uint8
+--ro af? uint8 +--ro af? uint8
+--ro range-size? uint16 +--ro range-size? uint16
+--ro prefix? inet:ip-prefix +--ro prefix? inet:ip-prefix
+--ro perfix-sid-sub-tlvs +--ro perfix-sid-sub-tlvs
| +--ro prefix-sid-sub-tlv* | +--ro prefix-sid-sub-tlv* []
| +--ro ospfv3-prefix-sid-flags | +--ro ospfv3-prefix-sid-flags
| | +--ro bits* identityref | | +--ro bits* identityref
| +--ro algorithm? uint8 | +--ro algorithm? uint8
| +--ro sid? uint32 | +--ro sid? uint32
+--ro unknown-tlvs +--ro unknown-tlvs
+--ro unknown-tlv* +--ro unknown-tlv* []
+--ro type? uint16 +--ro type? uint16
+--ro length? uint16 +--ro length? uint16
+--ro value? yang:hex-string +--ro value? yang:hex-string
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:database /rt:control-plane-protocol/ospf:ospf/ospf:database
/ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa
/ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body
/ospfv3-e-lsa:e-nssa: /ospfv3-e-lsa:e-nssa:
+--ro ospfv3-extended-prefix-range-tlvs +--ro ospfv3-extended-prefix-range-tlvs
+--ro extended-prefix-range-tlv* +--ro extended-prefix-range-tlv* []
+--ro prefix-length? uint8 +--ro prefix-length? uint8
+--ro af? uint8 +--ro af? uint8
+--ro range-size? uint16 +--ro range-size? uint16
+--ro prefix? inet:ip-prefix +--ro prefix? inet:ip-prefix
+--ro perfix-sid-sub-tlvs +--ro perfix-sid-sub-tlvs
| +--ro prefix-sid-sub-tlv* | +--ro prefix-sid-sub-tlv* []
| +--ro ospfv3-prefix-sid-flags | +--ro ospfv3-prefix-sid-flags
| | +--ro bits* identityref | | +--ro bits* identityref
| +--ro algorithm? uint8 | +--ro algorithm? uint8
| +--ro sid? uint32 | +--ro sid? uint32
+--ro unknown-tlvs +--ro unknown-tlvs
+--ro unknown-tlv* +--ro unknown-tlv* []
+--ro type? uint16 +--ro type? uint16
+--ro length? uint16 +--ro length? uint16
+--ro value? yang:hex-string +--ro value? yang:hex-string
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area
/ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas /ospf:interfaces/ospf:interface/ospf:database
/ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 /ospf:link-scope-lsa-type/ospf:link-scope-lsas
/ospf:link-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3
/ospf:body/ospfv3-e-lsa:e-link/ospfv3-e-lsa:e-link-tlvs /ospf:body/ospfv3-e-lsa:e-link/ospfv3-e-lsa:e-link-tlvs
/ospfv3-e-lsa:intra-prefix-tlv: /ospfv3-e-lsa:intra-prefix-tlv:
+--ro perfix-sid-sub-tlvs +--ro perfix-sid-sub-tlvs
+--ro prefix-sid-sub-tlv* +--ro prefix-sid-sub-tlv* []
+--ro ospfv3-prefix-sid-flags
| +--ro bits* identityref
+--ro algorithm? uint8
+--ro sid? uint32
augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:database
/ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa
/ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body
/ospfv3-e-lsa:e-link/ospfv3-e-lsa:e-link-tlvs
/ospfv3-e-lsa:intra-prefix-tlv:
+--ro perfix-sid-sub-tlvs
+--ro prefix-sid-sub-tlv*
+--ro ospfv3-prefix-sid-flags +--ro ospfv3-prefix-sid-flags
| +--ro bits* identityref | +--ro bits* identityref
+--ro algorithm? uint8 +--ro algorithm? uint8
+--ro sid? uint32 +--ro sid? uint32
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area
/ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas
/ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3
/ospf:body/ospfv3-e-lsa:e-intra-area-prefix /ospf:body/ospfv3-e-lsa:e-intra-area-prefix
/ospfv3-e-lsa:e-intra-prefix-tlvs /ospfv3-e-lsa:e-intra-prefix-tlvs
/ospfv3-e-lsa:intra-prefix-tlv: /ospfv3-e-lsa:intra-prefix-tlv:
+--ro perfix-sid-sub-tlvs +--ro perfix-sid-sub-tlvs
+--ro prefix-sid-sub-tlv* +--ro prefix-sid-sub-tlv* []
+--ro ospfv3-prefix-sid-flags
| +--ro bits* identityref
+--ro algorithm? uint8
+--ro sid? uint32
augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:database
/ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa
/ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body
/ospfv3-e-lsa:e-intra-area-prefix
/ospfv3-e-lsa:e-intra-prefix-tlvs
/ospfv3-e-lsa:intra-prefix-tlv:
+--ro perfix-sid-sub-tlvs
+--ro prefix-sid-sub-tlv*
+--ro ospfv3-prefix-sid-flags +--ro ospfv3-prefix-sid-flags
| +--ro bits* identityref | +--ro bits* identityref
+--ro algorithm? uint8 +--ro algorithm? uint8
+--ro sid? uint32 +--ro sid? uint32
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area
/ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas
/ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3
/ospf:body/ospfv3-e-lsa:e-inter-area-prefix /ospf:body/ospfv3-e-lsa:e-inter-area-prefix
/ospfv3-e-lsa:e-inter-prefix-tlvs /ospfv3-e-lsa:e-inter-prefix-tlvs
/ospfv3-e-lsa:inter-prefix-tlv: /ospfv3-e-lsa:inter-prefix-tlv:
+--ro perfix-sid-sub-tlvs +--ro perfix-sid-sub-tlvs
+--ro prefix-sid-sub-tlv* +--ro prefix-sid-sub-tlv* []
+--ro ospfv3-prefix-sid-flags
| +--ro bits* identityref
+--ro algorithm? uint8
+--ro sid? uint32
augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:database
/ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa
/ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body
/ospfv3-e-lsa:e-inter-area-prefix
/ospfv3-e-lsa:e-inter-prefix-tlvs
/ospfv3-e-lsa:inter-prefix-tlv:
+--ro perfix-sid-sub-tlvs
+--ro prefix-sid-sub-tlv*
+--ro ospfv3-prefix-sid-flags
| +--ro bits* identityref
+--ro algorithm? uint8
+--ro sid? uint32
augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area
/ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas
/ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3
/ospf:body/ospfv3-e-lsa:e-as-external
/ospfv3-e-lsa:e-external-tlvs
/ospfv3-e-lsa:external-prefix-tlv:
+--ro perfix-sid-sub-tlvs
+--ro prefix-sid-sub-tlv*
+--ro ospfv3-prefix-sid-flags +--ro ospfv3-prefix-sid-flags
| +--ro bits* identityref | +--ro bits* identityref
+--ro algorithm? uint8 +--ro algorithm? uint8
+--ro sid? uint32 +--ro sid? uint32
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:database /rt:control-plane-protocol/ospf:ospf/ospf:database
/ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa
/ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body
/ospfv3-e-lsa:e-as-external/ospfv3-e-lsa:e-external-tlvs /ospfv3-e-lsa:e-as-external/ospfv3-e-lsa:e-external-tlvs
/ospfv3-e-lsa:external-prefix-tlv: /ospfv3-e-lsa:external-prefix-tlv:
+--ro perfix-sid-sub-tlvs
+--ro prefix-sid-sub-tlv*
+--ro ospfv3-prefix-sid-flags
| +--ro bits* identityref
+--ro algorithm? uint8
+--ro sid? uint32
augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area
/ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas
/ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3
/ospf:body/ospfv3-e-lsa:e-nssa/ospfv3-e-lsa:e-external-tlvs
/ospfv3-e-lsa:external-prefix-tlv:
+--ro perfix-sid-sub-tlvs +--ro perfix-sid-sub-tlvs
+--ro prefix-sid-sub-tlv* +--ro prefix-sid-sub-tlv* []
+--ro ospfv3-prefix-sid-flags +--ro ospfv3-prefix-sid-flags
| +--ro bits* identityref | +--ro bits* identityref
+--ro algorithm? uint8 +--ro algorithm? uint8
+--ro sid? uint32 +--ro sid? uint32
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:database /rt:control-plane-protocol/ospf:ospf/ospf:database
/ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa
/ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body
/ospfv3-e-lsa:e-nssa/ospfv3-e-lsa:e-external-tlvs /ospfv3-e-lsa:e-nssa/ospfv3-e-lsa:e-external-tlvs
/ospfv3-e-lsa:external-prefix-tlv: /ospfv3-e-lsa:external-prefix-tlv:
+--ro perfix-sid-sub-tlvs +--ro perfix-sid-sub-tlvs
+--ro prefix-sid-sub-tlv* +--ro prefix-sid-sub-tlv* []
+--ro ospfv3-prefix-sid-flags +--ro ospfv3-prefix-sid-flags
| +--ro bits* identityref | +--ro bits* identityref
+--ro algorithm? uint8 +--ro algorithm? uint8
+--ro sid? uint32 +--ro sid? uint32
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area
/ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas
/ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3
/ospf:body/ospfv3-e-lsa:e-router/ospfv3-e-lsa:e-router-tlvs /ospf:body/ospfv3-e-lsa:e-router/ospfv3-e-lsa:e-router-tlvs
/ospfv3-e-lsa:link-tlv: /ospfv3-e-lsa:link-tlv:
+--ro adj-sid-sub-tlvs +--ro adj-sid-sub-tlvs
| +--ro adj-sid-sub-tlv* | +--ro adj-sid-sub-tlv* []
| +--ro adj-sid-flags
| | +--ro bits* identityref
| +--ro weight? uint8
| +--ro sid? uint32
+--ro lan-adj-sid-sub-tlvs
+--ro lan-adj-sid-sub-tlv*
+--ro lan-adj-sid-flags
| +--ro bits* identityref
+--ro weight? uint8
+--ro neighbor-router-id? yang:dotted-quad
+--ro sid? uint32
augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:database
/ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa
/ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body
/ospfv3-e-lsa:e-router/ospfv3-e-lsa:e-router-tlvs
/ospfv3-e-lsa:link-tlv:
+--ro adj-sid-sub-tlvs
| +--ro adj-sid-sub-tlv*
| +--ro adj-sid-flags | +--ro adj-sid-flags
| | +--ro bits* identityref | | +--ro bits* identityref
| +--ro weight? uint8 | +--ro weight? uint8
| +--ro sid? uint32 | +--ro sid? uint32
+--ro lan-adj-sid-sub-tlvs +--ro lan-adj-sid-sub-tlvs
+--ro lan-adj-sid-sub-tlv* +--ro lan-adj-sid-sub-tlv* []
+--ro lan-adj-sid-flags +--ro lan-adj-sid-flags
| +--ro bits* identityref | +--ro bits* identityref
+--ro weight? uint8 +--ro weight? uint8
+--ro neighbor-router-id? yang:dotted-quad +--ro neighbor-router-id? yang:dotted-quad
+--ro sid? uint32 +--ro sid? uint32
<CODE BEGINS> file "ietf-ospfv3-sr@2020-08-02.yang" <CODE BEGINS> file "ietf-ospfv3-sr@2020-10-27.yang"
module ietf-ospfv3-sr { module ietf-ospfv3-sr {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-ospfv3-sr"; namespace "urn:ietf:params:xml:ns:yang:ietf-ospfv3-sr";
prefix ospfv3-sr; prefix ospfv3-sr;
import ietf-inet-types { import ietf-inet-types {
prefix "inet"; prefix "inet";
} }
import ietf-yang-types { import ietf-yang-types {
prefix "yang"; prefix "yang";
} }
import ietf-routing { import ietf-routing {
prefix "rt"; prefix "rt";
} }
import ietf-ospf { import ietf-ospf {
prefix "ospf"; prefix "ospf";
skipping to change at page 12, line 46 skipping to change at page 9, line 20
see the RFC itself for full legal notices. see the RFC itself for full legal notices.
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
'MAY', and 'OPTIONAL' in this document are to be interpreted as 'MAY', and 'OPTIONAL' in this document are to be interpreted as
described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
they appear in all capitals, as shown here."; they appear in all capitals, as shown here.";
reference "RFC XXXX"; reference "RFC XXXX";
revision 2020-08-02 { revision 2020-10-27 {
description description
"Initial revision."; "Initial revision.";
reference reference
"RFC XXXX: A YANG Data Model for OSPFv3 Segment Routing."; "RFC XXXX: A YANG Data Model for OSPFv3 Segment Routing.";
} }
/* groupings */ /* groupings */
grouping ospfv3-prefix-sid-sub-tlvs { grouping ospfv3-prefix-sid-sub-tlvs {
description "Prefix Segment ID (SID) sub-TLVs."; description "Prefix Segment ID (SID) sub-TLVs.";
container perfix-sid-sub-tlvs{ container perfix-sid-sub-tlvs{
description "Prefix SID sub-TLV."; description "Prefix SID sub-TLV.";
list prefix-sid-sub-tlv { list prefix-sid-sub-tlv {
description "Prefix SID sub-TLV."; description "Prefix SID sub-TLV.";
container ospfv3-prefix-sid-flags { container ospfv3-prefix-sid-flags {
leaf-list bits { leaf-list bits {
type identityref { type identityref {
skipping to change at page 17, line 16 skipping to change at page 13, line 40
"This augmentation is only valid for OSPFv3 "This augmentation is only valid for OSPFv3
E-Router LSAs"; E-Router LSAs";
} }
uses ospfv3-extended-prefix-range-tlvs; uses ospfv3-extended-prefix-range-tlvs;
description description
"OSPFv3 Area-Scoped E-Intra-Area-Prefix LSA."; "OSPFv3 Area-Scoped E-Intra-Area-Prefix LSA.";
} }
augment "/rt:routing/" augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol/" + "rt:control-plane-protocols/rt:control-plane-protocol/"
+ "ospf:ospf/ospf:database/"
+ "ospf:as-scope-lsa-type/ospf:as-scope-lsas/"
+ "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/"
+ "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-intra-area-prefix" {
when "'ospf:../../../../../../../../../"
+ "rt:type' = 'ospf:ospfv3'" {
description
"This augmentation is only valid for OSPFv3.";
}
uses ospfv3-extended-prefix-range-tlvs;
description
"OSPFv3 AS-Scoped E-Intra-Area-Prefix LSA.";
}
augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol/"
+ "ospf:ospf/ospf:areas/ospf:area/ospf:database/" + "ospf:ospf/ospf:areas/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:ospfv3/" + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/"
+ "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-inter-area-prefix" { + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-inter-area-prefix" {
when "../../../../../../../../../../" when "../../../../../../../../../../"
+ "rt:type = 'ospf:ospfv3'" { + "rt:type = 'ospf:ospfv3'" {
description description
"This augmentation is only valid for OSPFv3 "This augmentation is only valid for OSPFv3
E-Router LSAs"; E-Router LSAs";
} }
uses ospfv3-extended-prefix-range-tlvs; uses ospfv3-extended-prefix-range-tlvs;
description description
"OSPFv3 Area-Scoped E-Inter-Area-Prefix LSA."; "OSPFv3 Area-Scoped E-Inter-Area-Prefix LSA.";
}
augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol/"
+ "ospf:ospf/ospf:database/"
+ "ospf:as-scope-lsa-type/ospf:as-scope-lsas/"
+ "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/"
+ "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-inter-area-prefix" {
when "'ospf:../../../../../../../../../"
+ "rt:type' = 'ospf:ospfv3'" {
description
"This augmentation is only valid for OSPFv3.";
}
uses ospfv3-extended-prefix-range-tlvs;
description
"OSPFv3 AS-Scoped E-Inter-Area-Prefix LSA.";
}
augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol/"
+ "ospf:ospf/ospf:areas/ospf:area/ospf:database/"
+ "ospf:area-scope-lsa-type/ospf:area-scope-lsas/"
+ "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/"
+ "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-as-external" {
when "../../../../../../../../../../"
+ "rt:type = 'ospf:ospfv3'" {
description
"This augmentation is only valid for OSPFv3
E-Router LSAs";
}
uses ospfv3-extended-prefix-range-tlvs;
description
"OSPFv3 Area-Scoped E-AS-External LSA.";
} }
augment "/rt:routing/" augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol/" + "rt:control-plane-protocols/rt:control-plane-protocol/"
+ "ospf:ospf/ospf:database/" + "ospf:ospf/ospf: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:ospfv3/" + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/"
+ "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-as-external" { + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-as-external" {
when "'ospf:../../../../../../../../../" when "'ospf:../../../../../../../../../"
+ "rt:type' = 'ospf:ospfv3'" { + "rt:type' = 'ospf:ospfv3'" {
description description
"This augmentation is only valid for OSPFv3."; "This augmentation is only valid for OSPFv3.";
} }
uses ospfv3-extended-prefix-range-tlvs; uses ospfv3-extended-prefix-range-tlvs;
description description
"OSPFv3 AS-Scoped E-AS-External LSA."; "OSPFv3 AS-Scoped E-AS-External LSA.";
} }
augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol/"
+ "ospf:ospf/ospf:areas/ospf:area/ospf:database/"
+ "ospf:area-scope-lsa-type/ospf:area-scope-lsas/"
+ "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/"
+ "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-nssa" {
when "../../../../../../../../../../"
+ "rt:type = 'ospf:ospfv3'" {
description
"This augmentation is only valid for OSPFv3
E-Router LSAs";
}
uses ospfv3-extended-prefix-range-tlvs;
description
"OSPFv3 Area-Scoped E-NSSA LSA.";
}
augment "/rt:routing/" augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol/" + "rt:control-plane-protocols/rt:control-plane-protocol/"
+ "ospf:ospf/ospf:database/" + "ospf:ospf/ospf: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:ospfv3/" + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/"
+ "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-nssa" { + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-nssa" {
when "'ospf:../../../../../../../../../" when "'ospf:../../../../../../../../../"
+ "rt:type' = 'ospf:ospfv3'" { + "rt:type' = 'ospf:ospfv3'" {
description description
"This augmentation is only valid for OSPFv3."; "This augmentation is only valid for OSPFv3.";
} }
uses ospfv3-extended-prefix-range-tlvs; uses ospfv3-extended-prefix-range-tlvs;
description description
"OSPFv3 AS-Scoped E-NSSA LSA."; "OSPFv3 AS-Scoped E-NSSA LSA.";
} }
/* Prefix SID Sub-TLV in Intra-Area Prefix TLV */ /* Prefix SID Sub-TLV in Intra-Area Prefix TLV */
augment "/rt:routing/" augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol/" + "rt:control-plane-protocols/rt:control-plane-protocol/"
+ "ospf:ospf/ospf:areas/ospf:area/ospf:database/" + "ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/"
+ "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" + "ospf:database/ospf:link-scope-lsa-type/ospf:link-scope-lsas/"
+ "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" + "ospf:link-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3/"
+ "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-link/" + "ospf:body/ospfv3-e-lsa:e-link/"
+ "ospfv3-e-lsa:e-link-tlvs/ospfv3-e-lsa:intra-prefix-tlv" { + "ospfv3-e-lsa:e-link-tlvs/ospfv3-e-lsa:intra-prefix-tlv" {
when "../../../../../../../../../../../../" when "../../../../../../../../../../../../../../"
+ "rt:type = 'ospf:ospfv3'" { + "rt:type = 'ospf:ospfv3'" {
description description
"This augmentation is only valid for OSPFv3 "This augmentation is only valid for OSPFv3
E-Router LSAs"; E-Router LSAs";
} }
uses ospfv3-prefix-sid-sub-tlvs; uses ospfv3-prefix-sid-sub-tlvs;
description description
"OSPFv3 Area-Scoped Intra-Area Prefix TLV."; "OSPFv3 Link-Scoped Intra-Area Prefix TLV.";
}
augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol/"
+ "ospf:ospf/ospf:database/"
+ "ospf:as-scope-lsa-type/ospf:as-scope-lsas/"
+ "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/"
+ "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-link/"
+ "ospfv3-e-lsa:e-link-tlvs/ospfv3-e-lsa:intra-prefix-tlv" {
when "'ospf:../../../../../../../../../"
+ "rt:type' = 'ospf:ospfv3'" {
description
"This augmentation is only valid for OSPFv3.";
}
uses ospfv3-prefix-sid-sub-tlvs;
description
"OSPFv3 AS-Scoped Intra-Area Prefix TLV.";
} }
augment "/rt:routing/" augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol/" + "rt:control-plane-protocols/rt:control-plane-protocol/"
+ "ospf:ospf/ospf:areas/ospf:area/ospf:database/" + "ospf:ospf/ospf:areas/ospf:area/ospf: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:ospfv3/" + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/"
+ "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-intra-area-prefix/" + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-intra-area-prefix/"
+ "ospfv3-e-lsa:e-intra-prefix-tlvs/ospfv3-e-lsa:intra-prefix-tlv" { + "ospfv3-e-lsa:e-intra-prefix-tlvs/ospfv3-e-lsa:intra-prefix-tlv" {
when "../../../../../../../../../../../../" when "../../../../../../../../../../../../"
+ "rt:type = 'ospf:ospfv3'" { + "rt:type = 'ospf:ospfv3'" {
description description
"This augmentation is only valid for OSPFv3 "This augmentation is only valid for OSPFv3
E-Router LSAs"; E-Router LSAs";
} }
uses ospfv3-prefix-sid-sub-tlvs; uses ospfv3-prefix-sid-sub-tlvs;
description description
"OSPFv3 Area-Scoped Intra-Area Prefix TLV."; "OSPFv3 Area-Scoped Intra-Area Prefix TLV.";
} }
augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol/"
+ "ospf:ospf/ospf:database/"
+ "ospf:as-scope-lsa-type/ospf:as-scope-lsas/"
+ "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/"
+ "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-intra-area-prefix/"
+ "ospfv3-e-lsa:e-intra-prefix-tlvs/ospfv3-e-lsa:intra-prefix-tlv" {
when "'ospf:../../../../../../../../../"
+ "rt:type' = 'ospf:ospfv3'" {
description
"This augmentation is only valid for OSPFv3.";
}
uses ospfv3-prefix-sid-sub-tlvs;
description
"OSPFv3 AS-Scoped Intra-Area Prefix TLV.";
}
/* Prefix SID Sub-TLV in Inter-Area Prefix TLV */ /* Prefix SID Sub-TLV in Inter-Area Prefix TLV */
augment "/rt:routing/" augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol/" + "rt:control-plane-protocols/rt:control-plane-protocol/"
+ "ospf:ospf/ospf:areas/ospf:area/ospf:database/" + "ospf:ospf/ospf:areas/ospf:area/ospf: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:ospfv3/" + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/"
+ "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-inter-area-prefix/" + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-inter-area-prefix/"
+ "ospfv3-e-lsa:e-inter-prefix-tlvs/ospfv3-e-lsa:inter-prefix-tlv" { + "ospfv3-e-lsa:e-inter-prefix-tlvs/ospfv3-e-lsa:inter-prefix-tlv" {
when "../../../../../../../../../../../../" when "../../../../../../../../../../../../"
+ "rt:type = 'ospf:ospfv3'" { + "rt:type = 'ospf:ospfv3'" {
description description
"This augmentation is only valid for OSPFv3 "This augmentation is only valid for OSPFv3
E-Router LSAs"; E-Router LSAs";
} }
uses ospfv3-prefix-sid-sub-tlvs; uses ospfv3-prefix-sid-sub-tlvs;
description description
"OSPFv3 Area-Scoped Inter-Area Prefix TLV."; "OSPFv3 Area-Scoped Inter-Area Prefix TLV.";
} }
augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol/"
+ "ospf:ospf/ospf:database/"
+ "ospf:as-scope-lsa-type/ospf:as-scope-lsas/"
+ "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/"
+ "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-inter-area-prefix/"
+ "ospfv3-e-lsa:e-inter-prefix-tlvs/ospfv3-e-lsa:inter-prefix-tlv" {
when "'ospf:../../../../../../../../../"
+ "rt:type' = 'ospf:ospfv3'" {
description
"This augmentation is only valid for OSPFv3.";
}
uses ospfv3-prefix-sid-sub-tlvs;
description
"OSPFv3 AS-Scoped Inter-Area Prefix TLV.";
}
/* Prefix SID Sub-TLV in External Prefix TLV */ /* Prefix SID Sub-TLV in External Prefix TLV */
augment "/rt:routing/" augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol/" + "rt:control-plane-protocols/rt:control-plane-protocol/"
+ "ospf:ospf/ospf:areas/ospf:area/ospf:database/"
+ "ospf:area-scope-lsa-type/ospf:area-scope-lsas/"
+ "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/"
+ "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-as-external/"
+ "ospfv3-e-lsa:e-external-tlvs/ospfv3-e-lsa:external-prefix-tlv" {
when "../../../../../../../../../../../../"
+ "rt:type = 'ospf:ospfv3'" {
description
"This augmentation is only valid for OSPFv3
E-Router LSAs";
}
uses ospfv3-prefix-sid-sub-tlvs;
description
"OSPFv3 Area-Scoped External Prefix TLV.";
}
augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol/"
+ "ospf:ospf/ospf:database/" + "ospf:ospf/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:ospfv3/" + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/"
+ "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-as-external/" + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-as-external/"
+ "ospfv3-e-lsa:e-external-tlvs/ospfv3-e-lsa:external-prefix-tlv" { + "ospfv3-e-lsa:e-external-tlvs/ospfv3-e-lsa:external-prefix-tlv" {
when "'ospf:../../../../../../../../../" when "'ospf:../../../../../../../../../"
+ "rt:type' = 'ospf:ospfv3'" { + "rt:type' = 'ospf:ospfv3'" {
description description
"This augmentation is only valid for OSPFv3."; "This augmentation is only valid for OSPFv3.";
} }
uses ospfv3-prefix-sid-sub-tlvs; uses ospfv3-prefix-sid-sub-tlvs;
description description
"OSPFv3 AS-Scoped External Prefix TLV."; "OSPFv3 AS-Scoped External Prefix TLV.";
} }
augment "/rt:routing/" augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol/" + "rt:control-plane-protocols/rt:control-plane-protocol/"
+ "ospf:ospf/ospf:areas/ospf:area/ospf:database/"
+ "ospf:area-scope-lsa-type/ospf:area-scope-lsas/"
+ "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/"
+ "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-nssa/"
+ "ospfv3-e-lsa:e-external-tlvs/ospfv3-e-lsa:external-prefix-tlv" {
when "../../../../../../../../../../../../"
+ "rt:type = 'ospf:ospfv3'" {
description
"This augmentation is only valid for OSPFv3
E-Router LSAs";
}
uses ospfv3-prefix-sid-sub-tlvs;
description
"OSPFv3 Area-Scoped External Prefix TLV.";
}
augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol/"
+ "ospf:ospf/ospf:database/" + "ospf:ospf/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:ospfv3/" + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/"
+ "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-nssa/" + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-nssa/"
+ "ospfv3-e-lsa:e-external-tlvs/ospfv3-e-lsa:external-prefix-tlv" { + "ospfv3-e-lsa:e-external-tlvs/ospfv3-e-lsa:external-prefix-tlv" {
when "'ospf:../../../../../../../../../" when "'ospf:../../../../../../../../../"
+ "rt:type' = 'ospf:ospfv3'" { + "rt:type' = 'ospf:ospfv3'" {
description description
"This augmentation is only valid for OSPFv3."; "This augmentation is only valid for OSPFv3.";
} }
skipping to change at page 23, line 37 skipping to change at page 17, line 4
when "../../../../../../../../../../../../" when "../../../../../../../../../../../../"
+ "rt:type = 'ospf:ospfv3'" { + "rt:type = 'ospf:ospfv3'" {
description description
"This augmentation is only valid for OSPFv3 "This augmentation is only valid for OSPFv3
E-Router LSAs"; E-Router LSAs";
} }
uses ospfv3-adj-sid-sub-tlvs; uses ospfv3-adj-sid-sub-tlvs;
uses ospfv3-lan-adj-sid-sub-tlvs; uses ospfv3-lan-adj-sid-sub-tlvs;
description description
"OSPFv3 Area-Scoped Adj-SID Sub-TLV."; "OSPFv3 Area-Scoped Adj-SID Sub-TLV.";
}
augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol/"
+ "ospf:ospf/ospf:database/"
+ "ospf:as-scope-lsa-type/ospf:as-scope-lsas/"
+ "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/"
+ "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-router/"
+ "ospfv3-e-lsa:e-router-tlvs/ospfv3-e-lsa:link-tlv" {
when "'ospf:../../../../../../../../../"
+ "rt:type' = 'ospf:ospfv3'" {
description
"This augmentation is only valid for OSPFv3.";
}
uses ospfv3-adj-sid-sub-tlvs;
uses ospfv3-lan-adj-sid-sub-tlvs;
description
"OSPFv3 AS-Scoped Adj-SID Sub-TLV.";
} }
} }
<CODE ENDS> <CODE ENDS>
4. Security Considerations 4. Security Considerations
The YANG modules specified in this document define a schema for data The YANG modules specified in this document define a schema for data
that is designed to be accessed via network management protocols such that is designed to be accessed via network management protocols such
as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer
is the secure transport layer, and the mandatory-to-implement secure is the secure transport layer, and the mandatory-to-implement secure
transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer
 End of changes. 54 change blocks. 
389 lines changed or deleted 52 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/