Re: [spring] draft-voyer-spring-sr-replication-segment-03

Rishabh Parekh <rishabhp@gmail.com> Wed, 08 July 2020 23:28 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 90D973A096E; Wed, 8 Jul 2020 16:28:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 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, 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 gGMs4nVd0Esw; Wed, 8 Jul 2020 16:28:25 -0700 (PDT)
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com [IPv6:2a00:1450:4864:20::32d]) (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 3E5CC3A0972; Wed, 8 Jul 2020 16:28:25 -0700 (PDT)
Received: by mail-wm1-x32d.google.com with SMTP id a6so4971546wmm.0; Wed, 08 Jul 2020 16:28:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=k/VLxsskfw3oN3yIW3zbtnhOPAN9/NtI+c0+yNtfHPY=; b=Nr8Z3Bbsrbrq31CKKKc+iWFdmvAUGo+UHduKuJ8IM/LZmq8Jis2GUaFXdQRVD3hCCT 0vzrMp5TnHbPMADDOj42vyJwiDkuvGAEFEp7NAWqe8SSvdImtaQbnONs/UZOjk+eBPON UqbL1zX8I3EWrutgcS4XVi3D0WverCXK2QmV5Rd3be3GgKG/6m1C1qE2IVF7uAqJjlqf Fg2QL/m8eYBqqAsoaAXacnfTQSOytlDADxoDRg+iDGwuM0lq1zsxoqydDwcepRJqAuzw eH7IPzcjSoMizMY1sqgLolD3M1vBZX/2k8CYNy0pSKl+ifytVJm6HMJ0dxM6OQGVBzDf UPxA==
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:content-transfer-encoding; bh=k/VLxsskfw3oN3yIW3zbtnhOPAN9/NtI+c0+yNtfHPY=; b=e8Z9t7xHjK08go8PSSUPXzxSz/BSA0a6eZG5cpQZ5B2+b5FPkRNM6VImVyYxwyTAiv ULInOmvTI9KgGXYqW13AYRXyGQxgQJj4k/eUDP9d6Lub/er4wCSIXhb2/xSnF8m/zJMb 72EIbLTRfl15mng64FpD8jotdB9x7WeJyuXB3UJcB00oNnzyJVc4K0lDqE4ZYNZZgRW9 MKaWzHKZTHTXHSuo/UMlbKe2FUiFwK3tAX08IbO3sXJNMtd4WLtvhmrG1nE16mxU+bHi igZ6++guAlySGdKwmEcv3cSKCdcw5TVmxxsqNZQGb8k8dnzIeIL9uwQNKjDZCITMwXMF Im+g==
X-Gm-Message-State: AOAM533DHwhsQHj0ANHu+gjDXabuzbYtAM5DlBhtfFt2P4Uyl91fsU/B uReWLxbBmYHHoy546YUUxOhVvn5Z+dLZfQMEJSIOHvql36M=
X-Google-Smtp-Source: ABdhPJxu72o4fwnzn2uX2lsJl9uHaTwn2/xDyQP5G3bhmXT6hUgSk8LxICkDgiAkC/7vH1+GhmgAguxBJP2W+o6iL0E=
X-Received: by 2002:a05:600c:2483:: with SMTP id 3mr11380775wms.120.1594250903411; Wed, 08 Jul 2020 16:28:23 -0700 (PDT)
MIME-Version: 1.0
References: <3632_1594220860_5F05E13C_3632_134_1_53C29892C857584299CBF5D05346208A48ECD7AA@OPEXCAUBM43.corporate.adroot.infra.ftgroup>
In-Reply-To: <3632_1594220860_5F05E13C_3632_134_1_53C29892C857584299CBF5D05346208A48ECD7AA@OPEXCAUBM43.corporate.adroot.infra.ftgroup>
From: Rishabh Parekh <rishabhp@gmail.com>
Date: Wed, 08 Jul 2020 16:28:10 -0700
Message-ID: <CABjMoXbqhmkhxJQr9NwXJW8C5KhR_hp-AvMks6ZgJgtQ9fi92Q@mail.gmail.com>
To: bruno.decraene@orange.com
Cc: "draft-voyer-spring-sr-replication-segment@ietf.org" <draft-voyer-spring-sr-replication-segment@ietf.org>, "spring@ietf.org" <spring@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/3p3uUhjb7fcZrMtGd3_1YVgeJnA>
Subject: Re: [spring] draft-voyer-spring-sr-replication-segment-03
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: Wed, 08 Jul 2020 23:28:28 -0000

Bruno,
Replies inline

> ---
>
> "A SR Replication segment allows a packet to be replicated from a replication node to downstream nodes."
>
> May be adding "Each downstream node is reached by using a unicast segment or SR policy."
>
> (otherwise, the building of a multicast tree seem possibly within the scope)
>
>
If the downstream node is directly connected, we don't need a unicast
segment or SR policy to reach that node, just an interface to that
node is sufficient.

>
> -----
>
> "a Replication segment is a logical segment"
>
> - I'm not sure what you mean by "logical".
>
> - My understanding is that the replication is a local segment as per RFC8402. i.e. it is instantiated on one single node. Can you make this clear in the document?
>
>

By "logical" we mean the Replication segment is not a topological
construct (like a node or a link).  I am proposing the following text
to clarify that it is a local segment instantiated at the Replication
and Downstream nodes.

"In a Segment Routing Domain, a Replication segment is a logical
construct which connects a Replication Node to a set of Downstream
Nodes. A Replication segment is a local segment instantiated at the
Replication node and and MAY be instantiated at Downstream nodes. It
can be either provisioned locally on a node or programmed by a PCE. "


>
> "A Downstream Node could be
>
>    represented by the node's Node SID (i.e. it does not matter how
>
>    traffic gets to the Downstream Node, whether it's directly connected
>
>    or not), or in case of a directly connected node it could be
>
>    represented by the Adjacency SID (for the interface connecting to the
>
>    directly connected Leaf Node).  Alternatively, a Downstream Node
>
>    could be represented by a SID-list or a Segment Routing Policy
>
>    [I-D.ietf-spring-segment-routing-policy] that partially/fully
>
>    specifies the explicit path from the Replication Node to the
>
>    Downstream Node, or even represented by another Replication segment."
>
>
>
> This definition uses only "could", "alternatively", "or even".
>
> Would it be possible to phrase it to describe what _it is_ ?
>
> On the list, Andrew proposed the following text "downstreamIngressReplicationSid and SID Path". Which may be could be phrased as: a unicast SR policy, (possibly) followed by a replication segment. And if you extend the SR-Policy to include the use of a Replication segment, may be specification of a branch could simply be 'one SR policy'.
>
>

As you suggest, we will try to simplify this in the next revision.
Below is proposed text (that also incorporates the response to first
comment):

"A Downstream Node is represented by a SID-list or a Segment Routing
Policy that specifies the explicit path from the Replication Node to
the Downstream Node, or even represented by another Replication
segment. The SID-list MAY just have one SID. If a downstream node is
adjacent to a Replication node, it MAY also be represented by an
interface."


>
> -----
>
> "  For the root of a Multi-point service, the Replication SID
>
>    SHOULD be considered to be the equivalent of Binding SID
>
>    [I-D.ietf-spring-segment-routing-policy] of a Segment Routing Policy.
>
>    At a downstream node of the Multi-point service, the Replication SID
>
>    MAY be used to identify that portion of the Multi-point service."
>
>
>
> From this text, it's not clear whether the replication SID/segment is a local segment, or a global segment, or something new to be defined.
>
> Why not replacing the above text with
>
> " the Replication SID
>
>    SHOULD be considered to be the equivalent of Binding SID
>
>    [I-D.ietf-spring-segment-routing-policy] of a Segment Routing Policy."
>
>
We are proposing this text:

"At a Replication node, the Replication SID SHOULD be considered to be
the equivalent of Binding SID of a Segment Routing Policy.". The text
about "Downstream Node" has been to another paragraph in same section
where we describe NEXT operation.


>
> -------
>
> " o  When the Active Segment [RFC8402] is the Replication SID.  In this
>
>       case, the operation for a replicated copy is CONTINUE."
>
>
>
> "CONTINUE" would mean that the segment is not a local segment.
>
> So the document really needs to clarify whether the replication SID/segment is a local segment, or a global segment, or something new to be defined..
>
>
The CONTINUE operation just captures the label swap for each
replication, with just the Downstream Replication SID in the simplest
case.

>
> -----
>
> "  o  On the root of a Multi-point service, based on local policy-based
>
>       routing.  In this case, the operation for a replicated copy is
>
>       PUSH."
>
>
>
> Introduction states that the building of a tree (hence the root) is out of scope of this document.
>
>
>
> Could the section 2 "Replication Segment" of this document be focused on the definition and specification of this local replication segment?
>
>
>
> -----
>
> "  If a Downstream Node is an egress (aka leaf) of the Multi-point
>
>    service, i.e. no further replication is needed, then that leaf node's
>
>    Replication segment will not have any Replication State and the
>
>    operation is NEXT.  Notice that the segment on the leaf node is still
>
>    referred to as a Replication segment for the purpose of
>
>    generalization.
>
>
>
>    A node can be a bud node, i.e. it is a replication node and a leaf
>
>    node of a Multi-point service at the same time
>
>    [I-D.voyer-pim-sr-p2mp-policy].  In this case, the Replication
>
>    segment's Replication State includes a branch with the Downstream
>
>    Node being itself and the operation for the replicated copy is NEXT."
>
>
>
> same comment: Could the section 2 "Replication Segment" of this document be focused on the definition and specification of this local replication segment?
>
>

The description of PUSH, CONTINUE and NEXT operation was introduced in
version 02 as a result of discussions with Sasha and other WG members
in this thread:
https://mailarchive.ietf.org/arch/browse/spring/?q=The%20SPRING%20WG%20has%20placed%20draft-voyer-spring-sr-replication-segment%20in%20state%20.
IMO, the processing of a packet as it traverses a Replication Segment
is specified by these operations and should be part of the draft.



>
> ----
>
> "Replication segments apply equally to both SR-MPLS and SRv6 instantiations of Segment Routing."
>
>
>
> May be, but there are differences between both data planes and the draft does not talk about those differences.
>
> e.g. for SR-MPLS, labels are local to a node (including labels of global segments). Hence it's not crystal clear to me if/how a segment/label can follow a replication segment. Because that label would be received by N nodes, which may understand it differently (different FEC). How is this handled? In essence, the situation is similar to the use of anycast SID. So this seems possible to handle it, but may be not trivial up to the point of not mentioning it. (some options are using upstream allocated labels with context forwarding tables, enforcing that all receivers use the same FEC for the label. cf the spring anycast draft)
>
>
>
>
>
> e.g. for SRv6, the use of binding SID implies the use of new (another) IPv6 encapsulation [1]. So if N consecutive replication segments are used along the path, N IPv6 encapsulation are performed. I'm not seen a provision for performing the N de-encapsulations.. How is this handled, on which node(s)?
>
>
>
> [1] https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming-16#section-5
>

We do have an approach for SRv6 Replication. After adoption, we were
going to poll the WG to see if SRv6 content can be incorporated in
this draft or in a separate document. However, we do want to retain
minimal text about SRv6 in the draft since this Replication construct
applies to SRv6 also.