Re: [Coin] Compute on the Forwarding Node and Semantic Routing

Marie-Jose Montpetit <marie@mjmontpetit.com> Fri, 04 February 2022 12:59 UTC

Return-Path: <marie@mjmontpetit.com>
X-Original-To: coin@ietfa.amsl.com
Delivered-To: coin@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CFC483A0EDF for <coin@ietfa.amsl.com>; Fri, 4 Feb 2022 04:59:52 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.895
X-Spam-Level:
X-Spam-Status: No, score=-1.895 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, UNPARSEABLE_RELAY=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=mjmontpetit-com.20210112.gappssmtp.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 y2lQXas32M7T for <coin@ietfa.amsl.com>; Fri, 4 Feb 2022 04:59:48 -0800 (PST)
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com [IPv6:2a00:1450:4864:20::12b]) (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 D8A003A0EDC for <coin@irtf.org>; Fri, 4 Feb 2022 04:59:47 -0800 (PST)
Received: by mail-lf1-x12b.google.com with SMTP id o12so12396456lfg.12 for <coin@irtf.org>; Fri, 04 Feb 2022 04:59:47 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mjmontpetit-com.20210112.gappssmtp.com; s=20210112; h=from:in-reply-to:references:mime-version:date:message-id:subject:to; bh=S/VSIg+G9F3EZZVdEgdfritqaa/lFXey/OajqKjNgR8=; b=MsuNKQmf1uSwsEN4t+XkuvPOisCE7CTuKUBdpPr2HyBPX/0LxHq0WrNinT25Txkh5e ZS1RWumGZ/tc/ADdeFPbHXhH3SiPl34JElbnVvIbcLhdapNY7ZPGAITpaGBsBYU4IJGw q6Gy3NYJUweFkYBItFVo7zAMvYfGWDgn7flH+Dv1xReB3ddQi7aRu90X2GyXw22EFKEC 4x4PFKvlUekracBdwGeiCgoOIE/WQXtBUNpZPdinnvl7y3Z9s4euFuPQewryyVIcXnUI +FdwFFCNmncoxir9HnKqix5V9D/wbBa82TT7gKuewkF5dZTyDcvXyMu+rp5fdhBvWdan zY1w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to; bh=S/VSIg+G9F3EZZVdEgdfritqaa/lFXey/OajqKjNgR8=; b=Z8Gtzbm5OqQ2/Am5ba5bC8NPiZvvNfbYZaJdyZmHrbL0scVoaBp3UWmRPjlA01dNtZ WBOMbXVOCV3U5SDNvT3asEHxEgQY5hei2XV/Aqlene8RnSPnO/Oe8+O1TArVVuuxRWkt p/KBjam9TqR1B3SN5gM8quTF3/jAL/T2holVQA8ZkhMDdTuo9AfTKvzNAw0zeUsIsdfX jiyPry7Se4q5SuRpC3eZsmkHmT9SUhSpQ9hJjQbQ0gN/dHHzHk3acYg6pEJ6hakJbeow ZjfpssLhTKV3MTvmRCFImVqY/jh5/deoeq4mibAXAe64Pg2H9lTAqtpks3WGAKuiXvft GSOQ==
X-Gm-Message-State: AOAM532xk5JdX4oznuJDLj7MSOahRbCkNTSUFg7f7mrcHQXrNsyId2xz Sxx8sxmQ62RssiuQXL9vb4wX3l9rHRQNCEhJevNPEA==
X-Google-Smtp-Source: ABdhPJz8BXqxt++38htVGhnypDGx4+vK1IC8wbDInr1PurP36IOc0qE92z4rhKUBf7GyCjYryoP+SP0i8ol5U5wZ7Vc=
X-Received: by 2002:a05:6512:203b:: with SMTP id s27mr2303271lfs.11.1643979584756; Fri, 04 Feb 2022 04:59:44 -0800 (PST)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Fri, 4 Feb 2022 07:59:44 -0500
From: Marie-Jose Montpetit <marie@mjmontpetit.com>
In-Reply-To: <0c2e01d819bb$7fa18460$7ee48d20$@olddog.co.uk>
References: <0c2e01d819bb$7fa18460$7ee48d20$@olddog.co.uk>
MIME-Version: 1.0
Date: Fri, 4 Feb 2022 07:59:44 -0500
Message-ID: <CAPjWiCRtUfUUwDW7uTLMZGYs=C4CD--YtxWB3E1TEESUmYw++A@mail.gmail.com>
To: adrian@olddog.co.uk, coin@irtf.org
Content-Type: multipart/alternative; boundary="0000000000002af9ae05d730d359"
Archived-At: <https://mailarchive.ietf.org/arch/msg/coin/m7xkoLJTDOR_8W5pS9DVQ5BzY6E>
Subject: Re: [Coin] Compute on the Forwarding Node and Semantic Routing
X-BeenThere: coin@irtf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "COIN: Computing in the Network" <coin.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/coin>, <mailto:coin-request@irtf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/coin/>
List-Post: <mailto:coin@irtf.org>
List-Help: <mailto:coin-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/coin>, <mailto:coin-request@irtf.org?subject=subscribe>
X-List-Received-Date: Fri, 04 Feb 2022 12:59:53 -0000

Thanks for the routing tutorial.

So after all these emails I wonder if you could summarize in a few bullets
as introduction to next weeks interim (remember you have 20 minutes max so
no time to go through the email thread):

- how Semantic Routing is different from traditional routing
- where it is related to COIN assuming a model where any network nodes may
have computation capabilities beyond forwarding
- where Semantic routing is not related to COIN
I insist on a few bullets as we have all the background in your emails and
the drafts and other material you cited.

And BTW the decision to pursue the work within the COIN community is yours
if you want to work on those aspects that relate to it.

mjm

Marie-José Montpetit, Ph.D.
marie@mjmontpetit.com



From: Adrian Farrel <adrian@olddog.co.uk> <adrian@olddog.co.uk>
Reply: adrian@olddog.co.uk <adrian@olddog.co.uk> <adrian@olddog.co.uk>
Date: February 4, 2022 at 6:37:07 AM
To: coin@irtf.org <coin@irtf.org> <coin@irtf.org>
Subject:  [Coin] Compute on the Forwarding Node and Semantic Routing

Finally (honestly ;-) I get to my last thread on Semantic Routing.

This concerns the concept of compute on the forwarding node.

Again (sorry to keep repeating this) we are talking about the IP-layer
forwarding node that has the job of forwarding a packet to the next hop on
the path from one "network component" to the next, or to the final
destination. It is not tasked with determining the next network component
to
see the packet, nor with performing the functions of the network component.

Such forwarding nodes may perform semantic routing, as described in the
previous threads. In making the forwarding decisions, the forwarding nodes
may use algorithms to build the forwarding tables, and/or they may use
algorithms that are more sophisticated than keyed lookups to determine the
next forwarding hop for a given packet.

The previous thread on programmability and SDN deals with how the
forwarding
table may be installed from a controller, and how the forwarding nodes may
be instructed to extract lookup keys from the packets.

This thread is about the algorithms used on the forwarding nodes since
those
algorithms use "programs" and "CPU".

Algorithms that construct forwarding tables may be installed at "build
time". This may mean that they are burnt into silicon, or they may be
pre-installed software. Historically, that is how routers have worked.
These
algorithms may also be updated through software updates (often requiring
that the node is restarted, or at east has a "lumpy moment" when the
switchover to the new software is made). All modern routers and whitebox
routers work this way.

Possibly the algorithms to construct forwarding tables are not so
interesting to us in this context. They could be highly dynamic, they could
use ML/AI, they could use a lot of performance data gathered from the
network. But they don't operate on a per-packet basis, and they are not in
the forwarding path for the packets (even though they impinge on those
paths). The "compute in the network" is there (it is there today in
deployed
networks!), but it is not performing computation on the packets or their
content.

An interesting existing example of this is the "IGP Flexible Algorithm"
work
(https://datatracker.ietf.org/doc/draft-ietf-lsr-flex-algo/).

So we should turn out attention to algorithms that process the information
stored in the packets and determine how to forward them. These algorithms
would, I think, qualify for the description "compute in the network." Jon C
mentioned in an earlier email the work done to experiment with putting
processing instructions in packets so that it could be actioned along the
path, but that may be too radical. The more likely overlap between Semantic
Routing and this type of compute in the network is:
- packets carry markers and information that can be accessed by transit
nodes
- transit nodes are "programmed" with a range of algorithms that they can
use
to determine the next hop for a packet they are forwarding (such
programming
could be "in advance" such as build time, or could be more dynamic such as
through SDN)
- when a packet arrives at a node it uses the default algorithm or picks
one
based on information in the packet
- the chosen algorithm is run on the packet (specifically the Semantic
Routing
information) and probably on the current network state information, and
produces a decision of the next hop on the forwarding path

Again, some of this is already finding its way into the engineering side of
things: witness the use of a Segment Routing SID to identify which
forwarding table to use (i.e., which IGP flex-algo was used to construct
the
forwarding table) on a per packet basis. But that example is not really
per-packet compute in the network because the compute is the semi-offline
construction of the forwarding table, not an active decision on how to
forward each packet.

As described in the "challenges" work, one significant concern with this
approach is that it may lead to different network nodes performing
different
algorithms that lead to forwarding loops or data sinks. Clearly the
coordination of network programming and the debugging of active networks
becomes quite important.

Some people view the stability risks of an SDN approach to programming this
type of compute in the network as being so high that, no matter how
exciting
the possibilities are, there is no point in playing with it until the
coordination and debug issues can be resolved. These people think that such
compute should be more stable, "standardised" (at least as far as objective
functions), and pre-installed in network nodes.

This is, in my opinion, the biggest overlap between Semantic Routing and
COIN. It is definitely NOT the case that all Semantic Routing approaches
would use compute in the network. But it is certainly possible that this
form of forwarding decision-making could use compute in the network.

[Unless you want to count NOP (0x90 for people of my generation) as a
program, in which case everything is compute in the network :-) ]

Cheers,
Adrian

-- 
Coin mailing list
Coin@irtf.org
https://www.irtf.org/mailman/listinfo/coin