[spring] Pls comment: On core BIER/MSR6 differentiation

Toerless Eckert <tte@cs.fau.de> Tue, 25 October 2022 16:24 UTC

Return-Path: <eckert@i4.informatik.uni-erlangen.de>
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 BB3C0C14CE2B; Tue, 25 Oct 2022 09:24:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.66
X-Spam-Level:
X-Spam-Status: No, score=-1.66 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01] autolearn=no autolearn_force=no
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 TJTdG7C93MDV; Tue, 25 Oct 2022 09:24:41 -0700 (PDT)
Received: from faui40.informatik.uni-erlangen.de (faui40.informatik.uni-erlangen.de [IPv6:2001:638:a000:4134::ffff:40]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 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 843B1C14F747; Tue, 25 Oct 2022 09:24:32 -0700 (PDT)
Received: from faui48e.informatik.uni-erlangen.de (faui48e.informatik.uni-erlangen.de [131.188.34.51]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by faui40.informatik.uni-erlangen.de (Postfix) with ESMTPS id BE239548587; Tue, 25 Oct 2022 18:24:23 +0200 (CEST)
Received: by faui48e.informatik.uni-erlangen.de (Postfix, from userid 10463) id A6CB04EBE28; Tue, 25 Oct 2022 18:24:23 +0200 (CEST)
Date: Tue, 25 Oct 2022 18:24:23 +0200
From: Toerless Eckert <tte@cs.fau.de>
To: 6man@ietf.org, msr6@ietf.org, pim@ietf.org, spring@ietf.org
Message-ID: <Y1gNt+rkK7Xfj8ab@faui48e.informatik.uni-erlangen.de>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/Ckh-wIbW18pKRuAMSKFX9zu5Htc>
Subject: [spring] Pls comment: On core BIER/MSR6 differentiation
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: Tue, 25 Oct 2022 16:24:42 -0000

Dear colleagues

I wanted to explain and get feedback on one of the IMHO core differences between MSR6
and BIER which is so far only in one draft-eckert-msr6-rbs, and we could not present
solutions at IETF115, and this proposed architectural difference only got a few seconds
during one of the problems slides at the MSR6 BoF, and i also don't think we have agreed
on this point in the MSR6 community.

So:

If i understand BIER, it was designed as a single-forwarding-fits-all network layer
stateless source-routing multicast solution. To make it applicable to any network protocol 
or other traffic, it encapsulates that trafic end-to-end (BFIR-BFER), which it calls flow-overlay.
IMHO, on this aspect, BIER is very much designed like MPLS for the flow overlay and SR-MPLS
for the source-routing, both of which made that concept popular and successful.  Those MPLS
network are also the ones where the BIER architecture most reasonate with.

But we also have a well established communities in the IETF that did not pick this approach to
build networks, but wanted where building contrlled networks based on IPv6. The first community
to do this was of course the IoT community, where RFC6554 is the most common source-routing header.
And i do not think these communities would be asked to do MPLS instead of IPv6 based designs
if they would start today.

Then of course there is SRv6 with the SRH source routing header RFC8754 for higher speed
IPv6 networks. Those IPv6 networks too where not asked to convert to MPLS when they needed to
get the benefit of source routing. Instead, we choose the much more prudent option to build
a common source-routing architecture (Segment Routing) and map it to the forwarding/encapsulation
paradigm that matches the customers existing network design best (MPLS and IPv6): operational and
architectural. [ An aproach actually i think we should also take in stateless multicast:
share everything that can be shared across BIER and MSR6, but not force one type of networks
to change their overall architecture because the other network design was there earlier. I can
not fathom how this is even a reasonable argument in the IETF (do not use IPv6), but thats what
i heard repeatedly. ]

Now enter the multicast side. The ask i heard at and after MSR6 bof is that its seemingly
ok. for the IETF to ask operators of networks with multiple hundred million users who have
long ago choosen IPv6 as their network architecture to not standardize in the IETF a
network forwarding architecture for multicast that is aligned with their IPv6 unicast network
architecture - but insted create a whole new parallel architecture (BIER). This is exactly
the opposite of how the IETF has build multicast solutions for 20 years (see point 3.5 of
draft-eckert-msr6-problem-statement). Instead, BIER-WG explains how to perfectly tunnel bier
over IPv6 links and then IPv6 over BIER, and calls it the best fitting way to do source
routing end-to-end in an IPv6 network (see point 3.5.3). This is about as fitting for an
IPv6 network as it was to use IPv4 multicast in support of MVPN in MPLS networks. Which indeed
the industry asked customer to do. And those of us who worked these solutions back then knew
what happened (see point 3.5.1). Anyhow, i digress.

In any case: MSR6 is meant to be an end-to-end (obviously stateless) source-routing
solutions for multicast in any (controlled) IPv6 network. And like in the unicast solutions,
this means that this does not chane the fact that it represents an appropriate end-to-end
IPv6 packet. And in the case of a packet that is multicasted, we actually only have one
IETF standardized model for that, which is IP multicast. BIER multicast is not IP multicast,
IP multicast can just a be a flow-overlay on BIER. Whereas in MSR6 it does of course need
to be a supported option even without a separate flow overlay. Whether thats for VMs in
DCs ot existing IPv6 network MVPN deployments that want to get rid of tree state in their
core without introducing a lot more new network architecture via BIER (and a surplus of
tunneling via BIERin6).

What iss required to do this is of course, that the common MSR6 extension header to
support the source-routing (with replication) does also need to include the IPv6 multicast
destination address, because according to RFC8200 source routing (section 4.4), 
the IPv6 destination address is rewritten on every hop with the next source-routing hop.

This key part of the MRS6 IPv6 routing extension header is described in section 4.4
of draft-eckert-msr6-rbs and is called MSR6 exit segment - and this is what makes MSR6
eliminate the need for flow overlay encap as in BIER when its used for source-routing
of IPv6 multicast. Of course this approach will also allow us to define new "multipoint"
SID semantics for SRv6, when that address is a different address (including any programmability
that might come in handy here).

Sorry for this gotten so long, hope it is useful. Very much appreciate any feedback.

Cheers
    Toerless