Re: [spring] Erik Kline's Discuss on draft-ietf-spring-sr-replication-segment-15: (with DISCUSS and COMMENT)

Rishabh Parekh <rishabhp@gmail.com> Mon, 31 July 2023 20:09 UTC

Return-Path: <rishabhp@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 CEFD1C14CE5D; Mon, 31 Jul 2023 13:09:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.105
X-Spam-Level:
X-Spam-Status: No, score=-2.105 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_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=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 ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lS-_Pu-EZuBg; Mon, 31 Jul 2023 13:09:12 -0700 (PDT)
Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com [IPv6:2a00:1450:4864:20::42f]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 58E54C14CE29; Mon, 31 Jul 2023 13:09:12 -0700 (PDT)
Received: by mail-wr1-x42f.google.com with SMTP id ffacd0b85a97d-314172bac25so4363319f8f.3; Mon, 31 Jul 2023 13:09:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1690834151; x=1691438951; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=ooP5rt6g+2wtCU8LpuoVGmPghB/qYe1W2r5ZeL7OlOQ=; b=eg/nxEEGarfKcIimXngRE5C4cS5Q2QEnXoFSDwBYzY6f7ZyG5SyLjsHfg/ATo5T8md l6URgQ9BfRlOOQlGuLAuUgIOfw59pawqX3C0RbU13RtZvV03+xmmMJg6b6kMJA8+9abp 4K+2fMdGcX0sImrj2z4M6CNWEvInejmLFgnpU2EpXIj6E9sP1m6s3eYzE1u/NNI7mcK2 IjBs+ZphpgCcCvOEKdVjfHRKSP130JpAplyd43uzWBq2wYc/YPDcuxqjgmULuyHvw9ek RydOWLVb0NB40e2/ppjPoafUdZ4JY4OwuQh54SWkPEVEfj1uGjlT6KcCwGAauS1L4Dj0 113A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690834151; x=1691438951; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ooP5rt6g+2wtCU8LpuoVGmPghB/qYe1W2r5ZeL7OlOQ=; b=TMk1r4s3CHU3b79g6BZTnu+pw6rbCpUBLBT5EueiFGwOqmDvZYKLuZbHe5IVKP2kyv QyTRdhq9r8oxAYoWwvux5wS9VLxjSlSV3dtSgB9RQDBrf/qRFbKXF+zrZ8XOhZspSjwZ RwGqEsdDtoq0srWD1iGvNr6wEjbZ/JnIbFJC9YVfdBRNkBnF6r51NtZnQmhntwRJ/A8Z 66lxQaz8xgsI3geaMaNGGCAHsXPS4/grzU5F7V6BNG5vs4LCR69eTS9AOyjQGllFYx9H kDNyX8FLsdUPQ0BNUFDgrm/dRC86NXCT2a57blJ4YzFlLAHExPM0bjbwq/UCGFWWHmm+ TLxA==
X-Gm-Message-State: ABy/qLZKlhXCgrifcZeh7I5QYl4wQCLFhEscIQt1bgIXeaL6Myquc8Oh wDmAS82lFMPiiZ5FZDJJM5SvUVxnZsuK8zIcb3M=
X-Google-Smtp-Source: APBJJlFCUwzt65Lauu9hisv+v0x1zX6H4CY/5a0QsiDRkNQVEsUMdsklNVJbgrz7YLWMgsUj2WWMsAq0fTZFEn7Gsqc=
X-Received: by 2002:adf:e407:0:b0:317:643a:4fa7 with SMTP id g7-20020adfe407000000b00317643a4fa7mr617846wrm.26.1690834150494; Mon, 31 Jul 2023 13:09:10 -0700 (PDT)
MIME-Version: 1.0
References: <168860667289.19183.2704582314663959018@ietfa.amsl.com> <CABjMoXaa00pfJg7v1gDQAPkOAF3bvZPFQBq6-=UbWdt+T30oGg@mail.gmail.com>
In-Reply-To: <CABjMoXaa00pfJg7v1gDQAPkOAF3bvZPFQBq6-=UbWdt+T30oGg@mail.gmail.com>
From: Rishabh Parekh <rishabhp@gmail.com>
Date: Mon, 31 Jul 2023 13:08:59 -0700
Message-ID: <CABjMoXYBFJk30HF4UBCYJGeDWMJahGPtXMtoGOrNftCvrwQLkA@mail.gmail.com>
To: Erik Kline <ek.ietf@gmail.com>
Cc: The IESG <iesg@ietf.org>, draft-ietf-spring-sr-replication-segment@ietf.org, spring-chairs@ietf.org, spring@ietf.org, mankamis@cisco.com
Content-Type: multipart/alternative; boundary="000000000000ea1a470601ce0025"
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/RZFcIvyRyMaHkmN4hb7yx_Ac4XE>
Subject: Re: [spring] Erik Kline's Discuss on draft-ietf-spring-sr-replication-segment-15: (with DISCUSS and COMMENT)
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.39
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: Mon, 31 Jul 2023 20:09:16 -0000

Erik,
I had responded earlier to your DISCUSS comments. I hope you have had a
chance to look at it.

The latest revision of draft addresses your other COMMENTS.

Please review,
-Rishabh

On Mon, Jul 10, 2023 at 11:30 AM Rishabh Parekh <rishabhp@gmail.com> wrote:

> Erik,
> Thanks for the review. Comments inline @ [RP].
>
> On Wed, Jul 5, 2023 at 6:24 PM Erik Kline via Datatracker <
> noreply@ietf.org> wrote:
>
>> Erik Kline has entered the following ballot position for
>> draft-ietf-spring-sr-replication-segment-15: Discuss
>>
>> ....
>>
>> ----------------------------------------------------------------------
>> DISCUSS:
>> ----------------------------------------------------------------------
>>
>> # Internet AD comments for draft-ietf-spring-sr-replication-segment-15
>> CC @ekline
>>
>> * comment syntax:
>>   - https://github.com/mnot/ietf-comments/blob/main/format.md
>>
>> * "Handling Ballot Positions":
>>   -
>> https://ietf.org/about/groups/iesg/statements/handling-ballot-positions/
>>
>> ## Discuss
>>
>> ### S2.2.1
>>
>> * I think there's some clarification required about what a Replication SID
>>   does if Segments Left is > 0.
>>
>>   I can't see where Segments Left is decremented prior to packet
>> duplication
>>   and so it looks like Replicate() would effectively H.Encaps[.Red]
>> packets
>>   with an (inner) SRH that still points to the Replication SID?
>>
>
> [RP] Unlike most other SRv6 behaviors, a Replication node does not process
> the SRH (except at a Leaf node where a Context SID may be present to
> provide context for packet processing). A Replication node has Replication
> state associated with the Replication SID (in incoming packet) from which
> it gets the list of branches and then for each branch, it replaces the IPv6
> destination address replicated packet copy with the Replication SID of the
> downstream node. Hence, a Replication does not decrement Segments Left (if
> present in a SRH).
>
> * At S20, if Segments Left is still > 0 (even after whatever S16 is
>> supposed
>>   to be doing), why would you discard all of the extension headers?
>>
>
> [RP] This is similar to say End.DT4 behavior in Section 4.7 RFC 8986 where
> a node with local End.DT4 SID decapsulates the outer IPv6 header (and
> extension headers) to process the inner payload. Similarly, an upstream
> Replication node (or Root of replication segment) encapsulates a payload in
> IPv6 header and possibly extension headers and a Leaf or Bud node removes
> the outer IPv6 encapsulation and extension headers to process the payload.
> Please note this document does not specify use of IPv6 extension headers,
> but a future document extending Replication segment may do so.
>
>
>>
>>   I think the S14-S21 stuff is trying to say "if this Replication node is
>>   a leaf or a bud include it in the Replication List".  If that's true I
>>   suspect there are clearer ways to express that; you could just redefine
>>   the replication list inside Replicate() and let implementers figure out
>>   how to apply optimizations.
>>
>
> [RP] I hope my above reply clarifies that S14-S21 is just describing the
> decapsulation action on Leaf/Bud nodes.
>
>
>>
>> ### A.2.1
>>
>> * Please clarify which source address R6 uses to formulate the Echo Reply.
>>
>>   I'm a little unclear on the mental model here.  The generation of ICMP
>>   errors is prohibited because the Replication SID is analogized to a
>>   multicast address in this context.
>>
>>   Pinging a multicast address is of course fine, but the echo requester
>> knows
>>   to expect the source address of replies to be any unicast address.  I'm
>>   assuming a requester needs to be modified to know that echo replies
>> cannot
>>   come from the Replication SID in this case?
>>
>>   Or is the Replication SID intended to be the source address of Echo
>> Replies
>>   here, as if it's some kind of conceptual "unicast whenever we want but
>> also
>>   multicast whenever say" kind of address?
>>
>
> [RP] The source address used in Echo Reply is the Replication SID of the
> responder. Pinging a replication SID is similar to pinging any other SRv6
> SID as described in Sections 2.2, A.1.2 of RFC 9259. Note the Replication
> SID is like other SRv6 SIDS with LOCATOR:FUNCTION:ARG format. The LOCATOR
> is an IPv6 unicast prefix and the FUNCTION has the SID value. So the
> Replication SID is itself an IPv6 unicast address and thus it can (actually
> MUST) be used as the source address of Echo Reply according to Section 4.2
> of ICMPv6 RFC 4443.
>
>
>>
>> ----------------------------------------------------------------------
>> COMMENT:
>> ----------------------------------------------------------------------
>>
>> # Internet AD comments for draft-ietf-spring-sr-replication-segment-15
>> CC @ekline
>>
>> * comment syntax:
>>   - https://github.com/mnot/ietf-comments/blob/main/format.md
>>
>> * "Handling Ballot Positions":
>>   -
>> https://ietf.org/about/groups/iesg/statements/handling-ballot-positions/
>>
>> ## Comments
>>
>> ### S2/S2.2
>>
>> * Given that Replicate() is implemented in terms of encapsulation in
>> another
>>   SRH it's probably good to cite some text about the MTU considerations
>> for
>>   operators.  Probably the usual "size your MTU big enough or expect
>> trouble"
>>   type of advice is really all that can be said.
>>
>> [RP] Note that SRH is not mandatory or even necessary for Replication
> SID, since the unicast locator prefix of downstream Replication SID can
> take a packet directly (on IGP shortest path) to the downstream node. SRH
> is only required, as described in second paragraph of Section 2.2, if a
> replicated packet has to be steered on a specific path (not the IGP
> shortest path) to the downstream node. This is done using H.Encaps.Red
> which adds the SRH. However, your point about MTU consideration for this
> particular case is valid. I will add text in Section 2.2 about this.
>
> ### S2/S6
>>
>> * It seems like nothing in the control plane representation information
>> can
>>   prevent a chain of replication SIDs forming a loop.  It should probably
>> be
>>   noted that this can occur, looping and replicating packets until the
>>   Hop Limit stops it, if there is no function elsewhere that prevents the
>>   formation of loops when setting up the control plane (not necessarily a
>>   problem when a PCE is programming things, but in the "provisioned
>> locally
>>   on a node" case it might be easier to make a mistake).
>>
>
> [RP] Agreed. I will add text in Section 2 about potential looping and how
> MPLS TTL/IPv6 Hop Limit can break the loop. But I think this is equally
> applicable to other SRv6 behaviors like End/End.X. One can craft an SRH
> that can cause a packet to loop between a few nodes till either Segment
> List is exhausted or IPv6 Hop Limit is reached.
>
>
>> ## Nits
>>
>> ### S1.1
>>
>> * s/IPV6/IPv6/
>>
>> ### S2.2
>>
>> * s/pen-ultimate/penultimate/
>>
>>
>> [RP] Will fix.
>
>
>>
>> _______________________________________________
>> spring mailing list
>> spring@ietf.org
>> https://www.ietf.org/mailman/listinfo/spring
>>
>