Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
142 changes: 82 additions & 60 deletions drafts/te-types-update/draft-ietf-teas-rfc8776-update.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,13 @@ contributor:
email: rgandhi@cisco.com

normative:
ITU-T_G.709:
title: Interfaces for the optical transport network
ISOIEC_9899:
title: Information Technology - Programming Languages - C
author:
org: International Telecommunication Union
date: June 2020
seriesinfo: ITU-T G.709
target: https://www.itu.int/rec/T-REC-G.709
org: International Organization for Standardization (ISO) and International Electrotechnical Commission (IEC)
date: October 2024
seriesinfo: ISO/IEC 9899:2024
target: https://www.iso.org/standard/82075.html

informative:
MEF_10.3:
Expand Down Expand Up @@ -85,19 +85,46 @@ statements is not a backward compatible change, as defined in {{Section 11 of !R

This document adds new common data types, identities, and groupings to both the "ietf-te-types" and the "ietf-te-packet-types" YANG modules and obsoletes {{?RFC8776}}. For further details, refer to {{changes-bis}}.

## Editorial Note (To be removed by Editors of this document before sending it to the RFC Editor)

> Note to the RFC Editor: This section is to be removed this document is sent to the RFC Editor.

The YANG trees in {{yang-tree}} have been generated by pyang and have some bugs to be fixed before publication. Please manually fix the YANG tree before sending the document to the RFC Editor.

## Editorial Note (To be removed by the RFC Editor)

Note to the RFC Editor: This section is to be removed prior to
publication.
> Note to the RFC Editor: This section is to be removed prior to publication.

This document contains placeholder values that need to be replaced
with finalized values at the time of publication. This note
summarizes all of the substitutions that are needed.

Please apply the following replacements:

- XXXX --> the assigned RFC number for this I-D
- draft-ietf-pce-sid-algo-29, Sections 4.5.1 and 4.5.2 --> the draft version and section number as in the latest version of {{?I-D.ietf-pce-sid-algo}} at the time this document is published as an RFC
- 2026-01-15 --> the actual date of the publication of this document
- 2026-01-23 --> the actual date of the publication of this document

### References to RFCs

This document references a huge number of RFCs only by the RFC number which makes it really hard to follow.

A preference has been expressed to replace the references with the RFC title in the text and just use RFC number as a reference.

For example:

This document contains placeholder values that need to be replaced
with finalized values at the time of publication. This note
summarizes all of the substitutions that are needed.
In section 1 change:

Please apply the following replacements:
> Section 4.12 of {{?I-D.ietf-netmod-rfc8407bis}} and Section 4.13 of
{{?I-D.ietf-netmod-rfc8407bis}}.

* XXXX --> the assigned RFC number for this I-D
* 2025-12-19 --> the actual date of the publication of this document
to

> Section 4.12 and Section 4.13 of YANG Data Models guidelines
document {{?I-D.ietf-netmod-rfc8407bis}}.

It is suggested that the RFC Editor and the tooling team identify a way to expand the references as proposed in a programmatic way.

## Terminology

Expand All @@ -113,8 +140,8 @@ This document adds new common data types, identities, and groupings to both the
corresponding YANG imported modules, as shown in {{tab-prefixes}}.

| Prefix | YANG module | Reference
| yang | ietf-yang-types | {{Section 3 of !RFC6991}}
| inet | ietf-inet-types | {{Section 4 of !RFC6991}}
| yang | ietf-yang-types | {{Section 3 of !RFC9911}}
| inet | ietf-inet-types | {{Section 4 of !RFC9911}}
| rt-types | ietf-routing-types | {{!RFC8294}}
| te-types | ietf-te-types | RFC XXXX
| te-packet-types | ietf-te-packet-types | RFC XXXX
Expand All @@ -127,57 +154,48 @@ Tree diagrams used in this document follow the notation defined in {{?RFC8340}}.
# Acronyms and Abbreviations

APS:
: Automatic Protection Switching

DS-TE:
: Differentiated Services Traffic Engineering
: Automatic Protection Switching {{?RFC7271}}

GMPLS:
: Generalized Multiprotocol Label Switching
: Generalized Multiprotocol Label Switching {{?RFC3945}}

LER:
: Label Edge Router
: Label Edge Router {{?RFC5921}}

LSP:
: Label Switched Path
: Label Switched Path {{?RFC3031}}

LSR:
: Label Switching Router
: Label Switching Router {{?RFC3031}}

MPLS:
: Multiprotocol Label Switching
: Multiprotocol Label Switching {{?RFC3031}}

NBMA:
: Non-Broadcast Multi-Access
: Non-Broadcast Multi-Access {{?RFC2328}}

PM:
: Performance Metrics
: Performance Metrics {{?RFC2330}}

RSVP:
: Resource Reservation Protocol

SD:
: Signal Degrade

SF:
: Signal Fail
: Resource Reservation Protocol {{?RFC2205}}

SRLG:
: Shared Risk Link Group
: Shared Risk Link Group {{?RFC4203}}

TE:
: Traffic Engineering
: Traffic Engineering {{?RFC9522}}

WTR:
: Wait-to-Restore
: Wait-to-Restore {{?RFC6378}}

# Overview {#overview}

This document defines two YANG modules for common TE types: "ietf-te-types" ({{te-yang-code}}) for TE generic types and "ietf-te-packet-types" ({{pkt-yang-code}}) for packet-specific types. Other technology-specific TE types are outside the scope of this document.

## TE Types Module Contents

The "ietf-te-types" module ({{te-yang-code}}) contains common TE types that are independent and agnostic of any specific technology or control-plane instance.
The "ietf-te-types" module ({{te-yang-code}}) contains TE types that are commonly used across multiple TE technology-specific modules.

### Identities

Expand Down Expand Up @@ -220,7 +238,7 @@ resource-affinities-type:

path-metric-type:
: A base identity for supported path metric types as defined in {{!RFC3630}}, {{!RFC3785}}, {{!RFC5440}}, {{!RFC7471}}, {{!RFC8233}}, {{!RFC8570}}, and {{?I-D.ietf-pce-sid-algo}}.
: The unit of the path metric value is interpreted in the context of the path metric type. The derived identities SHOULD describe the unit and maximum value of the path metric types they define.
: The unit of the path metric value is interpreted in the context of the path metric type. The derived identities MUST describe the unit and maximum value of the path metric types they define.
: For example, the measurement unit is not applicable for the number of hops metric ('path-metric-hop'). Conversely, the bound of the 'path-metric-loss', defined in 'ietf-te-packet-types', is defined in multiples of the basic unit 0.000003% as described in {{!RFC7471}} and {{!RFC8570}}.

lsp-provisioning-error-reason:
Expand Down Expand Up @@ -254,7 +272,7 @@ path-computation-error-no-dependent-server:
The derived identities are defined in the "ietf-te-types" module, instead of an IANA-maintained module, because there are error reasons which are:

1. applicable only to the TE YANG modules and not to PCEP environments (e.g., path-computation-error-no-topology);
1. technology-specific (e.g., No RWA constraints met) which are better defined in technology-specific YANG modules;
1. technology-specific which are better defined in technology-specific YANG modules;
1. match more than one PCEP number in order to hide the details of the underlay PCE architecture (e.g., path-computation-error-no-dependent-server).

#### Protocol Origin {#protocol-origin}
Expand Down Expand Up @@ -283,7 +301,7 @@ te-global-id:
: A type representing the identifier that uniquely identifies an operator, which can be either a provider or a client. The definition of this type is taken from {{Section 3 of !RFC6370}} and {{Section 3 of !RFC5003}}. This attribute type is used solely to provide a globally unique context for TE topologies.

te-node-id:
: A type representing the identifier for a node in a TE topology. The identifier is represented either as 4-octet in dotted-quad notation or as 16-octet in full, mixed, shortened, or shortened-mixed IPv6 address notation.
: A type representing the identifier for a node in a TE topology. The identifier is represented either as 4-octet in dotted-quad notation or as 16-octet in an {{!RFC5952}} IPv6 address notation.
: This attribute MAY be mapped to the Router Address TLV described in {{Section 2.4.1 of !RFC3630}}, the TE Router ID described in {{Section 6.2 of !RFC6827}}, the Traffic Engineering Router ID TLV described in {{Section 4.3 of !RFC5305}}, or the TE Router ID TLV described in {{Section 3.2.1 of !RFC6119}}.
: The reachability of such a TE node MAY be achieved by a mechanism such as that described in {{Section 6.2 of !RFC6827}}.

Expand Down Expand Up @@ -351,9 +369,9 @@ bc-model-type:
: A base identity for supported Diffserv-TE Bandwidth Constraints Models as defined in {{?RFC4125}}, {{?RFC4126}}, and {{?RFC4127}}.

bandwidth-profile-type:
: A base identity for various bandwidth profiles, also known as traffic profiles in {{Section 2.3.2 of ?RFC2475}}, as specified in {{MEF_10.3}}, {{?RFC2697}} and {{?RFC2698}}, that may be used to specify the temporal properties of a packet stream (e.g., MPLS-TE LSPs).
: A base identity for various bandwidth profiles, also known as traffic profiles in {{Section 2.3.2 of ?RFC2475}}, that may be used to specify the temporal properties of a packet stream (e.g., MPLS-TE LSPs), e.g., as specified in {{MEF_10.3}}, {{?RFC2697}} and {{?RFC2698}}.

### Data Types
### Data TypesI

The "ietf-te-packet-types" module contains the following YANG reusable data type:

Expand Down Expand Up @@ -382,28 +400,34 @@ te-packet-link-bandwidth:

The "ietf-te-types" module imports the following modules:

- "ietf-yang-types" and "ietf-inet-types" as defined in {{!RFC6991}}
- "ietf-yang-types" and "ietf-inet-types" as defined in {{!RFC9911}}

- "ietf-routing-types" as defined in {{!RFC8294}}

In addition to {{!RFC6991}} and {{!RFC8294}}, this module references the following documents in defining the types and YANG groupings:
{{?RFC9522}}, {{!RFC4090}}, {{!RFC4202}}, {{!RFC4328}}, {{!RFC4561}}, {{?RFC4657}}, {{?RFC4736}}, {{!RFC6004}}, {{!RFC6378}}, {{!RFC6511}}, {{!RFC7139}}, {{!RFC7271}}, {{!RFC7308}}, {{!RFC7551}}, {{!RFC7571}}, {{!RFC7579}}, and {{ITU-T_G.709}}.
- "ietf-network" and "ietf-network-topology" as defined in {{!RFC8345}}

In addition to {{!RFC9911}} and {{!RFC8294}}, this module references the following documents in defining the types and YANG groupings:
{{?RFC9522}}, {{!RFC4090}}, {{!RFC4202}}, {{!RFC4328}}, {{!RFC4561}}, {{?RFC4657}}, {{?RFC4736}}, {{!RFC6004}}, {{!RFC6378}}, {{!RFC6511}}, {{!RFC7139}}, {{!RFC7271}}, {{!RFC7308}}, {{!RFC7551}}, {{!RFC7571}}, {{!RFC7579}}, and {{ISOIEC_9899}}.

~~~~ yang
{::include-fold ../../ietf-te-types.yang}
~~~~
{: #fig-te-yang title="TE Types YANG module"
sourcecode-markers="true" sourcecode-name="ietf-te-types@2025-12-19.yang"}
sourcecode-markers="true" sourcecode-name="ietf-te-types@2026-01-23.yang"}

# Packet TE Types YANG Module {#pkt-yang-code}

The "ietf-te-packet-types" module imports from the "ietf-te-types" module defined in {{te-yang-code}} of this document.
The "ietf-te-packet-types" module imports the following modules:

- "ietf-yang-types" as defined in {{!RFC9911}}

- "ietf-te-types" as defined in {{te-yang-code}} of this document

~~~~ yang
{::include-fold ../../ietf-te-packet-types.yang}
~~~~
{: #fig-pkt-yang title="Packet TE Types YANG module"
sourcecode-markers="true" sourcecode-name="ietf-te-packet-types@2025-12-19.yang"}
sourcecode-markers="true" sourcecode-name="ietf-te-packet-types@2026-01-15.yang"}

# IANA Considerations

Expand Down Expand Up @@ -464,15 +488,13 @@ For example using 'explicit-route-hop', 'record-route-state' or 'te-topology-ide

--- back

# The Complete Schema Trees
# The Complete Schema Trees {#yang-tree}

This appendix presents the complete tree of the TE and Packet TE types data
model.
See {{?RFC8340}} for an explanation of the symbols used.
The data type of every leaf node is shown near the right end of the corresponding line.

> Editors' Note: The YANG trees have been generated by pyang and have some bugs to be fixed before publication. Please manually fix the YANG tree before sending the document to the RFC EDITOR.

## TE Types Schema Tree

~~~~ ascii-art
Expand Down Expand Up @@ -595,11 +617,11 @@ The following groupings, already defined in {{!RFC8776}}, have been updated in t

- link-tp-id.

The mandatory true statements for the node-id and link-tp-id have been replaced by must statements that requires at least the presence of:
The "mandatory true" statements for the node-id and link-tp-id have been replaced by "must" statements that requires at least the presence of:

- node-id or node-id-uri;
- node-id or node-id-uri;

- link-tp-id or link-tp-id-uri.
- link-tp-id or link-tp-id-uri.

- explicit-route-hop

Expand All @@ -615,11 +637,11 @@ The following groupings, already defined in {{!RFC8776}}, have been updated in t

- link-tp-id.

The mandatory true statements for the node-id and link-tp-id have been replaced by must statements that requires at least the presence of:
The "mandatory true" statements for the node-id and link-tp-id have been replaced by "must" statements that requires at least the presence of:

- node-id or node-id-uri;
- node-id or node-id-uri;

- link-tp-id or link-tp-id-uri.
- link-tp-id or link-tp-id-uri.

- optimization-metric-entry:

Expand All @@ -631,7 +653,7 @@ The following groupings, already defined in {{!RFC8776}}, have been updated in t

- tunnel-constraints;

The following new leaf have been added to the 'tunnel-constraints' grouping:
The following new leaf has been added to the 'tunnel-constraints' grouping:

- network-id;

Expand All @@ -657,7 +679,7 @@ The following groupings, already defined in {{!RFC8776}}, have been updated in t

- generic-path-optimization

The following new leaf have been added to the 'generic-path-optimization' grouping:
The following new leaf has been added to the 'generic-path-optimization' grouping:

- tiebreaker;

Expand Down
Loading