rfc-7968

Transparent Interconnection of Lots of Links (TRILL): Using Data Labels for Tree Selection for Multi-Destination Data

Y. Li, D. Eastlake 3rd, W. Hao, H. Chen, S. Chatterjee
date2016-08 streamIETF areartg wgtrill statusPROPOSED STANDARD pages22 canonicalhttps://www.rfc-editor.org/rfc/rfc7968 doi10.17487/RFC7968
TRILL (Transparent Interconnection of Lots of Links) uses distribution trees to deliver multi-destination frames. Multiple trees can be used by an ingress Routing Bridge (RBridge) for flows, regardless of the VLAN, Fine-Grained Label (FGL), and/or multicast group of the flow. Different ingress RBridges may choose different distribution trees for TRILL Data packets in the same VLAN, FGL, and/or multicast group. To avoid unnecessary link utilization, distribution trees should be pruned based on one or more of the following: VLAN, FGL, or multicast destination address. If any VLAN, FGL, or multicast group can be sent on any tree, for typical fast-path hardware, the amount of pruning information is multiplied by the number of trees, but there is limited hardware capacity for such pruning information. This document specifies an optional facility to restrict the TRILL Data packets sent on particular distribution trees by VLAN, FGL, and/or multicast groups, thus reducing the total amount of pruning information so that it can more easily be accommodated by fast-path hardware.

Extracted elements (24)

design-rationale §2

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.

routing, security

design-rationale §2

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.

routing

design-rationale §3.4

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.

routing

design-rationale §2

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.

routing

interoperability-note §4

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.

routing

interoperability-note §4

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.

routing

normative-requirement §3.1 SHOULD NOT

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.

routing

normative-requirement §3.3 SHOULD

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.

routing

normative-requirement §3.2.3 MUST

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.

routing

normative-requirement §3.2.1 MUST

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.

routing

normative-requirement §4 MUST

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.

routing

normative-requirement §3.3 MUST

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.

routing

normative-requirement §3.3 SHOULD

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.

routing

protocol-element §3.2

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.

routing, registry

protocol-element §3.2.4

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.

routing

protocol-element §3.2.6

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.

routing

protocol-element §3.2.2

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.

routing

protocol-element §3.2.5

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.

routing, multicast

registry §6

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).

registry, routing

security-consideration §5

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.

security, routing

state-machine §3.4

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.

routing

wire-format §3.2.3

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.

routing

wire-format §3.2.5

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.

routing

wire-format §3.2.1

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.

routing