rfc9903v2.txt   rfc9903.txt 
skipping to change at line 73 skipping to change at line 73
Authors' Addresses Authors' Addresses
1. Overview 1. Overview
This document defines a YANG data model [RFC7950] that can be used to This document defines a YANG data model [RFC7950] that can be used to
manage OSPFv2 extensions for Segment Routing [RFC2328] [RFC8665] and manage OSPFv2 extensions for Segment Routing [RFC2328] [RFC8665] and
OSPFv3 extensions for Segment Routing [RFC5340] [RFC8666] over the OSPFv3 extensions for Segment Routing [RFC5340] [RFC8666] over the
MPLS data plane. The defined YANG data model is an augmentation to MPLS data plane. The defined YANG data model is an augmentation to
the OSPF YANG data model [RFC9129]. the OSPF YANG data model [RFC9129].
The YANG data model in this document conforms to the Network
Management Datastore Architecture (NMDA) [RFC8342].
1.1. Requirements Language 1.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in "OPTIONAL" in this document are to be interpreted as described in
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
1.2. Tree Diagrams 1.2. Tree Diagrams
skipping to change at line 104 skipping to change at line 101
both OSPFv2 [RFC8665] and OSPFv3 [RFC8666]. both OSPFv2 [RFC8665] and OSPFv3 [RFC8666].
The "ietf-ospf-sr-mpls" YANG module requires support for the base The "ietf-ospf-sr-mpls" YANG module requires support for the base
Segment Routing module [RFC9020], which defines the global Segment Segment Routing module [RFC9020], 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 the OSPF base model [RFC9129], which configuration, and support of the OSPF base model [RFC9129], which
defines the basic OSPF configuration and state. defines the basic OSPF configuration and state.
The "ietf-ospf-sr-mpls" module defines both the data nodes to The "ietf-ospf-sr-mpls" module defines both the data nodes to
configure OSPF Segment Routing MPLS extensions and the additions to configure OSPF Segment Routing MPLS extensions and the additions to
the OSPF Link State Advertisements (LSAs) necessary to support OSPF Link State Advertisements (LSAs) necessary to support Segment
Segment Routing over MPLS (SR-MPLS). The OSPF configuration Routing over MPLS (SR-MPLS). The OSPF configuration includes:
includes:
* OSPF instance level configuration imported from the "ietf-segment- * OSPF instance level configuration imported from the "ietf-segment-
routing-mpls" YANG module, including the mapping server bindings routing-mpls" YANG module, including the mapping server bindings
and the per-protocol Segment Routing Global Block (SRGB) (refer to and the per-protocol Segment Routing Global Block (SRGB) (refer to
the "sr-control-plane" grouping [RFC9020]). the "sr-control-plane" grouping [RFC9020]).
* OSPF area level configuration, which enables SR-MPLS on all * OSPF area level configuration, which enables SR-MPLS on all
interfaces as well as advertisement of SR-MPLS information in Link interfaces as well as advertisement of SR-MPLS information in Link
State Advertisements (LSAs). State Advertisements (LSAs).
skipping to change at line 347 skipping to change at line 343
"Base identity for Extended Prefix Range TLV flags."; "Base identity for Extended Prefix Range TLV flags.";
reference reference
"RFC 8665: OSPF Extensions for Segment Routing, Section 4 "RFC 8665: OSPF Extensions for Segment Routing, Section 4
RFC 8666: OSPFv3 Extensions for Segment Routing, Section 5"; RFC 8666: OSPFv3 Extensions for Segment Routing, Section 5";
} }
identity ia-flag { identity ia-flag {
base extended-prefix-range-flag; base extended-prefix-range-flag;
description description
"Inter-Area flag. Note that this is only applicable to OSPFv2 "Inter-Area flag. Note that this is only applicable to OSPFv2
since OSPFv3 advertises separate Inter-Area extended-LSA."; since OSPFv3 advertises separate Inter-Area extended-LSAs.";
reference reference
"RFC 8665: OSPF Extensions for Segment Routing, Section 4"; "RFC 8665: OSPF Extensions for Segment Routing, Section 4";
} }
identity adj-sid-flag { identity adj-sid-flag {
description description
"Base identity for Adj-SID Sub-TLV flags."; "Base identity for Adj-SID Sub-TLV flags.";
reference reference
"RFC 8665: OSPF Extensions for Segment Routing, Section 6 "RFC 8665: OSPF Extensions for Segment Routing, Section 6
RFC 8666: OSPFv3 Extensions for Segment Routing, Section 7"; RFC 8666: OSPFv3 Extensions for Segment Routing, Section 7";
skipping to change at line 499 skipping to change at line 495
} }
} }
grouping ospfv2-extended-prefix-range-tlvs { grouping ospfv2-extended-prefix-range-tlvs {
description description
"OSPFv2 Extended Prefix Range TLV grouping."; "OSPFv2 Extended Prefix Range TLV grouping.";
reference reference
"RFC 8665: OSPF Extensions for Segment Routing, Section 4"; "RFC 8665: OSPF Extensions for Segment Routing, Section 4";
container extended-prefix-range-tlvs { container extended-prefix-range-tlvs {
description description
"List of range of prefixes."; "List of prefix ranges.";
list extended-prefix-range-tlv { list extended-prefix-range-tlv {
description description
"Range of prefixes."; "Range of prefixes.";
leaf prefix-length { leaf prefix-length {
type uint8; type uint8;
description description
"Length of prefix in bits."; "Length of prefix in bits.";
} }
leaf af { leaf af {
type iana-rt-types:address-family; type iana-rt-types:address-family;
skipping to change at line 661 skipping to change at line 657
"RFC 8665: OSPF Extensions for Segment Routing, Section 3.2"; "RFC 8665: OSPF Extensions for Segment Routing, Section 3.2";
container sid-range-tlvs { container sid-range-tlvs {
description description
"List of SID Range TLVs."; "List of SID Range TLVs.";
list sid-range-tlv { list sid-range-tlv {
description description
"SID Range TLV."; "SID Range TLV.";
leaf range-size { leaf range-size {
type rt-types:uint24; type rt-types:uint24;
description description
"SID range."; "SID range. The return of a zero value would indicate
an error.";
} }
uses sid-tlv-encoding; uses sid-tlv-encoding;
} }
} }
} }
grouping local-block-tlvs { grouping local-block-tlvs {
description description
"The SR Local Block TLV contains the "The SR Local Block TLV contains the
range of labels reserved for local SIDs."; range of labels reserved for local SIDs.";
skipping to change at line 693 skipping to change at line 690
"SID range. The return of a zero value would indicate "SID range. The return of a zero value would indicate
an error."; an error.";
} }
uses sid-tlv-encoding; uses sid-tlv-encoding;
} }
} }
} }
grouping srms-preference-tlv { grouping srms-preference-tlv {
description description
"The SRMS Preference TLV is used to advertise a preference "The Segment Routing Mapping Server (SRMS) Preference TLV is
associated with the node that acts as an SRMS. SRMS used to advertise a preference associated with the node that
advertisements with a higher preference value are preferred acts as an SRMS. SRMS advertisements with a higher
over those with a lower preference value."; preference value are preferred over those with a lower
preference value.";
reference reference
"RFC 8665: OSPF Extensions for Segment Routing, Section 3.4"; "RFC 8665: OSPF Extensions for Segment Routing, Section 3.4";
container srms-preference-tlv { container srms-preference-tlv {
description description
"SRMS Preference TLV."; "SRMS Preference TLV.";
leaf preference { leaf preference {
type uint8; type uint8;
description description
"SRMS Preference TLV, value from 0 to 255 with "SRMS Preference TLV, value from 0 to 255 with
255 being the most preferred."; 255 being the most preferred.";
skipping to change at line 868 skipping to change at line 866
+ "/rt:control-plane-protocol/ospf:ospf" { + "/rt:control-plane-protocol/ospf:ospf" {
when "derived-from(/rt:routing/rt:control-plane-protocols/" when "derived-from(/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rt:type, 'ospf:ospf')" { + "rt:control-plane-protocol/rt:type, 'ospf:ospf')" {
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 with Segment "This augments the OSPF protocol configuration with Segment
Routing over the MPLS data plane. The following semantic Routing over the MPLS data plane. The following semantic
validation is to be performed for the configuration data: validation is to be performed for the configuration data:
- Assure the binding policies prefixes do not overlap."; - Assure prefixes specified in binding policies do not
overlap.";
reference reference
"RFC 9020: YANG Data Model for Segment Routing"; "RFC 9020: YANG Data Model for Segment Routing";
uses sr-mpls:sr-control-plane; uses sr-mpls:sr-control-plane;
container protocol-srgb { container protocol-srgb {
if-feature "sr-mpls:protocol-srgb"; if-feature "sr-mpls:protocol-srgb";
uses sr-cmn:srgb; uses sr-cmn:srgb;
description description
"Per-protocol SRGB."; "Per-protocol SRGB.";
} }
} }
skipping to change at line 933 skipping to change at line 932
uses sr-mpls:igp-interface { uses sr-mpls:igp-interface {
augment "segment-routing/adjacency-sid/adj-sids" { augment "segment-routing/adjacency-sid/adj-sids" {
when "((../../../ospf:interface-type = 'broadcast') or when "((../../../ospf:interface-type = 'broadcast') or
(../../../ospf:interface-type = 'non-broadcast'))" { (../../../ospf:interface-type = 'non-broadcast'))" {
description description
"This augments broadcast and non-broadcast multi-access "This augments broadcast and non-broadcast multi-access
interface with Segment Routing interface interface with Segment Routing interface
configuration."; configuration.";
} }
description description
"This augments LAN interface adj-sid with neighbor-id."; "This augments multi-access interface adj-sids with a
neighbor-id.";
leaf neighbor-id { leaf neighbor-id {
type inet:ip-address; type inet:ip-address;
mandatory true; mandatory true;
description description
"Neighbor's Router ID, IPv4 address, or IPv6 address. "Neighbor's Router ID, IPv4 address, or IPv6 address.
Specification is optional and, if specified, SHOULD Specification is optional and, if specified, SHOULD
specify a neighbor reachable via the interface."; specify a neighbor reachable via the interface.";
} }
} }
} }
skipping to change at line 1071 skipping to change at line 1071
"Value of the Adj-SID."; "Value of the Adj-SID.";
} }
leaf weight { leaf weight {
type uint8; type uint8;
description description
"Weight associated with the Adj-SID."; "Weight associated with the Adj-SID.";
} }
leaf protection-requested { leaf protection-requested {
type boolean; type boolean;
description description
"Describe if the Adj-SID is protected."; "Indicate if the Adj-SID is protected.";
} }
} }
} }
/* /*
* Augmentations for read-only data nodes corresponding to Segment * Augmentations for read-only data nodes corresponding to Segment
* Routing encodings in OSPFv2 and OSPFv3 Link State Advertisements * Routing encodings in OSPFv2 and OSPFv3 Link State Advertisements
* (LSAs) in OSPF Link State Databases (LSDBs) at the instance, * (LSAs) in OSPF Link State Databases (LSDBs) at the instance,
* area, and interface level. * area, and interface level.
*/ */
skipping to change at line 1413 skipping to change at line 1413
+ "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:e-inter-prefix-tlvs/"
+ "ospfv3-e-lsa:inter-prefix-tlv/" + "ospfv3-e-lsa:inter-prefix-tlv/"
+ "ospfv3-e-lsa:sub-tlvs" { + "ospfv3-e-lsa:sub-tlvs" {
when "derived-from(/rt:routing/rt:control-plane-protocols/" when "derived-from(/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rt:type, 'ospf:ospfv3')" { + "rt:control-plane-protocol/rt:type, 'ospf:ospfv3')" {
description description
"This augmentation is only valid for OSPFv3."; "This augmentation is only valid for OSPFv3.";
} }
description description
"SR Prefix-SID Sub-TLV in OSPFv3 Link-Scoped Intra-Area-Prefix "SR Prefix-SID Sub-TLV in OSPFv3 Intra-Area-Prefix
TLV for OSPFv3 E-Inter-Area-Prefix LSAs."; TLV for OSPFv3 E-Inter-Area-Prefix LSAs.";
reference reference
"RFC 8666: OSPFv3 Extensions for Segment Routing, Section 6"; "RFC 8666: OSPFv3 Extensions for Segment Routing, Section 6";
uses ospfv3-prefix-sid-sub-tlvs; uses ospfv3-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:database/"
+ "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/"
skipping to change at line 1479 skipping to change at line 1479
+ "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-router/" + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-router/"
+ "ospfv3-e-lsa:e-router-tlvs/ospfv3-e-lsa:link-tlv/" + "ospfv3-e-lsa:e-router-tlvs/ospfv3-e-lsa:link-tlv/"
+ "ospfv3-e-lsa:sub-tlvs" { + "ospfv3-e-lsa:sub-tlvs" {
when "derived-from(/rt:routing/rt:control-plane-protocols/" when "derived-from(/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rt:type, 'ospf:ospfv3')" { + "rt:control-plane-protocol/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.";
} }
description description
"SR Sub-TLVs in OSPFv3 link-tlv for OSPFv3 E-Router LSAs."; "SR Sub-TLVs in OSPFv3 Router-Link TLV for OSPFv3 E-Router
LSAs.";
reference reference
"RFC 8666: OSPFv3 Extensions for Segment Routing, Section 7"; "RFC 8666: OSPFv3 Extensions for Segment Routing, Section 7";
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;
} }
} }
<CODE ENDS> <CODE ENDS>
Figure 1 Figure 1
skipping to change at line 1721 skipping to change at line 1722
<https://www.rfc-editor.org/info/rfc6241>. <https://www.rfc-editor.org/info/rfc6241>.
[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
<https://www.rfc-editor.org/info/rfc8040>. <https://www.rfc-editor.org/info/rfc8040>.
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
<https://www.rfc-editor.org/info/rfc8340>. <https://www.rfc-editor.org/info/rfc8340>.
[RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
and R. Wilton, "Network Management Datastore Architecture
(NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018,
<https://www.rfc-editor.org/info/rfc8342>.
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
<https://www.rfc-editor.org/info/rfc8446>. <https://www.rfc-editor.org/info/rfc8446>.
[RFC8792] Watsen, K., Auerswald, E., Farrel, A., and Q. Wu, [RFC8792] Watsen, K., Auerswald, E., Farrel, A., and Q. Wu,
"Handling Long Lines in Content of Internet-Drafts and "Handling Long Lines in Content of Internet-Drafts and
RFCs", RFC 8792, DOI 10.17487/RFC8792, June 2020, RFCs", RFC 8792, DOI 10.17487/RFC8792, June 2020,
<https://www.rfc-editor.org/info/rfc8792>. <https://www.rfc-editor.org/info/rfc8792>.
[RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based [RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based
 End of changes. 12 change blocks. 
23 lines changed or deleted 19 lines changed or added

This html diff was produced by rfcdiff 1.48.