IS-IS TE: Intermediate System to Intermediate System (IS-IS) Extensions for Traffic Engineering (TE)
Extra IS-IS link state information so routers can compute explicit paths, not just shortest ones.
Smit, H. and T. Li, "Intermediate System to Intermediate System (IS-IS) Extensions for Traffic Engineering (TE)", RFC 3784, DOI 10.17487/RFC3784, June 2004, <https://www.rfc-editor.org/info/rfc3784>.
@misc{rfc3784,
series = {Request for Comments},
number = 3784,
howpublished = {RFC 3784},
publisher = {RFC Editor},
doi = {10.17487/RFC3784},
url = {https://www.rfc-editor.org/info/rfc3784},
author = {H. Smit and T. Li},
title = {{Intermediate System to Intermediate System (IS-IS) Extensions for Traffic Engineering (TE)}},
pagetotal = 13,
year = 2004,
month = jun,
} RFC text
Contents
Network Working Group H. Smit
Request for Comments: 3784 Procket Networks
Category: Informational T. Li
June 2004
Intermediate System to Intermediate System (IS-IS)
Extensions for Traffic Engineering (TE)
Status of this Memo
This memo provides information for the Internet community. It does
not specify an Internet standard of any kind. Distribution of this
memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (2004).
Abstract
This document describes extensions to the Intermediate System to
Intermediate System (IS-IS) protocol to support Traffic Engineering
(TE). This document extends the IS-IS protocol by specifying new
information that an Intermediate System (router) can place in Link
State Protocol (LSP) Data Units. This information describes
additional details regarding the state of the network that are useful
for traffic engineering computations.
1. Introduction
The IS-IS protocol is specified in ISO 10589 [1], with extensions for
supporting IPv4 specified in RFC 1195 [3]. Each Intermediate System
(IS) (router) advertises one or more IS-IS Link State Protocol Data
Units (LSPs) with routing information. Each LSP is composed of a
fixed header and a number of tuples, each consisting of a Type, a
Length, and a Value. Such tuples are commonly known as TLVs, and are
a good way of encoding information in a flexible and extensible
format.
This document contains the design of new TLVs to replace the existing
IS Neighbor TLV, IP Reachability TLV, and to include additional
information about the characteristics of a particular link to an IS-
IS LSP. The characteristics described in this document are needed
for Traffic Engineering [4] (TE). Secondary goals include increasing
the dynamic range of the IS-IS metric and improving the encoding of
IP prefixes.
The router id is useful for traffic engineering purposes because it
describes a single address that can always be used to reference a
particular router.
Mechanisms and procedures to migrate to the new TLVs are not
discussed in this document.
2. Introducing Sub-TLVs
This document introduces a new way to encode routing information in
IS-IS. The new object is called a sub-TLV. Sub-TLVs are similar to
regular TLVs. They use the same concepts as regular TLVs. The
difference is that TLVs exist inside IS-IS packets, while sub-TLVs
exist inside TLVs. TLVs are used to add extra information to IS-IS
packets. Sub-TLVs are used to add extra information to particular
TLVs. Each sub-TLV consists of three fields, a one-octet Type field,
a one-octet Length field, and zero or more octets of Value. The Type
field indicates the type of items in the Value field. The Length
field indicates the length of the Value field in octets. Each sub-
TLV can potentially hold multiple items. The number of items in a
sub-TLV can be computed from the length of the whole sub-TLV, when
the length of each item is known. Unknown sub-TLVs are to be ignored
and skipped upon receipt.
The Sub-TLV type space is managed by the IETF IS-IS WG
(http://www.ietf.org/html.charters/isis-charter.html). New type
values are allocated following review on the IETF IS-IS mailing list.
This will normally require publication of additional documentation
describing how the new type is used. In the event that the IS-IS
working group has disbanded the review shall be performed by a
Designated Expert assigned by the responsible Area Director.
3. The Extended IS Reachability TLV
The extended IS reachability TLV is TLV type 22.
The existing IS reachability (TLV type 2, defined in ISO 10589 [1])
contains information about a series of IS neighbors. For each
neighbor, there is a structure that contains the default metric, the
delay, the monetary cost, the reliability, and the 7-octet ID of the
adjacent neighbor. Of this information, the default metric is
commonly used. The default metric is currently one octet, with one
bit used to indicate whether the metric is internal or external, and
one bit that was originally unused, but which was later defined by
RFC 2966 to be the up/down bit. The remaining 6 bits are used to
store the actual metric, resulting in a possible metric range of 0-
63. This limitation is one of the restrictions that we would like to
lift.
The remaining three metrics (delay, monetary cost, and reliability)
are not commonly implemented and reflect unused overhead in the TLV.
The neighbor is identified by its system ID, typically 6-octets, plus
one octet indicating the pseudonode number. Thus, the existing TLV
consumes 11 octets per neighbor, with 4 octets for metric and 7
octets for neighbor identification. To indicate multiple
adjacencies, this structure is repeated within the IS reachability
TLV. Because the TLV is limited to 255 octets of content, a single
TLV can describe up to 23 neighbors. The IS reachability TLV can be
repeated within the LSP fragments to describe further neighbors.
The proposed extended IS reachability TLV contains a new data
structure, consisting of:
7 octets of system Id and pseudonode number
3 octets of default metric
1 octet of length of sub-TLVs
0-244 octets of sub-TLVs,
where each sub-TLV consists of a sequence of
1 octet of sub-type
1 octet of length of the value field of the sub-TLV
0-242 octets of value
Thus, if no sub-TLVs are used, the new encoding requires 11 octets
and can contain up to 23 neighbors. Please note that while the
encoding allows for 255 octets of sub-TLVs, the maximum value cannot
fit in the overall IS reachability TLV. The practical maximum is 255
octets minus the 11 octets described above, or 244 octets. Further,
there is no defined mechanism for extending the sub-TLV space for a
particular neighbor. Thus, wasting sub-TLV space is discouraged.
The metric octets are encoded as a 24-bit unsigned integer. Note
that the metric field in the new extended IP reachability TLV is
encoded as a 32-bit unsigned integer. These different sizes were
chosen so that it is very unlikely that the cost of an intra-area
route has to be chopped off to fit in the metric field of an inter-
area route.
To preclude overflow within a traffic engineering SPF implementation,
all metrics greater than or equal to MAX_PATH_METRIC SHALL be
considered to have a metric of MAX_PATH_METRIC. It is easiest to
select MAX_PATH_METRIC such that MAX_PATH_METRIC plus a single link
metric does not overflow the number of bits for internal metric
calculation. We assume that this is 32 bits. Therefore, we have
chosen MAX_PATH_METRIC to be 4,261,412,864 (0xFE000000, 2^32 - 2^25).
If a link is advertised with the maximum link metric (2^24 - 1), this
link MUST NOT be considered during the normal SPF computation. This
will allow advertisement of a link for purposes other than building
the normal Shortest Path Tree. An example is a link that is
available for traffic engineering, but not for hop-by-hop routing.
Certain sub-TLVs are proposed here:
Sub-TLV type Length (octets) Name
3 4 Administrative group (color)
6 4 IPv4 interface address
8 4 IPv4 neighbor address
9 4 Maximum link bandwidth
10 4 Reservable link bandwidth
11 32 Unreserved bandwidth
18 3 TE Default metric
250-254 Reserved for cisco specific extensions
255 Reserved for future expansion
Each of these sub-TLVs is described below. Unless stated otherwise,
multiple occurrences of the information are supported by multiple
inclusions of the sub-TLV.
3.1. Sub-TLV 3: Administrative group (color, resource class)
The administrative group sub-TLV contains a 4-octet bit mask assigned
by the network administrator. Each set bit corresponds to one
administrative group assigned to the interface.
By convention, the least significant bit is referred to as 'group 0',
and the most significant bit is referred to as 'group 31'.
This sub-TLV is OPTIONAL. This sub-TLV SHOULD appear once at most in
each extended IS reachability TLV.
3.2. Sub-TLV 6: IPv4 interface address
This sub-TLV contains a 4-octet IPv4 address for the interface
described by the (main) TLV. This sub-TLV can occur multiple times.
Implementations MUST NOT inject a /32 prefix for the interface
address into their routing or forwarding table because this can lead
to forwarding loops when interacting with systems that do not support
this sub-TLV.
If a router implements the basic TLV extensions in this document, it
MAY add or omit this sub-TLV from the description of an adjacency.
If a router implements traffic engineering, it MUST include this
sub-TLV.
3.3. Sub-TLV 8: IPv4 neighbor address
This sub-TLV contains a single IPv4 address for a neighboring router
on this link. This sub-TLV can occur multiple times.
Implementations MUST NOT inject a /32 prefix for the neighbor address
into their routing or forwarding table because this can lead to
forwarding loops when interacting with systems that do not support
this sub-TLV.
If a router implements the basic TLV extensions in this document, it
MAY add or omit this sub-TLV from the description of an adjacency.
If a router implements traffic engineering, it MUST include this
sub-TLV on point-to-point adjacencies.
3.4. Sub-TLV 9: Maximum link bandwidth
This sub-TLV contains the maximum bandwidth that can be used on this
link in this direction (from the system originating the LSP to its
neighbors). This is useful for traffic engineering.
The maximum link bandwidth is encoded in 32 bits in IEEE floating
point format. The units are bytes (not bits!) per second.
This sub-TLV is optional. This sub-TLV SHOULD appear once at most in
each extended IS reachability TLV.
3.5. Sub-TLV 10: Maximum reservable link bandwidth
This sub-TLV contains the maximum amount of bandwidth that can be
reserved in this direction on this link. Note that for
oversubscription purposes, this can be greater than the bandwidth of
the link.
The maximum reservable link bandwidth is encoded in 32 bits in IEEE
floating point format. The units are bytes (not bits!) per second.
This sub-TLV is optional. This sub-TLV SHOULD appear once at most in
each extended IS reachability TLV.
3.6. Sub-TLV 11: Unreserved bandwidth
This sub-TLV contains the amount of bandwidth reservable in this
direction on this link. Note that for oversubscription purposes,
this can be greater than the bandwidth of the link.
Because of the need for priority and preemption, each head end needs
to know the amount of reserved bandwidth at each priority level.
Thus, this sub-TLV contains eight 32 bit IEEE floating point numbers.
The units are bytes (not bits!) per second. The values correspond to
the bandwidth that can be reserved with a setup priority of 0 through
7, arranged in increasing order with priority 0 occurring at the
start of the sub-TLV, and priority 7 at the end of the sub-TLV.
For stability reasons, rapid changes in the values in this sub-TLV
SHOULD NOT cause rapid generation of LSPs.
This sub-TLV is optional. This sub-TLV SHOULD appear once at most in
each extended IS reachability TLV.
3.7. Sub-TLV 18: Traffic Engineering Default Metric
This sub-TLV contains a 24-bit unsigned integer. This metric is
administratively assigned and can be used to present a differently
weighted topology to traffic engineering SPF calculations.
To preclude overflow within a traffic engineering SPF implementation,
all metrics greater than or equal to MAX_PATH_METRIC SHALL be
considered to have a metric of MAX_PATH_METRIC. It is easiest to
select MAX_PATH_METRIC such that MAX_PATH_METRIC plus a single link
metric does not overflow the number of bits for internal metric
calculation. We assume that this is 32 bits. Therefore, we have
chosen MAX_PATH_METRIC to be 4,261,412,864 (0xFE000000, 2^32 - 2^25).
This sub-TLV is optional. This sub-TLV SHOULD appear once at most in
each extended IS reachability TLV. If a link is advertised without
this sub-TLV, traffic engineering SPF calculations MUST use the
normal default metric of this link, which is advertised in the fixed
part of the extended IS reachability TLV.
4. The Extended IP Reachability TLV
The extended IP reachability TLV is TLV type 135.
The existing IP reachability TLVs (TLV type 128 and TLV type 130,
defined in RFC 1195 [3]) carry IP prefixes in a format that is
analogous to the IS neighbor TLV from ISO 10589 [1]. They carry four
metrics, of which only the default metric is commonly used. The
default metric has a possible range of 0-63. We would like to remove
this restriction.
In addition, route redistribution (a.k.a. route leaking) has a key
problem that was not fully addressed by the existing IP reachability
TLVs. RFC 1195 [3] allows a router to advertise prefixes upwards in
the level hierarchy. Unfortunately there were no mechanisms defined
to advertise prefixes downwards in the level hierarchy.
To address these two issues, the proposed extended IP reachability
TLV provides for a 32 bit metric and adds one bit to indicate that a
prefix has been redistributed 'down' in the hierarchy.
The proposed extended IP reachability TLV contains a new data
structure, consisting of:
4 octets of metric information
1 octet of control information, consisting of
1 bit of up/down information
1 bit indicating the presence of sub-TLVs
6 bits of prefix length
0-4 octet of IPv4 prefix
0-250 optional octets of sub-TLVs, if present consisting of
1 octet of length of sub-TLVs
0-249 octets of sub-TLVs,
where each sub-TLV consists of a sequence of
1 octet of sub-type
1 octet of length of the value field of the sub-TLV
0-247 octets of value
This data structure can be replicated within the TLV, without
exceeding the maximum length of the TLV.
The 6 bits of prefix length can have the values 0-32 and indicate the
number of significant bits in the prefix. The prefix is encoded in
the minimal number of octets for the given number of significant
bits. This implies:
Significant bits Octets
0 0
1-8 1
9-16 2
17-24 3
25-32 4
The remaining bits of prefix are transmitted as zero and ignored upon
receipt.
If a prefix is advertised with a metric larger then MAX_PATH_METRIC
(0xFE000000, see paragraph 3.0), this prefix MUST NOT be considered
during the normal SPF computation. This allows advertisement of a
prefix for purposes other than building the normal IP routing table.
4.1. The up/down Bit
If routers were allowed to redistribute IP prefixes freely in both
directions between level 1 and level 2 without any additional
mechanisms, those routers would not be able to determine looping of
routing information. A problem occurs when a router learns a prefix
via level 2 routing and advertises that prefix down into a level 1
area, where another router might pick up the route and advertise the
prefix back up into the level 2 backbone. If the original source
withdraws the prefix, those two routers might end up having a routing
loop between them, where part of the looped path is via level 1
routing and the other part of the looped path is via level 2 routing.
The solution that RFC 1195 [3] poses is to allow only advertising
prefixes upward in the level hierarchy, and to disallow the
advertising of prefixes downward in the hierarchy.
To prevent this looping of prefixes between levels, a new bit of
information is defined in the new extended IP reachability TLV. This
bit is called the up/down bit. The up/down bit SHALL be set to 0
when a prefix is first injected into IS-IS. If a prefix is
advertised from a higher level to a lower level (e.g. level 2 to
level 1), the bit MUST be set to 1, indicating that the prefix has
traveled down the hierarchy. Prefixes that have the up/down bit set
to 1 may only be advertised down the hierarchy, i.e. to lower levels.
These semantics apply even if IS-IS is extended in the future to have
additional levels. By insuring that prefixes follow only the IS-IS
hierarchy, we have insured that the information does not loop,
thereby insuring that there are no persistent forwarding loops.
If a prefix is advertised from one area to another at the same level,
then the up/down bit SHALL be set to 1. This situation can arise
when a router implements multiple virtual routers at the same level,
but in different areas.
The semantics of the up/down bit in the new extended IP reachability
TLV are identical to the semantics of the up/down bit defined in RFC
2966 [2].
4.2. Expandability of the Extended IP Reachability TLV with Sub-TLVs
The extended IP reachability TLV can hold sub-TLVs that apply to a
particular prefix. This allows for easy future extensions. If there
are no sub-TLVs associated with a prefix, the bit indicating the
presence of sub-TLVs SHALL be set to 0. If this bit is set to 1, the
first octet after the prefix will be interpreted as the length of all
sub-TLVs associated with this IPv4 prefix. Please note that while
the encoding allows for 255 octets of sub-TLVs, the maximum value
cannot fit in the overall extended IP reachability TLV. The
practical maximum is 255 octets minus the 5-9 octets described above,
or 250 octets.
This document does not define any sub-TLVs for the extended IP
reachability TLV.
5. The Traffic Engineering Router ID TLV
The Traffic Engineering router ID TLV is TLV type 134.
The router ID TLV contains the 4-octet router ID of the router
originating the LSP. This is useful in several regards:
For traffic engineering, it guarantees that we have a single stable
address that can always be referenced in a path that will be
reachable from multiple hops away, regardless of the state of the
node's interfaces.
If OSPF is also active in the domain, traffic engineering can compute
the mapping between the OSPF and IS-IS topologies.
If a router does not implement traffic engineering, it MAY add or
omit the Traffic Engineering router ID TLV. If a router implements
traffic engineering, it MUST include this TLV in its LSP. This TLV
SHOULD not be included more than once in an LSP.
If a router advertises the Traffic Engineering router ID TLV in its
LSP, and if it advertises prefixes via the Border Gateway Protocol
(BGP) with the BGP next hop attribute set to the BGP router ID, the
Traffic Engineering router ID SHOULD be the same as the BGP router
ID.
Implementations MUST NOT inject a /32 prefix for the router ID into
their forwarding table because this can lead to forwarding loops when
interacting with systems that do not support this TLV.
6. IANA Considerations
6.1. TLV Codepoint Allocations
This document defines the following new IS-IS TLV types, which have
been reflected in the ISIS TLV code-point registry:
Type Description IIH LSP SNP
---- ----------------------------------- --- --- ---
22 The extended IS reachability TLV n y n
134 The Traffic Engineering router ID TLV n y n
135 The extended IP reachability TLV n y n
6.2. New Registries
IANA has created the following new registries.
6.2.1. Sub-TLVs for the Extended IS Reachability TLV
This registry contains codepoints for Sub-TLVs of TLV 22. The range
of values is 0-255. Allocations within the registry require
documentation of the proposed use of the allocated value and approval
by the Designated Expert assigned by the IESG (see [5]).
Taking into consideration allocations specified in this document, the
registry has been initialized as follows:
Type Description
---- -----------------------------------
0-2 unassigned
3 Administrative group (color)
4-5 unassigned
6 IPv4 interface address
7 unassigned
8 IPv4 neighbor address
9 Maximum link bandwidth
10 Reservable link bandwidth
11 Unreserved bandwidth
12-17 unassigned
18 TE Default metric
19-254 unassigned
255 Reserved for future expansion
6.2.2. Sub-TLVs for the Extended IP Reachability TLV
This registry contains codepoints for Sub-TLVs of TLV 135. The range
of values is 0-255. Allocations within the registry require
documentation of the use of the allocated value and approval by the
Designated Expert assigned by the IESG (see [5]).
No codepoints are defined in this document.
7. References
7.1. Normative References
[1] ISO, "Intermediate System to Intermediate System Intra-Domain
Routeing Exchange Protocol for use in Conjunction with the
Protocol for Providing the Connectionless-mode Network Service
(ISO 8473)", International Standard 10589:2002, Second Edition
[2] Li, T., Przygienda, T. and H. Smit, "Domain-wide Prefix
Distribution with Two-Level IS-IS", RFC 2966, October 2000.
7.2. Informative References
[3] Callon, R.W., "Use of OSI IS-IS for routing in TCP/IP and dual
environments", RFC 1195, December 1990
[4] Awduche, D., Malcolm, J., Agogbua, J., O'Dell, M. and J. McManus,
"Requirements for Traffic Engineering Over MPLS", RFC 2702,
September 1999.
[5] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA
Considerations Section in RFCs", BCP 26, RFC 2434, October 1998.
8. Security Considerations
This document raises no new security issues for IS-IS.
9. Acknowledgments
The authors would like to thank Yakov Rekhter and Dave Katz for their
comments on this work.
10. Authors' Addresses
Henk Smit
EMail: hhwsmit@xs4all.nl
Tony Li
EMail: tony.li@tony.li
11. Full Copyright Statement
Copyright (C) The Internet Society (2004). This document is subject
to the rights, licenses and restrictions contained in BCP 78, and
except as set forth therein, the authors retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at ietf-
ipr@ietf.org.
Acknowledgement
Funding for the RFC Editor function is currently provided by the
Internet Society.
ISO Plain Language
On this page
§1Why IS-IS Needed Traffic Engineering Information
IS-IS is specified in ISO 10589, with IPv4 extensions in RFC 1195. Each router advertises one or more Link State Protocol Data Units, and each LSP holds a fixed header followed by a series of tuples made of a Type, a Length and a Value. These tuples are called TLVs, and they let a protocol carry new pieces of information without changing its overall shape.
The gap this RFC fills is that a shortest path calculation needs one number per link, the cost. Traffic engineering, which builds explicit paths for particular flows, needs more: the bandwidth a link can carry, how much of it is already reserved, and the administrative group, or colour, that the link belongs to. The original TLVs carried none of that.
The RFC therefore replaces the IS neighbour TLV and the IP reachability TLV with extended versions that carry a wider metric and a set of sub-TLVs holding the extra detail. A secondary goal is to widen the range of the IS-IS metric. It also notes that the router ID is useful for traffic engineering because it gives one stable address that can always be used to name a router. The document says nothing about the mechanisms and procedures for migrating to the new TLVs.
IS-IS is a link state routing protocol: every router tells its neighbours about the links it has, and each router then works out the cheapest path. To plan a path for a specific flow, a network operator also needs to know how much capacity each link has. This RFC adds that information to the messages IS-IS already sends.
| Aspect | Before | With these extensions |
|---|---|---|
| IS reachability TLV THIS RFC | Type 2 | Type 22 |
| IS default metric THIS RFC | 1 octet, range 0 to 63 | 3 octets, 24-bit unsigned |
| IP reachability TLV THIS RFC | Types 128 and 130 | Type 135 |
| IP default metric THIS RFC | 1 octet, range 0 to 63 | 4 octets, 32-bit unsigned |
| Advertising a prefix downward THIS RFC | Not defined | Allowed, with the up/down bit set to 1 |
§2Sub-TLVs Inside TLVs
A sub-TLV is a tuple nested inside another TLV. A TLV carries extra information in an IS-IS packet; a sub-TLV carries extra information about one particular TLV. Each sub-TLV has a one-octet Type field, a one-octet Length field and zero or more octets of Value. The Type says what the value holds and the Length gives the size of that value in octets, so a sub-TLV can hold several items of a known size, and the number of items can be worked out from the length of the whole sub-TLV.
A receiver that meets a sub-TLV it does not recognize must ignore it and skip to the next one. That is what makes the scheme extensible: a router that predates a sub-TLV type can still read the rest of the LSP.
The sub-TLV type space is managed by the IETF IS-IS working group, with new values allocated after review on the group's mailing list and after a document describing the use of the value has been published. If the working group has been disbanded, the review is done by a Designated Expert assigned by the responsible Area Director.
A sub-TLV is a small labelled box inside a larger labelled box. The outer one describes a link or a prefix, and the inner ones add details about that particular link or prefix. A router that does not understand one of the inner boxes skips it and carries on reading.
- 3Administrative group — A 4-octet bit mask set by the administrator. Each set bit is one administrative group on the interface.
- 6IPv4 interface address — A 4-octet IPv4 address for the interface described by the main TLV.
- 8IPv4 neighbor address — A 4-octet IPv4 address of a neighbouring router on this link.
- 9Maximum link bandwidth — The most bandwidth usable on this link in this direction, as a 32-bit IEEE floating point value in bytes per second.
- 10Reservable link bandwidth — The most bandwidth that can be reserved in this direction, as a 32-bit IEEE floating point value in bytes per second.
- 11Unreserved bandwidth — Eight 32-bit IEEE floating point values, one for each setup priority from 0 to 7, in bytes per second.
- 18TE default metric — A 24-bit unsigned integer, administratively assigned, used to present a differently weighted topology to traffic engineering.
§3The Extended IS Reachability TLV
The existing IS reachability TLV, type 2 from ISO 10589, lists the IS neighbours of the advertising router. For each neighbour it holds a default metric, a delay, a monetary cost, a reliability and the 7-octet ID of the neighbour. Only the default metric is commonly used, and the other three are unused overhead. The metric was one octet: one bit for internal or external, and one bit that RFC 2966 later defined as the up/down bit, leaving 6 bits for the value and a range of 0 to 63.
Type 22 replaces that structure. Each neighbour is now 7 octets of system ID and pseudonode number, 3 octets of metric, 1 octet giving the length of the sub-TLVs, and 0 to 244 octets of sub-TLVs. The metric is encoded as a 24-bit unsigned integer. The neighbour field is still 7 octets, so an entry still costs 11 octets and one TLV can still hold 23 neighbours.
The RFC sets MAX_PATH_METRIC to 4,261,412,864 (0xFE000000, which is 232 minus 225), and any metric at or above that value counts as exactly that value. A link advertised with the maximum link metric, 2^24 - 1, must not be used in the normal shortest-path computation. That lets a router advertise a link that is available for traffic engineering but not for hop-by-hop routing.
The new TLV type 22 describes one neighbouring router per entry, using the same 11 octets as the old type 2 did. Three of those octets now hold the cost of the link, so the cost can be far larger than 63, and the rest of the entry can carry sub-TLVs about the link's capacity and colour.
| Field | Name | Size | Value | Description |
|---|---|---|---|---|
SYSTEM-ID | System ID and pseudonode number | 7 bytes | Seven octets identifying the neighbour: its system ID, typically 6 octets, plus one octet for the pseudonode number. | |
METRIC | Default metric | 3 bytes | The cost of the link, as a 24-bit unsigned integer. The old one-octet metric allowed only 0 to 63. | |
SUB-TLV-LENGTH | Sub-TLV length | 1 byte | Length in octets of the sub-TLVs that follow for this neighbour. |
§4The Extended IP Reachability TLV and the Up/Down Bit
The existing IP reachability TLVs, types 128 and 130, carry IPv4 prefixes in a similar shape and also limit the default metric to 0 to 63. They have a second gap: RFC 1195 lets a router advertise prefixes upward in the level hierarchy, but defines no way to advertise them downward.
Type 135 fixes both. Each entry has 4 octets of metric information, 1 octet of control information made of an up/down bit, a bit saying whether sub-TLVs are present and 6 bits of prefix length, then 0 to 4 octets of IPv4 prefix, then optional sub-TLVs. The 6 bits of prefix length hold values from 0 to 32, and the prefix is written in the fewest octets possible for that many significant bits; the remaining bits are sent as zero and ignored on receipt. A prefix with a metric above MAX_PATH_METRIC must be left out of the normal shortest-path computation, so a prefix can be advertised for purposes other than the ordinary routing table.
The up/down bit stops prefixes from looping between levels. Without it, a router that learns a prefix at level 2 could advertise it down into a level 1 area, and another router could send it back up, leaving a forwarding loop that runs partly through level 1 and partly through level 2. The bit is set to 0 when a prefix first enters IS-IS, set to 1 when the prefix travels down the hierarchy, and a prefix with the bit set may only be advertised further down. A prefix advertised between two areas at the same level also gets the bit set to 1. Keeping prefixes moving along the hierarchy is what stops the information from looping.
The extended IP reachability TLV type 135 lists the address prefixes a router is reachable for, with a much larger cost value than before. It also adds one bit that records whether a prefix has already travelled down the IS-IS hierarchy. A router refuses to send a prefix back up once it has come down, which is what prevents two routers from passing the same prefix back and forth and creating a routing loop.
§5The Traffic Engineering Router ID TLV
The Traffic Engineering router ID TLV, type 134, carries the 4-octet router ID of the router that originated the LSP. For traffic engineering this gives one stable address that a path can refer to from several hops away, whatever state the router's interfaces are in. It also lets traffic engineering map between the IS-IS topology and the OSPF topology when both run in the same domain.
A router that does not implement traffic engineering may include or omit the TLV; one that does implement it must include it, and it should appear at most once in an LSP. If the router advertises prefixes over BGP with the BGP router ID as the next hop, the Traffic Engineering router ID should be the same value.
The RFC also forbids a router from installing a /32 prefix for the router ID in its forwarding table, because a router that does not support the TLV would not know about that route and traffic could loop. The same prohibition applies to the IPv4 interface address and neighbour address sub-TLVs.
TLV type 134 simply names the router that sent the LSP, using a fixed four-octet address. Traffic engineers use that name when they build a path, because it stays valid however the router's interfaces are configured. Routers must not turn that name into a route of its own, since a router that does not read the TLV would then have a forwarding loop.
§6Registered TLV and Sub-TLV Numbers
Three new IS-IS TLV types are defined and reflected in the IS-IS TLV code point registry: 22 for the extended IS reachability TLV, 134 for the Traffic Engineering router ID TLV and 135 for the extended IP reachability TLV. All three are carried in LSPs only.
Two new registries are created. The first covers sub-TLVs of TLV 22 over the range 0 to 255, and is initialized with the seven sub-TLVs this RFC defines: 3 administrative group, 6 IPv4 interface address, 8 IPv4 neighbour address, 9 maximum link bandwidth, 10 reservable link bandwidth, 11 unreserved bandwidth and 18 TE default metric. Values 250 to 254 are reserved for Cisco-specific extensions and 255 is reserved for future expansion. The second registry covers sub-TLVs of TLV 135 over the same range, and this RFC defines none of them.
The document registers the numbers other equipment will look for: TLV types 22, 134 and 135, and the sub-TLV numbers inside type 22. Values from 250 to 254 are set aside for Cisco extensions and 255 is held back for later.