Re: [trill] New version : TRILL Smart Endnodes draft

Phanidhar Koganti <pkoganti@Brocade.COM> Wed, 09 January 2013 08:24 UTC

Return-Path: <pkoganti@Brocade.COM>
X-Original-To: trill@ietfa.amsl.com
Delivered-To: trill@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7A52621F84BB for <trill@ietfa.amsl.com>; Wed, 9 Jan 2013 00:24:58 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.064
X-Spam-Level:
X-Spam-Status: No, score=-2.064 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, IP_NOT_FRIENDLY=0.334, J_CHICKENPOX_33=0.6, J_CHICKENPOX_81=0.6, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id u3FNSU3LnyuP for <trill@ietfa.amsl.com>; Wed, 9 Jan 2013 00:24:53 -0800 (PST)
Received: from mx0a-000f0801.pphosted.com (mx0a-000f0801.pphosted.com [67.231.144.122]) by ietfa.amsl.com (Postfix) with ESMTP id 642E021F8439 for <trill@ietf.org>; Wed, 9 Jan 2013 00:24:53 -0800 (PST)
Received: from pps.filterd (m0000542 [127.0.0.1]) by mx0a-000f0801.pphosted.com (8.14.5/8.14.5) with SMTP id r098OQTE029231; Wed, 9 Jan 2013 00:24:50 -0800
Received: from hq1wp-exchub01.corp.brocade.com ([144.49.131.13]) by mx0a-000f0801.pphosted.com with ESMTP id 19rta709js-1 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Wed, 09 Jan 2013 00:24:49 -0800
Received: from HQ1WP-EXHUB01.corp.brocade.com (10.70.36.14) by HQ1WP-EXCHUB01.corp.brocade.com (10.70.36.99) with Microsoft SMTP Server (TLS) id 14.2.309.2; Wed, 9 Jan 2013 00:24:49 -0800
Received: from HQ1-EXCH02.corp.brocade.com ([fe80::c92a:772e:befa:c34c]) by HQ1WP-EXHUB01.corp.brocade.com ([::1]) with mapi; Wed, 9 Jan 2013 00:24:48 -0800
From: Phanidhar Koganti <pkoganti@Brocade.COM>
To: Radia Perlman <radiaperlman@gmail.com>
Date: Wed, 09 Jan 2013 00:24:46 -0800
Thread-Topic: New version : TRILL Smart Endnodes draft
Thread-Index: Ac3uMZS6IOIGdQ6wTQubEUjijXkKlwACCo8g
Message-ID: <6895EAE0CA8DEE40B92D7CA88BB521F32414007BDC@HQ1-EXCH02.corp.brocade.com>
References: <D5A6F3355F664C40AFB65BB1277D8D450186C7F7AD@MAAX7MCDC101.APAC.DELL.COM> <6895EAE0CA8DEE40B92D7CA88BB521F32414007827@HQ1-EXCH02.corp.brocade.com> <CAFOuuo7t8xt8Z1mx78G2SsE8tkmAMNs44xd11Mc43S1_WfH6RA@mail.gmail.com> <6895EAE0CA8DEE40B92D7CA88BB521F32414007BC1@HQ1-EXCH02.corp.brocade.com> <CAFOuuo626hw-c0kM4-1Fp-w2gByPenRnkFP3xNT+cTB4YcJ2kg@mail.gmail.com>
In-Reply-To: <CAFOuuo626hw-c0kM4-1Fp-w2gByPenRnkFP3xNT+cTB4YcJ2kg@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: multipart/alternative; boundary="_000_6895EAE0CA8DEE40B92D7CA88BB521F32414007BDCHQ1EXCH02corp_"
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.9.8327, 1.0.431, 0.0.0000 definitions=2013-01-09_02:2013-01-08, 2013-01-09, 1970-01-01 signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=49 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=7.0.1-1211240000 definitions=main-1301090006
Cc: "d3e3e3@gmail.com" <d3e3e3@gmail.com>, "Kesava_Vijaya_Krupak@Dell.com" <Kesava_Vijaya_Krupak@dell.com>, "hu.fangwei@zte.com.cn" <hu.fangwei@zte.com.cn>, "trill@ietf.org" <trill@ietf.org>
Subject: Re: [trill] New version : TRILL Smart Endnodes draft
X-BeenThere: trill@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "Developing a hybrid router/bridge." <trill.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/trill>, <mailto:trill-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/trill>
List-Post: <mailto:trill@ietf.org>
List-Help: <mailto:trill-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/trill>, <mailto:trill-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 09 Jan 2013 08:24:59 -0000

Radia,

Valid point for unicast that the pair in the example needs to be aware that it might get unicast traffic with TRILL Source RBID equal to its RBID. This brings up an interesting scenario.

Let's say there are two smart end-nodes e1 & e2 which are both multi-homed behind R1 & R2. Also say both e1 & e2 pick R1 to use in TRILL source RBID, then when e1 is talking to e2 we end up in a encap where both TRILL SA/DA will have the same value = R1.

I am inclined towards a pseudo RB for the end-node with its own nickname, but am not clear on the impact on Dijkstra as the number of routable RBIDs will considerably go up.

Few additional concerns:

For multicast it will also trigger confusion on source suppression that needs to happen in the peer RB. Let's say there is a smart end-node e1 & e2 multi-homed behind R1 and R2. For multicast or flooded traffic we need source suppression so that the traffic does not go back to the smart endnode. Or is the draft assuming that the smart end-node will perform the suppression if the packet comes back to it?

Also for the packet direction edge-RB to smart end-node, if we end up with unknown MAC then we should flood to all the locally hanging smart end-nodes and regular end-nodes. When flooding towards smart end-nodes are we expected to continue the TRILL packet with M=0 or convert it to M=1 with T_DA=ROOT. If we like to continue with M=0 then the edge-RB needs to support unicast replication for multicast.

Phani

From: Radia Perlman [mailto:radiaperlman@gmail.com]
Sent: Wednesday, January 09, 2013 11:52 AM
To: Phanidhar Koganti
Cc: Kesava_Vijaya_Krupak@Dell.com; trill@ietf.org; d3e3e3@gmail.com; hu.fangwei@zte.com.cn
Subject: Re: New version : TRILL Smart Endnodes draft

Good point (see Phani's comment below).  I'll summarize:

The current  text implies that it's OK for smart endnode E, multihomed to R1 and R2, to choose one of the nicknames (say R1) for "ingress nickname" in the TRILL header, and forward to either R1 or R2.  There are two problems with E forwarding a TRILL-encapsulated frame using ingeress "R1", through R2:

a) for multicast, likely to confuse the RPF check
b) for unicast, E would probably need to warn R2 that E is multihomed to R1 and will e using R1's nickname for ingress.

And actually, E won't get that much load splitting benefit from being multihomed if it uses "R1" as ingress, since all traffic to E will go through R1.  So, if E doesn't have a pseudonode nickname to use, then perhaps E should just use one R1 or R2.

Or E could get its own nickname (I've been floating around the idea of a "dumb RBridge", which is like a "smart endnode", except it gets its own nickname, and does generate an LSP with "overloaded" flag.  It probably has to receive LSPs and calculate Dijkstra, in order to know which port to send multicast on (unless its attached true RBs are helpful enough to tell it..."you can send multicast with trees X or Y through me")

So, it seems like there are several options which should be discussed, for a smart endnode multihomed to R1 and R2
1) Always use a pseudnode nickname (but that's kind of complicated since that nickname can only be used by smart endnodes that are multihomed to the exact same set of RBridges)
2) Don't do active-active...choose one or R1 or R2 and always send everything that way
3) Do active-active, but only for unicast...choose one of the nicknames, say "R1", and it's OK to send unicast either through R1 or R2, but multicast has to go through R1
4) Give E its own nickname (and somehow make sure it knows which port it can multicast on)
5) Other possibilities?

Radia




On Tue, Jan 8, 2013 at 8:32 PM, Phanidhar Koganti <pkoganti@brocade.com<mailto:pkoganti@brocade.com>> wrote:
Thanks Radia. That clarifies for me. A more descriptive text in draft can surely help vendors as they implement it in their hardware.

Another question on handling multi-homing
E can choose either R1 or R2's nickname, when encapsulating a
       frame, whether the encapsulated frame is sent via R1 or R2. If E
       wants to do active-active load splitting, and uses R1's nickname
       when forwarding through R1, and R2's nickname when forwarding
       through R2, this will cause distant RBridges (or smart endnodes)
       to keep changing their endnode table entry for D between (D, R1's
       nickname) and (D, R2's nickname). So it would be preferable for E
       to always encapsulate using the same nickname (R1 or R2) unless E
       detects a problem with connectivity using that nickname. And in
       this case, R1 and R2 need to be informed that the smart endnode
       might encapsulate with a different nickname, i.e., R1 might
       receive an encapsulated packet from smart endnode E using ingress
       nickname "R2".

If the smart endnode uses either R1 or R2 in the above example, would we have TRILL RPF issues where upstream RBs see a packet with SRB=say R1 coming from a wrong TRILL port? Let's say the RPF happens for multicast only then we will atleast need to make sure the multicast (broadcast, unknown unicast and multcast) is sent via the edge-RB whose RBID the smart endnode is using.

This problem should not be there when using different RBID other than R1 and R2 as described in approach-2

Phani
From: Radia Perlman [mailto:radiaperlman@gmail.com<mailto:radiaperlman@gmail.com>]
Sent: Wednesday, January 09, 2013 2:53 AM
To: Phanidhar Koganti
Cc: Kesava_Vijaya_Krupak@Dell.com<mailto:Kesava_Vijaya_Krupak@Dell.com>; trill@ietf.org<mailto:trill@ietf.org>; d3e3e3@gmail.com<mailto:d3e3e3@gmail.com>; hu.fangwei@zte.com.cn<mailto:hu.fangwei@zte.com.cn>
Subject: Re: New version : TRILL Smart Endnodes draft

Most of what you said is correct.  One correction

a) When the packet reaches the egress RB I am presuming there will be a inner-MAC lookup to deliver the packet to the egress end-node.

correct...when egress RB R has to look up the inner MAC address E, which it has to do anyway without smart endnodes, in order to choose which port to forward it on.  With smart endnodes, when R looks up MAC address E, it not only discovers which port to send it on, but that E is "smart", in which case R must leave the TRILL encapsulation

b) Edge-RB to smart endnode cannot have TRILL encapsulation right?

Not correct.  Traffic from egress RB to smart endnode will have TRILL encapsulation.  So for example, let's say R is the egress RB, and R has a link with two endnodes; E1 (which is smart) and E2 (which is not smart).

When R receives a TRILL packet from the campus, with TRILL destination nickname=R, R looks at the MAC destination.  If it is E2, then R removes the TRILL encapulation and forwards a native packet onto the link.  If it is E1, then R forwards the packet with the TRILL header.

c) Edge-RB to smart endnode cannot have TRILL encapsulation right? If so for my clarification we are saying the traffic towards the end-node will be non-TRILL while towards the ingress edge-RB will be TRILL encapsulated?

Hopefully my answer to b) clarified this.  On the link between endnodes and R, whether it's to or from endnode <--> edge RB, the packet will have TRILL encapsulation if the endnode is smart, and not have TRILL encapsulation if the endnode is not smart.

Radia


On Thu, Jan 3, 2013 at 3:19 AM, Phanidhar Koganti <pkoganti@brocade.com<mailto:pkoganti@brocade.com>> wrote:
The draft defines the control and data path behavior from smart end-node to edge-RB. When the packet reaches the egress RB I am presuming there will be a inner-MAC lookup to deliver the packet to the egress end-node. Edge-RB to smart endnode cannot have TRILL encapsulation right? If so for my clarification we are saying the traffic towards the end-node will be non-TRILL while towards the ingress edge-RB will be TRILL encapsulated?

Phani

From: trill-bounces@ietf.org<mailto:trill-bounces@ietf.org> [mailto:trill-bounces@ietf.org<mailto:trill-bounces@ietf.org>] On Behalf Of Kesava_Vijaya_Krupak@Dell.com<mailto:Kesava_Vijaya_Krupak@Dell.com>
Sent: Thursday, January 03, 2013 4:19 PM
To: trill@ietf.org<mailto:trill@ietf.org>
Cc: d3e3e3@gmail.com<mailto:d3e3e3@gmail.com>; radiaperlman@gmail.com<mailto:radiaperlman@gmail.com>; hu.fangwei@zte.com.cn<mailto:hu.fangwei@zte.com.cn>
Subject: [trill] New version : TRILL Smart Endnodes draft

Hi all,

A new version of the Trill Smart Endnodes draft has been posted.

http://datatracker.ietf.org/doc/draft-perlman-trill-smart-endnodes

Kindly let us know your comments.

Thanks,
kvk