Re: [bess] comment on draft-ietf-bess-ir

Lucy yong <lucy.yong@huawei.com> Wed, 02 September 2015 16:18 UTC

Return-Path: <lucy.yong@huawei.com>
X-Original-To: bess@ietfa.amsl.com
Delivered-To: bess@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1000B1B4F22 for <bess@ietfa.amsl.com>; Wed, 2 Sep 2015 09:18:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.21
X-Spam-Level:
X-Spam-Status: No, score=-4.21 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id I0r3K-kVOytU for <bess@ietfa.amsl.com>; Wed, 2 Sep 2015 09:17:57 -0700 (PDT)
Received: from lhrrgout.huawei.com (lhrrgout.huawei.com [194.213.3.17]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1CD331B2DA6 for <bess@ietf.org>; Wed, 2 Sep 2015 09:17:53 -0700 (PDT)
Received: from 172.18.7.190 (EHLO lhreml405-hub.china.huawei.com) ([172.18.7.190]) by lhrrg01-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id CAT22545; Wed, 02 Sep 2015 16:17:52 +0000 (GMT)
Received: from DFWEML704-CHM.china.huawei.com (10.193.5.141) by lhreml405-hub.china.huawei.com (10.201.5.242) with Microsoft SMTP Server (TLS) id 14.3.235.1; Wed, 2 Sep 2015 17:17:49 +0100
Received: from DFWEML701-CHM.china.huawei.com ([10.193.5.50]) by dfweml704-chm ([10.193.5.141]) with mapi id 14.03.0235.001; Wed, 2 Sep 2015 09:17:44 -0700
From: Lucy yong <lucy.yong@huawei.com>
To: "Jeffrey (Zhaohui) Zhang" <zzhang@juniper.net>, "draft-ietf-bess-ir@tools.ietf.org" <draft-ietf-bess-ir@tools.ietf.org>
Thread-Topic: [bess] comment on draft-ietf-bess-ir
Thread-Index: AdDk3ISJn9nFD8+oSbSr4N7sHOM6gAAAX5GwAAOXAfAAANOCgAAAU7awAABHvDAAJPGQAAAAPYswAAC6OMA=
Date: Wed, 02 Sep 2015 16:17:44 +0000
Message-ID: <2691CE0099834E4A9C5044EEC662BB9D571D7CBF@dfweml701-chm>
References: <2691CE0099834E4A9C5044EEC662BB9D571D7792@dfweml701-chm> <BLUPR0501MB17158B3790D5A894347476ADD46A0@BLUPR0501MB1715.namprd05.prod.outlook.com> <2691CE0099834E4A9C5044EEC662BB9D571D78ED@dfweml701-chm> <BLUPR0501MB17155DE93CE0601D683A5E8BD46A0@BLUPR0501MB1715.namprd05.prod.outlook.com> <2691CE0099834E4A9C5044EEC662BB9D571D7944@dfweml701-chm> <BLUPR0501MB1715E5BFBF429398E5EDAECED46A0@BLUPR0501MB1715.namprd05.prod.outlook.com> <2691CE0099834E4A9C5044EEC662BB9D571D7BCA@dfweml701-chm> <BLUPR0501MB171512BF9DEF8E029BCBA8A9D4690@BLUPR0501MB1715.namprd05.prod.outlook.com>
In-Reply-To: <BLUPR0501MB171512BF9DEF8E029BCBA8A9D4690@BLUPR0501MB1715.namprd05.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.47.149.49]
Content-Type: multipart/alternative; boundary="_000_2691CE0099834E4A9C5044EEC662BB9D571D7CBFdfweml701chm_"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <http://mailarchive.ietf.org/arch/msg/bess/l9FqxZRN4veIm1GESDI2jyRjC7s>
Cc: "bess@ietf.org" <bess@ietf.org>
Subject: Re: [bess] comment on draft-ietf-bess-ir
X-BeenThere: bess@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: BGP-Enabled ServiceS working group discussion list <bess.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/bess>, <mailto:bess-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/bess/>
List-Post: <mailto:bess@ietf.org>
List-Help: <mailto:bess-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/bess>, <mailto:bess-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 02 Sep 2015 16:18:06 -0000

Hi Jeffery,

Please see inline below.

From: Jeffrey (Zhaohui) Zhang [mailto:zzhang@juniper.net]
Sent: Wednesday, September 02, 2015 9:10 AM
To: Lucy yong; draft-ietf-bess-ir@tools.ietf.org
Cc: bess@ietf.org
Subject: RE: [bess] comment on draft-ietf-bess-ir

Hi Lucy,

If downstream neighbor n1 relies on IP forwarding, it can discard the packet associated with k2 after an IP lookup. But if it does not (e.g., it uses label switching - because it is a segmentation point and has its own downstream segment), then it won't be able to discard traffic and will continue to forward traffic downstream.
[Lucy] the rule in 6.2 does not require downstream neighbor to assign the same label for K1 and K2.  If it is, it follows its parent behavior described in the draft. Agree if all parent for both to meet the rules specified in Section 6.2, two tunnels share the same labels on the upstream path until two tunnels have different parent again.

Besides, w/o requiring the set of matching neighbors (and the matching encapsulation for each neighbor), it becomes hard for N to decide if it can advertise the same label for k1 and k2.
[Lucy] Maybe not, N can allocate if all or XX% downstream neighbors are the same such as 90%.  The higher %, the less packets are discarded at downstream node.
It is true that the hard requirements causes more updates when downstream come and go, but that dynamic does not increase the complexity of the logic that allocates the label, and there are ways (e.g. dampening) to mitigate the thrashing. One may argue that the dampening will cause the same issue I mentioned in the previous paragraph, but I think it's better to have precise/hard rules on label allocation.
[Lucy] However it is increasing router process, state changes, and forwarding update, which means increasing the complexity.

Thanks,
Lucy

Jeffrey

From: Lucy yong [mailto:lucy.yong@huawei.com]
Sent: Wednesday, September 02, 2015 9:47 AM
To: Jeffrey (Zhaohui) Zhang <zzhang@juniper.net<mailto:zzhang@juniper.net>>; draft-ietf-bess-ir@tools.ietf.org<mailto:draft-ietf-bess-ir@tools.ietf.org>
Cc: bess@ietf.org<mailto:bess@ietf.org>
Subject: RE: [bess] comment on draft-ietf-bess-ir

Hi Jeffery,

Let me clarify, I suggest to relax the second rule in Section 6.2, i.e. no need to require N to have exact same set of downstream neighbors in two tunnels. For example, if K1 has downstream neighbors n1~n10 and K2 has downstream neighbors n2-n10. N node can assign a single label for the upstream for both tunnels. As a result, the packet with this label from upstream node will be sent to downstream neighbors n1-n10; n1 accepts the packets that associate with K1 and discard the packets that associate with K2. N2-N10 will accept the packets that associate with either K1 or K2.

The reason I point out the section 9 is that at one time, K1 and K2 may have the same set of downstream neighbors, at another time, another downstream neighbors may advertise leaf A-D route for K1 but not K2, now N will have different set of downstream neighbors, N has to allocate different label for K1. Since leaf A-D route can by dynamically advertised by downstream neighbor for join, withdraw, parent change; rule #2 in section 6.2 makes sharing label or merge tunnel a hard condition to satisfy. If rule #2 is not satisfied, the node allocates different label for each tunnel, which results a large table; and changing the label on fly makes more complex for the parent, parent of patent, as so on.

Regards,
Lucy




From: Jeffrey (Zhaohui) Zhang [mailto:zzhang@juniper.net]
Sent: Tuesday, September 01, 2015 3:16 PM
To: Lucy yong; draft-ietf-bess-ir@tools.ietf.org<mailto:draft-ietf-bess-ir@tools.ietf.org>
Cc: bess@ietf.org<mailto:bess@ietf.org>
Subject: RE: [bess] comment on draft-ietf-bess-ir

Lucy,

> The relaxed rule make easier to qualify the condition.

Section 6.2 and section 9 are independent. Section 6.2 is about sharing label (for the same parent) among two different tunnels; section 9 is about the child picking a new parent for the same tunnel.

I had thought your "relaxed rule" is about section 9 - let the child manage the make-before-break w/o involving parent.

Now it seems that you're referring to section 6.2, and it's not clear what the relaxed rule is.

Jeffrey

From: Lucy yong [mailto:lucy.yong@huawei.com]
Sent: Tuesday, September 01, 2015 4:08 PM
To: Jeffrey (Zhaohui) Zhang <zzhang@juniper.net<mailto:zzhang@juniper.net>>; draft-ietf-bess-ir@tools.ietf.org<mailto:draft-ietf-bess-ir@tools.ietf.org>
Cc: bess@ietf.org<mailto:bess@ietf.org>
Subject: RE: [bess] comment on draft-ietf-bess-ir



From: Jeffrey (Zhaohui) Zhang [mailto:zzhang@juniper.net]
Sent: Tuesday, September 01, 2015 3:01 PM
To: Lucy yong; draft-ietf-bess-ir@tools.ietf.org<mailto:draft-ietf-bess-ir@tools.ietf.org>
Cc: bess@ietf.org<mailto:bess@ietf.org>
Subject: RE: [bess] comment on draft-ietf-bess-ir

Lucy,

Please see zzh2> below.

From: Lucy yong [mailto:lucy.yong@huawei.com]
Sent: Tuesday, September 01, 2015 3:48 PM
To: Jeffrey (Zhaohui) Zhang <zzhang@juniper.net<mailto:zzhang@juniper.net>>; draft-ietf-bess-ir@tools.ietf.org<mailto:draft-ietf-bess-ir@tools.ietf.org>
Cc: bess@ietf.org<mailto:bess@ietf.org>
Subject: RE: [bess] comment on draft-ietf-bess-ir

Hi Jeffery,

Thank you for your quick reply. To clarify, the first part of my previous email is to state what are specified in the draft. Starting "Since the essential rule" is about the simper solution in my mind that can apply this approach, which requires some rules and procedure changes in Section 6.2 and 9.



From: Jeffrey (Zhaohui) Zhang [mailto:zzhang@juniper.net]
Sent: Tuesday, September 01, 2015 2:27 PM
To: Lucy yong; draft-ietf-bess-ir@tools.ietf.org<mailto:draft-ietf-bess-ir@tools.ietf.org>
Cc: bess@ietf.org<mailto:bess@ietf.org>
Subject: RE: [bess] comment on draft-ietf-bess-ir

Hi Lucy,

Please see zzh> below.

From: BESS [mailto:bess-bounces@ietf.org] On Behalf Of Lucy yong
Sent: Tuesday, September 01, 2015 1:35 PM
To: draft-ietf-bess-ir@tools.ietf.org<mailto:draft-ietf-bess-ir@tools.ietf.org>
Cc: bess@ietf.org<mailto:bess@ietf.org>
Subject: [bess] comment on draft-ietf-bess-ir

Hi Authors,

The draft is well written. Some simper implementation maybe considered.

The mechanism is to build a distribution tree, i.e. a P-tunnel by ingress replication (IR) at each segment. To achieve that, AS number is used as the tree root ID and RT is used for Parent identifier. The implementation requires each parent to track all its children and each child selects one parent.

Zzh> While in a separate thread you and I talked about AS number identifying the tree root for an inter-as inclusive tree, more accurately it is that the Inter-AS I-PMSI route identifying the Ingress Replication tunnel. As this draft pointed out, an I/S-PMSI route identifies the tunnel, whether the route is tied to an AS (in case of Inter-AS I-PMSI), or some other things (e.g. an S-PMSI).

Section 6.2 describes the rules for intermediate node as a child to allocate a single label for two received Leaf A-D routes from its downstream.

Zzh> More accurately, a single label for the upstream segment of two different tunnels. Suppose there are two tunnels, both have the same forwarding state for the downstream segment, then the upstream can share the same label.
[Lucy] Please clarify: both have the same forwarding state for the downstream segment at a time or forever? Section 9 states that many reason may cause to change the parents for a leaf A-D.

Zzh2> As long as they still share the same downstream forwarding state. The motivation for this optimization is to reduce the forwarding state on this and upstream routers when possible.
[Lucy] I understand this benefit. The relaxed rule make easier to qualify the condition.

Section 9 describes that the solution is able to support dynamic Leaf A-D route (join and withdraw). This makes the rule #2 in section 6.2 becomes a near impossible condition because the Leaf A-D route at downstream may change for the time being.

Zzh> Section 6.2 already points out the following:

   Of course, N MAY always specify distinct non-zero labels in each of
   the Leaf A-D routes that it originates.

I.e., you can always advertise different labels for different tunnels. The more complicated label allocation scheme in the section allows for different tunnel segments to share the same forwarding state, and is an optimization. The implementation of that is not infeasible.
[Lucy] This is always valid to do. My point is when it is proper to have a shared label.
Zzh2> It's valid to share label as long as your downstream forwarding state are the same for the two tunnels.
[Lucy] IMO: this is not necessary. Without the same downstream forwarding state, two tunnels can share the label too as long as we state the downstream operation properly.

Thanks,
Lucy



Section 9 further describes "the make before break" implementation and requires some cooperation between patent and its child who is changing to a new parent;  that is: the patent detects the change from RT value changes and update its state (not as parent for the child), but continually send the packet in data plane until receiving the withdraw Leaf A-D route from the child; the child sends the leaf A-D with the new parent identified by IP address-specific RT, but continually acceptes the packets from old-patent for  a while before accepts the packets from new patent.

Zzh> When a child changes the RT value because it picks a new parent, the old parent will get a withdraw - not that it gets the updated route (with the new RT) first and then a withdraw later.
[Lucy] why can't the child send the Leaf A-D for new patent first to the new parent and send withdraw Leaf A-D to old Patent the later when it stops accepting the packet from old-parent?  In fact, this is what I propose below.

Zzh2> For a particular PMSI route, you can only have one instance of the Leaf A-D route. If it contains only the RT for the new parent, then the old parent will get an implicit or explicit withdraw. If it contains both RTs, then the old parent will see an updated label corresponding to the new parent and that's not good.

Jeffrey


Thanks,
Lucy

Since the essential rule in this mechanism is for each child to select one and only one patent, the child node can implement "make before break" without parent assistant. Thus, patent does not need to update the multicast state based on RT change, just update the multicast state when receiving the withdraw Leaf A-D route. Let the child to manage it. If two nodes send the same packet to a child, the child only accepts the packet from its parent and discards a packet from non parent now as the essential rule. When a child changes parents, it just needs to continually accept the packet from old parent for a while, after accepting the packet from the new UMH, it sends the withdraw lead A-D and stop accepting the packet from old parent.

Zzh> Perhaps this can be done by the child to include the RT for the new parent and the RT for the old parent for a while, and then remove the RT for the old parent later. The drawback is that an additional route update is needed.


The essential rule can relax the #2 rule in section 6.2, i.e. no need to restrict N's forwarding state for K1 and K2 are exactly same, i.e. the same set of downstream neighbors. This will be more practical.

We just need to state rules for a node to discard the received packet, 1)  the packet is from non-patent node; 2) the node never advertises for the corresponding Leaf A-D route.

Zzh> Section 6.2 and section 9 are independent?

Jeffrey

To balance avoiding packet discard at a downstream node and sharing a label in upstream path, an intermediate node can have a proper algorithm for label allocation.

Does this make a sense? Comment?

Thanks.
Lucy