[Coin] Semantic Routing : Drawing the Lines

Adrian Farrel <adrian@olddog.co.uk> Tue, 01 March 2022 16:55 UTC

Return-Path: <adrian@olddog.co.uk>
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 898123A0D43 for <coin@ietfa.amsl.com>; Tue, 1 Mar 2022 08:55:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.906
X-Spam-Level:
X-Spam-Status: No, score=-1.906 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01] autolearn=ham autolearn_force=no
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 TTbC0-a9pD_q for <coin@ietfa.amsl.com>; Tue, 1 Mar 2022 08:55:16 -0800 (PST)
Received: from mta6.iomartmail.com (mta6.iomartmail.com [62.128.193.156]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 838333A0D36 for <coin@irtf.org>; Tue, 1 Mar 2022 08:55:15 -0800 (PST)
Received: from vs3.iomartmail.com (vs3.iomartmail.com [10.12.10.124]) by mta6.iomartmail.com (8.14.7/8.14.7) with ESMTP id 221GtCos015216; Tue, 1 Mar 2022 16:55:12 GMT
Received: from vs3.iomartmail.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 198B94604B; Tue, 1 Mar 2022 16:55:12 +0000 (GMT)
Received: from vs3.iomartmail.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0D3C34604A; Tue, 1 Mar 2022 16:55:12 +0000 (GMT)
Received: from asmtp2.iomartmail.com (unknown [10.12.10.249]) by vs3.iomartmail.com (Postfix) with ESMTPS; Tue, 1 Mar 2022 16:55:12 +0000 (GMT)
Received: from LAPTOPK7AS653V ([148.252.133.209]) (authenticated bits=0) by asmtp2.iomartmail.com (8.14.7/8.14.7) with ESMTP id 221Gt9cS027682 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 1 Mar 2022 16:55:11 GMT
Reply-To: adrian@olddog.co.uk
From: Adrian Farrel <adrian@olddog.co.uk>
To: coin@irtf.org
Cc: 'Marie-Jose Montpetit' <marie@mjmontpetit.com>, 'Dirk Kutscher' <ietf@dkutscher.net>, ott@in.tum.de
Date: Tue, 01 Mar 2022 16:55:09 -0000
Organization: Old Dog Consulting
Message-ID: <07ac01d82d8d$1e0089a0$5a019ce0$@olddog.co.uk>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AdgszA5Z2G+466i7RmKJfBffSQdi7Q==
Content-Language: en-gb
X-Originating-IP: 148.252.133.209
X-Thinkmail-Auth: adrian@olddog.co.uk
X-TM-AS-GCONF: 00
X-TM-AS-Product-Ver: IMSVA-9.1.0.2090-8.6.0.1018-26746.000
X-TM-AS-Result: No--12.418-10.0-31-10
X-imss-scan-details: No--12.418-10.0-31-10
X-TMASE-Version: IMSVA-9.1.0.2090-8.6.1018-26746.000
X-TMASE-Result: 10--12.418400-10.000000
X-TMASE-MatchedRID: /ApcAxw6AR0OwAmmWH5kBFcgCgDL49aaAVGkG4/CGKYjSkTKwY6RDxRK dpWNffoBuRtSSMS2AD5+jAE4+JZFpdpGxB3OAtwH6fUfELqFUH9NLPQl0QAltC99T+uJIleRTn9 7XQYd1B22h55NchG6zpOtFMK5KxfkI3NndjiMExHece0aRiX9WrcKVIr9tQwNmkiDENWA6PzbS/ s36xwtsES+emzU4dBcA9ByUFUB4D+axX+nE7mbLzOzR6Cs0LBXkyKfhe0n3T3ILi0hRYnZud12Y 1bqMEtfvAQxPUzd//a5Ylf3xk4v4hDmAkR0f0rqBApSYI86Y6jYUDvAr2Y/10JsNXD374+p+7EQ pTm8ZRO7tuNRWBQ9qc+9hsHtynxHePGAeSn124JswYo64ufkVReK/B+WKxKs3crtm5PFxwcEoZa gW+oeN7NR3R5jIXfVzK3NgyI10K75UoylJjUxCE5EriZyKZBLsXVMcuyGnx2wZuykSn6+/F3w8q WNACop1jxb9ffkaDZUu/CFJUSgQSas1OMJFnGJThuQJkjAOL59LQinZ4QefL6qvLNjDYTwC+Cmx fKmwAwMyrfP9j+C1SAHAopEd76vCbYkpKeDjZgPdZECBeEJLGnkbKgSUxNSXP0yOFD8aXgMYusm gViLXA==
X-TMASE-SNAP-Result: 1.821001.0001-0-1-22:0,33:0,34:0-0
Archived-At: <https://mailarchive.ietf.org/arch/msg/coin/Xri0uMsKbz1MFsxX-S3SLBhIb28>
Subject: [Coin] Semantic Routing : Drawing the Lines
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: Tue, 01 Mar 2022 16:55:20 -0000

Hi,

The next thread arising from the discussion at the interim is about where to
draw the lines for Semantic Routing.

Specifically, Marie-Jose observed, "It is not network programming - it is
dataplane programmability." Although she did qualify that with a smiley
face, it's an important question from a routing and forwarding perspective
because simply programming forwarding planes in the network needs careful
coordination in order to avoid forwarding loops and packet sinks. Anyone who
has attempted to install static routes across a large and complex network
will know the associated risks, and while some work in the IETF (such as,
draft- ietf-teas-pce-native-ip) has looked at ways of installing static
forwarding paths into the network, even that assumes the coordination of a
central controller and limits the extent of the paths to be installed.

So the point here is that the network has to be viewed as a whole and
programmed accordingly. That may (will) lead to programming of individual
forwarding hardware. And there will very probably be an intermediary step
where the network is partitioned into fragments that are each asked to
achieve specific results (intent), but left to work out how to program the
forwarding hardware within the network fragment.

Some of this plays into Joerg Ott's question, "This seems more about
'semantic' forwarding. Could you explain how you envision the routing part?"
and Dirk Kutscher's comment "I suggest 'Software-Defined Forwarding
Strategies' as an alternative name for this" (although Dirk also gave us a
smiley face - there's a lot of smiling in COIN :-).

The point is that (of course?) the ultimate objective of any routing
strategy is to program the forwarding elements in the network. So, in a
world of SDN and/or programmable devices, it is the forwarding elements that
get programmed. And, if the forwarding is acting based on information
carried in the packets (which is, in any case, how forwarding works today)
then, yes, this is semantic forwarding. 

But, as observed above, the programming of the forwarding elements cannot be
uncoordinated.  Indeed, even in networks that simply forward based on the
destination address, it is necessary to determine the correct forwarding
actions based on a coherent view of the network topology, an
objective/algorithm (usually SPF), and an understanding of the current state
of the network. That view and the coordination, combined with the
information and objectives, is the routing policy. 

So, when the forwarding decisions get more complicated (some packets to a
destination go one way in the network, some go another way), there is a need
for the routing policy to be more carefully thought-out. For example, a
policy to reduce end-to-end latency is only practical if it is aware of the
risk of causing congestion by sending all the traffic down the small set of
lowest-latency links.

So, semantic routing is about determining the right ways to program
forwarding devices across the whole network, and this is, in its way,
network programming. In an SDN sense, this is part of the orchestration
function.

But, please be aware that an SDN approach is only one way of achieving
semantic forwarding/routing. You could, for example (and I am neither
advocating for or against this), add lots of additional information to an
IGP and update the routing algorithms in the routers (allowing them to
construct their RIBs as they do today but using more information about the
network). The update of the algorithms (of course - again?) requires
coordination to achieve stability and avoid loops etc., and those algorithms
may need research. Further, these algorithms could be pushed to the network
nodes relatively dynamically (programming of compute resources in the
network), or could require full software updates.

And this may answer Dirk Kutscher's follow-up: "Isn't a collection of fields
to match against effectively a label?" Yes, it is. And so is an address. We
are talking about complex, potentially multi-field labels that convey
information that is used to determine forwarding actions. We are talking
about forwarding actions that may be simple look-ups or may be "micro
programs" acting on information about the network and information carried in
the packets. We are talking about the routing algorithms that are used to
generate those forwarding actions. We are talking about how to collect the
network state information necessary to derive and operate those routing
algorithms. And we are talking about how to install the algorithms and
forwarding instructions into the network. Above all, we are talking about
how to do this in a stable way within a complex system.

Best,
Adrian