< draft-ietf-ospf-sr-yang-03.txt   draft-ietf-ospf-sr-yang-04.txt >
Internet D. Yeung Internet D. Yeung
Internet-Draft Arrcus Internet-Draft Arrcus
Intended status: Informational Y. Qu Intended status: Informational Y. Qu
Expires: July 1, 2018 Huawei Expires: September 4, 2018 Huawei
J. Zhang J. Zhang
Juniper Networks Juniper Networks
I. Chen I. Chen
Jabil Circuit Jabil Circuit
A. Lindem A. Lindem
Cisco Systems Cisco Systems
December 28, 2017 March 3, 2018
Yang Data Model for OSPF SR (Segment Routing) Protocol Yang Data Model for OSPF SR (Segment Routing) Protocol
draft-ietf-ospf-sr-yang-03 draft-ietf-ospf-sr-yang-04
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 https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on July 1, 2018. This Internet-Draft will expire on September 4, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2018 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2
2. OSPF Segment Routing . . . . . . . . . . . . . . . . . . . . 2 2. OSPF Segment Routing . . . . . . . . . . . . . . . . . . . . 2
3. OSPF Segment Routing Yang Module . . . . . . . . . . . . . . 7 3. OSPF Segment Routing Yang Module . . . . . . . . . . . . . . 7
4. Security Considerations . . . . . . . . . . . . . . . . . . . 19 4. Security Considerations . . . . . . . . . . . . . . . . . . . 20
5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 20 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 20
6. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 20
6.1. Normative References . . . . . . . . . . . . . . . . . . 20 6.1. Normative References . . . . . . . . . . . . . . . . . . 20
6.2. Informative References . . . . . . . . . . . . . . . . . 22 6.2. Informative References . . . . . . . . . . . . . . . . . 22
Appendix A. Contributors' Addreses . . . . . . . . . . . . . . . 23 Appendix A. Contributors' Addreses . . . . . . . . . . . . . . . 23
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 23 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 23
1. Overview 1. Overview
YANG [RFC6020] [RFC7950] is a data definition language used to YANG [RFC6020] [RFC7950] is a data definition language used to
skipping to change at page 3, line 9 skipping to change at page 3, line 9
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 augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:instance: /rt:control-plane-protocol/ospf:ospf:
+--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 augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:instance /rt:control-plane-protocol/ospf:ospf
/ospf:areas/ospf:area/ospf:interfaces/ospf:interface: /ospf:areas/ospf:area/ospf:interface:
+--rw segment-routing +--rw segment-routing
+--rw adjacency-sid +--rw adjacency-sid
+--rw advertise-adj-group-sid* [group-id] +--rw advertise-adj-group-sid* [group-id]
| +--rw group-id uint32 | +--rw group-id uint32
+--rw advertise-protection? enumeration +--rw advertise-protection? enumeration
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:instance /rt:control-plane-protocol/ospf:ospf
/ospf:areas/ospf:area/ospf:interfaces/ospf:interface /ospf:areas/ospf:area/ospf:interfaces/ospf:interface
/ospf:fast-reroute: /ospf:fast-reroute:
+--rw ti-lfa {ti-lfa}? +--rw ti-lfa {ti-lfa}?
+--rw enable? boolean +--rw enable? boolean
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:instance /rt:control-plane-protocol/ospf:ospf
/ospf:areas/ospf:area/ospf:interfaces/ospf:interface /ospf:areas/ospf:area/ospf:interfaces/ospf:interface
/ospf:database/ospf:link-scope-lsa-type/ospf:link-scope-lsas /ospf:database/ospf:link-scope-lsa-type/ospf:link-scope-lsas
/ospf:link-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2 /ospf:link-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2
/ospf:body/ospf:opaque/ospf:extended-prefix-tlvs /ospf:body/ospf:opaque/ospf:extended-prefix-tlvs
/ospf:extended-prefix-tlv: /ospf:extended-prefix-tlv:
+--ro perfix-sid-sub-tlvs +--ro perfix-sid-sub-tlvs
+--ro prefix-sid-sub-tlv* +--ro prefix-sid-sub-tlv*
+--ro flags? bits +--ro flags? bits
+--ro mt-id? uint8 +--ro mt-id? uint8
+--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:instance /rt:control-plane-protocol/ospf:ospf
/ospf:areas/ospf:area/ospf:database/ospf:area-scope-lsa-type /ospf:areas/ospf:area/ospf:database/ospf:area-scope-lsa-type
/ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version
/ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque /ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque
/ospf:extended-prefix-tlvs/ospf:extended-prefix-tlv: /ospf:extended-prefix-tlvs/ospf:extended-prefix-tlv:
+--ro perfix-sid-sub-tlvs +--ro perfix-sid-sub-tlvs
+--ro prefix-sid-sub-tlv* +--ro prefix-sid-sub-tlv*
+--ro flags? bits +--ro flags? bits
+--ro mt-id? uint8 +--ro mt-id? uint8
+--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:instance /rt:control-plane-protocol/ospf:ospf
/ospf:database/ospf:as-scope-lsa-type/ospf:as-scope-lsas /ospf:database/ospf:as-scope-lsa-type/ospf:as-scope-lsas
/ospf:as-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2 /ospf:as-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2
/ospf:body/ospf:opaque/ospf:extended-prefix-tlvs /ospf:body/ospf:opaque/ospf:extended-prefix-tlvs
/ospf:extended-prefix-tlv: /ospf:extended-prefix-tlv:
+--ro perfix-sid-sub-tlvs +--ro perfix-sid-sub-tlvs
+--ro prefix-sid-sub-tlv* +--ro prefix-sid-sub-tlv*
+--ro flags? bits +--ro flags? bits
+--ro mt-id? uint8 +--ro mt-id? uint8
+--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:instance /rt:control-plane-protocol/ospf:ospf
/ospf:areas/ospf:area/ospf:database/ospf:area-scope-lsa-type /ospf:areas/ospf:area/ospf:database/ospf:area-scope-lsa-type
/ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version
/ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque /ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque
/ospf:extended-link-tlvs/ospf:extended-link-tlv: /ospf:extended-link-tlvs/ospf:extended-link-tlv:
+--ro adj-sid-sub-tlvs +--ro adj-sid-sub-tlvs
| +--ro adj-sid-sub-tlv* | +--ro adj-sid-sub-tlv*
| +--ro flags? bits | +--ro flags? bits
| +--ro mt-id? uint8 | +--ro mt-id? uint8
| +--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 flags? bits +--ro flags? bits
+--ro mt-id? uint8 +--ro mt-id? uint8
+--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
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:instance /rt:control-plane-protocol/ospf:ospf
/ospf:areas/ospf:area/ospf:interfaces/ospf:interface /ospf:areas/ospf:area/ospf:interfaces/ospf:interface
/ospf:database/ospf:link-scope-lsa-type/ospf:link-scope-lsas /ospf:database/ospf:link-scope-lsa-type/ospf:link-scope-lsas
/ospf:link-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2 /ospf:link-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2
/ospf:body/ospf:opaque: /ospf:body/ospf:opaque:
+--ro extended-prefix-range-tlvs +--ro extended-prefix-range-tlvs
| +--ro extended-prefix-range-tlv* | +--ro extended-prefix-range-tlv*
| +--ro range-size? uint16 | +--ro range-size? uint16
| +--ro flags? bits | +--ro flags? bits
| +--ro prefix? inet:ip-prefix | +--ro prefix? inet:ip-prefix
| +--ro perfix-sid-sub-tlvs | +--ro perfix-sid-sub-tlvs
skipping to change at page 5, line 31 skipping to change at page 5, line 31
| +--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? ospf:uint24 | +--ro range-size? ospf: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:instance /rt:control-plane-protocol/ospf:ospf
/ospf:areas/ospf:area/ospf:database/ospf:area-scope-lsa-type /ospf:areas/ospf:area/ospf:database/ospf:area-scope-lsa-type
/ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version
/ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque: /ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque:
+--ro extended-prefix-range-tlvs +--ro extended-prefix-range-tlvs
| +--ro extended-prefix-range-tlv* | +--ro extended-prefix-range-tlv*
| +--ro range-size? uint16 | +--ro range-size? uint16
| +--ro flags? bits | +--ro flags? bits
| +--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*
skipping to change at page 6, line 18 skipping to change at page 6, line 18
| +--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? ospf:uint24 | +--ro range-size? ospf: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:instance /rt:control-plane-protocol/ospf:ospf
/ospf:database/ospf:as-scope-lsa-type/ospf:as-scope-lsas /ospf:database/ospf:as-scope-lsa-type/ospf:as-scope-lsas
/ospf:as-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2 /ospf:as-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2
/ospf:body/ospf:opaque: /ospf:body/ospf:opaque:
+--ro extended-prefix-range-tlvs +--ro extended-prefix-range-tlvs
| +--ro extended-prefix-range-tlv* | +--ro extended-prefix-range-tlv*
| +--ro range-size? uint16 | +--ro range-size? uint16
| +--ro flags? bits | +--ro flags? bits
| +--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*
skipping to change at page 7, line 7 skipping to change at page 7, line 7
+--ro local-block-tlvs +--ro local-block-tlvs
| +--ro local-block-tlv* | +--ro local-block-tlv*
| +--ro range-size? ospf:uint24 | +--ro range-size? ospf: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
3. OSPF Segment Routing Yang Module 3. OSPF Segment Routing Yang Module
<CODE BEGINS> file "ietf-ospf-sr@2017-12-28.yang" <CODE BEGINS> file "ietf-ospf-sr@2018-03-03.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 8, line 31 skipping to change at page 8, line 31
to the license terms contained in, the Simplified BSD License to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; This version of this YANG module is part of RFC XXXX;
see the RFC itself for full legal notices."; see the RFC itself for full legal notices.";
reference "RFC XXXX"; reference "RFC XXXX";
revision 2018-03-03 {
description
"* Remove OSPF instance.";
reference
"RFC XXXX: A YANG Data Model for OSPF Segment Routing.";
}
revision 2017-12-28 { revision 2017-12-28 {
description description
""; "";
reference reference
"RFC XXXX: A YANG Data Model for OSPF Segment Routing."; "RFC XXXX: A YANG Data Model for OSPF Segment Routing.";
} }
revision 2017-07-02 { revision 2017-07-02 {
description description
"* Implement NMDA model. "* Implement NMDA model.
skipping to change at page 13, line 26 skipping to change at page 13, line 31
type uint8 { type uint8 {
range "0 .. 255"; range "0 .. 255";
} }
description "SRMS preference TLV, vlaue from 0 to 255."; description "SRMS preference TLV, vlaue from 0 to 255.";
} }
} }
} }
/* Configuration */ /* Configuration */
augment "/rt:routing/rt:control-plane-protocols" augment "/rt:routing/rt:control-plane-protocols"
+ "/rt:control-plane-protocol/ospf:ospf/ospf:instance" { + "/rt:control-plane-protocol/ospf:ospf" {
when "../../rt:type = 'ospf:ospfv2' or " when "../rt:type = 'ospf:ospfv2' or "
+ "../../rt:type = 'ospf:ospfv3'" { + "../rt:type = 'ospf:ospfv3'" {
description description
"This augments the OSPF routing protocol when used."; "This augments the OSPF routing protocol when used.";
} }
description description
"This augments the OSPF protocol configuration "This augments the OSPF protocol configuration
with segment routing."; with segment routing.";
uses sr:controlplane-cfg; uses sr:controlplane-cfg;
container protocol-srgb { container protocol-srgb {
if-feature sr:protocol-srgb; if-feature sr:protocol-srgb;
uses sr-cmn:srgb-cfg; uses sr-cmn:srgb-cfg;
description description
"Per-protocol SRGB."; "Per-protocol SRGB.";
} }
} }
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/ospf:ospf/ospf:instance/" + "rt:control-plane-protocol/ospf:ospf/"
+ "ospf:areas/ospf:area/ospf:interfaces/ospf:interface" { + "ospf:areas/ospf:area/ospf:interfaces/ospf:interface" {
when "../../../../../../rt:type = 'ospf:ospfv2' or "
+ "../../../../../../rt:type = 'ospf:ospfv3'" { when "../../../../../rt:type = 'ospf:ospfv2' or "
+ "../../../../../rt:type = 'ospf:ospfv3'" {
description description
"This augments the OSPF interface configuration "This augments the OSPF interface configuration
when used."; when used.";
} }
description description
"This augments the OSPF protocol interface "This augments the OSPF protocol interface
configuration with segment routing."; configuration with segment routing.";
uses sr:igp-interface-cfg; uses sr:igp-interface-cfg;
} }
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/ospf:ospf/ospf:instance/" + "rt:control-plane-protocol/ospf:ospf/"
+ "ospf:areas/ospf:area/ospf:interfaces/ospf:interface/" + "ospf:areas/ospf:area/ospf:interfaces/ospf:interface/"
+ "ospf:fast-reroute" { + "ospf:fast-reroute" {
when "../../../../../../../rt:type = 'ospf:ospfv2' or " when "../../../../../../rt:type = 'ospf:ospfv2' or "
+ "../../../../../../../rt:type = 'ospf:ospfv3'" { + "../../../../../../rt:type = 'ospf:ospfv3'" {
description description
"This augments the OSPF routing protocol when used."; "This augments the OSPF routing protocol when used.";
} }
description description
"This augments the OSPF protocol IP-FRR with TI-LFA."; "This augments the OSPF protocol IP-FRR with TI-LFA.";
container ti-lfa { container ti-lfa {
if-feature ti-lfa; if-feature ti-lfa;
leaf enable { leaf enable {
type boolean; type boolean;
skipping to change at page 14, line 39 skipping to change at page 14, line 46
} }
description description
"Topology Independent Loop Free Alternate "Topology Independent Loop Free Alternate
(TI-LFA) support."; (TI-LFA) support.";
} }
} }
/* Database */ /* Database */
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:instance/ospf:areas/ospf:area/" + "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: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;
} }
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:instance/ospf:areas/" + "ospf:ospf/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;
} }
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:instance/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: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;
} }
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:instance/ospf:areas/" + "ospf:ospf/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 17, line 46 skipping to change at page 18, line 4
bit G { bit G {
position 3; position 3;
description description
"Group flag."; "Group flag.";
} }
bit P { bit P {
position 4; position 4;
description description
"Persistent flag."; "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.";
} }
leaf neighbor-router-id { leaf neighbor-router-id {
type yang:dotted-quad; type yang:dotted-quad;
description "Neighbor router ID."; description "Neighbor router ID.";
} }
leaf sid { leaf sid {
type uint32; type uint32;
description "Segment Identifier (SID) index/label."; description "Segment Identifier (SID) index/label.";
} }
} }
} }
} }
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:instance/ospf:areas/ospf:area/" + "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: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;
uses local-block-tlvs; uses local-block-tlvs;
uses srms-preference-tlv; uses srms-preference-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:instance/ospf:areas/" + "ospf:ospf/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;
uses sid-range-tlvs; uses sid-range-tlvs;
uses local-block-tlvs; uses local-block-tlvs;
uses srms-preference-tlv; uses srms-preference-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:instance/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: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 22, line 15 skipping to change at page 22, line 27
6.2. Informative References 6.2. Informative References
[I-D.ietf-ospf-yang] [I-D.ietf-ospf-yang]
Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem,
"Yang Data Model for OSPF Protocol", draft-ietf-ospf- "Yang Data Model for OSPF Protocol", draft-ietf-ospf-
yang-09 (work in progress), October 2017. yang-09 (work in progress), October 2017.
[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-07 (work in progress), July 2017. yang-08 (work in progress), December 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
 End of changes. 40 change blocks. 
43 lines changed or deleted 51 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/