rfc-7780

Transparent Interconnection of Lots of Links (TRILL): Clarifications, Corrections, and Updates

D. Eastlake 3rd, M. Zhang, R. Perlman, A. Banerjee, A. Ghanwani, S. Gupta
date2016-02 streamIETF areartg wgtrill statusPROPOSED STANDARD pages57 canonicalhttps://www.rfc-editor.org/rfc/rfc7780 doi10.17487/RFC7780
Since the publication of the TRILL (Transparent Interconnection of Lots of Links) base protocol in 2011, active development and deployment of TRILL have revealed errata in RFC 6325 and areas that could use clarifications or updates. RFC 7177, RFC 7357, and an intended replacement of RFC 6439 provide clarifications and updates with respect to adjacency, the TRILL ESADI (End Station Address Distribution Information) protocol, and Appointed Forwarders, respectively. This document provides other known clarifications, corrections, and updates. It obsoletes RFC 7180 (the previous "TRILL clarifications, corrections, and updates" RFC), and it updates RFCs 6325, 7177, and 7179.

obsoletes

updated by

updates

Extracted elements (32)

design-rationale §11

The Appointed Forwarder Status Lost Counter requirement from RFC 6325 is relaxed to allow the counter to match an adjacent VLAN ID's value rather than always incrementing strictly, enabling greater aggregation of Interested VLANs and Spanning Tree Roots sub-TLVs at the cost of slightly reduced data-plane learning optimization.

routing

design-rationale §5.2

The originatingL1LSPBufferSize defaults to 1470 bytes in TRILL rather than 1492 (the Layer 3 IS-IS default) to provide a 27-byte safety margin accommodating headers such as Outer.VLAN on legacy devices with the classic 1500-byte Ethernet maximum MTU.

routing

design-rationale §3.6.2

The stronger alternative RPF check uses {ingress nickname, source SNPA, tree, input port} instead of the RFC 6325 triplet to prevent packet duplication on multi-access links during topology transients. It is optional because it multiplies RPF state by the number of ports an RBridge has on a link and may increase transient packet loss when topology updates are partially applied.

routing, multicast

errata §4

RFC 6325 Section 3.7.3 nickname conflict text incorrectly references 'IS-IS ID (LAN ID)' and 'IS-IS System ID'; corrected to 'priority' and '7-byte IS-IS ID (LAN ID)' respectively (Err3002). Higher priority wins; ties broken by higher 7-byte IS-IS ID.

routing

errata §5.1.1

RFC 6325 Section 4.3.2 incorrectly states that multi-destination MTU-probe and MTU-ack TRILL IS-IS PDUs are sent to the All-RBridges multicast address; they MUST be sent to the All-IS-IS-RBridges multicast address (Err3004).

routing

errata §5.1.3

RFC 6325 Section 4.3.2 uses strict '>' for MTU test threshold; it should be '>=' (Err3053). The corrected rule is: if X is not >= Sz, set the 'failed minimum MTU test' flag; if X >= Sz, advertise the largest tested X for that adjacency.

routing

errata §3.5

RFC 6325 Section 4.5.1 incorrectly describes least-cost paths as 'from N to R'; the correct text is 'from R to N' (Err3508). All RBridges must use cost directed away from the tree root for consistent tree construction.

routing

errata §3.4

RFC 6325 Section 4.5.1 incorrectly specifies distribution tree parent selection as 'j mod p'; the correct formula is '(j-1) mod p', where trees are numbered starting at 1 and possible parents starting at 0. This non-backward-compatible fix ensures all RBridges compute identical distribution trees.

routing

errata §5.1.2

RFC 6325 Section 4.6 did not allow for unicast MTU-probe and MTU-ack PDUs (Err3003). Section 4.6.2 Item 1 is corrected: TRILL switches MUST handle frames with Outer.MacDA equal to either All-IS-IS-RBridges or the unicast MAC address of the receiving RBridge port.

routing

interoperability-note §1.2

The distribution tree numbering change (from 'j mod p' to '(j-1) mod p') is not backward compatible with RFC 6325. If RBridges in a campus use different formulas, the RPFC will drop most multi-destination packets before proper delivery in all but trivial topologies.

routing, multicast

interoperability-note §7

TRILL campuses mixing ports conformant with IEEE 802.1Q-2011-or-later and pre-2011 ports — especially with actual Token Ring links — may operate incorrectly and corrupt data due to the changed interpretation of the CFI/DEI bit, mirroring the same issue in bridged LANs.

routing

normative-requirement §2.3.2 MUST NOT

An overloaded RBridge receiving a multi-destination TRILL Data packet MUST NOT apply an RPFC and MUST NOT forward the packet except as an egressed native frame where it is Appointed Forwarder; it is confined to leaf-node behavior in the distribution tree.

routing, multicast

normative-requirement §2.3.1 MUST

An overloaded RBridge receiving a unicast TRILL Data packet for which it is not the egress MUST NOT discard the packet solely because the egress is unknown; it MUST attempt to forward to a non-overloaded neighbor (selected at random per RFC 4086) if any such neighbor exists other than the one from which the packet arrived.

routing

normative-requirement §7 MUST

For TRILL switches with ports conforming to IEEE 802.1Q-2011 or later, the DEI bit in the Inner.VLAN MUST be set to the DEI value provided by the port interface on ingress, and MUST be provided to the port on transit or egress. Transit packets MUST take the DEI bit from the Inner.VLAN.

routing

normative-requirement §8.4 MUST NOT

If a TRILL switch advertises any NickFlags APPsub-TLV entries with the IN (Ingress) flag set, it MUST NOT use any other nickname(s) it owns as the Ingress Nickname in TRILL Headers it constructs. If no IN-flagged entries are advertised, any owned nickname may be used as ingress.

routing

normative-requirement §5.2 MUST

RBridges on Ethernet links MUST limit most TRILL IS-IS PDUs so that PDUz (the length from just after the L2-IS-IS Ethertype to just before the FCS) does not exceed the campus-wide minimum Sz. Exceptions are TRILL Hello PDUs (capped at 1470 bytes) and MTU-probe/ack PDUs padded for size testing.

routing

normative-requirement §10 MUST

The 4-bit RESV field in the TRILL Header MUST be sent as zero. A TRILL switch receiving a TRILL Data packet with any RESV bit non-zero MUST discard the packet unless the non-zero bit(s) have a specified future use that the switch understands.

routing

normative-requirement §3.6.2 MUST

TRILL switches MUST, for multi-destination packets, either implement the RPF and tree-adjacency checks as described in RFC 6325 or implement the stronger alternative RPF check that validates the quadruplet {ingress nickname, source SNPA, tree, input port}. A campus may contain a mixture of both.

routing, multicast, security

normative-requirement §8.3 MUST

TRILL switches MUST silently discard IS-IS PDUs with unknown PDU numbers and SHOULD maintain a per-PDU-number counter of such discards. Treating unknown PDU numbers as fatal errors (e.g., dropping adjacency) is incorrect given the addition of MTU-probe/ack in RFC 7176 and three more PDUs in RFC 7356.

routing

normative-requirement §8.1 MUST

TRILL switches MUST support E-L1FS PDUs (RFC 7356) and MUST include a Scope Flooding Support TLV in all TRILL Hellos indicating E-L1FS and any other FS-LSP scopes they support. E-L1FS support MUST also be advertised via the 'E' capability bit (bit 4) in the TRILL-VER sub-TLV.

routing

normative-requirement §2.2 MUST

When determining distribution tree roots, an RBridge MUST ignore all nicknames held by TRILL switches that are in overload or are data unreachable. An overloaded RBridge can appear only as a leaf node in the distribution tree.

routing, multicast

protocol-element §10.1

The Color bit (C, 1 bit) in the TRILL Header allows ingress switches to optionally mark packets for implementation-specific purposes. Transit TRILL switches MUST NOT change this bit; transit and egress switches MAY use it for traffic labeling or statistical analysis.

routing

protocol-element §10.2.2

The Extended Color field (flags word bits 27-28) is a 2-bit field in the non-critical ingress-to-egress region. Ingress switches MAY set these bits for implementation-specific marking; transit switches MUST NOT change them. Support is advertised via the same bit positions in the TRILL version sub-TLV Capabilities field.

routing

protocol-element §10.2.1

The Extended Hop Count field (flags word bits 14-16, high-order 3 bits) extends the 6-bit Hop Count to 9 bits, supporting up to 512 hops. When used, the high 3 bits are stored in the flags word, the low 5 bits in the TRILL Header Hop Count field, and the critical reserved bit (bit 2 of the flags word) is set to one.

routing

protocol-element §2.4.2

The OOMF (Overload Originated Multi-destination Frame) service allows an overloaded RBridge (RB2) to tunnel multi-destination frames to a non-overloaded neighbor that volunteers service. RB2 encapsulates with M=0, Hop Count=2, Ingress Nickname=RB2 nickname, and Egress Nickname=0xFFC1 (special OOMF nickname), unicasting to the OOMF-offering neighbor.

routing, multicast

registry §12.2.2

IANA allocated bit 4 in the 'TRILL-VER Sub-TLV Capability Flags' registry as the 'E' bit indicating E-L1FS FS-LSP support (RFC 7356 and RFC 7780). Bits 15 and 16 of that registry are re-designated as Unassigned (previously used for Extended Hop Count advertising per Section 10.2.1.1).

routing, registry

registry §12.1

IANA allocated nickname 0xFFC1 for use as the OOMF Egress Nickname in the TRILL Parameters registry, and allocated bit 1 in the TRILL Neighbor TLV Neighbor RECORD with description 'Offering OOMF service' to indicate willingness to provide OOMF forwarding to the identified neighbor.

routing, registry

registry §12.2.3

IANA assigned APPsub-TLV Type 6 (NICKFLAGS) under the TRILL GENINFO TLV and created a new 'NickFlags Bits' registry (IETF Review procedure) for bit assignments within NICKFLAG RECORDs. Bit 0 (IN, Ingress flag) is the initial assignment.

routing, registry

registry §12.2.4

The 'TRILL Extended Header Flags' registry is updated: flags word bits 14-16 are assigned as the Extended Hop Count field (CRSV region) and bits 27-28 are assigned as the Extended Color field (NCItE region) in the 32-bit optional flags word extension to the TRILL Header.

routing, registry

security-consideration §13

The RPF check on multi-destination TRILL Data packets is a critical security mechanism preventing traffic multiplication and looping during topology transients. The alternative stronger quadruplet RPF check (Section 3.6) closes a specific bypass on multi-access links where the standard triplet check is insufficient, but implementation is optional due to increased state cost.

routing, security

wire-format §8.4

The Nickname Flags (NickFlags) APPsub-TLV has a 2-byte Type=6, 2-byte Length=4*K, followed by K NICKFLAG RECORDs of 4 bytes each. Each record contains a 16-bit Nickname and a 16-bit flags field with the IN (Ingress) flag in bit 0; RESV bits MUST be sent as zero.

routing, registry

wire-format §10

The updated TRILL Header is: V (2 bits), A/Alert (1 bit), C/Color (1 bit), M/Multi-destination (1 bit), RESV (4 bits, must be zero), F/FlagsWordPresent (1 bit), Hop Count (6 bits), Egress Nickname (16 bits), Ingress Nickname (16 bits), optional 32-bit Flags Word when F=1.

routing