Re: [Lsr] Working Group Last Call for draft-ietf-lsr-ip-flexalgo-04 - "IGP Flexible Algorithms (Flex-Algorithm) In IP Networks"

"Dongjie (Jimmy)" <jie.dong@huawei.com> Fri, 15 April 2022 16:01 UTC

Return-Path: <jie.dong@huawei.com>
X-Original-To: lsr@ietfa.amsl.com
Delivered-To: lsr@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 285533A0D62; Fri, 15 Apr 2022 09:01:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.906
X-Spam-Level:
X-Spam-Status: No, score=-6.906 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, 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 bZnC1R9ZZ3I7; Fri, 15 Apr 2022 09:01:04 -0700 (PDT)
Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D02693A0D2A; Fri, 15 Apr 2022 09:01:03 -0700 (PDT)
Received: from fraeml715-chm.china.huawei.com (unknown [172.18.147.201]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4Kg1GG3BZsz67xZG; Fri, 15 Apr 2022 23:58:46 +0800 (CST)
Received: from kwepemi100018.china.huawei.com (7.221.188.35) by fraeml715-chm.china.huawei.com (10.206.15.34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Fri, 15 Apr 2022 18:00:58 +0200
Received: from kwepemi500017.china.huawei.com (7.221.188.110) by kwepemi100018.china.huawei.com (7.221.188.35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Sat, 16 Apr 2022 00:00:57 +0800
Received: from kwepemi500017.china.huawei.com ([7.221.188.110]) by kwepemi500017.china.huawei.com ([7.221.188.110]) with mapi id 15.01.2375.024; Sat, 16 Apr 2022 00:00:57 +0800
From: "Dongjie (Jimmy)" <jie.dong@huawei.com>
To: Ketan Talaulikar <ketant.ietf@gmail.com>, Peter Psenak <ppsenak@cisco.com>
CC: "lsr@ietf.org" <lsr@ietf.org>, "draft-ietf-lsr-ip-flexalgo@ietf.org" <draft-ietf-lsr-ip-flexalgo@ietf.org>, "Acee Lindem (acee)" <acee=40cisco.com@dmarc.ietf.org>
Thread-Topic: [Lsr] Working Group Last Call for draft-ietf-lsr-ip-flexalgo-04 - "IGP Flexible Algorithms (Flex-Algorithm) In IP Networks"
Thread-Index: AQHYSrKu6FNK67UObUGS/u+m71Clk6zpvnMAgAATxQCAAGvOgIABIEMAgAFcXACAADbwAIAAGpUAgAO9K3A=
Date: Fri, 15 Apr 2022 16:00:57 +0000
Message-ID: <ee9bdf4bf942463a8943df5f2b502956@huawei.com>
References: <36E526F2-34CB-4C0A-84C2-79A50D9D4C36@cisco.com> <CAH6gdPwrshSVGNsjJVqND8kpNBTBQWicggEz_qyP0DtMYY5wjg@mail.gmail.com> <b6250861-a35d-2a47-6701-194b074e7233@cisco.com> <CAH6gdPwbL5qWX_GXfuv5YL4mRL9xUy3p9wc7an-FbnzpTc0U9A@mail.gmail.com> <46e4c6c1-4ae6-a628-ba27-daa5381c0ac0@cisco.com> <CAH6gdPwS97eEgRQsX16=QfR_yEiPi0WPWGt6PM0XawE5v07exA@mail.gmail.com> <b5def3f0-9bb4-84d6-5fe2-4ba3091dcb95@cisco.com> <CAH6gdPyJxppbyjhYBxX4R+LJvt-TdFfvjmPHJ-PHLOoQBPeO2w@mail.gmail.com>
In-Reply-To: <CAH6gdPyJxppbyjhYBxX4R+LJvt-TdFfvjmPHJ-PHLOoQBPeO2w@mail.gmail.com>
Accept-Language: en-US, zh-CN
Content-Language: zh-CN
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.45.226.188]
Content-Type: multipart/alternative; boundary="_000_ee9bdf4bf942463a8943df5f2b502956huaweicom_"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/lsr/kwJSwECnFw5ccJ_u6WA2g5UDVoE>
Subject: Re: [Lsr] Working Group Last Call for draft-ietf-lsr-ip-flexalgo-04 - "IGP Flexible Algorithms (Flex-Algorithm) In IP Networks"
X-BeenThere: lsr@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Link State Routing Working Group <lsr.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/lsr>, <mailto:lsr-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/lsr/>
List-Post: <mailto:lsr@ietf.org>
List-Help: <mailto:lsr-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/lsr>, <mailto:lsr-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Apr 2022 16:01:11 -0000

Hi Ketan, Peter,

I’ve just finished reading this thread, and think Ketan’s concerns make sense. Although the current Flex-Algo Definition is independent of the data plane encapsulation, I’m not sure if there is real benefit to use the same FAD with different data plane participation to cut out different topologies for path computation.

We used to have similar discussion on the list in December of 2020. At that time there was suggestion to simply use different Flex-Algo IDs with different data planes participation, or we may need to define per data plane Flex-Algo participation mechanisms for IPv4, IPv6, SR-MPLS and SRv6 respectively.

Per Flex-Algo SPF computation is straightforward for implementation and inter-operation, and also easy to manage and troubleshoot for operators. Actually a Flex-Algo ID can be seen as the identifier of the combination of the rules/constraints defined in FAD, and the set of nodes which participate in the Flex-Algo. But if one Flex-Algo can correspond to multiple topologies in the same network, we would need some additional identifiers for each of these topologies.

Thus my suggestion is also to make per Flex-Algo computation the default behavior. Per Flex-Algo per data plane computation could be optional.

Best regards,
Jie


From: Lsr [mailto:lsr-bounces@ietf.org] On Behalf Of Ketan Talaulikar
Sent: Wednesday, April 13, 2022 4:53 PM
To: Peter Psenak <ppsenak@cisco.com<mailto:ppsenak@cisco.com>>
Cc: lsr@ietf.org<mailto:lsr@ietf.org>; draft-ietf-lsr-ip-flexalgo@ietf.org<mailto:draft-ietf-lsr-ip-flexalgo@ietf.org>; Acee Lindem (acee) <acee=40cisco.com@dmarc.ietf.org<mailto:acee=40cisco.com@dmarc.ietf.org>>
Subject: Re: [Lsr] Working Group Last Call for draft-ietf-lsr-ip-flexalgo-04 - "IGP Flexible Algorithms (Flex-Algorithm) In IP Networks"

Hi Peter,

I will not press this point further if I am the only one that finds this complexity without any benefit. :-)

Please check inline below for some clarifications with KT3.


On Wed, Apr 13, 2022 at 12:47 PM Peter Psenak <ppsenak@cisco.com<mailto:ppsenak@cisco.com>> wrote:
Hi Ketan,


please see inline (##PP3):

On 13/04/2022 06:00, Ketan Talaulikar wrote:
> Hi Peter,
>
> Please check inline below with KT2. I am trimming everything other than
> the one point of continuing debate.
>
>      >      >
>      >      > 2) The relationship between the algo usage for IP FlexAlgo
>     and other
>      >      > data planes (e.g. FlexAlgo with SR) is not very clear.
>     There arise
>      >      > complications when the algo usage for IP FlexAlgo overlap
>     with other
>      >      > (say SR) data planes since the FAD is shared but the node
>      >     participation
>      >      > is not shared. While Sec 9 suggests that we can work
>     through these
>      >      > complications, I question the need for such complexity.
>     The FlexAlgo
>      >      > space is large enough to allow it to be shared between
>     various data
>      >      > planes without overlap. My suggestion would be to neither
>     carve out
>      >      > parallel algo spaces within IGPs for various types of
>     FlexAlgo data
>      >      > planes nor allow the same algo to be used by both IP and
>     SR data
>      >     planes.
>      >      > So that we have a single topology computation in the IGP
>     for a given
>      >      > algo based on its FAD and data plane participation and
>     then when it
>      >      > comes to prefix calculation, the results could involve
>      >     programming of
>      >      > entries in respective forwarding planes based on the
>     signaling of
>      >     the
>      >      > respective prefix reachabilities. The coverage of these
>     aspects in a
>      >      > dedicated section upfront will help.
>      >
>      >     ##PP
>      >     I strongly disagree.
>      >
>      >     FAD is data-pane/app independent. Participation is data-plane/app
>      >     dependent. Base flex-algo specification is very clear about
>     that. That
>      >     has advantages and we do not want to modify that part.
>      >
>      >
>      > KT> No issue with this part.
>      >
>      >
>      >     Topology calculation for algo/data-plane needs to take both
>     FAD and
>      >     participation into account. You need independent calculation
>     for each
>      >     data-plane/app in the same algo.
>      >
>      >
>      > KT> So, an implementation now needs to potentially support
>     performing
>      > multiple topology computations for each algo. This is a
>     complication for
>      > which I do not see the justification. Why not just pick different
>      > algorithms for different data planes for those (rare?)
>     deployments where
>      > someone wants multiple data planes?
>
>     ##PP2
>     flex-algo architecture supports multiple apps/data-planes per algo,
>     with
>     unique participation per app/data-plane. That requires per-algo/per
>     app/data-plane calculation. What is complicated on it?
>
>
> KT2> This specific and precise statement that you have provided is not
> covered in either draft-ietf-lsr-flex-algo or this document. For
> starters, this needs to be clarified and covered so that it gets the
> attention of any reader during the review. This has implications for
> implementations.

##PP3
sure we can add it explicitly there, but if you read the base flex-algo
draft carefully, it is quite clear. I will add that exact statement in
the next re-spin of the base spec.

KT3> Thanks. I think we may also need to carefully scrub the use of the term "application" since it seems to bring out different interpretations thanks to the "application" in ASLA. It is better if we use the term "application" only in the same semantics as ASLA  - this means that FlexAlgo is a single "application". We can perhaps use the term "traffic flows" or "service flows" as an alternate for "application flows" that are steered over or use a FlexAlgo.  And then when it comes to Node Participation in a FlexAlgo, we could use the term "FlexAlgo Forwarding Mechanism" instead of "Applications' Forwarding for FlexAlgo". Thoughts?

>
>
>     If your implementation does not want to support it, fine, but the
>     architecture allows it and there is/are implementation(s) that already
>     support it. This is not defined in this draft, it's defined in base
>     flex-algo spec.
>
>
> KT2> I am not sure if it is really an option for implementation once it
> is in the specification. And this is not about "my" implementation :-).
> So it is not that because some implementations can do (or does) it that
> it should be in the specification. The determination on whether it
> should be in a specification needs to be based on the tradeoff between
> requiring multiple computations per algo with the potential benefit or
> use case that is enabled by it.

##PP3
again, this is how things have been defined from day one, and for a good
reason. Requiring per app flex-algo even though I want to use the same
metric and constraints for both app would be inefficient.

KT3> For my understanding, the only inefficiency that you are referring to with the "separate algo per FlexAlgo forwarding mechanism" is a duplicate FAD advertisement. Am I missing anything else?


>
>
>
>      >
>      >
>      >     The fact that the same FAD is shareable between all apps has it
>      >     advantages and use cases - e.g. if the participation for algo
>     X is the
>      >     same in SR and IP data-planes, one can use SR to protect IP
>     in that
>      >     algo.
>      >
>      >
>      > KT> Would this protection use case not violate the base FlexAlgo
>     rule
>      > that the protection has to remain within the specific topology.
>     If there
>      > is an SR data plane, then why would one want an IP data plane as
>     well?
>
>     ##PP2
>     if the participation in two app/data-planes is the same for the algo,
>     the resulting topology is the same. If your implementation is smart, it
>     can only run a single computation for that case. There is no violation
>     here whatsoever.
>
>
> KT2> If the resulting topology is the same between SR data plane and IP
> data plane, what is the need to enable the IP data plane? Why not just
> steer the IP traffic over the FlexAlgo data plane? And when it is not
> the same topology, then we cannot really do the protection for IP
> FlexAlgo using SR FlexAlgo. So what is really the use case or benefit
> for enabling this?

##PP3
I just gave you an example where this might be useful. You may not like
it, but it will have no impact on the defined architecture.

KT3> Ack - we can agree to disagree on this.


>
>
>
>
>      > IP forwarding can be steered over the SR-based FlexAlgo topology
>     along
>      > with the protection provided by it. Am I missing something?
>
>     ##PP2
>     topology for both primary and backup computation must be the same.
>
>
> KT2> I see the primary use case for IP FlexAlgo (or another data plane)
> to be that the data plane is used by itself. In the (rare?) case where
> multiple data planes are required to coexist, it is simpler both from
> implementation and deployment POV to use different algos. It would be
> good to have operator inputs here. The only cost that I see for this is
> that the same FAD may get advertised twice only in the case where it is
> identical for multiple data planes. So I am still not seeing the benefit
> of enabling multiple (i.e. per data plane) computations for a single
> algo rather than just keeping it a single computation per algo where a
> single data plane is associated with a specific algo.

##PP3
I really do not see the problem. As you stated above repeating the same
FAD for multiple algos would be inefficient. The beauty of FAD is that
it is app independent and can be used by many of them.

If you like to repeat it, fine it will still work. But we do not want to
mandate that in the spec.

KT3> There is currently no normative text in the draft-lsr-flex-algo that specifies that an implementation needs to support a "per flexalgo forwarding mechanism" computation for each algo. So when this clarification is added, can this be a MAY or perhaps a SHOULD so that an implementation has the choice to perhaps not do this and still remain compliant to the spec?

Thanks,
Ketan



thanks,
Peter

>
> Thanks,
> Ketan