One document matched: draft-ietf-trill-rbridge-options-05.txt
Differences from draft-ietf-trill-rbridge-options-04.txt
TRILL Working Group Donald Eastlake
INTERNET-DRAFT Huawei
Intended status: Proposed Standard Anoop Ghanwani
Brocade
Vishwas Manral
IP Infusion
Caitlin Bestler
Quantum
Expires: Jaqnuary 9, 2012 July 10, 2011
RBridges: TRILL Header Extensions
<draft-ietf-trill-rbridge-options-05.txt>
Abstract
The TRILL base protocol standard specifies minimal hooks to safely
support TRILL Header extensions. This draft specifies the format for
such extensions and specifies some initial extensions.
Status of This Memo
This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79.
Distribution of this document is unlimited. Comments should be sent
to the TRILL working group mailing list <rbridge@postel.org>.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/1id-abstracts.html
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html
D. Eastlake, et al [Page 1]
INTERNET-DRAFT TRILL Header Extensions
Table of Contents
1. Introduction............................................3
1.1 Conventions used in this document......................3
2. TRILL Header Options....................................4
2.1 RBridge Extension Handling Requirements................5
2.2 No Critical Surprises..................................6
2.3 Extensions Format......................................6
2.3.1 Extended Header Flags Area...........................7
2.3.1.1 Critical Summary Bits..............................8
2.3.1.2 MEF, More Extended Flags...........................8
2.3.1.3 Specific Initial Bit Extended Flags................9
2.3.1.4 TLV Summary Bits...................................9
2.3.1.5 Flow ID............................................9
2.3.2 TLV Extension Format................................10
2.3.3 Marshaling of Extensions............................11
2.4 Conflict of Extensions................................11
3. Specific Extended Header Flag..........................13
3.1 The Alert Extended Flag...............................13
3.2 The ECN Extension.....................................13
4. Specific TLV Extension.................................16
4.1 Test/Pad Extension....................................16
5. Additions to IS-IS.....................................17
6. IANA Considerations....................................18
7. Security Considerations................................18
8. Acknowledgements.......................................18
9. References.............................................19
9.1 Normative References..................................19
9.2 Informative References................................19
Change History............................................20
D. Eastlake, et al [Page 2]
INTERNET-DRAFT TRILL Header Extensions
1. Introduction
The base TRILL protocol standard [RFCtrill] provides a TRILL Header
extensions feature, called "options" in [RFCtrill], and describes
minimal hooks to safely support header extensions. But, except for
the first two bits, it does not specify the structure of the
extension to the TRILL Header nor the details of any particular
extension. This draft specifies that format and some initial
extensions: a special Flow ID field, ECN (Explicit Congestion
Notification) extended header flags, an Alert extended header flag,
and a test/pad extension.
Section 2 below describes the general principles, format, and
ordering of TRILL Header Extensions. Other than the special Flow ID
extension, TRILL Header extensions are of two kinds: extended header
flags and TLV (Type, Length, Value) encoded extensions.
Section 3 describes two specific extended flag extensions while
Section 4 describes a specific TLV encoded extension.
1.1 Conventions used in this document
The terminology and acronyms defined in [RFCtrill] are used herein
with the same meaning.
In this documents, "IP" refers to both IPv4 and IPv6.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].
D. Eastlake, et al [Page 3]
INTERNET-DRAFT TRILL Header Extensions
2. TRILL Header Options
The base TRILL Protocol includes a feature for extension of the TRILL
Header (see [RFCtrill] Sections 3.5 and 3.8). The 5-bit Op-Length
header field gives the length of the extension to the TRILL Header in
units of 4 octets, which allows up to 124 octets of header extension.
If Op-Length is zero there is no header extension present; else, this
area follows immediately after the Ingress Rbridge Nickname field of
the TRILL Header. The optional extensions area consists of an
extended flags area possibly followed by TLV extensions. Each TLV
extension present is 32-bit aligned. There is a special Flow ID
extension that may also occur in the extended flags area.
As described below, provision is made for both hop-by-hop extensions,
which might affect any RBridge that receives a TRILL Data frame
containing such an extension, and ingress-to-egress extensions, which
would only necessarily affect the RBridge(s) where a TRILL frame is
decapsulated. Provision is also made for both "critical" and "non-
critical" extensions. Any RBridge receiving a frame with a critical
hop-by-hop extension that it does not implement MUST discard the
frame because it is unsafe to process the frame without understanding
the critical extension. Any egress RBridge receiving a frame with a
critical ingress-to-egress extension it does not implement MUST drop
the frame if it is a known unicast frame; if it is a multi-
destination TRILL Data frame with a critical ingress-to-egress
extension that the RBridge does not implement, then it MUST NOT be
egressed at that RBridge but it is still forwarded on the
distribution tree. Non-critical extensions can be safely ignored.
Any extension indicating a significant change in the structure or
interpretation of later parts of the frame which, if the extension
were ignored, could reasonably cause a failure of service or
violation of security policy MUST be a critical extension. If such an
extension affects any fields that transit RBridges will examine, it
MUST be a hop-by-hop critical extension.
TLV extensions also have a "mutability" flag that has a different
meaning for ingress-to-egress and for hop-by-hop.
For an ingress-to-egress extension, the mutability flag indicates
whether the value associated with the extension can change at a
transit RBridge (mutable extensions) or cannot so change (immutable
extensions). For example, an ingress-to-egress security extension
could protect the value of an immutable ingress-to-egress extension.
But such a security extension generally could not protect a mutable
value as a transit RBridge could change that value but might not have
the keys to recompute a signature or authentication code to take a
changed value into account.
For a non-critical hop-by-hop extension, the mutability flag
D. Eastlake, et al [Page 4]
INTERNET-DRAFT TRILL Header Extensions
indicates whether a transit RBridge that does not implement the
extension is permitted (mutable) or not permitted (immutable) to
remove the extension. A transit RBridge is not required to remove a
hop-by-hop extension that it does not implement.
For critical hop-by-hop extensions, the mutability flag is
meaningless. If the RBridge does not implement the critical hop-by-
hop extension, it MUST drop the frame. If it does implement the
critical hop-by-hop extension, it will know whether or not it
may/should/must remove it. For critical hop-by-hop extensions, the
mutability flag is set to zero ("immutable") on transmission and
ignored on receipt.
Note: Most RBridges implementations are expected to be optimized
for simple and common cases of frame forwarding and processing.
Although the hard limit on the header extensions area length, the
32-bit alignment of TLV extensions, and the presence of critical
extension summary bits, as described below, are intended to assist
in the efficient hardware based processing of frames with a TRILL
header extensions area, nevertheless the inclusion of extensions,
particularly TLV extensions, may cause frame processing using a
"slow path" with inferior performance to "fast path" processing.
Limited slow path throughput of such frames could cause them to be
discarded.
2.1 RBridge Extension Handling Requirements
The requirements given in this section are in addition to the
extension handling requirements in [RFCtrill] (where they are called
options).
All RBridges MUST be able to check whether there are any critical
extensions present that are necessarily applicable to their
processing of the frame as detailed below. If they do not implement
all such critical extensions present, they MUST discard the frame or,
in some circumstances as described above for certain multi-
destination frames, continue to forward the frame but MUST NOT egress
the frame.
Transit RBridges MUST transparently forward all immutable ingress-to-
egress header extensions in frames that they forward. Any changes
made by a transit RBridge to a mutable ingress-to-egress extension
value MUST be a change permitted by the specification of that
extension.
In addition, a transit RBridge:
o MAY add, if space is available, or remove hop-by-hop extensions as
D. Eastlake, et al [Page 5]
INTERNET-DRAFT TRILL Header Extensions
specified for such extensions;
o MAY change the value and/or length of a mutable ingress-to-egress
TLV extension as permitted by that extension's specification and
provided there is enough room if lengthening it;
o MUST adjust the length of the extensions area, including changing
Op-Length in the TRILL header, as appropriate for any changes it
has made;
o MUST NOT add, remove, or re-order ingress-to-egress extensions.
o with regard to any non-critical hop-by-hop extensions that the
transit RBridge does not implement, it MAY remove them if they are
mutable but MUST transparently copy them when forwarding a frame
if they are immutable.
2.2 No Critical Surprises
RBridges advertise the ingress-to-egress extensions they support in
their IS-IS LSP and advertise the hop-by-hop extensions they support
at a port on the link connected to that port. An RBridge is not
required to support any extensions.
Unless an RBridge advertises support for a critical extension, it
will not normally receive frames with that extension.
An RBridge SHOULD NOT add a critical extension to a frame unless,
- for a critical hop-by-hop extension, it has determined that the
next hop RBridge or RBridges that will accept the frame support
that extension, or
- for a critical ingress-to-egress extension, it has determined that
the RBridge or RBridges that will egress the frame support that
extension.
"SHOULD NOT" is specified since there may be cases where it is
acceptable for those frames, particularly for the multi-destination
case, to be discarded by any RBridges that do not implement the
extension.
2.3 Extensions Format
If any extensions are present in a TRILL Header, as indicated by a
non-zero Op-Length field, the first 32 or 64 bits of the extensions
area consist of extended header flags and the Flow ID, as described
below. The remainder of the extensions area, if any, after this
initial 32 or 64 bits, consists of TLV (Type Length Value) extensions
aligned on 32-bit boundaries. Section 2.3.2 specifies the format of a
TLV extension. Section 2.3.3 describes the marshaling of TLV
extensions.
D. Eastlake, et al [Page 6]
INTERNET-DRAFT TRILL Header Extensions
2.3.1 Extended Header Flags Area
The first 32 bits of the Extensions Area are organized as follows:
| 0 1 2 3-4 5-7 8-10 11-12 13 14 15 | 16 - 31 |
+----+----+----+----+----+----+-----+----+----+----+---------+
|CHbH|CItE|MEF |CHHF|NHHF|CIEF|NIEF |NHHT|CIET|NIET| Flow ID |
+----+----+----+----+----+----+-----+----+----+----+---------+
Figure 1: Extensions Area Initial 32 Bits
Any RBridge adding an extensions area to a TRILL Header must set
these 32 bits to zero except when permitted or required to set one or
more of them as specified. The meanings of these bits are listed in
the table below and then further described.
Bit(s) Description
---------------------
0 CHbH: Critical Hop-by-Hop extension(s) are present.
1 CItE: Critical Ingress-to-Egress extension(s) are present.
2 MEF: More Extended Flags, indicates that an additional 32-bit
extended flags area is present as described below.
3-4 CHHF: Critcial Hob-by-Hop extended Flag bits.
5-7 NHHF: Non-critical Hop-by-Hop extended Flag bits.
8-10 CIEF: Critical Ingress-to-Egress extended Flag bits.
11-12 NIEF: Non-critical Ingress-to-Egress extended Flag bits.
13 NHHT: Non-critical Hop-by-Hop TLV extension(s) are present.
14 CIET: Critical Ingress-to-Egress TLV extension(s) are present.
15 NIET: Non-critical Ingress-to-Egress TLV extension(s) are
present.
16-31 Flow ID if non-zero.
All extended flags are considered mutable except the critical hop-by-
hop extended flags.
For TRILL Data frames with extensions present, any transit RBridge
MUST transparently copy bits 8 through 12, except as permitted by an
extension implemented by that RBridge, but MAY either copy or clear
any of the bits 5 through 7. Even if a transit RBridge removes all
TLV extensions from a TRILL Header when allowed to do so, it MUST NOT
eliminate the extensions area in a forwarded frame if any of bits 3,
4, or 8 through 12 remain non-zero; however, if there are no TLV
extensions and all of bits 2 through 31 are zero, then the summary
bits will also be zero and the transit RBridge MAY eliminate the
Extensions area in the frame, setting Op-Length to zero.
D. Eastlake, et al [Page 7]
INTERNET-DRAFT TRILL Header Extensions
2.3.1.1 Critical Summary Bits
The top two bits of the extensions area, bits 0 and 1 above, are
called the critical summary bits. They summarize the presence of
critical extensions as follows:
CHbH: If the CHbH (Critical Hop by Hop) bit is one, one or more
critical hop-by-hop extensions are present in the extensions area.
Transit RBridges that do not support all of the critical hop-by-
hop extensions present, for example an RBridge that supported no
hop-by-hop extensions, MUST drop the frame. If the CHbH bit is
zero, the frame is safe, from the point of view of extensions
processing, for a transit RBridge to forward, regardless of what
extensions that RBridge does or does not support. A transit
RBridge that supports none of the extensions present MUST
transparently forward the extensions area when it forwards a
frame, except that it MAY remove mutable hop-by-hop extensions.
CItE: If the CItE (Critical Ingress to Egress) bit is a one, one or
more critical ingress-to-egress extensions are present in the
extensions area. If it is zero, no such extensions are present.
If either CHbH or CItE is non-zero, egress RBridges that do not
support all critical extensions present, for example an RBridge
that supports no extensions, MUST drop the frame. If both CHbH
and CItE are zero, the frame is safe, from the point of view of
extensions, for any egress RBridge to process, regardless of what
extensions that RBridge does or does not support.
The critical summary bits enable efficient processing of TRILL Data
frames by RBridges that support no critical extensions and by transit
RBridges that support no critical hop-by-hop extensions. Such
RBridges need only check whether Op-Length is non-zero and, if it is,
the top one or two bits just after the fixed portion of the TRILL
Header.
2.3.1.2 MEF, More Extended Flags
Bit 2, if set, indicates there are an additional 32 bits of extended
flags. They are organized as shown below. The start of the TLV
extensions, if any, is moved to after these additional bit
extensions.
| 32 - 39 | 40 - 47 | 48 - 55 | 56 - 63 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Critical HbH |NonCritical HbH| Critical ItE |NonCritical ItE|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: Extended Flag Bits 32 to 63
D. Eastlake, et al [Page 8]
INTERNET-DRAFT TRILL Header Extensions
2.3.1.3 Specific Initial Bit Extended Flags
CHHB, bits 3 and 4, are Critical Hob-by-Hop Bits.
NHHB, bits 5 through 7, are Non-critical Hop-by-Hop Bits.
CIEB, bits 8 through 10, are Critical Ingress-to-Egress Bits.
NIEB, bits 11 and 12, are Non-critical Ingress-to-Egress Bits.
The bits above are available for indicating extended header flags,
except for the bits allocated by Section 3 below.
2.3.1.4 TLV Summary Bits
It is anticipated that in most cases the interpretation of TLV
encoded extensions in TRILL data frames will be handled by slow path
software. To minimize unnecessary resort to the slow path, the TLV
summary bits, plus a special check for critical hop-by-hop TLV
extensions, enable an RBridge to quickly determine if any TLV encoded
extensions of the category or categories it implements are present.
Bits 13-15, the NHHT, CIET, and NIET bits, indicate the presence
later in the TRILL Header of TLV encoded Non-critical Hop-by-Hop,
Critical Ingress-to-Egress, and Non-critical Ingress-to-Egress TLV
extensions respectively.
There is no Critical Hop-by-Hop TLV flag bit because the presence of
one or more such TLV extensions can be determined by examining Op-
Length and, if Op-Length and the MEF bit indicate that there are TLV
extensions beyond the extended flags area, examining the top two bits
of the first extensions area byte after the extended flags area. The
ordering restrictions on TLV extensions require that, if any Critical
Hop-by-Hop TLV extensions are present, the appear first in the TLV
extensions area. Thus it is adequate to check only if the first TLV
extension present is a Critical Hop-by-Hop extension, which can be
determined from the top two bits of its first byte.
2.3.1.5 Flow ID
In connection with the multi-pathing of frames, frames that are part
of the same order-dependent flow need to follow the same path.
Methods to determine flows are beyond the scope of the this document;
however, it may be useful, once the flow of a unicast frame has been
determined, to preserve and transmit that information for use by
subsequent RBridges.
D. Eastlake, et al [Page 9]
INTERNET-DRAFT TRILL Header Extensions
The Flow ID extension is a specially encoded non-critical hop-by-hop
extension that appears in bits 16 through 31 of the initial bit
encoded extensions area. Its presence is indicated by a non-zero
value in that field.
It is considered hop-by-hop because it can be added or changed by a
transit RBridge and transit RBridges can use it to make forwarding
decisions. Because the ingress RBridge may know the most about a
frame, it is expected that this extension would most commonly be
added at the ingress RBridge. Once set non-zero in a frame, the
extension SHOULD NOT be removed, set to zero, or changed unless, for
example, a campus is divided into regions such that different Flow
IDs would make sense in different regions.
2.3.2 TLV Extension Format
TRILL Header extensions, other than the extended header flags and
Flow ID described above, are TLV encoded, with some flag bits in the
Type and Length octets, in the format show in Figure 3.
| 0 1 2 3 4 5 6 7 8 9|10| 11-15 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+---
|IE|NC| Type |MU| Length | value...
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+---
Figure 3. Extension TLV Structure
The highest order bit of the first octet (IE) is zero for hop-by-hop
extensions and one for ingress-to-egress extensions. Hop-by-hop
extensions are potentially applicable to every RBridge that receives
the frame. Ingress-to-egress extensions are only inserted at the
ingress RBridge and are applicable at egress RBridges. Ingress-to-
egress extensions MAY also be examined and acted upon by transit
RBridges as specified in the particular extension.
The second highest order bit of the first octet (NC) is zero for
critical extensions and one for non-critical extensions.
Bit 10 in the second octet (MU) is zero for immutable extensions and
one for mutable extensions. The IE, NC, Type, and MU fields
themselves MUST NOT be changed even for a mutable extension.
The eight-bit Type code extends from bit 2 through bit 9. The
extension Type may constrain the values of the IE, NC, and MU bits.
For example, a certain Type might require that the extension be
marked as a hop-by-hop, non-critical, mutable extension. If the IE,
NC, or MU bits have a value not permitted by the extension Type
specification for an extension that an RBridge must act on (any
D. Eastlake, et al [Page 10]
INTERNET-DRAFT TRILL Header Extensions
critical ingress-to-egress extension at an egress RBridge and any
critical hop-by-hop extension), the RBridge MUST discard the frame.
If these bits have a value not permitted by for the Type for an
extension that an RBridge may ignore (any ingress-to-egress extension
at a transit RBridge and any non-critical extension), the RBridge MAY
discard the frame. "MAY" is chosen in this case to minimize the
checking burden.
The Length field is an unsigned quantity giving the length of the
extension value in units of four octets. It gives the size of the
extension including the initial two Type and Length octets. The
Length field MUST NOT be such that the extension value extends beyond
the end of the total extensions area as specified by the TRILL Header
Op-Length. Thus, the value 31 is reserved and, when such a value is
noticed in a frame, the frame MUST be discarded.
2.3.3 Marshaling of Extensions
In a TRILL Header with extensions, those extensions start immediately
after the Ingress RBridge Nickname and fill the extensions area. TLV
extensions are 32-bit aligned.
TLV extensions start immediately after the initial four or eight
octets of extended flags area and MUST appear in ascending order by
the value of the eleven high order bits (bits 0 through 10) of the
Type and Length octets considered as an unsigned integer in network
byte order. There MUST NOT be more than one extension in a frame with
any particular value of this eleven high order bits. Thus the TLV
extensions MUST be ordered as follows: (1) critical hop-by-hop
extensions, (2) non-critical hop-by-hop extensions, (3) critical
ingress-to-egress extensions, and (4) non-critical ingress-to-egress
extensions. Frames that violate this paragraph are erroneous, will
produce unspecified results, and MAY be discarded. "MAY" is chosen to
minimize the format-checking burden on transit RBridges.
If any extensions are present, those extensions, both flag and TLV,
MUST be correctly summarized into the CHbH, CItE, and TLV summary
bits.
2.4 Conflict of Extensions
It is possible for extensions to conflict. Two or more extensions can
be present in a frame that direct an RBridge processing the frame to
do conflicting things or to change its interpretation of later parts
of the frame in conflicting ways. Such conflicts are resolved by
applying the following rules in the order given:
D. Eastlake, et al [Page 11]
INTERNET-DRAFT TRILL Header Extensions
1. Any frame containing extensions that require mutually incompatible
changes in way later parts of the frame, after the extensions
area, are interpreted or structured MUST be discarded. (Such
extensions will be critical extensions, normally hop-by-hop
critical extensions.)
2. Critical extensions override non-critical extensions.
2. Within each of the two categories of critical and non-critical
extensions, the extension appearing first in lexical order in the
frame always overrides an extension appearing later in the frame.
Thus a conflict between an extended flag and a TLV extension is
always resolved in favor of the extended flag. Extended flags with
lower bit numbers are considered to have occurred before extended
flags with higher bit numbers.
D. Eastlake, et al [Page 12]
INTERNET-DRAFT TRILL Header Extensions
3. Specific Extended Header Flag
The table below shows the state of TRILL Header extended flag
assignments and the location of the special Flow ID field. See
Section 6 for IANA Considerations.
Bits Purpose Section
---------------------------------------
0-1 Critical Summary Bits 2.3
2 More extended flags 2.
3-4 available for critical hop-by-hop flasg
5 Alert Extended Flag 3.1
6-7 ECN 3.2
8-10 available for critical ingress-to-egress flags
11-12 available for non-critical ingress-to-egress flags
13-15 TLV Summary Bits 2.3.1.4
16-31 Flow ID
32-39 available for critical hop-by-hop flags
40-47 available for non-critical hop-by-hop flags
48-55 available for critical ingress-to-egress flags
56-63 available for non-critical ingress-to-egress flags
Table 1. Extended Flag Extensions
3.1 The Alert Extended Flag
The Alert Extended Flag indicates that the frame should be examined
by the slow path at each hop. This is intended to alert transit
RBridges that implement this extension and to assist in the
implemention of features such as a record route message.
3.2 The ECN Extension
RBridges MAY implement an ECN (Explicit Congestion Notification)
extension [RFC3168]. If implemented, it SHOULD be enabled by default
but can be disable on a per RBridge basis by configuration.
RBridges that do not implement this extension or on which it is
disabled simply (1) set bits 6 and 7 of the extended flags area to
zero when they add an extensions area to a TRILL Header and (2)
transparently copy those bits, if an extensions area is present, when
they forward a frame with a TRILL Header.
An RBridge that implements the ECN extension does the following,
which correspond to the recommended provisions of [RFC6040], when
that extension is enabled:
D. Eastlake, et al [Page 13]
INTERNET-DRAFT TRILL Header Extensions
o When ingressing an IP frame that is ECN enabled (non-zero ECN
field), it MUST add an extensions area to the TRILL Header and
copy the two ECN bits from the IP header into extended header
flags 6 and 7.
o When ingressing a frame for a non-IP protocol, where that protocol
has a means of indicating ECN that is understood by the RBridge,
it MAY add an extensions area to the TRILL Header with the ECN
bits set from the ingressed frame.
o When forwarding a frame encountering congestion at an RBridge, if
an extensions area is present with extended flags 6 and 7
indicating ECN-capable transport, the RBridge MUST modify them to
the congestion experienced value.
o When egressing an IP frame, the RBridge MUST set the outgoing
native IP frame ECN field to the codepoint at the intersection of
the values for that field in the encapsulated IP frame (row) and
the TRILL extended Header ECN field (column) in Table 3 below or
drop the frame in the case where the TRILL header indicates
congestion experienced but the encapsulated native IP frame
indicates a not ECN-capable transport. (Such frame dropping is
necessary because IP transport that is not ECN-capable requires
dropped frames to sense congestion.)
o When egressing a non-IP protocol frame with a means of indicating
ECN that is understood by the RBridge, it MAY set the ECN
information in the egressed native frame by combining that
information in the TRILL extended header and the encapsulated non-
IP native frame as specified in Table 3.
The following table is modified from [RFC3168] and shows the meaning
of bit values in TRILL Header extended flags 6 and 7, bits 6 and 7 in
the IPv4 TOS Byte, and bits 6 and 7 in the IPv6 Traffic Class Octet:
Binary Meaning
------ -------
00 Not-ECT (Not ECN-Capable Transport)
01 ECT(1) (ECN-Capable Transport(1))
10 ECT(0) (ECN-Capable Transport(0))
11 CE (Congestion Experienced)
Table 2. ECN Field Bit Combinations
Table 3 below (adapted from [RFC6040]) shows how, at egress, to
combine the ECN information in the extended TRILL Header ECN field
with the ECN information in an encapsulated frame to produce the ECN
information to be carried in the resulting native frame.
D. Eastlake, et al [Page 14]
INTERNET-DRAFT TRILL Header Extensions
+---------+-----------------------------------------------+
| Inner | Arriving TRILL Header ECN Field |
| Native +---------+------------+------------+-----------+
| Header | Not-ECT | ECT(0) | ECT(1) | CE |
+---------+---------+------------+------------+-----------+
| Not-ECT | Not-ECT | Not-ECT(*) | Not-ECT(*) | <drop>(*) |
| ECT(0) | ECT(0) | ECT(0) | ECT(1) | CE |
| ECT(1) | ECT(1) | ECT(1)(*) | ECT(1) | CE |
| CE | CE | CE | CE(*) | CE |
+---------+---------+------------+------------+-----------+
Table 3: Egress ECN Behavior
An RBridge detects congestion either by monitoring its own queue
depths or from participation in a link-specific protocol. An RBridge
implementing the ECN extension MAY be configured to add congestion
experienced marking using ECN to any frame with a TRILL Header that
encounters congestion even if the frame was not previously marked as
ECN-capable or did not have an extensions area.
D. Eastlake, et al [Page 15]
INTERNET-DRAFT TRILL Header Extensions
4. Specific TLV Extension
The table below shows the state of TRILL Header TLV extension Type
assignment. See Section 6 for IANA Considerations.
Type Purpose Section
---------------------------------------
0x00 reserved
0x00-0x7F available
0x80 Test/Pad 4.1
0x81-0xFE available
0xFF reserved
Table 4. TLV Extension Types
The following subsection specifies a particular TRILL TLV extension.
4.1 Test/Pad Extension
This extension is intended for testing and padding.
A specific meaning for this extension with the critical flag set will
not be defined so, in that form, it MUST always be treated as an
unknown critical extension. If the critical flag is not set, the
extension does nothing. In either case, it may be any length that
will fit. Thus, for example, in the non-critical form, it can be used
to cause the encapsulated frame staring right after the extensions
area to be 64-bit aligned or for testing purposes.
o Type is 0x80.
o Length is variable. The value is ignored.
o IE may be zero or one. This extension has both hop-by-hop and
ingress-to-egress versions.
o NC is zero for the pad extension and one for the test
extension.
+ The non-critical version of this extension does nothing.
+ The critical version of this extension MUST always be
treated as an unknown critical extension.
o MU may be zero or one except that it must be zero if the other
flags indicate the extensions is a critical hop-by-hop
extension. This extension may be flagged as mutable or
immutable.
D. Eastlake, et al [Page 16]
INTERNET-DRAFT TRILL Header Extensions
5. Additions to IS-IS
RBridges use IS-IS PDUs to inform other RBridges which extensions
they support. The specific IS-IS PDUs, TLVs, or sub-TLVs used to
encode and advertise this information are specified in a separate
document. Support for critical extensions MUST be advertised. Support
for non-critical extensions MAY be advertised unless the
specification of a particular non-critical extension imposes a
requirement higher than "MAY" for the advertising of that extension
by RBridges that implement it.
D. Eastlake, et al [Page 17]
INTERNET-DRAFT TRILL Header Extensions
6. IANA Considerations
IANA will create two subregistries within the TRILL registry. A
"TRILL Extended Header Flags" subregistry that is initially populated
as specified in Table 1 in Section 3. And a "TRILL TLV Extension
Types" subregistry that is initially populated as specified in Table
4 in Section 4. References in both of those tables to sections of
this document are to be replaced in the IANA subregistries by
references to this document as an RFC.
New TRILL bit extensions and TLV extension types are allocated by
IETF Review [RFC5226].
7. Security Considerations
For general TRILL protocol security considerations, see [RFCtrill].
In order to facilitate authentication, extensions SHOULD be specified
so they do not have alternative equivalent forms. Authentication of
anything with alternative equivalent forms almost always requires
canonicalization that an authenticating RBridge ignorant of the
extension would be unable to do and that may be complex and error
prone even for an RBridge knowledgeable of the extension. It is best
for any extension to have a unique encoding.
8. Acknowledgements
The following are thanked for their contributions: Bob Briscoe.
D. Eastlake, et al [Page 18]
INTERNET-DRAFT TRILL Header Extensions
9. References
Normative and informative references for this document are given
below.
9.1 Normative References
[RFC2119] - Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3168] - Ramakrishnan, K., Floyd, S., and D. Black, "The Addition
of Explicit Congestion Notification (ECN) to IP", RFC 3168,
September 2001.
[RFC5226] - Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 5226, May
2008.
[RFC6040] - Briscoe, B., "Tunneling of Explicit Congestion
Notification", RFC 6040, November 2010
[RFCtrill] - Perlman, R., D. Eastlake, D. Dutt, S. Gai, and A.
Ghanwani, "RBridges: Base Protocol Specification", draft-ietf-
trill-rbridge-protocol-16.txt, in RFC Editor's queue.
9.2 Informative References
None.
D. Eastlake, et al [Page 19]
INTERNET-DRAFT TRILL Header Extensions
Change History
The sections below summarize changes between successive versions of
this draft. RFC Editor: Please delete this section before
publication.
Version 00 to 02
Change the requirement for TLV option ordering to be strictly ordered
by the value of the top nine bits of their first two bytes so that
the MU bit is included.
Specify meaning of mutability bit for hop-by-hop options.
Fix length of Flow ID Value at 2.
Require that options that may significantly affect the interpretation
or format of subsequent parts of the frame be critical options.
Version 02 to 03
Move Test/Pad extension into this document from the More Options
draft and move the More Flags option from this document into the More
Options draft.
Prohibit multiple occurrences of a TLV option in a frame.
Version 03 to 04
Restructure the bit encoded options area so that the initial 32 bits
include a 16 bit Flow ID, various TLV-option-present bits, and a more
extended flags bit that means another 32 bits of extended flags are
present.
Change the Length of TLV encoded options so that it is in units of 4
bytes, not 1, resulting in a bigger Type field.
Update Explicit Congestion Notification to follow RFC 6040.
Rename "bit encoded options" to be "extended header flags" or
"extended flags".
D. Eastlake, et al [Page 20]
INTERNET-DRAFT TRILL Header Extensions
Version 04 to 05
Generally replace "option" with "extension".
Add the Alert critial hop-by-hop flag extension.
Replace MT with MU to avooid possible confusion with multiple
topologies.
D. Eastlake, et al [Page 21]
INTERNET-DRAFT TRILL Header Extensions
Authors' Addresses
Donald Eastlake
Huawei Technologies
155 Beaver Street
Milford, MA 01757
Phone: +1-508-333-2270
email: d3e3e3@gmail.com
Anoop Ghanwani
Brocade Communications Systems
130 Holger Way
San Jose, CA 95134 USA
Phone: +1-408-333-7149
Email: anoop@brocade.com
Vishwas Manral
IP Infusion Inc.
1188 E. Arques Ave.
Sunnyvale, CA 94089 USA
Tel: +1-408-400-1900
email: vishwas@ipinfusion.com
Caitlin Bestler
Quantum
1650 Technology Drive , Suite 700
San Jose, CA 95110
Phone: +1-408-944-4000
email: cait@asomi.com
D. Eastlake, et al [Page 22]
INTERNET-DRAFT TRILL Header Extensions
Copyright and IPR Provisions
Copyright (c) 2011 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. The definitive version of
an IETF Document is that published by, or under the auspices of, the
IETF. Versions of IETF Documents that are published by third parties,
including those that are translated into other languages, should not
be considered to be definitive versions of IETF Documents. The
definitive version of these Legal Provisions is that published by, or
under the auspices of, the IETF. Versions of these Legal Provisions
that are published by third parties, including those that are
translated into other languages, should not be considered to be
definitive versions of these Legal Provisions. For the avoidance of
doubt, each Contributor to the IETF Standards Process licenses each
Contribution that he or she makes as part of the IETF Standards
Process to the IETF Trust pursuant to the provisions of RFC 5378. No
language to the contrary, or terms, conditions or rights that differ
from or are inconsistent with the rights and licenses granted under
RFC 5378, shall have any effect and shall be null and void, whether
published or posted by such Contributor, or included with or in such
Contribution.
D. Eastlake, et al [Page 23]
| PAFTECH AB 2003-2026 | 2026-04-23 12:32:30 |