Subject: [trill] To clarify the "split horizon" issue in TRILL Active-Active Edge Using Multiple MAC Attachments

From: Mingui Zhang <[email-masked]>
Date: Mon, 17 Mar 2014 03:34:41 +0000

Hi,

In the London meeting, I presented the following slides on "TRILL Active-Active Edge Using Multiple MAC Attachments".
http://www.ietf.org/proceedings/89/slides/slides-89-trill-4.pdf

The slide on "split horizon" attracted much attention and seemed there was confusion about this issue. Let me clarify it. The following example will be used to explain how the nickname + data label tuple is used for split horizon.

Example: RB1, RB2 and RB3 are the active/active group connecting MC-LAG1 and MC-LAG2. MC-LAG1 and MC-LAG2 are connected to B1 and B2 at their other end. Suppose all these Rbridges use port L1 to connect MC-LAG1 while they use port L2 to connect MC-LAG2. Assume all three L1 enable VLAN 10~20 while all three L2 enable VLAN 15~25. So that there is a overlap of VLAN 15~20. Customer needs hosts in these VLANs communicate with each other. That is, hosts attached to B1 in VLAN 15~20 need communicate with hosts attached to B2 in VLAN 15~20. Assume the remote plain RBridge RB4 also has hosts in VLAN15~20 which need communicate with those hosts in these VLANs attached to B1 and B2. 

Two requirements: 

1. Frames ingressed from RB1-L1-VLAN 15~20 MUST NOT be egressed out of ports RB2-L1 and RB3-L1. At the same time,
2. frames coming from B1-VLAN 15~20 should reach B2-VLAN 15~20.

RB3 stores the information for split horizon on its ports L1&L2: 
on L1, <ingress_nickname_RB1, VLAN 15~20>, <ingress_nickname_RB2, VLAN 15~20> and
on L2, <ingress_nickname_RB1, VLAN 15~20>, <ingress_nickname_RB2, VLAN 15~20>. 

-Case 1-
Suppose RB2/RB3 receives a TRILL multicast data packet with data label VLAN 15 and ingress nickname RB1. RB3 is the single exit point (e.g, selected out according to the hashing method) for this packet. On ports L1&L2, RB3 has <ingress_nickname_RB1, VLAN 15>, so that RB3 will not egress this packet from either L1 or L2. Here, _split horizon_ happens.

Beforehand, RB1 obtains a native frame on port L1 from B1 in VLAN 15. RB1 judges it should be forwarded as a multicast frame across the TRILL campus. Also, RB1 replicates this frame without encapsulation and sends it out of port L2, so that B2 will get this frame.

-Case 2-
Suppose RB2/RB3 receives a TRILL multicast data packet with data label VLAN 15 and ingress nickname RB4. RB3 is the single exit point. On ports L1&L2, since RB3 has not stored any tuple with ingress_ nickname_RB4, RB3 will decapsulate the packet and egress it out of both ports L1 and L2. So both B1 and B2 will receive the frame.

Best regards,
Mingui