Re: [spring] Comments on draft-filsfils-spring-sr-policy-considerations-01

Przemyslaw Krol <pkrol@google.com> Tue, 06 November 2018 03:24 UTC

Return-Path: <pkrol@google.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 A2E2B1276D0 for <spring@ietfa.amsl.com>; Mon, 5 Nov 2018 19:24:23 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.5
X-Spam-Level:
X-Spam-Status: No, score=-17.5 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 kiO6JB8o5ON5 for <spring@ietfa.amsl.com>; Mon, 5 Nov 2018 19:24:20 -0800 (PST)
Received: from mail-it1-x132.google.com (mail-it1-x132.google.com [IPv6:2607:f8b0:4864:20::132]) (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 B5345127148 for <spring@ietf.org>; Mon, 5 Nov 2018 19:24:19 -0800 (PST)
Received: by mail-it1-x132.google.com with SMTP id t190-v6so10261804itb.2 for <spring@ietf.org>; Mon, 05 Nov 2018 19:24:19 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=3C3jz0gadAsf3eh09IY4X/wr9H4INZLsYiqaJumaR3s=; b=fyrnzJHCbWIp8W4jJObFpgZPcbrE3pAnFkaNyyUsO3dLETWrn+QzzbeA7bKfTtHFi9 Cgr/H2gmJqIkW+3t4g6xEGCe13s5QpNa+tNEk/Ja2rTFRePx/Hl5FISdEtz9z/7atyaJ 02whV4UtXM6qoI0jZYQX44OY4Aejweb2d9WGnkujpManeG8PPFNKIiy2ILic0/YFaVZW JSYqjFQIUr9a5bbywIYaH0CFNRhN+M6RozqT+0+gqyZ3OIqwTxW9r32Cd0MZJlJTB6Yr WyIQsv67k5U9U8BoodnMZXBAmwIT3AlA4Qog4+UIuPq2T63a6B405Lok7cJJ/VraprD9 rzNg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=3C3jz0gadAsf3eh09IY4X/wr9H4INZLsYiqaJumaR3s=; b=Rel+rVh6+tTt+NPRtwsAT+f9abZHL6Cfcr24b9VUtJ+xTTwrpn6BsANRjhp8hmqwAS dH/AHSfADx7CSjR5XCtDwgvsQ9kfJsMdvLcOvXQ8GB+TqZj8XQYIcyarViN/1vaisUGW bg02DmNUlGMxYXSVg0UPHs/zqz20P8aXKPdZ6ylyPeYkIDt/5x51K4tazg5yEzu3nCHQ D5qRPXqcW3O43u53DUjBwAvNHi2mmsUOUYNd9vfWSa0yqMLRxF7udpQka6ePmTAmpnsP Bxyka4aYph61cz7UDcRWD/Px4BMw0LWXKFqnplHObB8yJXHVIsPG6dl62j8LlrmvZ2+C DP4A==
X-Gm-Message-State: AGRZ1gKwMnrrDcqmas8ZRbU34RuHJSdIkFeGFXKcaYg8GKnYIf1pRwS2 B6lJMtpOzESSJYNWDYu75DyzhqwmG7TACIkNAgV7Kg==
X-Google-Smtp-Source: AJdET5eQMFShPFcT4rB8YP/c16TDl5+Dav/Jc/R437msw0qGUlZ/ENdk1n6IyvvBt6dz3HW1pakO+8DStuLdMJuUgdA=
X-Received: by 2002:a24:eb0b:: with SMTP id h11-v6mr624937itj.47.1541474658608; Mon, 05 Nov 2018 19:24:18 -0800 (PST)
MIME-Version: 1.0
References: <CAHd-QWv0E1skiiAV+L7AiDk78qjPH=RZ_vC-me94Cj_yC8eRCQ@mail.gmail.com> <3470b63ec7264ac096e326a59d97b50f@XCH-ALN-008.cisco.com> <CAHxMRea=a6qf5c7HFf+mQV5vC5DvxMVORkTY4Ceo9uv9z4jOsg@mail.gmail.com> <CACH2EkULQC2dieee+rBOdvMKa3x96=1yTHi2DGB7jzonkXqjqw@mail.gmail.com>
In-Reply-To: <CACH2EkULQC2dieee+rBOdvMKa3x96=1yTHi2DGB7jzonkXqjqw@mail.gmail.com>
From: Przemyslaw Krol <pkrol@google.com>
Date: Tue, 06 Nov 2018 10:23:40 +0700
Message-ID: <CACH2EkVy5SXzBJwxT+0M3dZqr59oszsR=x2hp767z6Df0LcoFQ@mail.gmail.com>
To: rjs@rob.sh
Cc: "Ketan Talaulikar (ketant)" <ketant@cisco.com>, robjs=40google.com@dmarc.ietf.org, spring@ietf.org, draft-filsfils-spring-sr-policy-considerations@tools.ietf.org
Content-Type: multipart/alternative; boundary="0000000000007572430579f68993"
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/DBVABjjbup73j_M9nJvHjU6nS9A>
Subject: Re: [spring] Comments on draft-filsfils-spring-sr-policy-considerations-01
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: Tue, 06 Nov 2018 03:24:24 -0000

Greetings,

Would it be possible to close this (scope of this document) while in BKK?
We could then take the draft editing work offline and come back with it
before PRG. Hopefully this would let all involved parties be clear on the
purpose of this document and make soliciting feedback easier.

thank you,




On Tue, Oct 30, 2018 at 11:44 PM Przemyslaw Krol <pkrol@google.com> wrote:

> Howdy,
>
> I tend to agree that in the current shape,
> draft-filsfils-spring-sr-policy-considerations-02
> <https://tools.ietf.org/html/draft-filsfils-spring-sr-policy-considerations-02> document
> attempts to cover architectural, operational and use-case aspects which may
> not be optimal. To that point, if we can agree whether it is supposed to be
> a more operationally-focused extension to its
> parent draft-ietf-spring-segment-routing-policy draft or more of a use case
> overview, we could make relevant adjustments/augmentations to accommodate
> that. I personally see a value in both options but based on Rob's feedback,
> the latter one may not be suited for SPRING WG.
>
> thanks,
> pk
>
> On Mon, Oct 22, 2018 at 9:50 PM Rob Shakir <rjs@rob.sh> wrote:
>
>> Ketan, Authors,
>>
>> Thanks for the update. Further responses are in-line marked [rjs].
>>
>> My key feedback here is that I feel like we're not really on the same
>> page as to what this draft is trying to communicate. Perhaps if we agreed
>> this, then it'd be clearer what the right direction for the document is.
>>
>> I'd really encourage the WG to read this doc and provide the authors with
>> feedback -- especially if you have an implementation, or are implementing
>> SR-TE Policy in your network.
>>
>> On Thu, 18 Oct 2018 at 19:10 Ketan Talaulikar (ketant) <ketant@cisco.com>
>> wrote:
>>
>>>
>>>
>>>    - (2) What is the intention of the diagram shown in this section? It
>>>    seems to be completely an implementation detail that an implementation has
>>>    the "SRPM" that acts as a central resolution point. For instance, what
>>>    should a reader learn from the fact that the SRPM is not a standard RIB
>>>    resolution process? If there are suggestions that one wants this
>>>    implementation - should there be some discussion of the complexity of this
>>>    new API between say, the BGP daemon and a general RIB process?
>>>
>>> *[KT] **We will clarify in the text that the section provides a
>>> conceptual overview of components/functionality that work with each other
>>> to implement SR Policy on a headend. The intention is not to define APIs
>>> between the blocks since those are implementation details. We have several
>>> drafts related to the SR Policy functionality – besides the architecture
>>> draft, there are extensions to BGP (BGP-SRTE & LS), PCEP then we have Yang
>>> model. This draft puts these blocks into reference so implementers get an
>>> idea of the functionality that maps to say BGP and the SR Policy processes
>>> (e.g. draft-ietf-idr-segment-routing-te-policy).*
>>>
>>
>>>    - (2) My general feedback on this section is that this is
>>>    implementation discussion, that does not add to the IETF content that we
>>>    are publishing within SPRING. Like we have had discussion of use case
>>>    drafts, I think this is similar but from the implementor side. I'd like to
>>>    discuss the value that this content has.
>>>
>>> *[KT] **There is a difference between documenting implementation
>>> details and providing a conceptual overview of the implementation aspects.
>>> Especially when defining an architecture which involves multiple protocols
>>> and functional blocks. I find it valuable as an implementer myself.*
>>>
>>
>> [rjs] I don't think that the edits that are made to this section
>> particularly add anything. If the intention is the conceptual overview, I
>> don't understand why we refer to say, the "SRP process". Conceptually,
>> shouldn't this be describing interaction between functional blocks? i.e.,
>> we have a functional block in the architecture that is responsible for
>> learning candidate paths (it's an implementation detail from where...), and
>> selects the active path, installing it into the RIB or FIB.
>>
>> If the intention is to have this be conceptual, my suggestion would be to
>> make the language refer to architectural concepts - rather than what seem
>> to be realisations of the idea, and to convert the diagrams into lists that
>> describe what each block is doing. Others may have thoughts on this too -
>> especially where they have other implementations.
>>
>>
>>>
>>>    - (3.1) I think that this section has some useful content, but it's
>>>    buried by starting out by defining the algorithms.. Why not make this
>>>    section be focused towards the constraints that must be considered when
>>>    calculating a SID stack for a particular path. i.e., the key points seem to
>>>    be:
>>>
>>>
>>>    - Use of the IGP metric as the metric for path optimisation is
>>>       desirable, especially in constrained push or readable depth environments,
>>>       because it allows the minimum number of deviations from the shortest path
>>>       and therefore labels.
>>>       - If a different metric is used, then this implies that every
>>>       time that metric differs from the IGP metric, then this will result in
>>>       additional SIDs.
>>>
>>>
>>>    - There is no mention of flex-algorithm in this section. It seems
>>>          relevant given that you can also mitigate the problem that is trying to be
>>>          solved here by having a set of prefix SIDs per metric.
>>>
>>> *[KT] **We will put a forward reference to the Flex Algo section here.*
>>>
>>>    - It may be advantageous to sacrifice optimality of the path
>>>       calculation solution by relaxing the optimisation constraints.
>>>
>>>
>>>    - The draft should talk about the operational considerations here -
>>>          i.e., it implies that you can actually tolerate the margin in the
>>>          optimisation objective for the service.
>>>          - The "just pick the best you can do within N SIDs" is
>>>          dangerous, since it means that the network delivers a service that *isn't*
>>>          what the operator asked for - which may result in service degradation
>>>          (e.g., consider live/live where there is a maximum latency difference that
>>>          is tolerable between the two feeds).
>>>
>>> *[KT] **We will add text clarifying this aspect. However, the point is
>>> also that the operator may be OK with the “best possible” and so such an
>>> option may be useful in some deployments.*
>>>
>>
>> [rjs] I don't think that we agree at all on whether this section is
>> useful in its current form. What is the message that we're trying to convey
>> in this section of the document? If it is that there are possible
>> algorithms that may be used by an operator dependent on their service, I'm
>> not clear that we need to document this. The value to me *would be* that we
>> cover some of the caveats of calculating policies that are specific to SR
>> -- i.e., SID stack depth being something that is influenced by divergence
>> from the shortest path, and the fact that we might need to sacrifice the
>> optimal solution to pathing based on these constraints, then I think it'd
>> be useful. The current text does not get this across clearly.
>>
>>
>>>
>>>    - (3.2) I'm unclear of the value of this text. It seems to me that
>>>    we're restating some of the optimisation objectives that are known for
>>>    general TE (and, for example, are described by - say RFC3209). What is it
>>>    that we're trying to communicate to the reader here -- can it be covered by
>>>    "existing path calculation considerations, such as resource affinity
>>>    [rfc3209] can be applied to the path calculation of SR paths"?
>>>
>>> *[KT] **We do not assume that anyone that is deploying SR Policies is
>>> familiar with RSVP-TE. RFC3209 does cover resource affinity but not the
>>> others. Some of the constraints are unique to SR. Hence, there is a value
>>> in specifying the available constraints.*
>>>
>>
>> [rjs]: Again, we might have to agree to disagree here. I did not make an
>> assertion that someone was familiar with RSVP-TE, but that they were
>> familiar with *TE* -- there are networks that meet these constraints that
>> do not use SR or RSVP-TE.... Again, I'd find it very useful to understand
>> what the authors are trying to communicate in this section. If it's that
>> there are particular trade-offs, sure, let's find new wording -- but if
>> not, then I'm not clear why SPRING needs to standardise an incomplete list
>> of optimisation criteria.
>>
>>
>>>
>>>    - (3.4) I'm again going to question the value of this section -- it
>>>    doesn't seem to give enough detail of the algorithm that you're proposing
>>>    to be generally useful, and points out it is a node-local behaviour. If
>>>    there's a desire to get to a common understanding of how to take a path and
>>>    compress its SID stack, then let's write this out.
>>>
>>> *[KT] **Agree that this is a node local behavior. However, the high
>>> level description does indicate how an implementation could go about
>>> determining a path to a SID in an efficient manner.*
>>>
>>
>> [rjs]: If there's really value in this high-level description (I'm not
>> sure I agree...) -- it seems like then restructuring this section to write
>> out the algorithm then use it to illustrate how it operates on a network
>> after this.
>>
>>
>>>
>>>    - (4) See my comments on Section 2 of this document, why is
>>>    describing how the interaction between different processes within what
>>>    sounds like a single implementation something that we should publish within
>>>    the IETF?
>>>
>>> *[KT] **These examples are important to illustrate how the candidate
>>> path selection tiebreaker rules work in different conditions. The
>>> interactions are also valuable to understand the selection which happens
>>> say within BGP (based on its best path) for BGP-SRTE and the selection that
>>> then happens at SR Policy level. This section was originally placed in the
>>> Appendix of the SR Policy Architecture draft since the candidate path
>>> selection tiebreaker rules were specified in that draft. Later was move to
>>> this informational draft.*
>>>
>>
>> [rjs]: In my view, this example would be best _as succinctly_ as possible
>> to demonstrate the preferences in the actual draft. It seems to me that the
>> explanations themselves are quite wordy to make a couple of clear points:
>>
>>  - BGP path selection is unaffected by SR-TE policy.
>>  - If a protocol does not make its own path selection, then SR-TE policy
>> attributes are considered to differentiate between them.
>>  etc.
>>
>> Ideally, this should be clear in the policy architecture draft itself. If
>> it can't be made clear, then I think we should seriously consider whether
>> we have the right level of complexity here.
>>
>>
>>>
>>>    - (5+5.1+5.2) The core point that seems to be being made here is
>>>    that - within a single IGP area the head-end has all the visibility it
>>>    requires; if there are multiple areas, there are ways that a head-end could
>>>    get access to the areas that it is not part of (e.g., BGP-LS). Is anything
>>>    more being said here? Do the implementation details that there are BGP-LS
>>>    RRs actually matter?
>>>
>>> *[KT] **The intention is to provide guidance for some of the deployment
>>> options for achieving this functionality.*
>>>
>>>    - (5.3) Similarly to the above, this seems to assume one particular
>>>    mechanism of building a centralised system, that doesn't need any new
>>>    extensions in the IETF. Is this something that we need to document?
>>>
>>> *[KT] **We explain while taking an example of a mechanism based on IETF
>>> standards that is available for operators looking to deploy this model.*
>>>
>>>    - (6.2) This section seems to imply that there can never be
>>>    allocations from the SRLB that are not dynamically advertised via some
>>>    other protocol. Is this really true?
>>>
>>> *[KT] **I don’t believe this was the intention. We will clarify this in
>>> the text.*
>>>
>>>    - (8) Given that there is a separate draft discussing this -- what
>>>    is the motivation to have this in this document?
>>>
>>> *[KT] **This section gives and overview of the proposal with an example
>>> of optical circuit. It also clarifies that the concept described is
>>> applicable not just for optical links but in general to other types of
>>> layer 2 circuits and tunnels as well. The draft-anand-spring-poi-sr goes
>>> into the details of the use-case, protocol mechanism and extensions
>>> specifically for optical networks only.*
>>>
>>
>> [rjs]: For the above points -- I think we've clearly seen in the WG and
>> IESG that there is not a huge amount of appetite to publish use case
>> drafts. From an operational perspective, I also don't really find these
>> sections that useful since they don't really give me enough information to
>> be able to figure out an implementation. I'd be interested whether the
>> working group thinks that they are sufficiently of interest to include in
>> this document.
>>
>> Cheers,
>> r.
>>
>>
>>> Thanks,
>>>
>>> r.
>>> _______________________________________________
>>> spring mailing list
>>> spring@ietf.org
>>> https://www.ietf.org/mailman/listinfo/spring
>>>
>>
>
> --
> Przemyslaw "PK" Krol |  Strategic Network Engineer ing | pkrol@google.com
>


-- 
Przemyslaw "PK" Krol |  Strategic Network Engineer ing | pkrol@google.com