Re: [mpls] MPLS extension header

Haoyu song <haoyu.song@huawei.com> Fri, 10 August 2018 19:21 UTC

Return-Path: <haoyu.song@huawei.com>
X-Original-To: mpls@ietfa.amsl.com
Delivered-To: mpls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B4AE7130EA7 for <mpls@ietfa.amsl.com>; Fri, 10 Aug 2018 12:21:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 ZHiZb27qzY_6 for <mpls@ietfa.amsl.com>; Fri, 10 Aug 2018 12:21:10 -0700 (PDT)
Received: from huawei.com (lhrrgout.huawei.com [185.176.76.210]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A94FC130E81 for <mpls@ietf.org>; Fri, 10 Aug 2018 12:21:09 -0700 (PDT)
Received: from lhreml701-cah.china.huawei.com (unknown [172.18.7.108]) by Forcepoint Email with ESMTP id B3DEFCE338A79 for <mpls@ietf.org>; Fri, 10 Aug 2018 20:21:04 +0100 (IST)
Received: from SJCEML701-CHM.china.huawei.com (10.208.112.40) by lhreml701-cah.china.huawei.com (10.201.108.42) with Microsoft SMTP Server (TLS) id 14.3.399.0; Fri, 10 Aug 2018 20:21:06 +0100
Received: from SJCEML521-MBX.china.huawei.com ([169.254.1.107]) by SJCEML701-CHM.china.huawei.com ([169.254.3.151]) with mapi id 14.03.0399.000; Fri, 10 Aug 2018 12:21:01 -0700
From: Haoyu song <haoyu.song@huawei.com>
To: "adrian@olddog.co.uk" <adrian@olddog.co.uk>, "mpls@ietf.org" <mpls@ietf.org>
Thread-Topic: [mpls] MPLS extension header
Thread-Index: AdQvZQVDLmAHjMN2R8663ePuS7//AQAirTPAAAg4WsAAHC0+YAAdL5uAAAanPdA=
Date: Fri, 10 Aug 2018 19:21:01 +0000
Message-ID: <78A2745BE9B57D4F9D27F86655EB87F93750D28A@sjceml521-mbx.china.huawei.com>
References: <78A2745BE9B57D4F9D27F86655EB87F93750CBB5@sjceml521-mbx.china.huawei.com> <2437_1533826308_5B6C5504_2437_497_1_9E32478DFA9976438E7A22F69B08FF924B26D95F@OPEXCLILMA4.corporate.adroot.infra.ftgroup> <78A2745BE9B57D4F9D27F86655EB87F93750CEC0@sjceml521-mbx.china.huawei.com> <5686_1533893026_5B6D59A2_5686_456_2_9E32478DFA9976438E7A22F69B08FF924B26FB84@OPEXCLILMA4.corporate.adroot.infra.ftgroup> <0bed01d430bb$63496900$29dc3b00$@olddog.co.uk>
In-Reply-To: <0bed01d430bb$63496900$29dc3b00$@olddog.co.uk>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.209.217.88]
Content-Type: multipart/alternative; boundary="_000_78A2745BE9B57D4F9D27F86655EB87F93750D28Asjceml521mbxchi_"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/mpls/CcY405zBhd6b7mmIoOf86lD10rM>
Subject: Re: [mpls] MPLS extension header
X-BeenThere: mpls@ietf.org
X-Mailman-Version: 2.1.27
Precedence: list
List-Id: Multi-Protocol Label Switching WG <mpls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mpls>, <mailto:mpls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/mpls/>
List-Post: <mailto:mpls@ietf.org>
List-Help: <mailto:mpls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mpls>, <mailto:mpls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 10 Aug 2018 19:21:13 -0000

Hi Adrian,

Please find my response inline.

Best,
Haoyu

From: Adrian Farrel [mailto:adrian@olddog.co.uk]
Sent: Friday, August 10, 2018 8:04 AM
To: mpls@ietf.org
Cc: Haoyu song <haoyu.song@huawei.com>
Subject: RE: [mpls] MPLS extension header

All,

I'm finding this fast-moving discussion a bit confusing.

Part of the problem is the discussion of all the possible use cases for the EH. That makes it hard to focus in on the actual requirements rather than the potential uses, and so the discussion is a bit fluid - when anyone observes that a specific use case could be solved a different way, it can always be said that this is not the main reason for the innovation. And, of course, it is easy to float difficulties with other approaches (such as scaling, etc.) when the requirements to circumvent those difficulties are speculative.

Thus a number of questions remain hard to pin down:
- does this approach need a fork-lift upgrade or can it be used with legacy routers?
[HS] For legacy routers, if they don't need to access the upper layer and they don't need to scan and understand every label, then they can still forward packets with EHs.
Otherwise, a fork-lift upgrade is needed.

- can multiple EHLs be present in the stack?
[HS] I don't see why this is needed but there's no fundamental reason why it can't be done.

- what is done with an EHL when it becomes top of stack?
[HS] Pop it if a label below it needs to be accessed. Then push it back if EHs are still present.

- is a transit node expected to "find" the EHL if it is not top of stack?
[HS] If it's capable and configured to process EHs, the node should try to find EHL in each packet.

To successfully answer these questions we need to know what function we are attempting to deliver. Indeed, some of the questions may even be irrelevant!

But two other things strike me about the current version of the document:

1. The description of the deficiencies of the GAL/ACH may over-state the issues a little. While you note that the primary application originally envisaged the GAL at the bottom of the stack, this is not a firm requirement and the GAL may actually appear anywhere in the stack. While it is true, as you note, that only a limited number of control word types are allowed, the ACH channel type provides sufficient scaling of a differentiator.  And you are correct that the GAL only indicates the presence of a single ACH, but the construction of the G-Ach message allows multiple "objects" to be present. Lastly you note that the presence of the GAL (and presumably the ACH?) makes DPI and load-balancing by inspection of the payload protocol header hard, you must understand that this is for exactly the reason that the use of the EHL and EH would make the same functions hard - the solution to the first case may not be of interest to the IETF, and the second case is addressed by the entropy label.
[HS] I have discussed this point in another email. And in the draft we explained why we don't want to further overload the GAL sematics. But anyway if there is a strong  argument and consensus to reuse GAL as the indicator, we won't object it. The main contribution of this draft is the way to support multiple chained EHs. We are open to select the indicator approach for EHs.

2. The behaviour seems to model the IPv6 Destination Options extension header. This may provide several lessons to us both in construction of a mechanism and on the breadth of its applicability. Of note is how the destination options may be present twice: once for the current destination addressed by the destination address, and once for the ultimate destination. We should note that an EHL in the stack is only encountered when the preceding label is popped - in that way it is like the first type of destination option. While an EHL at the bottom of the stack is like the second type of destination option.
[HS] This is an interesting observation. Currently we just assume that every configured node will check for EHL in the entire label stack and then search for the EHs it is configured to process if an EHL is found. What you said seems to suggest to associate an EHL to a particular destination, hence we can have more control and realize something like hop-by-hop EH and end-to-end EH. I think we can explore this possibility further.

Regards,
Adrian