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

Robert Raszuk <robert@raszuk.net> Thu, 14 April 2022 09:20 UTC

Return-Path: <robert@raszuk.net>
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 159673A0BE3 for <lsr@ietfa.amsl.com>; Thu, 14 Apr 2022 02:20:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.108
X-Spam-Level:
X-Spam-Status: No, score=-7.108 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=raszuk.net
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 apxzAigqTbbD for <lsr@ietfa.amsl.com>; Thu, 14 Apr 2022 02:20:00 -0700 (PDT)
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com [IPv6:2a00:1450:4864:20::12b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 389703A0B9B for <lsr@ietf.org>; Thu, 14 Apr 2022 02:20:00 -0700 (PDT)
Received: by mail-lf1-x12b.google.com with SMTP id bq30so8039183lfb.3 for <lsr@ietf.org>; Thu, 14 Apr 2022 02:19:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raszuk.net; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=S0yLsL+yYO//PaQFYJuf7EqJoRUpr+qRjH1GWgtTH6k=; b=A7YYDi4yMC7ZNuNtRxEeNzEhazmoHnTuLi15hD/s65KHUMbHVLIWjVFbeTp4JqCTUX tZwc/SnGbaPFGIpn3D1h96XQCRT6C0cvSpmDMFzr+GclGVfANFlJMK5YbfhERjulDCdI bgQ/trm0EDZBD125S5vOR06+NyG56Dmf2GgRZDNi+nV5NvYCobZJxjZtHSiemhQXd1lu qH8gaSvEXIfgQ01cn+qg4wl3lRY5RLdtIxVZCglIDu5SSk94DBL5UmoDaKxdE9U1kdRe 8TsREwWxIyZg6QerKJO9Td7WdrQ7hlZnvM8diRkRZ0uQpMqyvBWE87S/DAvUcaESMIvy gbGQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=S0yLsL+yYO//PaQFYJuf7EqJoRUpr+qRjH1GWgtTH6k=; b=Qv5uoxUH5JNH11J0A4UOIcmwiD1XLPAGJh7hQcwb36BqcVytleDJdCKO4m9RZT8fdA h3FnWMS6Qa/1SURpLbljOYTGVZpPFCK3w0b1f1lncKLDAsxj9oFglyg2CpkXfWj6KCPO vYMP+xCll/lDVsM1ue7wyuI9P7zzH11EqGTUsAouxsZBLF0O0bSphhLaGKkr9oCM/rhy mlP8XPj9kzRfkvQiazyZZ/2P4rC6taHr+0k8tBhitm0MCE8/bT7s231tjqFUXI6rNI7W CCvSrNU9mi4qUUzd/aNcueRAxGS61c7ULLVQg3L/cteFUcuXVFwbVeIbQ3ZJbM0PkWjT fHNw==
X-Gm-Message-State: AOAM532e8Sdj07bmbp5tBf5UryLsKFVYHPzM0vlz+I6dwgpf5BWQLK/U RxqgL+LeUOwS8FpWoPdBnZ2pjgXinDzERc0gOm8DQA==
X-Google-Smtp-Source: ABdhPJyk5Ihc8FjLI6sHIz2GrZqVKqXSyGDoSUNhWEETY32Xy96SKa6Qrl2siNPbFuT4wt5hF4hGviEvG5NcQ1X/Zr4=
X-Received: by 2002:a05:6512:3c96:b0:44a:3c85:ddb0 with SMTP id h22-20020a0565123c9600b0044a3c85ddb0mr1321485lfv.457.1649927997639; Thu, 14 Apr 2022 02:19:57 -0700 (PDT)
MIME-Version: 1.0
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> <e7cc29b8-00fb-6294-5c87-4409428b8ae2@cisco.com> <CAH6gdPzQ-nPuwoMm1HpK8b6Fxbh=MkD-+D01DLT2DV4QUHc6TA@mail.gmail.com> <005681e5-14f3-ecd6-de29-b09a92f87682@cisco.com>
In-Reply-To: <005681e5-14f3-ecd6-de29-b09a92f87682@cisco.com>
From: Robert Raszuk <robert@raszuk.net>
Date: Thu, 14 Apr 2022 11:21:08 +0200
Message-ID: <CAOj+MMGmkvFV-KnzQnZi_46nnvVWo5cPM0xffxSHhLUSaaAFEQ@mail.gmail.com>
To: Peter Psenak <ppsenak=40cisco.com@dmarc.ietf.org>
Cc: Ketan Talaulikar <ketant.ietf@gmail.com>, "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>
Content-Type: multipart/alternative; boundary="00000000000034625205dc99cc59"
Archived-At: <https://mailarchive.ietf.org/arch/msg/lsr/0Dzq_pfdaA622_KdRt6I2lYxk8Q>
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: Thu, 14 Apr 2022 09:20:07 -0000

Hi Peter,

Term "data-plane" usually means physical resources links, switch fabric,
ASIC etc ... so I am afraid it will also generate confusion with default
data plane.

How about two alternatives:

- custom/logical topology
- logical-data-plane

Thx,
Robert.






On Thu, Apr 14, 2022 at 9:27 AM Peter Psenak <ppsenak=
40cisco.com@dmarc.ietf.org> wrote:

> Hi Ketan,
>
> On 13/04/2022 15:56, Ketan Talaulikar wrote:
> > Hi Peter,
> >
> > I would still reiterate the need to clarify the usage of "application"
> > terminology in the base FlexAlgo spec. We don't need to call it
> > "data-plane", I was suggesting "forwarding mechanism" or it can be
> > something else as well.
>
> I will replace with data-plane. That's the best from what we have.
>
> thanks,
> Peter
>
>
>
> >
> > Just my 2c
> >
> > Thanks,
> > Ketan
> >
> >
> > On Wed, Apr 13, 2022 at 2:35 PM Peter Psenak <ppsenak@cisco.com
> > <mailto:ppsenak@cisco.com>> wrote:
> >
> >     Hi Ketan,
> >
> >     please see inline (##PP4):
> >
> >
> >     On 13/04/2022 10:52, Ketan Talaulikar wrote:
> >      > 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>
> >      > <mailto: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?
> >
> >     ##PP4
> >     the term application is used in the base flex-algo spec from day
> >     one. It
> >     was chosen because it was generic enough to describe whatever the
> >     flex-algo may be used for down the road. We could have used
> >     'data-plane'
> >     instead, but it could be quite restrictive IMHO.
> >
> >
> >      >
> >      >      >
> >      >      >
> >      >      >     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?
> >
> >     ##PP4
> >     right. But the point is there is nothing that prevents multiple apps
> >     using the same algo in the architecture itself. And I see no good
> >     reason
> >     for such restriction.
> >      >
> >      >
> >      >      >
> >      >      >
> >      >      >
> >      >      >      >
> >      >      >      >
> >      >      >      >     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?
> >
> >     ##PP4
> >     I'm fine to make that optional.
> >
> >     thanks,
> >     Peter
> >      >
> >      > Thanks,
> >      > Ketan
> >      >
> >      >
> >      >
> >      >     thanks,
> >      >     Peter
> >      >
> >      >      >
> >      >      > Thanks,
> >      >      > Ketan
> >      >
> >
>
> _______________________________________________
> Lsr mailing list
> Lsr@ietf.org
> https://www.ietf.org/mailman/listinfo/lsr
>