Transparent Interconnection of Lots of Links (TRILL): MTU Negotiation
updates
Extracted elements (25)
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.