rfc9843v3.txt   rfc9843.txt 
skipping to change at line 160 skipping to change at line 160
This document defines a family of generic metrics that can advertise This document defines a family of generic metrics that can advertise
various types of administratively assigned metrics. This document various types of administratively assigned metrics. This document
introduces standard metric-types that have specific semantics and introduces standard metric-types that have specific semantics and
require standardization. This document also specifies user-defined require standardization. This document also specifies user-defined
metric-types where specifics are not defined so that administrators metric-types where specifics are not defined so that administrators
are free to assign semantics as they see fit. are free to assign semantics as they see fit.
Section 3 defines additional FAD [RFC9350] constraints that allow the Section 3 defines additional FAD [RFC9350] constraints that allow the
network administrator to preclude the use of low bandwidth links or network administrator to preclude the use of low bandwidth links or
high delay links. In Section 4, this document specifies a new high delay links. Section 4 specifies a new bandwidth-based metric-
bandwidth-based metric-type to be used with Flex-Algorithm and other type to be used with Flex-Algorithm and other applications.
applications.
Section 4.1 defines mechanisms to automatically calculate link Section 4.1 defines mechanisms to automatically calculate link
metrics based on the parameters defined in the FAD and the advertised metrics based on the parameters defined in the FAD and the advertised
Maximum Link Bandwidth of each link. This is advantageous because Maximum Link Bandwidth of each link. This is advantageous because
administrators can change their criteria for metric assignment administrators can change their criteria for metric assignment
centrally, without individual modification of each link metric centrally, without individual modification of each link metric
throughout the network. The procedures described in this document throughout the network. The procedures described in this document
are intended to assign a metric to a link based on the total link are intended to assign a metric to a link based on the total link
capacity, and they are not intended to update the metric based on capacity, and they are not intended to update the metric based on
actual traffic flow. Thus, the procedures described in this document actual traffic flow. Thus, the procedures described in this document
skipping to change at line 204 skipping to change at line 203
helpful, depending on the traffic class. Rather than attempt to helpful, depending on the traffic class. Rather than attempt to
enumerate all possible metrics of interest, this document specifies a enumerate all possible metrics of interest, this document specifies a
generic mechanism for advertising metrics. generic mechanism for advertising metrics.
Each generic metric advertisement is on a per-link and per-metric- Each generic metric advertisement is on a per-link and per-metric-
type basis. The metric advertisement consists of a metric-type field type basis. The metric advertisement consists of a metric-type field
and a value for the metric. The metric-type field has been assigned and a value for the metric. The metric-type field has been assigned
in the "IGP Metric-Type" IANA registry. Metric-types 0-127 are in the "IGP Metric-Type" IANA registry. Metric-types 0-127 are
standard metric-types as assigned by IANA. This document further standard metric-types as assigned by IANA. This document further
specifies a user-defined metric-type space of metric-types 128-255. specifies a user-defined metric-type space of metric-types 128-255.
These are user defined and can be assigned by an operator for local They can be assigned by an operator for local use.
use.
Implementations MUST support sending and receiving a Generic Metric Implementations MUST support sending and receiving a Generic Metric
sub-TLV in Application-Specific Link Attributes (ASLA) encodings as sub-TLV in Application-Specific Link Attributes (ASLA) encodings as
well as in TLV 22 and Extended Link Opaque Link State Advertisements well as in TLV 22 and Extended Link Opaque Link State Advertisements
(LSAs) [RFC7684] and TE-LSAs. The usage of a generic metric by an (LSAs) [RFC7684] and TE-LSAs. The usage of a generic metric by an
individual application is subject to the same rules that apply to individual application is subject to the same rules that apply to
other link attributes as defined in [RFC3630], [RFC5305], [RFC9479], other link attributes as defined in [RFC3630], [RFC5305], [RFC9479],
[RFC9492], and [RFC9350]. [RFC9492], and [RFC9350].
2.1. IS-IS Generic Metric Sub-TLV 2.1. IS-IS Generic Metric Sub-TLV
skipping to change at line 238 skipping to change at line 236
d. TLV 223 (MT IS Neighbor Attribute) [RFC5311] d. TLV 223 (MT IS Neighbor Attribute) [RFC5311]
e. TLV 141 (Inter-AS Reachability Information) [RFC9346] e. TLV 141 (Inter-AS Reachability Information) [RFC9346]
f. sub-TLV 16 (Application-Specific Link Attributes (ASLA)) of TLVs f. sub-TLV 16 (Application-Specific Link Attributes (ASLA)) of TLVs
22/222/23/223/141 [RFC9479] 22/222/23/223/141 [RFC9479]
g. TLV 25 (L2 Bundle Member Attributes) [RFC8668]. Marked as "y(s)" g. TLV 25 (L2 Bundle Member Attributes) [RFC8668]. Marked as "y(s)"
(shareable among bundle members). (shareable among bundle members).
The Generic Metric sub-TLV, type 17, is 6 octets in length.
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | metric-type | | Type | Length | metric-type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value | | Value |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: IS-IS Generic Metric Sub-TLV Figure 1: IS-IS Generic Metric Sub-TLV
skipping to change at line 330 skipping to change at line 326
f. sub-TLV of Application-Specific Link Attributes (ASLA) sub-TLV f. sub-TLV of Application-Specific Link Attributes (ASLA) sub-TLV
[RFC9492] of the OSPFv3 Router-Link TLV [RFC8362]. [RFC9492] of the OSPFv3 Router-Link TLV [RFC8362].
g. sub-TLV of the OSPFv2 L2 Bundle Member Attributes sub-TLV g. sub-TLV of the OSPFv2 L2 Bundle Member Attributes sub-TLV
[RFC9356]. [RFC9356].
h. sub-TLV of the OSPFv3 L2 Bundle Member Attributes sub-TLV h. sub-TLV of the OSPFv3 L2 Bundle Member Attributes sub-TLV
[RFC9356]. [RFC9356].
The Generic Metric sub-TLV, types 25/36/34, is eight octets in The Generic Metric sub-TLV, types 25/36/34, is 8 octets in length.
length.
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| metric-type | Reserved (MBZ) | | metric-type | Reserved (MBZ) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value | | Value |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at line 362 skipping to change at line 357
A 16-bit field indicating the total length, in octets, of the A 16-bit field indicating the total length, in octets, of the
subsequent fields. For this TLV, the Length is set to 8. subsequent fields. For this TLV, the Length is set to 8.
Metric-Type (1 octet): Metric-Type (1 octet):
An 8-bit field specifying the type of metric. The value is taken An 8-bit field specifying the type of metric. The value is taken
from the "IGP Metric-Type" registry maintained by IANA. The from the "IGP Metric-Type" registry maintained by IANA. The
metric-type may be any value that is indicated as allowed in the metric-type may be any value that is indicated as allowed in the
Generic Metric sub-TLV by the "IGP Metric-Type" registry. Generic Metric sub-TLV by the "IGP Metric-Type" registry.
Reserved (3 octets): Reserved (3 octets):
Must set to zero by the sender and must be ignored by the MUST set to zero by the sender and MUST be ignored by the
receiver. receiver.
Value (4 octets): Value (4 octets):
A 32-bit unsigned integer representing the metric value. The A 32-bit unsigned integer representing the metric value. The
valid range is from 0 to 4,294,967,295 (0xFFFFFFFF). valid range is from 0 to 4,294,967,295 (0xFFFFFFFF).
The Generic Metric sub-TLV MAY be advertised multiple times. For a The Generic Metric sub-TLV MAY be advertised multiple times. For a
particular metric-type, the Generic Metric sub-TLV MUST be advertised particular metric-type, the Generic Metric sub-TLV MUST be advertised
only once for a link when advertised as (a) through (d) above. When only once for a link when advertised as (a) through (d) above. When
the Generic Metric sub-TLV is advertised as a sub-TLV of ASLA, it the Generic Metric sub-TLV is advertised as a sub-TLV of ASLA, it
skipping to change at line 511 skipping to change at line 506
3.1.2. IS-IS Exclude Maximum Delay Sub-TLV 3.1.2. IS-IS Exclude Maximum Delay Sub-TLV
IS-IS Flex-Algorithm Exclude Maximum Delay (FAEMD) sub-TLV is a sub- IS-IS Flex-Algorithm Exclude Maximum Delay (FAEMD) sub-TLV is a sub-
TLV of the IS-IS FAD sub-TLV. It has the following format: TLV of the IS-IS FAD sub-TLV. It has the following format:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Max Link Delay | | Max Link Delay |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4: IS-IS FAEMD Sub-TLV Figure 4: IS-IS FAEMD Sub-TLV
where: where:
Type (1 octet): Type (1 octet):
An 8-bit field assigned by IANA (7). This value uniquely An 8-bit field assigned by IANA (7). This value uniquely
identifies the FAEMD sub-TLV. identifies the FAEMD sub-TLV.
Length (1 octet): Length (1 octet):
skipping to change at line 623 skipping to change at line 618
Type (2 octets): Type (2 octets):
A 16-bit field assigned by IANA (7). This value uniquely A 16-bit field assigned by IANA (7). This value uniquely
identifies the OSPF FAEMD sub-TLV. identifies the OSPF FAEMD sub-TLV.
Length (2 octets): Length (2 octets):
A 16-bit field indicating the total length, in octets, of the A 16-bit field indicating the total length, in octets, of the
subsequent fields. For this sub-TLV, the Length is set to 4. subsequent fields. For this sub-TLV, the Length is set to 4.
Reserved (1 octet): Reserved (1 octet):
Must be set to zero by the sender and must be ignored by the MUST be set to zero by the sender and MUST be ignored by the
receiver. receiver.
Max Link Delay (3 octets): Max Link Delay (3 octets):
A 24-bit field specifying the Maximum link delay in microseconds. A 24-bit field specifying the Maximum link delay in microseconds.
The FAEMD sub-TLV MUST only appear once in the OSPF FAD TLV. If it The FAEMD sub-TLV MUST only appear once in the OSPF FAD TLV. If it
appears more than once, the OSPF FAD TLV MUST be ignored by the appears more than once, the OSPF FAD TLV MUST be ignored by the
receiver. receiver.
The Min Delay value advertised via the Min/Max Unidirectional Link The Min Delay value advertised via the Min/Max Unidirectional Link
skipping to change at line 841 skipping to change at line 836
Flags (1 octet): Flags (1 octet):
An 8-bit field containing flags. An 8-bit field containing flags.
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|G| | |G| |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
G-flag: G-flag:
When set, Interface Group Mode MUST be used to derive total link When set, Interface Group Mode MUST be used to derive total link
bandwidth. Unassigned bits MUST be set to zero. bandwidth. Unassigned bits MUST be set to zero and MUST be
ignored by the receiver.
Reference Bandwidth (4 octets): Reference Bandwidth (4 octets):
A 32-bit field with Bandwidth encoded in IEEE floating point A 32-bit field with Bandwidth encoded in IEEE floating point
format [IEEE754-2019]. The units are bytes per second. format [IEEE754-2019]. The units are bytes per second.
Granularity Bandwidth (4 octets): Granularity Bandwidth (4 octets):
A 32-bit field with Bandwidth encoded in IEEE floating point A 32-bit field with Bandwidth encoded in IEEE floating point
format [IEEE754-2019]. The units are bytes per second. format [IEEE754-2019]. The units are bytes per second.
When granularity_bw is less than or equal to Total_link_bandwidth, When granularity_bw is less than or equal to Total_link_bandwidth,
skipping to change at line 943 skipping to change at line 939
where: where:
Type (1 octet): Type (1 octet):
An 8-bit field assigned by IANA (9). This value uniquely An 8-bit field assigned by IANA (9). This value uniquely
identifies the IS-IS FADBT sub-TLV. identifies the IS-IS FADBT sub-TLV.
Length (1 octet): Length (1 octet):
An 8-bit field indicating the total length, in octets, of the An 8-bit field indicating the total length, in octets, of the
subsequent fields. For this sub-TLV, the Length is calculated as subsequent fields. For this sub-TLV, the Length is calculated as
(1+n*7). Here, N is equal to the number of Threshold Metrics (1+N*7). Here, N is equal to the number of Threshold Metrics
specified. n MUST be greater than or equal to 1. specified. N MUST be greater than or equal to 1.
Flags (1 octet): Flags (1 octet):
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|G| | | | |G| | | |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
G-flag: When set, Interface Group Mode MUST be used to derive G-flag: When set, Interface Group Mode MUST be used to derive
total link bandwidth. total link bandwidth. Unassigned bits MUST be set to zero and
MUST be ignored by the receiver.
Unassigned bits MUST be set to zero.
Following is the staircase bandwidth threshold and associated metric Following is the staircase bandwidth threshold and associated metric
values. values.
Bandwidth Threshold 1 (4 octets): Bandwidth Threshold 1 (4 octets):
Minimum Link Bandwidth is encoded in IEEE floating point format Minimum Link Bandwidth is encoded in IEEE floating point format
(32 bits)[IEEE754-2019]. The units are bytes per second. (32 bits)[IEEE754-2019]. The units are bytes per second.
Threshold Metric 1 (3 octets): Threshold Metric 1 (3 octets):
Metric value range (1 - 16,777,215 (0xFFFFFF)) Metric value range (1 - 16,777,215 (0xFFFFFF))
Bandwidth Threshold n (4 octets): Bandwidth Threshold N (4 octets):
Maximum Link Bandwidth is encoded in IEEE floating point format Maximum Link Bandwidth is encoded in IEEE floating point format
(32 bits)[IEEE754-2019]. The units are bytes per second. (32 bits)[IEEE754-2019]. The units are bytes per second.
Threshold Metric n (3 octets): Threshold Metric N (3 octets):
Metric value range (1 - 16,777,215 (0xFFFFFF)) Metric value range (1 - 16,777,215 (0xFFFFFF))
When the G-flag is set, the cumulative bandwidth of the parallel When the G-flag is set, the cumulative bandwidth of the parallel
links is computed as described in Section 4.1.1.2. If the G-flag is links is computed as described in Section 4.1.1.2. If the G-flag is
not set, the advertised Maximum Link Bandwidth is used. not set, the advertised Maximum Link Bandwidth is used.
The assignment of the Bandwidth Metric based on computed link The assignment of the Bandwidth Metric based on computed link
bandwidth is described below. bandwidth is described below.
The Bandwidth Metric for a link during the Flex-Algorithm Shortest The Bandwidth Metric for a link during the Flex-Algorithm Shortest
skipping to change at line 1095 skipping to change at line 1090
A 16-bit field indicating the total length, in octets, of the A 16-bit field indicating the total length, in octets, of the
subsequent fields. For this sub-TLV, Length is set to 14. subsequent fields. For this sub-TLV, Length is set to 14.
Flags (1 octet): Flags (1 octet):
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|G| | | | |G| | | |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
G-flag: When set, Interface Group Mode MUST be used to derive G-flag: When set, Interface Group Mode MUST be used to derive
total link bandwidth. total link bandwidth. Unassigned bits MUST be set to zero and
MUST be ignored by the receiver.
Unassigned bits MUST be set to zero.
Reference Bandwidth (4 octets): Reference Bandwidth (4 octets):
Bandwidth encoded in 32 bits in IEEE floating point format Bandwidth encoded in 32 bits in IEEE floating point format
[IEEE754-2019]. The units are in bytes per second. [IEEE754-2019]. The units are in bytes per second.
Granularity Bandwidth (4 octets): Granularity Bandwidth (4 octets):
Bandwidth encoded in 32 bits in IEEE floating point format Bandwidth encoded in 32 bits in IEEE floating point format
[IEEE754-2019]. The units are in bytes per second. [IEEE754-2019]. The units are in bytes per second.
When granularity_bw is less than or equal to Total_link_bandwidth, When granularity_bw is less than or equal to Total_link_bandwidth,
skipping to change at line 1204 skipping to change at line 1198
octets. Here, N is equal to the number of Threshold Metrics octets. Here, N is equal to the number of Threshold Metrics
specified. N MUST be greater than or equal to 1. specified. N MUST be greater than or equal to 1.
Flags (1 octet): Flags (1 octet):
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|G| | |G| |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
G-flag: When set, Interface Group Mode MUST be used to derive G-flag: When set, Interface Group Mode MUST be used to derive
total link bandwidth. total link bandwidth. Unassigned bits MUST be set to zero and
MUST be ignored by the receiver.
Unassigned bits MUST be set to zero.
Following is the staircase bandwidth threshold and associated metric Following is the staircase bandwidth threshold and associated metric
values. values.
Bandwidth Threshold 1 (4 octets): Bandwidth Threshold 1 (4 octets):
Minimum Link Bandwidth is encoded in IEEE floating point format Minimum Link Bandwidth is encoded in IEEE floating point format
(32 bits)[IEEE754-2019]. The units are bytes per second. (32 bits)[IEEE754-2019]. The units are bytes per second.
Threshold Metric 1 (4 octets): Threshold Metric 1 (4 octets):
Metric value range (1 - 4,294,967,296 (0xFFFFFFFF)) Metric value range (1 - 4,294,967,296 (0xFFFFFFFF))
skipping to change at line 1342 skipping to change at line 1335
3. If the Generic Metric sub-TLV with Bandwidth metric-type is not 3. If the Generic Metric sub-TLV with Bandwidth metric-type is not
advertised for the link and the winning FAD (Section 5.3 of advertised for the link and the winning FAD (Section 5.3 of
[RFC9350]) for the Flex-Algorithm specifies the automatic [RFC9350]) for the Flex-Algorithm specifies the automatic
Bandwidth metric calculation (as defined in Section 4.1), the Bandwidth metric calculation (as defined in Section 4.1), the
Bandwidth Metric MUST be automatically calculated per the Bandwidth Metric MUST be automatically calculated per the
procedures defined in Section 4.1. If the Link Bandwidth is not procedures defined in Section 4.1. If the Link Bandwidth is not
advertised for a link, the link MUST be pruned for the Flex- advertised for a link, the link MUST be pruned for the Flex-
Algorithm calculations. Algorithm calculations.
4. In ISIS, for Flex-Algorithm purposes, the Link Bandwidth is 4. In IS-IS, for Flex-Algorithm purposes, the Link Bandwidth is
advertised as a sub-sub-TLV 9 of the Flex-Algorithm-specific ASLA advertised as a sub-sub-TLV 9 of the Flex-Algorithm-specific ASLA
sub-TLV. It is also possible to advertise the link bandwidth or sub-TLV. It is also possible to advertise the link bandwidth or
Flex-Algorithm in sub-TLV 9 of TLVs 22/222/23/223/141 [RFC5305] Flex-Algorithm in sub-TLV 9 of TLVs 22/222/23/223/141 [RFC5305]
together with the L-flag set in the Flex-Algorithm-specific ASLA together with the L-flag set in the Flex-Algorithm-specific ASLA
advertisement. In the absence of both of these advertisements, advertisement. In the absence of both of these advertisements,
the bandwidth of the link is not available for Flex-Algorithm the bandwidth of the link is not available for Flex-Algorithm
purposes. purposes.
6. Calculation of Flex-Algorithm Paths 6. Calculation of Flex-Algorithm Paths
 End of changes. 15 change blocks. 
29 lines changed or deleted 22 lines changed or added

This html diff was produced by rfcdiff 1.48.