Transparent Interconnection of Lots of Links (TRILL): Using Data Labels for Tree Selection for Multi-Destination Data
Extracted elements (24)
Not pruning distribution trees wastes bandwidth for broadcast/unknown-unicast traffic and Layer 3 multicast (e.g., IPTV), and only helps pure transit nodes — edge nodes always need the full (tree + VLAN) forwarding table. Security concerns about VLAN isolation also make no-prune inappropriate.
Some fast-path silicon uses VLAN-based tree selection (mapping incoming VLAN x to a fixed tree t in the control plane) rather than hash-based selection, because hashing across trees is not supported in hardware. This document's mechanism is compatible with such implementations.
The second-highest-priority tree root is recommended to be pre-configured with the same tree-VLAN correspondence as the highest-priority tree root (for trees other than the highest-priority tree itself), so that multicast forwarding table changes are minimized upon highest-priority root failure.
When multiple distribution trees exist and ingress RBridges can use any tree for any VLAN/FGL, the multicast forwarding table size grows as n*m (trees × VLANs/FGLs), quickly exhausting limited fast-path hardware capacity. Restricting each VLAN/FGL to a subset of trees reduces table size by a factor equal to the number of trees.
In a hybrid campus with old RBridges (RFC 6325 only) and new RBridges, the multicast forwarding table benefit is reduced. The worst case is where new RBridges' interested VLANs are a subset of old RBridges' interested VLANs, yielding no table size reduction for entries related to old RBridges.
RBridges that understand TREE-VLAN-USE APPsub-TLVs from a peer RBn should use them for building the multicast forwarding table and ignore TREE-USE-IDs and INT-VLAN sub-TLVs from the same RBn for that purpose (though the latter are still used for RPF table construction). If no TREE-VLAN-USE APPsub-TLVs are received from RBn, the conventional RFC 6325 method is used.
An ingress RBridge SHOULD NOT transmit VLAN x frames on tree y if the highest-priority tree root has not announced that VLAN x is allowed on tree y.
An ingress RBridge that understands the TREE-VLANs APPsub-TLV SHOULD select tree-VLAN correspondences and advertise them in TREE-VLAN-USE APPsub-TLVs. If multiple tree nicknames are announced for VLAN x, the ingress RBridge chooses one (e.g., closest root) and SHOULD relate each Data Label to only one tree ID.
If End.FGL is less than Start.FGL in a Tree-FGL RECORD, the record MUST be ignored. If Length of the TREE-FGLs APPsub-TLV is not a multiple of 8, the APPsub-TLV is corrupt and MUST be ignored.
If End.VLAN is less than Start.VLAN in a Tree-VLAN RECORD, the record MUST be ignored. Similarly, if Length of the TREE-VLANs APPsub-TLV is not a multiple of 6, the APPsub-TLV is corrupt and MUST be ignored.
RBridges MUST include the TREE-USE-IDs and INT-VLAN sub-TLVs in their LSPs when required by RFC 6325, regardless of whether they support the new TREE-VLAN-USE or TREE-FGL-USE APPsub-TLVs.
The highest-priority tree root RBridge MUST include all tree-related sub-TLVs defined in RFC 7176 in its E-L1FS FS-LSP and MAY additionally include TREE-VLANs and/or TREE-FGLs APPsub-TLVs to indicate per-tree VLAN/FGL restrictions.
When encapsulating a multi-destination frame for Data Label x, an ingress RBridge SHOULD use a tree nickname it previously selected in a TREE-VLAN-USE or TREE-FGL-USE APPsub-TLV. Exceptions apply if no such APPsub-TLV was advertised or if the selected tree is unavailable due to failure.
Six new APPsub-TLVs carried in the TRILL GENINFO TLV in E-L1FS FS-LSPs are defined: Tree and VLANs (type 11), Tree and VLANs Used (type 12), Tree and FGLs (type 13), Tree and FGLs Used (type 14), Tree and Groups (type 15), and Tree and Groups Used (type 16). The first four parallel finer-granularity versions of TREE-RT-IDs and TREE-USE-IDs.
The Tree and FGLs Used APPsub-TLV (type 14) has the same structure as the Tree and FGLs APPsub-TLV but is originated by ingress RBridges to advertise their selected tree-FGL correspondences for multi-destination packets.
The Tree and Groups Used APPsub-TLV (type 16) has the same structure as the Tree and Groups APPsub-TLV but is originated by ingress RBridges to advertise the tree-group correspondences they select from the highest-priority tree root's announcement.
The Tree and VLANs Used APPsub-TLV (type 12) has the same structure as the Tree and VLANs APPsub-TLV but is originated by ingress RBridges to advertise the tree-VLAN correspondences they have selected for use from the list announced by the highest-priority tree root.
Tree selection can be extended beyond Data Labels to per-Data-Label multicast groups via the Tree and Groups APPsub-TLV, allowing, for example, multicast group 1 in VLAN 10 to be assigned to tree 1 and group 2 in VLAN 10 to tree 2 for finer-grained load sharing.
IANA assigned six new TRILL APPsub-TLV types (11–16) in the 'TRILL APPsub-TLV Types under IS-IS TLV 251 Application Identifier 1' registry: 11 (Tree and VLANs), 12 (Tree and VLANs Used), 13 (Tree and FGLs), 14 (Tree and FGLs Used), 15 (Tree and Groups), 16 (Tree and Groups Used).
This document does not change the general RBridge security considerations of the TRILL base protocol. The new APPsub-TLVs can be secured using IS-IS authentication (RFC 5310), and general TRILL security considerations from RFC 6325 Section 6 apply.
Failure handling defines two tree root failure states: (1) non-highest-priority tree root failure — highest-priority tree root reassigns the failed tree's VLANs to other trees; (2) highest-priority tree root failure — second-priority tree root's pre-stored announcements take effect, and RBridges fall back to RFC 6325 behavior if no valid tree is available, with a timer set to at least the LSP flooding time before downgrade.
The Tree and FGLs APPsub-TLV (type 13) contains a 2-byte Type, 2-byte Length (must be a multiple of 8), and n Tree-FGL RECORDs of 8 bytes each. Each record contains a 2-byte Nickname, a 3-byte Start.FGL, and a 3-byte End.FGL.
The Tree and Groups APPsub-TLV (type 15) contains a 2-byte Type, 2-byte Length (2 plus length of Group Sub-Sub-TLVs), a 2-byte Tree Nickname, and zero or more Group Sub-Sub-TLVs structured as sub-TLVs of the GADDR TLV from RFC 7176, each specifying a multicast group and a VLAN or FGL.
The Tree and VLANs APPsub-TLV (type 11) contains a 2-byte Type, 2-byte Length (must be a multiple of 6), and n Tree-VLAN RECORDs of 6 bytes each. Each record contains a 2-byte Nickname, a 2-byte field with 4 RESV bits and 12-bit Start.VLAN, and a 2-byte field with 4 RESV bits and 12-bit End.VLAN.