Re: [RTG-DIR] RtgDir review: draft-ietf-mpls-sfc-04.txt
Mach Chen <mach.chen@huawei.com> Fri, 18 January 2019 01:37 UTC
Return-Path: <mach.chen@huawei.com>
X-Original-To: rtg-dir@ietfa.amsl.com
Delivered-To: rtg-dir@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9A582126CC7; Thu, 17 Jan 2019 17:37:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level:
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, URIBL_BLOCKED=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 Fe41pzkWidGu; Thu, 17 Jan 2019 17:37:33 -0800 (PST)
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 E2642130F3F; Thu, 17 Jan 2019 17:37:32 -0800 (PST)
Received: from lhreml704-cah.china.huawei.com (unknown [172.18.7.106]) by Forcepoint Email with ESMTP id 9354F7FFDE8F294262E6; Fri, 18 Jan 2019 01:37:30 +0000 (GMT)
Received: from lhreml708-chm.china.huawei.com (10.201.108.57) by lhreml704-cah.china.huawei.com (10.201.108.45) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 18 Jan 2019 01:37:30 +0000
Received: from lhreml708-chm.china.huawei.com (10.201.108.57) by lhreml708-chm.china.huawei.com (10.201.108.57) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1591.10; Fri, 18 Jan 2019 01:37:29 +0000
Received: from DGGEML424-HUB.china.huawei.com (10.1.199.41) by lhreml708-chm.china.huawei.com (10.201.108.57) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256) id 15.1.1591.10 via Frontend Transport; Fri, 18 Jan 2019 01:37:29 +0000
Received: from DGGEML530-MBS.china.huawei.com ([169.254.8.165]) by dggeml424-hub.china.huawei.com ([10.1.199.41]) with mapi id 14.03.0415.000; Fri, 18 Jan 2019 09:37:25 +0800
From: Mach Chen <mach.chen@huawei.com>
To: "BRUNGARD, DEBORAH A" <db3546@att.com>, "adrian@olddog.co.uk" <adrian@olddog.co.uk>, "rtg-ads@ietf.org" <rtg-ads@ietf.org>
CC: "rtg-dir@ietf.org" <rtg-dir@ietf.org>, "mpls@ietf.org" <mpls@ietf.org>, "draft-ietf-mpls-sfc.all@ietf.org" <draft-ietf-mpls-sfc.all@ietf.org>
Thread-Topic: RtgDir review: draft-ietf-mpls-sfc-04.txt
Thread-Index: AdSZOHGt85HegsS7TxCSGyYrh2LDDQLvo12AAE/hNKAAFVFcgACCf1GAAHO/mQAA/V0uAAAc/90A
Date: Fri, 18 Jan 2019 01:37:24 +0000
Message-ID: <F73A3CB31E8BE34FA1BBE3C8F0CB2AE2927FFB98@dggeml530-mbs.china.huawei.com>
References: <F73A3CB31E8BE34FA1BBE3C8F0CB2AE2927E4EA8@dggeml530-mbs.china.huawei.com> <000901d4a53a$0e619770$2b24c650$@olddog.co.uk> <F73A3CB31E8BE34FA1BBE3C8F0CB2AE2927F532A@dggeml530-mbs.china.huawei.com> <000f01d4a6ce$d8554e10$88ffea30$@olddog.co.uk> <F73A3CB31E8BE34FA1BBE3C8F0CB2AE2927F9390@dggeml530-mbs.china.huawei.com> <04c801d4aaa7$d4317b60$7c947220$@olddog.co.uk> <F64C10EAA68C8044B33656FA214632C8958A02B0@MISOUT7MSGUSRDE.ITServices.sbc.com>
In-Reply-To: <F64C10EAA68C8044B33656FA214632C8958A02B0@MISOUT7MSGUSRDE.ITServices.sbc.com>
Accept-Language: en-US, zh-CN
Content-Language: zh-CN
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.111.194.201]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtg-dir/q508h8C9jbtuR3lGoiUtbhpxP8s>
Subject: Re: [RTG-DIR] RtgDir review: draft-ietf-mpls-sfc-04.txt
X-BeenThere: rtg-dir@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Routing Area Directorate <rtg-dir.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtg-dir>, <mailto:rtg-dir-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rtg-dir/>
List-Post: <mailto:rtg-dir@ietf.org>
List-Help: <mailto:rtg-dir-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtg-dir>, <mailto:rtg-dir-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 18 Jan 2019 01:37:36 -0000
Hi Deborah, I am OK with it. Best regards, Mach > -----Original Message----- > From: BRUNGARD, DEBORAH A [mailto:db3546@att.com] > Sent: Friday, January 18, 2019 3:46 AM > To: adrian@olddog.co.uk; Mach Chen <mach.chen@huawei.com>; rtg- > ads@ietf.org > Cc: rtg-dir@ietf.org; mpls@ietf.org; draft-ietf-mpls-sfc.all@ietf.org > Subject: RE: RtgDir review: draft-ietf-mpls-sfc-04.txt > > Hi Mach, > > Much thanks for your careful review! > > It is always a difficult tradeoff on how much to add to a draft regarding > terms/definitions from other RFCs. I've started IETF Last Call. > > Thanks Authors! > Deborah > > > -----Original Message----- > From: Adrian Farrel <adrian@olddog.co.uk> > Sent: Saturday, January 12, 2019 1:51 PM > To: 'Mach Chen' <mach.chen@huawei.com>; rtg-ads@ietf.org > Cc: rtg-dir@ietf.org; mpls@ietf.org; draft-ietf-mpls-sfc.all@ietf.org > Subject: RE: RtgDir review: draft-ietf-mpls-sfc-04.txt > > Hi, > > Thanks for continuing this thread. I hope that by having our discussion we can > arrive at a solution acceptable to us both. > > > I am still thinking that this may not just be an implementation > > problem. Looking though the draft again, I feel that the draft will > > benefit by adding more clarification text. > > > > For example, I found the following text (Section 6). This paragraph > > seems the only "formal" processing rule on the SPI/SI label for the > swapping case. > > > >" > > o When a component of the SFC system processes a packet it uses the > > SPI Label to identify the SFP and the SI Label to determine to > > which SFF or instance of an SF (an SFI) to deliver the packet. > > Under normal circumstances (with the exception of branching and > > reclassification - see [I-D.ietf-bess-nsh-bgp-control-plane]) the > > SPI Label value is preserved on all packets. The SI Label value > > is modified by SFFs and through reclassification to indicate the > > next hop along the SFP. > >" > > > > What does the component refer to (classifier, SFF or SF) ? Can it be an SF? > > If so, what is the processing rule? It seems imply that the SF should > > be SPI/SI aware, the SPI/SI cannot be swapped, popped off. Otherwise > > the mechanisms defined in this document will not work. > > But this is *exactly* the way the issue is described for the NSH. > If the SF is NSH-aware, the NSH is not stripped and the SF processes it. If the > SF is not NSH-aware, then a proxy strips the NSH and reimposes it after the > SF has completed processing. > The NSH contains the SPI which is preserved on every packet, and the SI > which is modified as the packet progresses. > This processing is mirrored exactly using the two MPLS labels. > > > The last sentence says that "The SI Label value is modified by SFFs", > > when does a SFF modify the SI Label value? For example, before > > sending the packet to an SF or after being received from an SF? This > > is not clear in the current draft but. The example section gives some > > hint on this, that's one of the reasons that I think some of the > > content should be defined as formal procedures. > > Well, the full sentence is "The SI Label value is modified by SFFs and through > reclassification to indicate the next hop along the SFP." That means that the > SI is modified by the SFF when it needs to forward the packet to the next > hop. And thus we must ask "what constitutes a hop in an SFC?" The answer > to that is that each SFI is a hop, and we can follow the logic (both from RFC > 7665 and RFC 8300, and from this draft). The packet is classified and the SFC > header (MPLS labels or NSH) is added with SI indicating the first SF to execute. > The packet is sent to the SFF which delivers it to the SI, then the packet is > returned to the SFF which prepares it for the next hop (which may be > another local or remote SFI). > > That should be obvious, IMHO, to anyone familiar with RFC 7665 and RFC > 8300. We could add some text, but I believe it is already clear with an > understanding of SFC. > > In general, I am not opposed to adding clarifications to drafts: if someone has > a question, then it is worth making sure that subsequent readers don't have > identical questions. But here I think we would be encroaching on the > definitions from the SFC working group, and we shouldn't go further. > > > In addition, section 8: > >" > > When an SFF receives a packet containing an MPLS label stack, it > > checks whether it is processing an {SFP, SI} label pair for label > > swapping or a {context label, SFI index} label pair for label > > stacking. It then selects the appropriate SFI to which to send the > > packet. When it receives the packet back from the SFI, it has four > > cases to consider. > > > > o If the current hop requires an {SFP, SI} and the next hop requires > > an {SFP, SI}, it sets the SI label to the SI value of the current > > hop, selects an instance of the SF to be executed at the next hop, > > and tunnels the packet to the SFF for that SFI. > > > > o If the current hop requires an {SFP, SI} and the next hop requires > > a {context label, SFI label}, it pops the {SFP, SI} from the top > > of the MPLS label stack and tunnels the packet to the SFF > > indicated by the context label. > >" > > > > How does an SFF determine "the current hop requires an {SFP, SI} and > > the next hop requires an {SFP, SI}" or "the current hop requires an > > {SFP, SI} and the next hop requires a {context label, SFI label} ? > > How the devices are programmed (e.g., a control plane or management > plane) is out of scope. So, for example, you might have some hops that use > NSH and some that use MPLS (I'm not saying this is a good idea) and the SFF > would need to swap between the two encodings, but how the SFF knows > this is out of scope of this document. Draft-ietf-bess-nsh-bgp-control-plane > provides a way of doing this, but we didn't want to require that protocol > mechanism (much though we love this to be *the* solution). > > > Should the "it sets the SI label to the SI value of the current hop, > > selects an instance of the SF to be executed at the next hop" be > > changed to " it selects an instance of the SF to be executed at the > > next hop, sets the SI label to the SI value of the next hop"? > > The SI label should be set to next hop, right? > > Yes, I think you're right about that confusion. Thanks for catching it. > > Best, > Adrian > > > > -----Original Message----- > > From: Adrian Farrel [mailto:adrian@olddog.co.uk] > > Sent: Tuesday, January 08, 2019 5:21 AM > > To: Mach Chen <mach.chen@huawei.com>; rtg-ads@ietf.org > > Cc: rtg-dir@ietf.org; mpls@ietf.org; draft-ietf-mpls-sfc.all@ietf.org > > Subject: RE: RtgDir review: draft-ietf-mpls-sfc-04.txt > > > > Hmmm, I think we may disagree on this ☹ > > > > I'd ask the WG chairs and AD (especially as the review is for the > > benefit of the > > AD) to guide the authors. > > > > IMHO it is not the place of an IETF spec to tell people how to > > implement unless the implementation changes the resultant behaviour on > the wire. > > From my perspective, this document tells the implementer what > > black-box behaviour is expected: i.e. what result receiving a packet > > should have, and what packets to generate. > > > > We could describe how to implement, but I can't see how that would be > > normative. And I think there are plenty of ways to achieve the > > required behaviour in an optimised way (for example, performing dual- > label access). > > We provided section 14 to give guidance that implementation using > > existing hardware could be possible, but we didn't want to imply that > > this was *the* way to implement. > > > > Best, > > Adrian > > > > -----Original Message----- > > From: Mach Chen <mach.chen@huawei.com> > > Sent: 07 January 2019 03:52 > > To: adrian@olddog.co.uk; rtg-ads@ietf.org > > Cc: rtg-dir@ietf.org; mpls@ietf.org; draft-ietf-mpls-sfc.all@ietf.org > > Subject: RE: RtgDir review: draft-ietf-mpls-sfc-04.txt > > > > Hi Adrian, > > > > Thanks for your reply! > > > > See some response inline... > > > > > -----Original Message----- > > > From: Adrian Farrel [mailto:adrian@olddog.co.uk] > > > Sent: Sunday, January 06, 2019 5:03 AM > > > To: Mach Chen <mach.chen@huawei.com>; rtg-ads@ietf.org > > > Cc: rtg-dir@ietf.org; mpls@ietf.org; > > > draft-ietf-mpls-sfc.all@ietf.org > > > Subject: RE: RtgDir review: draft-ietf-mpls-sfc-04.txt > > > > > > Hi Mach, > > > > > > Thanks for your careful review. > > > > > > > Minor Issues: > > > > * Section 13 says: > > > > " > > > > b. When the packet arrives at SFFa it strips any labels associated > > > > with the tunnel that runs from the classifier to SFFa. SFFa > > > > examines the top labels and matches the SPI/SI to identify that > > > > the packet should be forwarded to SFa. The packet is forwarded > > > > to SFa unmodified. > > > > > > > > c. SFa performs its designated function and returns the packet to > > > > SFFa. > > > > > > > > d. SFFa modifies the SI in the lower label stack entry (to 254) and > > > > uses the SPI/SI to look up the forwarding instructions. It sends > > > > the packet with two label stack entries: > > > >" > > > > From above text, it seems that an SFF will have different process > > > >for a > > > packet that > > > > has the same SPI/SI. > > > > 1) if a packet is received from a previous SFF, it will match the > > > > SPI/SI > > > and determine > > > > to where the packet will be sent. > > > > 2) if a packet is received from an SF, it will directly modify > > > > the inner > > > label, and then > > > > by matching the new SPI/SI to determine to where the packet will > > > > be > > sent. > > > > > > > > Is this the intention ? If so, how does an SFF determine whether a > > > > packet > > > is from an > > > > SFF or from SF? > > > > > > You have understood the processing correctly. > > > In fact, the same situation exists with NSH processing: the SFF is > > > expected to "know" whether the packet has arrived from the previous > > > SFF > > or from the SF. > > > > > > There are probably two answers: > > > Firstly, it is entirely possible that the SFF and SF are co-resident. > > > That is, they form part of the same implementation, possibly being > > separated by an API. > > > In this case, of course, the question does not arise. > > > Secondly, it is reasonable to expect that the SFs are attached to > > > the SFF by dedicated tunnels or ports (indeed, SFs are port-attached > > > in the legacy service function world) so that a packet arriving on a > > > line interface (from another SFF) is easily distinguished from one > > > that arrives from an SF. (You might think about port-attached L3VPNs > > > to help > > clarity how this could work). > > > > If so, it's better to add some text to clarify this. Given the current > > text, it implies that it could be determined just by matching the SPI/SI. > > > > > > > > > In addition, how does an SFF apply the swap and/or pop operations > here. > > > E.g., when an SFF looks up the SPI, > > > > it matches an item in a local table; what operation (swap or pop) > > > > will > > > apply to the SPI label? According to " The > > > > packet is forwarded to SFa unmodified." It seems implies that > > > > there is no > > > any operation will be applied. If so, > > > > this will not align with the MPLS. > > > > > > I think you should also look at this in the manner of a L3VPN. That > > > is, the top label is popped to derive the context, the forwarding > > > label is looked up within the context and swapped, and the context > > > label is re-imposed as the packet is forwarded. > > > > > > Of course, there are optimisations on how an SFF might implement > > > this, but we don't need to describe those. What we know is that the > > > VPN-like approach can be made to work with existing PEs. > > > > As above, it's better to add some text to make it clearer. > > > > > > > > > If the above issues exist, the " context/SF" case has the similar issues. > > > > > > Hope I have explained why this is not an issue. > > > > > > Now, we could debate why we have not made these answers more clear > > > in the text. > > > The first thing is that we are not trying to make any changes to the > > > architecture used for NSH, so we did not feel we should go into > > > explanations about how the SF/SFF relationship works. > > > Additionally, we did not feel that (beyond the short section 14) we > > > should tell people how to implement. The purpose of the document is > > > to describe wire formats. > > > > IMHO, it may not be enough if just describing the wire formats, the > > operations/process on the "formats" are necessary to make it an > > implementable and interoperable protocol. > > > > Although Section 13 is listed as a worked example, I personally think > > that they are necessary procedures. I'd suggest to change it to more > "formal" > > section, e.g., Procedures. > > > > Best regards, > > Mach > > > > > > > > Best, > > > Adrian >
- [RTG-DIR] RtgDir review: draft-ietf-mpls-sfc-04.t… Mach Chen
- Re: [RTG-DIR] RtgDir review: draft-ietf-mpls-sfc-… Adrian Farrel
- Re: [RTG-DIR] RtgDir review: draft-ietf-mpls-sfc-… Mach Chen
- Re: [RTG-DIR] RtgDir review: draft-ietf-mpls-sfc-… Adrian Farrel
- Re: [RTG-DIR] RtgDir review: draft-ietf-mpls-sfc-… Mach Chen
- Re: [RTG-DIR] RtgDir review: draft-ietf-mpls-sfc-… Adrian Farrel
- Re: [RTG-DIR] RtgDir review: draft-ietf-mpls-sfc-… BRUNGARD, DEBORAH A
- Re: [RTG-DIR] RtgDir review: draft-ietf-mpls-sfc-… Mach Chen