Transparent Interconnection of Lots of Links (TRILL): Clarifications, Corrections, and Updates
obsoletes
- rfc-7180 — Transparent Interconnection of Lots of Links (TRILL): Clarifications, Corrections, and Updates
updated by
- rfc-8249 — Transparent Interconnection of Lots of Links (TRILL): MTU Negotiation
updates
Extracted elements (32)
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.