Re: [spring] Alvaro Retana's Discuss on draft-ietf-spring-segment-routing-policy-17: (with DISCUSS and COMMENT)

Ketan Talaulikar <ketant.ietf@gmail.com> Thu, 17 February 2022 15:06 UTC

Return-Path: <ketant.ietf@gmail.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 21D333A02F9; Thu, 17 Feb 2022 07:06:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.096
X-Spam-Level:
X-Spam-Status: No, score=-2.096 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 g-f4FNZLUqe3; Thu, 17 Feb 2022 07:06:41 -0800 (PST)
Received: from mail-vs1-xe2c.google.com (mail-vs1-xe2c.google.com [IPv6:2607:f8b0:4864:20::e2c]) (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 BFB5E3A0124; Thu, 17 Feb 2022 07:06:40 -0800 (PST)
Received: by mail-vs1-xe2c.google.com with SMTP id d26so1757408vsh.0; Thu, 17 Feb 2022 07:06:40 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=+N7UWm5W0mvEWUL1w0rxJxH2RdWupUZkq6N1dBTQH4c=; b=c/NQarOe86BPe90HTHPU40N5hqYeH8bgpgnNPvJx97lR5bYljky3da/pkAPTj87JGT 3XCgZ3uQfw/C1Cs1pPqWMafbNo5tZjDrS+3EsBKe25Ks5B0UoQR4Qb8+JeNuA7NoQGov vRiFP/NF5walqgAtlbPJe98yKBkpKZT/6zQNQKVJYJlaCRU4cYvBteIr08/7HYLeKKyQ JDHZk4Vc1TQOf0P3RDj3SoogM7U2239SY2ad85j+nvVJjNnWI3onUZrYoMEQox9HYVwJ mkmAzpNTDknHw2MPKoUIylO1uSpUg1tQL0AJxZ32LrLc77XdzBnHhKPSzpYdkLeDHY/s 5M4w==
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=+N7UWm5W0mvEWUL1w0rxJxH2RdWupUZkq6N1dBTQH4c=; b=u33PT/d1V/3uiwgBMPjXCo7Ru8ui2RWAb+HrOIzvjuUZe2CP4l2vG6GQR2iNb/1zmI gBWiXKAprWsfjUuWOBhHtxDAzoP2+ACH2E0p2NYkUcAPZhG3/FpwpczK6qO8dJAFqq+c lTmxBC2KVZV/Izf3xVn3gCOdj9XWOBmwouryG+lABjNeKg52I0lj9mEaZqirNPRHIzVN F/YLbM6O5wOzhjl0ObBIV5H6UxOsYNhZj423l9pnodVeGNmbcGf9BtkjEyCiy3d6PGcI 6HhGN7sUNKDM555BxdclgrSbTaDBcsAgkRhYP8pFDeH5n6tWve3ndUwrTgBQ3BRVi/Q8 Ow0w==
X-Gm-Message-State: AOAM530w3q1KurBuB1Cere6g/vPXXUHKCf8o2COA8Qe9+q7stGp5lrA6 nARVV21W/Sz4WQkUykcuFK/WYBGLfLbX+YGTFYLV8YNK
X-Google-Smtp-Source: ABdhPJxINUoQHasThxlUrbTy2wfCW8kh7q7HULsxSSgUx5EFBBmLs8ioLui0xAC0T+vbvA+DJit7Ycu/a6NQlL1ZGWc=
X-Received: by 2002:a05:6102:3e95:b0:30f:9865:e97e with SMTP id m21-20020a0561023e9500b0030f9865e97emr1410315vsv.15.1645110399344; Thu, 17 Feb 2022 07:06:39 -0800 (PST)
MIME-Version: 1.0
References: <164504875164.5704.16596621622345086808@ietfa.amsl.com>
In-Reply-To: <164504875164.5704.16596621622345086808@ietfa.amsl.com>
From: Ketan Talaulikar <ketant.ietf@gmail.com>
Date: Thu, 17 Feb 2022 20:36:26 +0530
Message-ID: <CAH6gdPzYeL6SxZhXBo6YQCX-2zX93xXzN-rDM2Lpi-mKW9M4Yg@mail.gmail.com>
To: Alvaro Retana <aretana.ietf@gmail.com>
Cc: The IESG <iesg@ietf.org>, draft-ietf-spring-segment-routing-policy@ietf.org, spring-chairs@ietf.org, SPRING WG <spring@ietf.org>, james.n.guichard@futurewei.com
Content-Type: multipart/alternative; boundary="000000000000f825cb05d8381cf4"
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/VZB4zavofMbY2ILyTSei6rDjTMc>
Subject: Re: [spring] Alvaro Retana's Discuss on draft-ietf-spring-segment-routing-policy-17: (with DISCUSS and COMMENT)
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Source Packet Routing in NetworkinG \(SPRING\)" <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 17 Feb 2022 15:06:45 -0000

Hi Alvaro,

Thanks for your review and comments/inputs. Please check inline below for
responses.


On Thu, Feb 17, 2022 at 3:29 AM Alvaro Retana via Datatracker <
noreply@ietf.org> wrote:

> Alvaro Retana has entered the following ballot position for
> draft-ietf-spring-segment-routing-policy-17: Discuss
>
> When responding, please keep the subject line intact and reply to all
> email addresses included in the To and CC lines. (Feel free to cut this
> introductory paragraph, however.)
>
>
> Please refer to https://www.ietf.org/blog/handling-iesg-ballot-positions/
> for more information about how to handle DISCUSS and COMMENT positions.
>
>
> The document, along with other ballot positions, can be found here:
> https://datatracker.ietf.org/doc/draft-ietf-spring-segment-routing-policy/
>
>
>
> ----------------------------------------------------------------------
> DISCUSS:
> ----------------------------------------------------------------------
>
> (1) This specification should formally Update rfc8402.
>
> What is the relationship between this document and rfc8402?  If this
> document
> details the concept introduced in rfc8402, why isn't there a formal Update
> relationship?
>
> Even the initial definition of SR Policy in this document (§2) doesn't
> match
> what rfc8402 says.  This document defines it as "a framework that enables
> the
> instantiation of an ordered list of segments", while rfc8402 states it is
> "an
> ordered list of segments."  In §2.2, this document uses the term
> "segment-list" for that.
>

KT> There were similar comments from Rob for which we have recently posted
updated text in v17. I believe, this document does not need to update
RFC8402 because it is not changing anything in that document. RFC8402
simply introduces SR Policy while this document specifies its internal
constructs, how it is realized/instantiated, and steering mechanisms over
it. At least, that is the objective/view of the authors/WG and we are open
to inputs to update and further clarify the same.


>
> Besides the general topic of clarifying and updating what an SR Policy is,
> this
> document also includes other items that were not present in rfc8402; the
> list
> includes:
>
>    §2.1: "SR Policy MUST be identified through the tuple <headend, color,
>    endpoint>."   There's not even a mention of "color" in rfc8402.
>
>    §2.1: "The headend is specified as an IPv4 or IPv6 address and is
> expected
>    to be unique in the domain."  Neither the mechanism to identify a node
> nor
>    the expectation is present in rfc8402.
>
>    §2.1: "The endpoint is specified as an IPv4 or IPv6 address and is
> expected
>    to be unique in the domain."   Same as above.
>

KT> Yes, these are the constructs of SR Policy that are specified by this
document.


>
>
> The SR Database is a new element not in the base architecture.  The text
> in §3
> says that "use of the SR-DB for computation and validation of SR Policies
> is
> outside the scope of this document", but it is then mentioned and used in
> §5.1/§5.2.
>

KT> The computation algorithm and related discussions about the use of
SR-DB were asked to be moved out of this standards track document during
the WG process. Those informational sections were moved into
draft-filsfils-spring-sr-policy-considerations
<https://datatracker.ietf.org/doc/html/draft-ietf-spring-segment-routing-policy-17#ref-I-D.filsfils-spring-sr-policy-considerations>
and
kept as a reference in this document. The reference in 5.1 and 5.2 is about
validation of segments and as a result the segment-list and candidate path.
The validation of the "objective" and constraints of the SR Policy was
deemed to be outside the scope of the document. There were several
discussions on and off-list at the IETF meetings in this regard. Perhaps
this thread gives a good summary:
https://mailarchive.ietf.org/arch/msg/spring/W8q3wW0damd4XgG-2cH_qzDeA6E/


>
>
> Accordingly, the added details require additional Security and
> Manageability
> considerations.
>

KT> Could you please clarify/explain a bit further what you feel is missing?


>
>
> I couldn't find a related discussion in the archive.  If I missed it,
> please
> point me in the right direction.
>
>
>
> (2) §5.1:
>
>    Types A or B MUST be used for the SIDs for which the reachability
>    cannot be verified.  Note that the first SID MUST always be reachable
>    regardless of its type.
>
> These two requirements and the text in the description of these types
> ("...does
> not require the headend to perform SID resolution.") results in a
> contradiction: Types A and B are not to be resolved, but if they are the
> first
> SID then they MUST.  If it's not a contradiction, then Types A and B would
> not
> be allowed to be the first SID, which is not correct because the most
> straightforward mechanism to define a path is to list SR-MPLS Labels or
> SRv6
> SIDs.
>

KT> I don't see a contradiction here. "Types A or B MUST be used for the
SIDs for which the reachability cannot be verified." is not the same as
saying "Type A or B are not to be resolved".


>
> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
>
> (0) I support John's DISCUSS.
>
>
> (1) Is the specification of a headend/endpoint mandatory?  IOW, should the
> text
> in §2.1 about the headend/endpoint being identified by a unique IPv4 or
> IPv6
> address be normative?
>

KT> It is not normative since we have the case of an unspecified address as
an endpoint. We could use SHOULD though, if that clarifies.


>
>
> (2) §2.1: "An implementation MAY allow the assignment of a symbolic name
> comprising of printable ASCII [RFC0020] [RFC5234] characters"
>
> Why are you normatively limiting the name to be represented in ASCII?
> Please
> internationalize it - use UTF-8.
>
> §2.6 also has similar text.
>

KT> My understanding is that there is no compulsion to use UTF-8 for such
purposes. This was discussed in the WG. Please check:
https://mailarchive.ietf.org/arch/msg/spring/Wj3eNx_EBHtDrYVYTCYIlJ2Yq_w/


>
>
> (3) §2.1: "Such symbolic names MAY identify an SR Policy when the naming
> scheme
> ensures uniqueness."  In this case, the "MAY" is just stating a fact.
> s/MAY/may
>

KT> Ack. Will fix.


>
>
> (4) §2.1: "An SR Policy MAY have multiple names...in the scenario where the
> headend receives different SR Policy names"   Describing multiple names as
> the
> case where multiple names are received is not helpful.
>

KT> When CPs for the same SR Policy are provisioned via different sources,
then such a scenario may occur.


>
>
> (5) §2.2: "the endpoints of the constituent SR Policies and the parent SR
> Policy
> MUST be identical"  To avoid confusion, by "endpoints" you mean "headend
> and
> endpoint", right?
>

KT> We mean the endpoint as in "the tail-end". We are speaking from within
the context of a headend here so the headend is the same.


>
>
> (6) §2.3:
>
>    A headend MAY be informed about a candidate path for an SR Policy
>    <color, endpoint> by various means including...
>
> It seems like the "MAY" is only stating a fact -- if so, then s/MAY/may
>

KT> Ack. Will fix.


>
>
> (7) §2.4: "When signaling is via PCEP...the AS number SHOULD be set to 0 by
> default when not available or known."
>
> When is it ok for the ASN to not be set to 0 (when not available or known)?
> If that possibility exists, the PCE can use any value (including the real
> number or a random one).  What issues exist with uncoordinated (or rogue)
> PCEs
> using potentially arbitrary ASNs?
>
> Why is this action recommended and not required?
>

KT> AFAIR PCEP signaling does not carry AS number. So this is a
recommendation, though a local policy or a future PCEP extension could
change that and we don't want to preclude it.


>
>
> (8) This paragraph in §2.5 seems to be missing something"
>
>    The Discriminator is a 32-bit value associated with a candidate path
>    that uniquely identifies it within the context of an SR Policy from a
>    specific Protocol-Origin as specified below:
>
> "below" where?   I guess you may mean "below in §2.6 (Identification of a
> Candidate Path)", but that section says that the "tuple
> <Protocol-Origin, originator, discriminator> uniquely identifies a
> candidate
> path" and not just the discriminator as above.
>

KT> The next three paragraphs that begin with "When .." should be a bullet
list. Looks like it got missed out.


>
> Also, the ":" leads to some text about the default and specific protocols.
> Given that this document intends to provide an architecture, I would expect
> general consideration about the discriminator, and not pointers to how it
> can
> be signaled or, much less, the process in BGP.  In general, I would expect
> the
> architecture to not rely on solution documents to explain how pieces of the
> architecture are derived.
>

KT> These are informational pointers to the respective protocol specs to
help the reader.


>
>
> (9) Given the description, it seems possible for a PCE (for example) to
> advertise multiple candidate paths with the same Preference, Originator,
> and
> Discriminator.  If that occurs, what is the result of the selection in
> §2.9?
> Would this situation result in multiple active candidate paths?
>

KT> The ability to signal multiple CPs via PCEP is being introduced
via draft-ietf-pce-segment-routing-policy-cp. The default is for use when
not using that draft and in that case, there would be only a single CP.


>
>
> (10) §2.11: "Only the active candidate path SHOULD be used for forwarding
> traffic that is being steered onto that policy."   When is it ok to use
> non-active paths?  Why is this action recommended and not required?
>

KT> The condition was for path protection as described in section 9.3. The
"backup" path is programmed and hence may be used for forwarding while FRR
is active.


>
>
> (11) §2.12: Several of the "MAY" statements in this section express a
> fact, not
> a normative statement:  s/MAY/may
>
> The operator MAY set this field...
> An SR Policy MAY comprise multiple...
>

KT> Ack. Will fix those.

>
>
> (12) §4:
>
>    When the algorithm is not specified for the SID types above which
>    optionally allow for it, the headend SHOULD use the Strict Shortest
>    Path algorithm if available; otherwise, it SHOULD use the default
>    Shortest Path algorithm.
>
> In this sentence, you're recommending both algorithms.  When should one or
> the
> other be used?  There are no qualifiers that lead to the "otherwise"
> statement.
>

KT> Ack. The semicolon needs to be replaced by "and"  before "otherwise".


>
>
> (13) §4: What is the purpose of enumerating the types of
> segment-descriptors?
> Should the type be indicated when the Segment-List is signaled?  I assume
> the
> answer is yes, but I didn't see that specified anywhere.
>

KT> It is used in the protocol specs for reference -
e.g draft-ietf-idr-segment-routing-te-policy


>
>
> (14) §5.1: "The headend detects a mismatch between the SID value and its
> context provided for SIDs of type C-through-K"  What does having a mismatch
> mean?  Please be specific.
>

KT> The value of the SID provided does not match the value of the SID
determined through the provided context. Will clarify.


>
>
> (15) §5.2:
>
>    When the local computation is not possible (e.g., a policy's tail-end
>    is outside the topology known to the headend) or not desired, the
>    headend MAY send path computation request to a PCE supporting PCEP
>    extension specified in [RFC8664].
>
> This action (ask the PCE) is a solution, not an architectural
> description.  Are
> there other external mechanisms that can find a "solution Segment-List"?
> It
> seems to me that one such mechanism would be in the form of a configured
> Segment-List.  If that is correct, please generalize the normative
> statement
> above -- where using PCEP can be an example.
>

KT> Agree and will change that to an example.

>
>
> (16) §7: Which are valid states?  Active is one, the text mentions an
> "administrative state", what else?   Interoperability is a good reason to
> specify the states and not assume that implementations might do the right
> thing.
>

KT> The state here does not mean a single one like up/down. It is referring
to the operational state. Those aspects are covered in
the draft-ietf-spring-sr-policy-yang but also reported via BGP and PCEP
when those protocols are in use. We'll add a reference
to draft-ietf-spring-sr-policy-yang.


>
>
> (17) §7: "The SR Policy state MUST also reflect the reason when a policy
> and/or
> its candidate path is not active due to validation errors or not being
> preferred."
>
> Given that this is a requirement, please provide a list of reasons.  The
> need
> for interoperability (by using rfc2119 language) can only be achieved if
> the
> reasons are standardized.
>

KT> The reason is for debugging and troubleshooting. If something is down
or invalid, then it helps to know why.


>
>
> (18) In general, the text contains a mixture of normative language
> (rfc2119)
> and descriptions that make the contents inconsistent and confusing.  For
> example, my interpretation of "an SR Policy and its BSID are removed from
> the
> forwarding plane" (from §8.1) is that it is an absolute requirement.
> However,
> §8.2 presents the optional "Drop-Upon-Invalid behavior" which then
> indicates
> that there can be cases where my interpretation was not correct.
>
> The point here is that the text in a Standards Track document should not
> be up
> for interpretation.
>
> There are too many cases in the text to list that would have benefitted
> from
> using Normative Language -- I mentioned a couple above.  Ideally, the
> authors
> would make one more pass for clarity.  However, I will probably end up
> ABSTAINing because of it.
>
> This point was also raised in the rtg-dir review, which is why I'm not
> including it as part of a DISCUSS.
>

KT> Authors will take a pass and get back on this.

Thanks,
Ketan