rfc-8249

Transparent Interconnection of Lots of Links (TRILL): MTU Negotiation

M. Zhang, X. Zhang, D. Eastlake 3rd, R. Perlman, S. Chatterjee
date2017-09 streamIETF areartg wgtrill statusPROPOSED STANDARD pages15 canonicalhttps://www.rfc-editor.org/rfc/rfc8249 doi10.17487/RFC8249
The base IETF TRILL (Transparent Interconnection of Lots of Links) protocol has a TRILL campus-wide MTU feature, specified in RFCs 6325 and 7177, that assures that link-state changes can be successfully flooded throughout the campus while being able to take advantage of a campus-wide capability to support jumbo packets. This document specifies recommended updates to that MTU feature to take advantage, for appropriate link-local packets, of link-local MTUs that exceed the TRILL campus MTU. In addition, it specifies an efficient algorithm for local MTU testing. This document updates RFCs 6325, 7177, and 7780.

updates

Extracted elements (25)

design-rationale §1

A new link-wide MTU value 'Lz' is introduced so that link-local PDUs (CSNPs, PSNPs, E-L1CS FS-LSPs) can be sized up to the local link's capability rather than being constrained by the campus-wide Sz. This improves link utilization efficiency and speeds link-state convergence when the link MTU exceeds the campus MTU.

routing

design-rationale §2.1

Even when all RBridges on a link agree on Lz, an intermediate bridge (non-RBridge) with a smaller port MTU can silently discard PDUs. For example, if three RBridges agree on Lz=1800 but a bridge between two of them has port MTU 1700, PDUs of size 1800 are dropped. This motivates actual link MTU testing rather than relying solely on advertised values.

routing

design-rationale §4

The originatingL1LSPBufferSize from IS-IS unreachable RBridges is still meaningful and used when determining Sz, even though link-state information for IS-IS unreachable RBridges is otherwise ignored. This updates RFC 7780.

routing

design-rationale §2

TRILL IS-IS Hellos are always limited to 1470 bytes for robustness, even though other link-local PDUs may be sized up to Lz. This ensures Hello packets reliably traverse any conformant link regardless of MTU negotiation state.

routing

interoperability-note §6

CSNPs and PSNPs formatted up to link-wide Lz are processed normally even if received at larger-than-Sz sizes. In the 2-Way state (before MTU testing), link-wide Lz may exceed the actual link MTU, causing discards; after successful MTU testing, PDUs are bounded by the tested size and will get through.

routing

interoperability-note §8

Mixed deployments of Lz-ignorant and Lz-aware RBridges are supported. Lz-ignorant RBridges format PDUs no greater than Sz (always valid since Lz >= Sz); Lz-aware RBridges can send larger link-local PDUs that Lz-ignorant receivers can handle because those receivers' originatingL1LSPBufferSize was tested at or above Lz.

routing

normative-requirement §2 MUST NOT

E-L1CS FS-LSP fragment zero MUST NOT exceed 1470 bytes, even though other E-L1CS FS-LSP fragments may be sent up to Lz in size.

routing

normative-requirement §8 MUST

If an RBridge per RFC 6325 receives an MTU-probe, it MUST respond with an MTU-ack padded to the same size as the MTU-probe, regardless of whether it supports the new binary search testing algorithm.

routing

normative-requirement §3 SHOULD

If lowerBound < Sz < upperBound after the binary search, RBridges SHOULD test whether the link can support Sz by probing at Sz. Without this test, the safe assumption is that the link cannot support Sz, which could cause unnecessary network partition.

routing

normative-requirement §2.1 SHOULD

If more than one originatingSNPBufferSize APPsub-TLV occurs in fragment zero, the one advertising the smallest value not less than 1470 bytes is used; APPsub-TLVs in any other fragment are ignored.

routing

normative-requirement §5 MUST NOT

If the size of an LSP exceeds the MTU of a port over which it is to be propagated, the LSP MUST NOT be sent over that port and an LSPTooLargeToPropagate alarm shall be generated.

routing

normative-requirement §3 RECOMMENDED

It is RECOMMENDED that one RTT between adjacent RBridges be used as the minimum interval between two successive MTU-probes. If RTT cannot be estimated, a default value of 5 milliseconds should be assumed.

routing

normative-requirement §3 RECOMMENDED

It is RECOMMENDED that the Designated RBridge (DRB) take responsibility for MTU testing, and multicast MTU-probes SHOULD be used instead of unicast when multiple RBridges on the link are desired to respond with MTU-ack.

routing

normative-requirement §2.1 SHOULD

The link MTU size SHOULD be tested. After successful testing, link-local PDUs (CSNPs, PSNPs, E-L1CS FS-LSPs) are formatted no greater than the tested link MTU size to ensure safe transmission, because an intermediate bridge with a smaller port MTU may otherwise discard PDUs sized at Lz.

routing

normative-requirement §2 SHOULD

The originatingSNPBufferSize APPsub-TLV SHOULD be included in a TRILL GENINFO TLV in E-L1CS FS-LSP fragment zero. If absent or if no fragment zero exists, the originating IS is assumed to implicitly advertise Sz octets.

routing

normative-requirement §4 SHOULD

Upward resizing of Sz SHOULD be dampened. When an upward resizing event is detected, it is RECOMMENDED that a timer (LSPresizeTime, default 300 seconds) be set, during which all subsequent upward resizing is ignored.

routing

normative-requirement §4 MUST

When an RBridge joins and its originatingL1LSPBufferSize is smaller than the current Sz, any LSP greater than the reduced Sz MUST be split and/or LSP contents MUST be otherwise redistributed so that no LSP exceeds the new Sz.

routing

normative-requirement §5 SHOULD

When an RBridge port MTU is smaller than the local originatingL1SNPBufferSize (an inconsistent configuration), that port SHOULD be disabled since no adjacency can be formed through it.

routing

protocol-element §2

Lz is the link-wide minimum acceptable inter-RBridge MTU size on a local link, computed as the minimum originatingSNPBufferSize advertised by all RBridges on that link but not less than Sz. Link-scoped PDUs may be sized up to Lz rather than the campus-wide Sz.

routing

protocol-element §10.1

The LSPresizeTime parameter (per-RBridge configuration) is an integer in the range 0–65535 seconds, defaulting to 300. It controls the dampening timer that prevents premature upward resizing of Sz after a resize event is detected.

routing

protocol-element §10.2

The originatingSNPBufferSize parameter (per-RBridge-port configuration) is an integer in the range 1470–65535, defaulting to the minimum of the port's physical MTU and the maximum link-local IS-IS PDU size the TRILL implementation can handle. This value determines Lz for the port.

routing

registry §11

IANA assigned APPsub-TLV type 21 (originatingSNPBufferSize) in the 'TRILL APPsub-TLV Types under IS-IS TLV 251 Application Identifier 1' registry, from the range less than 256.

registry, routing

security-consideration §9

A forged TRILL Hello containing an erroneous originatingSNPBufferSize APPsub-TLV can reduce Lz to Sz, disabling the link-MTU optimization but not causing a protocol failure. Protection against forged IS-IS PDUs, including such Hellos, can be obtained through IS-IS PDU cryptographic authentication per RFC 5310.

security, routing

state-machine §3

A binary search MTU testing algorithm is defined. Step 0 probes at link-wide Lz; on success, MTU is set to Lz. On failure, it probes at 1470 (setting a 'failed minimum MTU' flag on total failure) and initializes bounds. Step 1 iteratively bisects [lowerBound, upperBound] updating bounds based on MTU-ack reception, stopping when lowerBound >= upperBound or after n iterations (default n=5). Default retry count k=3, default RTT estimate 5 ms.

routing

wire-format §2

The originatingSNPBufferSize APPsub-TLV (Type=21, Length=2) carries a 2-byte unsigned integer for the local originatingL1SNPBufferSize, valid in the range 1470–65535 bytes. It is carried in a TRILL GENINFO TLV in E-L1CS FS-LSP fragment zero.

routing, registry