[Qirg] Is segment routing a good fit for quantum networks?

Bruno Rijsman <brunorijsman@gmail.com> Wed, 20 November 2019 11:02 UTC

Return-Path: <brunorijsman@gmail.com>
X-Original-To: qirg@ietfa.amsl.com
Delivered-To: qirg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CFDB91208EA for <qirg@ietfa.amsl.com>; Wed, 20 Nov 2019 03:02:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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 dKgP7U_bEuHt for <qirg@ietfa.amsl.com>; Wed, 20 Nov 2019 03:02:06 -0800 (PST)
Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) (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 A6F65120877 for <qirg@irtf.org>; Wed, 20 Nov 2019 03:02:05 -0800 (PST)
Received: by mail-wr1-x441.google.com with SMTP id z10so27589959wrs.12 for <qirg@irtf.org>; Wed, 20 Nov 2019 03:02:05 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:mime-version:subject:message-id:date:to; bh=z8knrq8+3QNBqJ+YvHIYgMSAw+LTcKmv2VAfayIRn/Q=; b=hHUZHVrKmCfGBO6GKKdNVOCMTi6h1sC6JnrRDp4lku+bb7MoDl2r2nnogmGAlqAJKr Q/J+Q1PuHtAfjJyQ23lyOvxdiA+aZynGfS5rxer4DsYC3H4l7BfultbTLdhIKrgu02Bg d0LeMkI0bDde8yjDqgXan6TyGwsONiiwtnHIZzO4bB01HxC5oDpDCCWqGFySrPfaBHyY BkxS2xMC21Nkzfj9cTG1PEFZRhn1oly2JEpBDiMlbChVvytrFyFUoH/n3mz1oo2qNqn8 dmpAJOOjMNnq1ctItXeYE6cBSyr0BWjmnLOSpwOmoRlskl0ONsCxUkomjf0SECxX7UbV 0DZg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:mime-version:subject:message-id:date:to; bh=z8knrq8+3QNBqJ+YvHIYgMSAw+LTcKmv2VAfayIRn/Q=; b=Vytob4Nl6pNX7Txk8i2DbcXxVIpn5AaPc+teoLY+OYs4GD8tiy4B2gK3aTiN4miHpe UCXrgQYwWToqB0mo+1+9dG7yRGNs4iPa9m67si2kuph+PsGOa1uRLZhMOMNMS4j6Xb8w m0qykoZ1c63+fT5xfjUuR6k5kiB/KGVWHqc3eSayvkTfRh/FlFKoKDSvwX5RZjXkAqvA 9tWNIZ0OQ2eTLWebyOJ/suPbJq/dkpxgH1XUAN7n9++8uSzj9CT0N1L4F0d6QqlwPob+ HW25bXG+jBNljNKDeK+fEPvBFPlWVoKDLjIhOV7NusP0TOuYCQiLskXVUq4p4kfsk4Uw KiJA==
X-Gm-Message-State: APjAAAVdtjTGZfwdcFalWS6xkiTChp/f158t0Y0zUbybJ5a0vPgMb4Rm llV8RXrCG2mzE3XzNuzOpTyztegp7ew=
X-Google-Smtp-Source: APXvYqw3sZxsxyPqW4SCxX/60carq/4YVJSTJAuU1HZ52Y6GqpQxFsTMOOXFr/qZ69IMJvoqW0GC9A==
X-Received: by 2002:a05:6000:49:: with SMTP id k9mr2460255wrx.43.1574247723427; Wed, 20 Nov 2019 03:02:03 -0800 (PST)
Received: from brunos-macbook.ws.tudelft.net (x032197.tudelft.net. [131.180.32.197]) by smtp.gmail.com with ESMTPSA id l4sm6086427wme.4.2019.11.20.03.02.02 for <qirg@irtf.org> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 20 Nov 2019 03:02:02 -0800 (PST)
From: Bruno Rijsman <brunorijsman@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_C8A3EC22-5F4E-4D10-AA1A-9E8745E5CBCD"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Message-Id: <FAFB2546-EBB3-4A42-B6EC-A36C8EF8BB23@gmail.com>
Date: Wed, 20 Nov 2019 12:02:00 +0100
To: qirg@irtf.org
X-Mailer: Apple Mail (2.3445.104.11)
Archived-At: <https://mailarchive.ietf.org/arch/msg/qirg/j9PhrjagYDAla3yNvFroq1A-piE>
Subject: [Qirg] Is segment routing a good fit for quantum networks?
X-BeenThere: qirg@irtf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Quantum Internet \(proposed\) RG" <qirg.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/qirg>, <mailto:qirg-request@irtf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/qirg/>
List-Post: <mailto:qirg@irtf.org>
List-Help: <mailto:qirg-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/qirg>, <mailto:qirg-request@irtf.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Nov 2019 11:02:09 -0000

SEGMENT ROUTING
===============

During the QIRG meeting I promised to send an e-mail to document my opinion on the (non-)applicability of segment routing to quantum networks.

TL;DR: In my opinion, segment routing is not a natural fit for quantum networks for three main reasons. (1) Qubits don't have headers, so they cannot carry a stack of SIDs with them. (2) It is not correct to think of qubits as being sent across the network using hop-by-hop forwarding. Thus the model of popping a SID at each hop to decide the next hop is not a natural fit. (3) Signaled circuits is a better model for quantum networking because of the resource constraints and more complex and stateful processing rules at each hop.

INTRO
-----

First, a *very* brief (and hence somewhat simplified) introduction to segment routing for those not familiar with it.

Consider the following network topology (use fixed-width font to see figures):

                   +----+    +----+
             +-----|LSR2|----|DST1|
             |     +----+    +----+
             |
+----+    +----+
|SRC |----|LSR1|
+----+    +----+
             |
             |     +----+    +----+
             +-----|LSR3|----|DST2|
                   +----+    +----+

SRC = Source
DST = Destination
LSR = Label Switched Router

In traditional MPLS (Multi-Protocol Label Switching) using LSPs (Label Switched Paths, think of them as circuits), each LSR has one in-label and an out-label for each LSP.

Consider LSP1 = LSP from SRC to DST1
         LSP2 = LSP from SRC to DST2

The MPLS forwarding tables will look as follows:
    
                 In-label 10: Swap 11, DST1
                     .
LSP1: Push 10, LSR1  .     In-label 11, Pop
LSP2: Push 20, LSR1  .         .
  .                  .         .
  .                  v         v
  .                +----+    +----+
  .          +-----|LSR2|----|DST1|
  .          |     +----+    +----+
  v          |
+----+    +----+
|SRC |----|LSR1|
+----+    +----+
           ^ |
           . |     +----+    +----+
           . +-----|LSR3|----|DST2|
           .       +----+    +----+
           .         ^         ^
           .         .         .
           .         .     In-label 21: Pop
           .         .
           .     In-label 20: Swap 21, DST2
           .
       In-label 10: Swap 11, LSR1
       In-label 20: Swap 21, LSR2

Note 1: I have chosen MPLS labels that are globally unique to make the example easy to understand, but in real life the MPLS labels are only locally significant, so the same MPLS label value can and typically is re-used by multiple LSRs.

Note 2: To keep things simple, I have ignored an optimization called Pen-ultimate Hop Popping (PHP).

The network is "aware" of each LSP, in the following sense:

(1) There is one entry in each MPLS forwarding table for each LSP. If there are N LSPs in the network, then there are N entries in the MPLS forwarding table. The number of LSPs can be very large. For example, in some use cases N = E^2 where E is the number of edge routers in the network (full mesh of LSPs from every edge router to every other edge router). This can make the MPLS forwarding tables very large.

(2) The signaling protocol, e.g. RSVP-TE, is aware of each LSP and populates the MPLS in-labels and out-labels for each LSP in each LSR on the path of the LSP. Since the number of LSPs can be large, the signaling load on RSVP-TE can be very heavy.

(3) When the application sends traffic, it can only send the traffic into an existing LSP. Thus, when an application wants to send traffic to DST3, it is necessary that an LSP to DST3 is first signaled. Furthermore, the application cannot directly influence the route that the traffic to DST3 follows. It simply follows the route that was chosen by the path computation function (e.g. CSPF = Constrained Shortest Path First) when the LSP was established.

Now, consider the same topology with segment routing.

Here, each LSR allocates one MPLS in-label for each neighbor (as opposed to one in-label for each LSP that goes through the LSR):

The MPLS forwarding tables will look as follows:
    
                 In-label 20: Pop, SRC
                 In-label 21, Pop, DST1
                     .
                     v
                   +----+    +----+
             +-----|LSR2|----|DST1|
             |     +----+    +----+
             |
+----+    +----+
|SRC |----|LSR1|
+----+    +----+
           ^ |
           . |     +----+    +----+
           . +-----|LSR3|----|DST2|
           .       +----+    +----+
           .         ^
           .         .
           .     In-label 30: Pop, SRC
           .     In-label 31: Pop, DST2
           .
       In-label 10: Pop, SRC
       In-label 11: Pop, LSR2
       In-label 12: Pop, LSR3


When SRC wants to send a packet to DST1, it constructs a packet with the following MPLS label stack and sends it to LSR1:

+----+----+---------+
| 11 | 21 | Payload |
+----+----+---------+

 (1) When LSR1 receives the packet, it looks at the outermost label 11. The MPLS forwarding table says: Pop and send to LSR2.

At this point the packet looks like this:

+----+---------+
| 21 | Payload |
+----+---------+

(2) When LSR2 receives this packet, it looks at the outermost label 21. The MPLS forwarding table says: Pop and send to DST.

At this point the packet looks like this:

+---------+
| Payload |
+---------+

(3) Now DST receives the packet as intended. The MPLS label stack has already been "consumed".

As you can see, this is a flavor of "source routing" where the source SRC encoded the desired route of the individual packet into the header of the packet in the form of an MPLS label stack.

As the packet is being forwarded through the network on a hop-by-hop basis, each LSR on the route "peels off" (= Pops) one MPLS label to decide what to do next with the packet.

Note: I am glossing over some technical details that the things in the stack on the packet are actually called SIDs and could be IPv6 headers instead of MPLS labels as well.

We can see some clear differences:

(1) The MPLS forwarding table only contains one entry per direct neighbor. This scales with the number of interfaces (tens, hundreds at most) instead of the number of LSPs (potentially tens of thousands or even more). Thus, the MPLS forwarding tables are smaller.

(2) We don't need to signal LSPs before sending packet. The application just sends each packet without having to signal an LSP first.

(3) The application is in full control of the route that each individual sent packet takes. The sending application can encode the desired route into the MPLS label stack that is pushed on the individual packet.

The application needs to know the topology of the network and needs to know which MPLS label each LSR has assigned to each neighbor. To achieve this, the standard routing protocols OSPF, ISIS, etc. have been extended to carry these label bindings. Note that the routing protocol load is constant, and does not depend on the traffic patterns (we are not signaling LSPs).

Note: I am glossing over some technical details where the application doesn't need to know every single hop in the topology, but can do the equivalent of "loose source routing" where it only sets "waypoints" that need to be visited by the packet.

Note: I am also glossing over some technical details where a MPLS label could be used to indicate other behaviors in addition to "send to neighbor".

APPLICABILITY TO QUANTUM NETWORKS
---------------------------------

My assessment is that segment routing is not a natural fit for quantum networks for the following reasons.

(1) Qubits do not have headers. Thus, we cannot push a stack of MPLS labels (or some other flavor of SID) onto each qubit.

(2) It is not a good mental model to think of qubits as being forwarded hop-by-hop over a quantum network. As Rodney likes to say, a better model is to think of quantum networks as performing a distributed computation that produces Bell pairs at the end points, that are consumed by (e.g.) teleportation. Thus, the segment routing model (where each packet contains an MPLS label stack that is processed hop-by-hop as the packet travels through the network, popping labels along the way to determine the nexthop) is not appropriate.

(3) Quantum networks, at least for the foreseeable future, will be extremely resource constrained. Furthermore, processing at each hop will be much more elaborate than just doing a stateless lookup in a forwarding table. Thus, IMHO, a protocol that explicitly signals a path for each quantum circuit and explicitly allocates resources and programs "rules" for that circuit is more appropriate than the fully stateless "the network is not aware of the circuit" model of segment routing. Such a protocol will, IMHO, look very similar to RSVP-TE. Indeed, the protocol outlined in Rodney's quantum-connection draft does have strong similarities to RSVP-TE.

To remedy issue (1) we could potentially come up with some scheme where each qubit is somehow accompanied by a classical packet that carries the MPLS label stack on behalf of the qubit. That seems non-trivial, and it still does not fix issues (2) and (3).

I am not ready to say that segment routing is "impossible" for quantum networks, but at first sight at least, it does not seem like a natural fit.

-- Bruno