< draft-ietf-ospf-sr-yang-15.txt   draft-ietf-ospf-sr-yang-16.txt >
Internet D. Yeung Internet D. Yeung
Internet-Draft Arrcus Internet-Draft Arrcus
Intended status: Standards Track Y. Qu Intended status: Standards Track Y. Qu
Expires: January 3, 2022 Futurewei Expires: 6 July 2022 Futurewei
J. Zhang J. Zhang
Juniper Networks Juniper Networks
I. Chen I. Chen
The MITRE Corporation The MITRE Corporation
A. Lindem A. Lindem
Cisco Systems Cisco Systems
July 2, 2021 2 January 2022
YANG Data Model for OSPF SR (Segment Routing) Protocol YANG Data Model for OSPF Segment Routing
draft-ietf-ospf-sr-yang-15 draft-ietf-ospf-sr-yang-16
Abstract Abstract
This document defines a YANG data module that can be used to This document defines a YANG data module that can be used to
configure and manage OSPF Extensions for Segment Routing. It also configure and manage OSPF Extensions for Segment Routing. It also
defines a module for management of Signaling Maximum SID Depth (MSD) defines a module for management of Signaling Maximum SID Depth (MSD)
Using OSPF. Using OSPF.
Status of This Memo Status of This Memo
skipping to change at page 1, line 40 skipping to change at page 1, line 40
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 January 3, 2022. This Internet-Draft will expire on 6 July 2022.
Copyright Notice Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the Copyright (c) 2022 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/
(https://trustee.ietf.org/license-info) in effect on the date of license-info) in effect on the date of publication of this document.
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect Please review these documents carefully, as they describe your rights
to this document. Code Components extracted from this document must and restrictions with respect to this document. Code Components
include Simplified BSD License text as described in Section 4.e of extracted from this document must include Revised BSD License text as
the Trust Legal Provisions and are provided without warranty as described in Section 4.e of the Trust Legal Provisions and are
described in the Simplified BSD License. provided without warranty as described in the Revised BSD License.
Table of Contents Table of Contents
1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3
1.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 3 1.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 3
2. OSPF MSD . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. OSPF MSD . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. OSPF MSD YANG Module . . . . . . . . . . . . . . . . . . 5 2.1. OSPF MSD YANG Module . . . . . . . . . . . . . . . . . . 4
3. OSPF Segment Routing . . . . . . . . . . . . . . . . . . . . 11 3. OSPF Segment Routing . . . . . . . . . . . . . . . . . . . . 11
3.1. OSPF Segment Routing YANG Module . . . . . . . . . . . . 16 3.1. OSPF Segment Routing YANG Module . . . . . . . . . . . . 16
4. Security Considerations . . . . . . . . . . . . . . . . . . . 30 4. Security Considerations . . . . . . . . . . . . . . . . . . . 30
5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 31 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 31
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 32 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 32
7.1. Normative References . . . . . . . . . . . . . . . . . . 32 7.1. Normative References . . . . . . . . . . . . . . . . . . 32
7.2. Informative References . . . . . . . . . . . . . . . . . 34 7.2. Informative References . . . . . . . . . . . . . . . . . 34
Appendix A. Contributors' Addreses . . . . . . . . . . . . . . . 35 Appendix A. Contributors' Addreses . . . . . . . . . . . . . . . 34
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 34
1. Overview 1. Overview
YANG [RFC6020] [RFC7950] is a data definition language used to define YANG [RFC7950] is a data definition language used to define the
the contents of a conceptual data store that allows networked devices contents of a conceptual data store that allows networked devices to
to be managed using NETCONF [RFC6241]. YANG is proving relevant be managed using NETCONF [RFC6241]. YANG is proving relevant beyond
beyond its initial confines, as bindings to other interfaces (e.g., its initial confines, as bindings to other interfaces (e.g., ReST)
ReST) and encodings other than XML (e.g., JSON) are being defined. and encodings other than XML (e.g., JSON) are being defined.
Furthermore, YANG data models can be used as the basis for Furthermore, YANG data models can be used as the basis for
implementation of other interfaces, such as CLI and programmatic implementation of other interfaces, such as CLI and programmatic
APIs. APIs.
This document defines a YANG data model that can be used to configure This document defines a YANG data model that can be used to configure
and manage OSPFv2 extensions for Segment Routing [RFC8665] and it is and manage OSPFv2 extensions for Segment Routing [RFC8665] and it is
an augmentation to the OSPF YANG data model. an augmentation to the OSPF YANG data model.
This document also defines a YANG data model for Signaling Maximum This document also defines a YANG data model for Signaling Maximum
SID Depth (MSD) Using OSPF [RFC8476], which augments the base OSPF SID Depth (MSD) Using OSPF [RFC8476], which augments the base OSPF
skipping to change at page 5, line 6 skipping to change at page 5, line 4
/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:
+--ro link-msd-sub-tlv +--ro link-msd-sub-tlv
+--ro link-msds* [msd-type] +--ro link-msds* [msd-type]
+--ro msd-type identityref +--ro msd-type identityref
+--ro msd-value? uint8 +--ro msd-value? uint8
2.1. OSPF MSD YANG Module 2.1. OSPF MSD YANG Module
<CODE BEGINS> file "ietf-ospf-msd@2022-01-02.yang"
<CODE BEGINS> file "ietf-ospf-msd@2021-02-21.yang"
module ietf-ospf-msd { module ietf-ospf-msd {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-ospf-msd"; namespace "urn:ietf:params:xml:ns:yang:ietf-ospf-msd";
prefix ospf-msd; prefix ospf-msd;
import ietf-routing { import ietf-routing {
prefix rt; prefix rt;
reference "RFC 8349: A YANG Data Model for Routing reference "RFC 8349: A YANG Data Model for Routing
Management (NMDA Version)"; Management (NMDA Version)";
} }
skipping to change at page 5, line 50 skipping to change at page 5, line 47
<jefftant.ietf@gmail.com> <jefftant.ietf@gmail.com>
"; ";
description description
"The YANG module augments the base OSPF model to "The YANG module augments the base OSPF model to
manage different types of MSDs. manage different types of MSDs.
This YANG model conforms to the Network Management This YANG model conforms to the Network Management
Datastore Architecture (NMDA) as described in RFC 8342. Datastore Architecture (NMDA) as described in RFC 8342.
Copyright (c) 2021 IETF Trust and the persons identified as Copyright (c) 2022 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject to
to the license terms contained in, the Simplified BSD License the license terms contained in, the Revised BSD License set
set forth in Section 4.c of the IETF Trust's Legal Provisions forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(https://trustee.ietf.org/license-info). (https://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.
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: YANG Data Model for OSPF MSD."; reference "RFC XXXX: YANG Data Model for OSPF MSD.";
revision 2021-02-21 { revision 2022-01-02 {
description description
"Initial Version"; "Initial Version";
reference "RFC XXXX: YANG Data Model for OSPF MSD."; reference "RFC XXXX: YANG Data Model for OSPF MSD.";
} }
identity msd-base-type { identity msd-base-type {
description description
"Base identity for MSD Type"; "Base identity for MSD Type";
} }
skipping to change at page 16, line 25 skipping to change at page 16, line 24
+--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
3.1. OSPF Segment Routing YANG Module 3.1. OSPF Segment Routing YANG Module
<CODE BEGINS> file "ietf-ospf-sr@2021-07-02.yang" <CODE BEGINS> file "ietf-ospf-sr@2022-01-02.yang"
module ietf-ospf-sr { module ietf-ospf-sr {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-ospf-sr"; namespace "urn:ietf:params:xml:ns:yang:ietf-ospf-sr";
prefix ospf-sr; prefix ospf-sr;
import ietf-inet-types { import ietf-inet-types {
prefix "inet"; prefix "inet";
reference "RFC 6991 - Common YANG Data Types"; reference "RFC 6991 - Common YANG Data Types";
} }
import ietf-yang-types { import ietf-yang-types {
prefix "yang"; prefix "yang";
reference "RFC 6991 - Common YANG Data Types"; reference "RFC 6991 - Common YANG Data Types";
} }
import ietf-routing { import ietf-routing {
prefix "rt"; prefix "rt";
reference "RFC 8349 - A YANG Data Model for Routing reference "RFC 8349 - A YANG Data Model for Routing
Management (NMDA Version)"; Management (NMDA Version)";
} }
import ietf-segment-routing-common { import ietf-segment-routing-common {
prefix "sr-cmn"; prefix "sr-cmn";
reference "RFC 9020 - YANG Data Model for Segment reference "RFC 9020 - YANG Data Model for Segment
Routing"; Routing";
}
import ietf-segment-routing-mpls {
prefix "sr-mpls";
reference "RFC 9020 - YANG Data Model for Segment
Routing";
}
import ietf-ospf {
prefix "ospf";
}
organization }
"IETF LSR - Link State Routing Working Group"; import ietf-segment-routing-mpls {
prefix "sr-mpls";
reference "RFC 9020 - YANG Data Model for Segment
Routing";
}
import ietf-ospf {
prefix "ospf";
}
contact organization
"WG Web: <http://tools.ietf.org/wg/lsr/> "IETF LSR - Link State Routing Working Group";
WG List: <mailto:lsr@ietf.org>
Editor: Derek Yeung contact
<mailto:derek@arrcus.com> "WG Web: <http://tools.ietf.org/wg/lsr/>
Author: Derek Yeung WG List: <mailto:lsr@ietf.org>
<mailto:derek@arrcus.com>
Author: Yingzhen Qu
<mailto:yingzhen.qu@futurewei.com>
Author: Acee Lindem
<mailto:acee@cisco.com>
Author: Jeffrey Zhang
<mailto:zzhang@juniper.net>
Author: Ing-Wher Chen
<mailto:ingwherchen@mitre.org>
Author: Greg Hankins
<mailto:greg.hankins@alcatel-lucent.com>";
description Editor: Derek Yeung
"This YANG module defines the generic configuration <mailto:derek@arrcus.com>
and operational state for OSPF Segment Routing, which is Author: Derek Yeung
common across all of the vendor implementations. It is <mailto:derek@arrcus.com>
intended that the module will be extended by vendors to Author: Yingzhen Qu
define vendor-specific OSPF Segment Routing configuration <mailto:yingzhen.qu@futurewei.com>
and operational parameters and policies. Author: Acee Lindem
<mailto:acee@cisco.com>
Author: Jeffrey Zhang
<mailto:zzhang@juniper.net>
Author: Ing-Wher Chen
<mailto:ingwherchen@mitre.org>
Author: Greg Hankins
<mailto:greg.hankins@alcatel-lucent.com>";
This YANG model conforms to the Network Management description
Datastore Architecture (NMDA) as described in RFC 8342. "This YANG module defines the generic configuration
and operational state for OSPF Segment Routing, which is
common across all of the vendor implementations. It is
intended that the module will be extended by vendors to
define vendor-specific OSPF Segment Routing configuration
and operational parameters and policies.
Copyright (c) 2021 IETF Trust and the persons identified as This YANG model conforms to the Network Management
authors of the code. All rights reserved. Datastore Architecture (NMDA) as described in RFC 8342.
Redistribution and use in source and binary forms, with or Copyright (c) 2022 IETF Trust and the persons identified as
without modification, is permitted pursuant to, and subject to authors of the code. All rights reserved.
the license terms contained in, the Simplified BSD License set
forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents
(https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX Redistribution and use in source and binary forms, with or
(https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself without modification, is permitted pursuant to, and subject to
for full legal notices. the license terms contained in, the Revised BSD License set
forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents
(https://trustee.ietf.org/license-info).
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL This version of this YANG module is part of RFC XXXX
NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
'MAY', and 'OPTIONAL' in this document are to be interpreted as for full legal notices.
described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
they appear in all capitals, as shown here.
This version of this YANG module is part of RFC XXXX; The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
see the RFC itself for full legal notices."; NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
'MAY', and 'OPTIONAL' in this document are to be interpreted as
described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
they appear in all capitals, as shown here.
reference "RFC XXXX"; This version of this YANG module is part of RFC XXXX;
see the RFC itself for full legal notices.";
revision 2021-07-02 { reference "RFC XXXX";
description
"Initial revision.";
reference
"RFC XXXX: A YANG Data Model for OSPF Segment Routing.";
}
feature ti-lfa { revision 2022-01-02 {
description description
"Topology-Independent Loop-Free Alternate (TI-LFA) "Initial revision.";
computation using segment routing."; reference
} "RFC XXXX: A YANG Data Model for OSPF Segment Routing.";
}
identity prefix-sid-bit { feature ti-lfa {
description description
"Base identity for prefix sid sub-tlv bits."; "Topology-Independent Loop-Free Alternate (TI-LFA)
} computation using segment routing.";
}
identity np-bit { identity prefix-sid-bit {
base prefix-sid-bit; description
description "Base identity for prefix sid sub-tlv bits.";
"No-PHP flag."; }
}
identity m-bit { identity np-bit {
base prefix-sid-bit; base prefix-sid-bit;
description description
"Mapping server flag."; "No-PHP flag.";
} }
identity e-bit { identity m-bit {
base prefix-sid-bit; base prefix-sid-bit;
description description
"Explicit-NULL flag."; "Mapping server flag.";
} }
identity v-bit { identity e-bit {
base prefix-sid-bit; base prefix-sid-bit;
description description
"Value/Index flag."; "Explicit-NULL flag.";
} }
identity l-bit { identity v-bit {
base prefix-sid-bit; base prefix-sid-bit;
description description
"Local flag."; "Value/Index flag.";
} }
identity extended-prefix-range-bit { identity l-bit {
description base prefix-sid-bit;
"Base identity for extended prefix range TLV bits."; description
} "Local flag.";
}
identity ia-bit { identity extended-prefix-range-bit {
base extended-prefix-range-bit; description
description "Base identity for extended prefix range TLV bits.";
"Inter-Area flag. If set, advertisement is of inter-area type."; }
}
identity adj-sid-bit { identity ia-bit {
description base extended-prefix-range-bit;
"Base identity for adj sid sub-tlv bits."; description
} "Inter-Area flag. If set, advertisement is of inter-area type.";
}
identity b-bit { identity adj-sid-bit {
base adj-sid-bit; description
description "Base identity for adj sid sub-tlv bits.";
"Backup flag."; }
}
identity vi-bit { identity b-bit {
base adj-sid-bit; base adj-sid-bit;
description description
"Value/Index flag."; "Backup flag.";
} }
identity lo-bit {
base adj-sid-bit;
description
"Local/Global flag.";
}
identity g-bit { identity vi-bit {
base adj-sid-bit; base adj-sid-bit;
description description
"Group flag."; "Value/Index flag.";
} }
identity lo-bit {
base adj-sid-bit;
description
"Local/Global flag.";
}
identity p-bit { identity g-bit {
base adj-sid-bit; base adj-sid-bit;
description description
"Persistent flag."; "Group flag.";
} }
typedef uint24 { identity p-bit {
type uint32 { base adj-sid-bit;
range "0 .. 16777215"; description
} "Persistent flag.";
description }
"24-bit unsigned integer.";
}
/* Groupings */ typedef uint24 {
grouping sid-sub-tlv { type uint32 {
description "SID/Label sub-TLV grouping."; range "0 .. 16777215";
container sid-sub-tlv { }
description description
"Used to advertise the SID/Label associated with a "24-bit unsigned integer.";
prefix or adjacency."; }
leaf sid {
type uint32;
description
"Segment Identifier (SID) - A 20 bit label or
32 bit SID.";
}
}
}
grouping prefix-sid-sub-tlvs { /* Groupings */
description "Prefix Segment ID (SID) sub-TLVs."; grouping sid-sub-tlv {
container perfix-sid-sub-tlvs{ description "SID/Label sub-TLV grouping.";
description "Prefix SID sub-TLV."; container sid-sub-tlv {
list prefix-sid-sub-tlv { description
description "Prefix SID sub-TLV."; "Used to advertise the SID/Label associated with a
container prefix-sid-flags { prefix or adjacency.";
leaf-list bits { leaf sid {
type identityref { type uint32;
base prefix-sid-bit; description
} "Segment Identifier (SID) - A 20 bit label or
description 32 bit SID.";
"Prefix SID Sub-TLV flag bits list."; }
} }
description "Segment Identifier (SID) Flags."; }
}
leaf mt-id {
type uint8;
description "Multi-topology ID.";
}
leaf algorithm {
type uint8;
description
"The algorithm associated with the prefix-SID.";
}
leaf sid {
type uint32;
description "An index or label.";
}
}
}
}
grouping extended-prefix-range-tlvs { grouping prefix-sid-sub-tlvs {
description "Extended prefix range TLV grouping."; description "Prefix Segment ID (SID) sub-TLVs.";
container prefix-sid-sub-tlvs{
description "Prefix SID sub-TLV.";
list prefix-sid-sub-tlv {
description "Prefix SID sub-TLV.";
container prefix-sid-flags {
leaf-list bits {
type identityref {
base prefix-sid-bit;
}
description
"Prefix SID Sub-TLV flag bits list.";
}
description "Segment Identifier (SID) Flags.";
}
leaf mt-id {
type uint8;
description "Multi-topology ID.";
}
leaf algorithm {
type uint8;
description
"The algorithm associated with the prefix-SID.";
}
leaf sid {
type uint32;
description "An index or label.";
}
}
}
}
container extended-prefix-range-tlvs { grouping extended-prefix-range-tlvs {
description "The list of range of prefixes."; description "Extended prefix range TLV grouping.";
list extended-prefix-range-tlv {
description "The range of prefixes.";
leaf prefix-length {
type uint8;
description "Length of prefix in bits.";
}
leaf af {
type uint8;
description "Address family for the prefix.";
}
leaf range-size {
type uint16;
description "The number of prefixes covered by the
advertisement.";
}
container extended-prefix-range-flags {
leaf-list bits {
type identityref {
base extended-prefix-range-bit;
}
description "Extended prefix range TLV flags list.";
}
description "Extended Prefix Range TLV flags.";
}
leaf prefix {
type inet:ip-prefix;
description "Address prefix.";
}
uses prefix-sid-sub-tlvs;
uses ospf:unknown-tlvs;
}
}
}
grouping sr-algorithm-tlv { container extended-prefix-range-tlvs {
description "SR algorithm TLV grouping."; description "The list of range of prefixes.";
container sr-algorithm-tlv { list extended-prefix-range-tlv {
description "All SR algorithm TLVs."; description "The range of prefixes.";
leaf-list sr-algorithm { leaf prefix-length {
type uint8; type uint8;
description description "Length of prefix in bits.";
"The Segment Routing (SR) algorithms that the router is }
currently using."; leaf af {
} type uint8;
} description "Address family for the prefix.";
} }
leaf range-size {
type uint16;
description "The number of prefixes covered by the
advertisement.";
}
container extended-prefix-range-flags {
leaf-list bits {
type identityref {
base extended-prefix-range-bit;
}
description "Extended prefix range TLV flags list.";
}
description "Extended Prefix Range TLV flags.";
}
leaf prefix {
type inet:ip-prefix;
description "Address prefix.";
}
uses prefix-sid-sub-tlvs;
uses ospf:unknown-tlvs;
}
}
}
grouping sid-range-tlvs { grouping sr-algorithm-tlv {
description "SID Range TLV grouping."; description "SR algorithm TLV grouping.";
container sid-range-tlvs { container sr-algorithm-tlv {
description "List of SID range TLVs."; description "All SR algorithm TLVs.";
list sid-range-tlv { leaf-list sr-algorithm {
description "SID range TLV."; type uint8;
leaf range-size { description
type uint24; "The Segment Routing (SR) algorithms that the router is
description "The SID range."; currently using.";
} }
uses sid-sub-tlv; }
} }
}
}
grouping local-block-tlvs { grouping sid-range-tlvs {
description "The SR local block TLV contains the description "SID Range TLV grouping.";
range of labels reserved for local SIDs."; container sid-range-tlvs {
container local-block-tlvs { description "List of SID range TLVs.";
description "List of SRLB TLVs."; list sid-range-tlv {
list local-block-tlv { description "SID range TLV.";
description "SRLB TLV."; leaf range-size {
leaf range-size { type uint24;
type uint24; description "The SID range.";
description "The SID range."; }
} uses sid-sub-tlv;
uses sid-sub-tlv; }
} }
} }
}
grouping srms-preference-tlv { grouping local-block-tlvs {
description "The SRMS preference TLV is used to advertise description "The SR local block TLV contains the
a preference associated with the node that acts range of labels reserved for local SIDs.";
as an SR Mapping Server."; container local-block-tlvs {
container srms-preference-tlv { description "List of SRLB TLVs.";
description "SRMS Preference TLV."; list local-block-tlv {
leaf preference { description "SRLB TLV.";
type uint8 { leaf range-size {
range "0 .. 255"; type uint24;
} description "The SID range.";
description "SRMS preference TLV, value from 0 to 255."; }
} uses sid-sub-tlv;
} }
} }
}
/* Configuration */ grouping srms-preference-tlv {
augment "/rt:routing/rt:control-plane-protocols" description "The SRMS preference TLV is used to advertise
+ "/rt:control-plane-protocol/ospf:ospf" { a preference associated with the node that acts
when "../rt:type = 'ospf:ospfv2' or " as an SR Mapping Server.";
+ "../rt:type = 'ospf:ospfv3'" { container srms-preference-tlv {
description description "SRMS Preference TLV.";
"This augments the OSPF routing protocol when used."; leaf preference {
} type uint8 {
description range "0 .. 255";
"This augments the OSPF protocol configuration }
with segment routing."; description "SRMS preference TLV, value from 0 to 255.";
uses sr-mpls:sr-control-plane; }
container protocol-srgb { }
if-feature sr-mpls:protocol-srgb; }
uses sr-cmn:srgb;
description
"Per-protocol SRGB.";
}
}
augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/ospf:ospf/"
+ "ospf:areas/ospf:area/ospf:interfaces/ospf:interface" {
when "../../../../../rt:type = 'ospf:ospfv2' or "
+ "../../../../../rt:type = 'ospf:ospfv3'" {
description
"This augments the OSPF interface configuration
when used.";
}
description
"This augments the OSPF protocol interface
configuration with segment routing.";
uses sr-mpls:igp-interface; /* Configuration */
} augment "/rt:routing/rt:control-plane-protocols"
+ "/rt:control-plane-protocol/ospf:ospf" {
when "../rt:type = 'ospf:ospfv2' or "
+ "../rt:type = 'ospf:ospfv3'" {
description
"This augments the OSPF routing protocol when used.";
}
description
"This augments the OSPF protocol configuration
with segment routing.";
uses sr-mpls:sr-control-plane;
container protocol-srgb {
if-feature sr-mpls:protocol-srgb;
uses sr-cmn:srgb;
description
"Per-protocol SRGB.";
}
}
augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/ospf:ospf/"
+ "ospf:areas/ospf:area/ospf:interfaces/ospf:interface" {
when "../../../../../rt:type = 'ospf:ospfv2' or "
+ "../../../../../rt:type = 'ospf:ospfv3'" {
description
"This augments the OSPF interface configuration
when used.";
}
description
"This augments the OSPF protocol interface
configuration with segment routing.";
augment "/rt:routing/rt:control-plane-protocols/" uses sr-mpls:igp-interface;
+ "rt:control-plane-protocol/ospf:ospf/" }
+ "ospf:areas/ospf:area/ospf:interfaces/ospf:interface/"
+ "ospf:fast-reroute" {
when "../../../../../../rt:type = 'ospf:ospfv2' or "
+ "../../../../../../rt:type = 'ospf:ospfv3'" {
description
"This augments the OSPF routing protocol when used.";
}
description
"This augments the OSPF protocol IP-FRR with TI-LFA.";
container ti-lfa { augment "/rt:routing/rt:control-plane-protocols/"
if-feature ti-lfa; + "rt:control-plane-protocol/ospf:ospf/"
leaf enable { + "ospf:areas/ospf:area/ospf:interfaces/ospf:interface/"
type boolean; + "ospf:fast-reroute" {
description when "../../../../../../rt:type = 'ospf:ospfv2' or "
"Enables TI-LFA computation."; + "../../../../../../rt:type = 'ospf:ospfv3'" {
} description
description "This augments the OSPF routing protocol when used.";
"Topology Independent Loop Free Alternate }
(TI-LFA) support."; description
} "This augments the OSPF protocol IP-FRR with TI-LFA.";
}
/* Database */ container ti-lfa {
augment "/rt:routing/" if-feature ti-lfa;
+ "rt:control-plane-protocols/rt:control-plane-protocol/" leaf enable {
+ "ospf:ospf/ospf:areas/ospf:area/" type boolean;
+ "ospf:interfaces/ospf:interface/ospf:database/" description
+ "ospf:link-scope-lsa-type/ospf:link-scope-lsas/" "Enables TI-LFA computation.";
+ "ospf:link-scope-lsa/ospf:version/ospf:ospfv2/" }
+ "ospf:ospfv2/ospf:body/ospf:opaque/" description
+ "ospf:extended-prefix-opaque" { "Topology Independent Loop Free Alternate
when "../../../../../../../../../../../../../" (TI-LFA) support.";
+ "rt:type = 'ospf:ospfv2'" { }
description }
"This augmentation is only valid for OSPFv2.";
}
description
"SR specific TLVs for OSPFv2 extended prefix LSA
in type 9 opaque LSA.";
uses extended-prefix-range-tlvs; /* Database */
} augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol/"
+ "ospf:ospf/ospf:areas/ospf:area/"
+ "ospf:interfaces/ospf:interface/ospf:database/"
+ "ospf:link-scope-lsa-type/ospf:link-scope-lsas/"
+ "ospf:link-scope-lsa/ospf:version/ospf:ospfv2/"
+ "ospf:ospfv2/ospf:body/ospf:opaque/"
+ "ospf:extended-prefix-opaque" {
when "../../../../../../../../../../../../../"
+ "rt:type = 'ospf:ospfv2'" {
description
"This augmentation is only valid for OSPFv2.";
}
description
"SR specific TLVs for OSPFv2 extended prefix LSA
in type 9 opaque LSA.";
augment "/rt:routing/" uses extended-prefix-range-tlvs;
+ "rt:control-plane-protocols/rt:control-plane-protocol/" }
+ "ospf:ospf/ospf:areas/"
+ "ospf:area/ospf:database/"
+ "ospf:area-scope-lsa-type/ospf:area-scope-lsas/"
+ "ospf:area-scope-lsa/ospf:version/ospf:ospfv2/"
+ "ospf:ospfv2/ospf:body/ospf:opaque/"
+ "ospf:extended-prefix-opaque" {
when "../../../../../../../../../../../"
+ "rt:type = 'ospf:ospfv2'" {
description
"This augmentation is only valid for OSPFv2.";
}
description
"SR specific TLVs for OSPFv2 extended prefix LSA
in type 10 opaque LSA.";
uses extended-prefix-range-tlvs; augment "/rt:routing/"
} + "rt:control-plane-protocols/rt:control-plane-protocol/"
+ "ospf:ospf/ospf:areas/"
+ "ospf:area/ospf:database/"
+ "ospf:area-scope-lsa-type/ospf:area-scope-lsas/"
+ "ospf:area-scope-lsa/ospf:version/ospf:ospfv2/"
+ "ospf:ospfv2/ospf:body/ospf:opaque/"
+ "ospf:extended-prefix-opaque" {
when "../../../../../../../../../../../"
+ "rt:type = 'ospf:ospfv2'" {
description
"This augmentation is only valid for OSPFv2.";
}
description
"SR specific TLVs for OSPFv2 extended prefix LSA
in type 10 opaque LSA.";
augment "/rt:routing/" uses extended-prefix-range-tlvs;
+ "rt:control-plane-protocols/rt:control-plane-protocol/" }
+ "ospf:ospf/ospf:database/"
+ "ospf:as-scope-lsa-type/ospf:as-scope-lsas/"
+ "ospf:as-scope-lsa/ospf:version/ospf:ospfv2/"
+ "ospf:ospfv2/ospf:body/ospf:opaque/"
+ "ospf:extended-prefix-opaque" {
when "../../../../../../../../../"
+ "rt:type = 'ospf:ospfv2'" {
description
"This augmentation is only valid for OSPFv2.";
}
description
"SR specific TLVs for OSPFv2 extended prefix LSA
in type 11 opaque LSA.";
uses extended-prefix-range-tlvs; augment "/rt:routing/"
} + "rt:control-plane-protocols/rt:control-plane-protocol/"
+ "ospf:ospf/ospf:database/"
+ "ospf:as-scope-lsa-type/ospf:as-scope-lsas/"
+ "ospf:as-scope-lsa/ospf:version/ospf:ospfv2/"
+ "ospf:ospfv2/ospf:body/ospf:opaque/"
+ "ospf:extended-prefix-opaque" {
when "../../../../../../../../../"
+ "rt:type = 'ospf:ospfv2'" {
description
"This augmentation is only valid for OSPFv2.";
}
description
"SR specific TLVs for OSPFv2 extended prefix LSA
in type 11 opaque LSA.";
augment "/rt:routing/" uses extended-prefix-range-tlvs;
+ "rt:control-plane-protocols/rt:control-plane-protocol/" }
+ "ospf:ospf/ospf:areas/ospf:area/"
+ "ospf:interfaces/ospf:interface/ospf:database/"
+ "ospf:link-scope-lsa-type/ospf:link-scope-lsas/"
+ "ospf:link-scope-lsa/ospf:version/ospf:ospfv2/"
+ "ospf:ospfv2/ospf:body/ospf:opaque/"
+ "ospf:extended-prefix-opaque/ospf:extended-prefix-tlv" {
when "../../../../../../../../../../../../../../"
+ "rt:type = 'ospf:ospfv2'" {
description
"This augmentation is only valid for OSPFv2.";
}
description
"SR specific TLVs for OSPFv2 extended prefix TLV
in type 9 opaque LSA.";
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:areas/" + "ospf:ospf/ospf:areas/ospf:area/"
+ "ospf:area/ospf:database/" + "ospf:interfaces/ospf:interface/ospf:database/"
+ "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/"
+ "ospf:area-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-opaque/ospf:extended-prefix-tlv" { + "ospf:extended-prefix-opaque/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 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:database/" + "ospf:ospf/ospf:areas/"
+ "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" + "ospf:area/ospf:database/"
+ "ospf:as-scope-lsa/ospf:version/ospf:ospfv2/" + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/"
+ "ospf:ospfv2/ospf:body/ospf:opaque/" + "ospf:area-scope-lsa/ospf:version/ospf:ospfv2/"
+ "ospf:extended-prefix-opaque/ospf:extended-prefix-tlv" { + "ospf:ospfv2/ospf:body/ospf:opaque/"
when "../../../../../../../../../../" + "ospf:extended-prefix-opaque/ospf:extended-prefix-tlv" {
+ "rt:type = 'ospf:ospfv2'" { when "../../../../../../../../../../../../"
description + "rt:type = 'ospf:ospfv2'" {
"This augmentation is only valid for OSPFv2."; description
} "This augmentation is only valid for OSPFv2.";
description }
"SR specific TLVs for OSPFv2 extended prefix TLV description
in type 11 opaque LSA."; "SR specific TLVs for OSPFv2 extended prefix TLV
uses prefix-sid-sub-tlvs; in type 10 opaque LSA.";
} 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:areas/" + "ospf:ospf/ospf:database/"
+ "ospf:area/ospf:database/" + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/"
+ "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" + "ospf:as-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-opaque/ospf:extended-prefix-tlv" {
+ "ospf:extended-link-opaque/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 prefix TLV
"SR specific TLVs for OSPFv2 extended link TLV in type 11 opaque LSA.";
in type 10 opaque LSA."; uses prefix-sid-sub-tlvs;
}
container adj-sid-sub-tlvs { augment "/rt:routing/"
description "Adjacency SID optional sub-TLVs."; + "rt:control-plane-protocols/rt:control-plane-protocol/"
list adj-sid-sub-tlv { + "ospf:ospf/ospf:areas/"
description "List of Adjacency SID sub-TLVs."; + "ospf:area/ospf:database/"
container adj-sid-flags { + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/"
leaf-list bits { + "ospf:area-scope-lsa/ospf:version/ospf:ospfv2/"
type identityref { + "ospf:ospfv2/ospf:body/ospf:opaque/"
base adj-sid-bit; + "ospf:extended-link-opaque/ospf:extended-link-tlv" {
} when "../../../../../../../../../../../../"
description "Adj sid sub-tlv flags list."; + "rt:type = 'ospf:ospfv2'" {
} description
description "Adj-sid sub-tlv flags."; "This augmentation is only valid for OSPFv2.";
} }
leaf mt-id { description
type uint8; "SR specific TLVs for OSPFv2 extended link TLV
description "Multi-topology ID."; in type 10 opaque LSA.";
}
leaf weight {
type uint8;
description "Weight used for load-balancing.";
}
leaf sid {
type uint32;
description "Segment Identifier (SID) index/label.";
}
}
}
container lan-adj-sid-sub-tlvs { container adj-sid-sub-tlvs {
description "LAN Adjacency SID optional sub-TLVs."; description "Adjacency SID optional sub-TLVs.";
list lan-adj-sid-sub-tlv { list adj-sid-sub-tlv {
description "List of LAN adjacency SID sub-TLVs."; description "List of Adjacency SID sub-TLVs.";
container lan-adj-sid-flags { container adj-sid-flags {
leaf-list bits { leaf-list bits {
type identityref { type identityref {
base adj-sid-bit; base adj-sid-bit;
} }
description "LAN adj sid sub-tlv flags list."; description "Adj sid sub-tlv flags list.";
} }
description "LAN adj-sid sub-tlv flags."; description "Adj-sid sub-tlv 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 sid {
type yang:dotted-quad; type uint32;
description "Neighbor router ID."; description "Segment Identifier (SID) index/label.";
} }
leaf sid { }
type uint32; }
description "Segment Identifier (SID) index/label.";
}
}
}
}
augment "/rt:routing/" container lan-adj-sid-sub-tlvs {
+ "rt:control-plane-protocols/rt:control-plane-protocol/" description "LAN Adjacency SID optional sub-TLVs.";
+ "ospf:ospf/ospf:areas/ospf:area/" list lan-adj-sid-sub-tlv {
+ "ospf:interfaces/ospf:interface/ospf:database/" description "List of LAN adjacency SID sub-TLVs.";
+ "ospf:link-scope-lsa-type/ospf:link-scope-lsas/" container lan-adj-sid-flags {
+ "ospf:link-scope-lsa/ospf:version/ospf:ospfv2/" leaf-list bits {
+ "ospf:ospfv2/ospf:body/ospf:opaque/ospf:ri-opaque" { type identityref {
when "../../../../../../../../../../../../../" base adj-sid-bit;
+ "rt:type = 'ospf:ospfv2'" { }
description description "LAN adj sid sub-tlv flags list.";
"This augmentation is only valid for OSPFv2."; }
} description "LAN adj-sid sub-tlv flags.";
}
leaf mt-id {
type uint8;
description "Multi-topology ID.";
}
leaf weight {
type uint8;
description "Weight used for load-balancing.";
}
leaf neighbor-router-id {
type yang:dotted-quad;
description "Neighbor router ID.";
}
leaf sid {
type uint32;
description "Segment Identifier (SID) index/label.";
}
}
}
}
description augment "/rt:routing/"
"SR specific TLVs for OSPFv2 type 9 opaque LSA."; + "rt:control-plane-protocols/rt:control-plane-protocol/"
+ "ospf:ospf/ospf:areas/ospf:area/"
+ "ospf:interfaces/ospf:interface/ospf:database/"
+ "ospf:link-scope-lsa-type/ospf:link-scope-lsas/"
+ "ospf:link-scope-lsa/ospf:version/ospf:ospfv2/"
+ "ospf:ospfv2/ospf:body/ospf:opaque/ospf:ri-opaque" {
when "../../../../../../../../../../../../../"
+ "rt:type = 'ospf:ospfv2'" {
description
"This augmentation is only valid for OSPFv2.";
}
uses sr-algorithm-tlv; description
uses sid-range-tlvs; "SR specific TLVs for OSPFv2 type 9 opaque LSA.";
uses local-block-tlvs;
uses srms-preference-tlv;
}
augment "/rt:routing/" uses sr-algorithm-tlv;
+ "rt:control-plane-protocols/rt:control-plane-protocol/" uses sid-range-tlvs;
+ "ospf:ospf/ospf:areas/" uses local-block-tlvs;
+ "ospf:area/ospf:database/" uses srms-preference-tlv;
+ "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" }
+ "ospf:area-scope-lsa/ospf:version/ospf:ospfv2/"
+ "ospf:ospfv2/ospf:body/ospf:opaque/ospf:ri-opaque" {
when "../../../../../../../../../../../"
+ "rt:type = 'ospf:ospfv2'" {
description
"This augmentation is only valid for OSPFv2.";
}
description augment "/rt:routing/"
"SR specific TLVs for OSPFv2 type 10 opaque LSA."; + "rt:control-plane-protocols/rt:control-plane-protocol/"
+ "ospf:ospf/ospf:areas/"
+ "ospf:area/ospf:database/"
+ "ospf:area-scope-lsa-type/ospf:area-scope-lsas/"
+ "ospf:area-scope-lsa/ospf:version/ospf:ospfv2/"
+ "ospf:ospfv2/ospf:body/ospf:opaque/ospf:ri-opaque" {
when "../../../../../../../../../../../"
+ "rt:type = 'ospf:ospfv2'" {
description
"This augmentation is only valid for OSPFv2.";
}
uses sr-algorithm-tlv; description
uses sid-range-tlvs; "SR specific TLVs for OSPFv2 type 10 opaque LSA.";
uses local-block-tlvs;
uses srms-preference-tlv;
}
augment "/rt:routing/" uses sr-algorithm-tlv;
+ "rt:control-plane-protocols/rt:control-plane-protocol/" uses sid-range-tlvs;
+ "ospf:ospf/ospf:database/" uses local-block-tlvs;
+ "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" uses srms-preference-tlv;
+ "ospf:as-scope-lsa/ospf:version/ospf:ospfv2/" }
+ "ospf:ospfv2/ospf:body/ospf:opaque/ospf:ri-opaque" {
when "../../../../../../../../../"
+ "rt:type = 'ospf:ospfv2'" {
description
"This augmentation is only valid for OSPFv2.";
}
description
"SR specific TLVs for OSPFv2 type 11 opaque LSA.";
uses sr-algorithm-tlv; augment "/rt:routing/"
uses sid-range-tlvs; + "rt:control-plane-protocols/rt:control-plane-protocol/"
uses local-block-tlvs; + "ospf:ospf/ospf:database/"
uses srms-preference-tlv; + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/"
} + "ospf:as-scope-lsa/ospf:version/ospf:ospfv2/"
} + "ospf:ospfv2/ospf:body/ospf:opaque/ospf:ri-opaque" {
<CODE ENDS> when "../../../../../../../../../"
+ "rt:type = 'ospf:ospfv2'" {
description
"This augmentation is only valid for OSPFv2.";
}
description
"SR specific TLVs for OSPFv2 type 11 opaque LSA.";
uses sr-algorithm-tlv;
uses sid-range-tlvs;
uses local-block-tlvs;
uses srms-preference-tlv;
}
}
<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
is HTTPS, and the mandatory-to-implement secure transport is TLS is HTTPS, and the mandatory-to-implement secure transport is TLS
[RFC8446]. [RFC8446].
skipping to change at page 32, line 24 skipping to change at page 32, line 24
namespace: urn:ietf:params:xml:ns:yang:ietf-ospf-msd namespace: urn:ietf:params:xml:ns:yang:ietf-ospf-msd
prefix: ospf-msd prefix: ospf-msd
reference: RFC XXXX reference: RFC XXXX
7. References 7. References
7.1. Normative References 7.1. Normative References
[I-D.ietf-ospf-yang] [I-D.ietf-ospf-yang]
Yeung, D., Qu, Y., Zhang, J., Chen, I., and A. Lindem, Yeung, D., Qu, Y., Zhang, J., Chen, I., and A. Lindem,
"YANG Data Model for OSPF Protocol", draft-ietf-ospf- "YANG Data Model for OSPF Protocol", Work in Progress,
yang-29 (work in progress), October 2019. Internet-Draft, draft-ietf-ospf-yang-29, 17 October 2019,
<https://www.ietf.org/archive/id/draft-ietf-ospf-yang-
29.txt>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328,
DOI 10.17487/RFC2328, April 1998, DOI 10.17487/RFC2328, April 1998,
<https://www.rfc-editor.org/info/rfc2328>. <https://www.rfc-editor.org/info/rfc2328>.
skipping to change at page 35, line 21 skipping to change at page 35, line 4
Kiran Koushik Agrahara Sreenivasa Kiran Koushik Agrahara Sreenivasa
Cisco Systems Cisco Systems
12515 Research Blvd, Bldg 4 12515 Research Blvd, Bldg 4
Austin, TX 78681 Austin, TX 78681
USA USA
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
Futurewei Futurewei
2330 Central Expressway 2330 Central Expressway
Santa Clara, CA 95050 Santa Clara, CA 95050
USA United States of America
EMail: yingzhen.qu@futurewei.com Email: yingzhen.qu@futurewei.com
Jeffrey Zhang Jeffrey Zhang
Juniper Networks Juniper Networks
10 Technology Park Drive 10 Technology Park Drive
Westford, MA 01886 Westford, MA 01886
USA United States of America
EMail: zzhang@juniper.net Email: zzhang@juniper.net
Ing-Wher Chen Ing-Wher Chen
The MITRE Corporation The MITRE Corporation
EMail: ingwherchen@mitre.org Email: ingwherchen@mitre.org
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. 86 change blocks. 
638 lines changed or deleted 640 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/