Re: [spring] Understanding the replication draft

Rishabh Parekh <> Thu, 02 July 2020 06:35 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 1047B3A0D70 for <>; Wed, 1 Jul 2020 23:35:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.098
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: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id z9kSZ0HyfxBk for <>; Wed, 1 Jul 2020 23:34:58 -0700 (PDT)
Received: from ( [IPv6:2a00:1450:4864:20::331]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 486B03A0CD4 for <>; Wed, 1 Jul 2020 23:34:58 -0700 (PDT)
Received: by with SMTP id l17so25410587wmj.0 for <>; Wed, 01 Jul 2020 23:34:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=P1ipIjq17Axx34ROnzOe1GkOqnMGKPmQ+ZzdDrelZ3I=; b=KJ5QGlSq0rd6HGTc/k0j6+5upbUzJwWWi8n5fkUYM5SwyiBqJyCJ3bUakZ+yTEIp0N +FawwX00479p2Bmue811ZZ7WlbZEaoC9LDblApLQ9QIzyob9UkURJxnBpcMPMR8+ItI6 OWp0qRmGS6CvXt26JDByCBkBrcmmhwEyd7e9bQxu7wNQfBmxIGYg2rWvQy9K2/gh8gj/ N9sjjTQ6XspVzBsPhdkrDmMm91Kf71IHUl9UJs7wXGuS2oDgAnoBW2DeBIhrXAywB7Pd zCRNbpu7M9+CWmov515Lafq1buLNZWdaE3l4n/zeHyhthLYeoREkVGv/BIsdFe3CVUPi QzFA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=P1ipIjq17Axx34ROnzOe1GkOqnMGKPmQ+ZzdDrelZ3I=; b=mRioZ9vaQqF07zOLPazxFV8rUw6dytOfnIEQYG5Lb948C2wtGcgfT4aDDOYhoT1aCJ NZiRRM/N0CAccYebWfXvFaZBPce4dvQaVCZhL4+v1CaNoqiA1OJhotT2XEn26sq53Gqi D++M7cdEFxZefs1aV3R7lksyIa2G4ngXa0UM1QigFEfbrjSnyQXNTngBucGIqXEisxcl AIhcq3Zpjoy/X34/qPCZH/uFoITWlj4N+xWvosZ5fyXPFzo7LSDh2XDU+nLU2/zUtGm1 rr0TKs0SY/zWLXO/WpnmktOO8kNz2Q+HgrH0TgssNz0XaDRYmP211jpUFGYkOZJG9GAy nE8w==
X-Gm-Message-State: AOAM533W8dCvilfLl+KCejwIzcclHYzsJyn8QSzlQQ7GkuOwm+LvN8bp 12tv7xk3BLW01JZA/m18ZCLgns8VNOtKKcU5pZc=
X-Google-Smtp-Source: ABdhPJxWkGMKS9T3OqXJi12yc+DQks+eFEnhP0IHHp6RWV6Yh+CqHRbK/B3IGtadtm/WloN/Gs16Vg7XGqAGNtBx0bo=
X-Received: by 2002:a7b:ca43:: with SMTP id m3mr22986888wml.120.1593671696644; Wed, 01 Jul 2020 23:34:56 -0700 (PDT)
MIME-Version: 1.0
References: <> <> <> <> <> <> <baaf7a09-f20d-4863-b7f7-36118e11cc4b@Spark>
In-Reply-To: <baaf7a09-f20d-4863-b7f7-36118e11cc4b@Spark>
From: Rishabh Parekh <>
Date: Wed, 1 Jul 2020 23:34:45 -0700
Message-ID: <>
To: Jeff Tantsura <>
Cc: Robert Raszuk <>, "" <>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <>
Subject: Re: [spring] Understanding the replication draft
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Source Packet Routing in NetworkinG \(SPRING\)" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 02 Jul 2020 06:35:00 -0000

Your explanation of distinct Transport SIDs and service labels (which
appear at BoS) applies to Point-to-Point services. Same model can be
applied when a Point-to-Multipoint service is realized by one
end-to-end replication segment; "Downstream Replication SID" as
specified in draft is effectively the service label at a specific
downstream node of a Replication segment with Transport SIDs imposed
on top to take replicated packet to that node.

However, when a Point-to-Multipoint service is over replication
segments stitched together to form a P2MP tree, as described in PIM WG
draft, this model no longer holds since all service egress nodes would
have to agree on one common service label. So  P2MP services
implicitly map the P2MP transport label (Replication SID at BoS in
this case) to the P2MP service. Of course, this implies one-to-one
association between a P2MP service and a P2MP transport. There are
techniques to share one P2MP transport across different P2MP services
using either upstream assigned label or a global context from
"Domain-wide Common Block"
(draft-ietf-bess-mvpn-evpn-aggregation-label). These and other gory
details are described in Section 2 of PIM WG draft and to some extent
in BESS MVPN-EVPN draft.


On Wed, Jul 1, 2020 at 5:50 PM Jeff Tantsura <> wrote:
> Rishabh,
> Transport SID with a service on top can’t be a BoS label, there’s s service label below, since a service is associated with a particular node, there would be at least a N-SID associated with the service node.
> It seems like B-SID behavior is the correct one, when R-SID is looked up and popped, it would yield: replication  (as programmed by a controller, since there’s no state) + new label stack associated with the new, post replication/branching path that is imposed on top of existing label stack, so service label ( + optionally more transport labels) are preserved.
> Cheers,
> Jeff
> On Jul 1, 2020, 12:40 PM -0700, Rishabh Parekh <>om>, wrote:
> Robert,
> A) Firmly state that replication SID MUST be the last one on the stack
> B) Instead of real SID after the replication SID provide a binding SID which locally will be mapped to a different SID list imposed to each replicated flow.
> We would be fine with A), but we don't want to exclude possibility of
> something like what you describe in B.
> -Rishabh
> On Wed, Jul 1, 2020 at 12:27 PM Robert Raszuk <> wrote:
> Hi Rishabh,
> Of course, care must be
> taken to avoid the "explosion" as you describe it. G-SID-2 has to map
> to a unique node; for example, it may be an Anycast-SID that takes
> packet to distinct nodes from each of the downstream node, or the
> downstream nodes can be border nodes connecting to other segment
> routing domains where G-SID-2 resolves to distinct nodes in each
> domain.
> I think you are stretching it too thin.
> See even if G-SID-2 is anycast SID you have zero assurance that physical nodes packets will land on would be at all diverse.
> Likewise crossing domains yet providing identical global SID now to be a different node in each such domain to me is not a realistic example.
> I think we have two options:
> A) Firmly state that replication SID MUST be the last one on the stack
> B) Instead of real SID after the replication SID provide a binding SID which locally will be mapped to a different SID list imposed to each replicated flow.
> What is currently in the draft seems to be very counterintuitive and IMHO will result in operational difficulties.
> Thx a lot,
> R.
> _______________________________________________
> spring mailing list