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 <risha...@gmail.com> wrote:

> Erik,
> Thanks for the review. Comments inline @ [RP].
>
> On Wed, Jul 5, 2023 at 6:24 PM Erik Kline via Datatracker <
> nore...@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
>>
>
_______________________________________________
spring mailing list
spring@ietf.org
https://www.ietf.org/mailman/listinfo/spring

Reply via email to