Question from SPRING regarding draft-filsfilscheng-spring-srv6-srh-compression

"Joel M. Halpern" <jmh@joelhalpern.com> Wed, 13 October 2021 03:53 UTC

Return-Path: <jmh@joelhalpern.com>
X-Original-To: ipv6@ietfa.amsl.com
Delivered-To: ipv6@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2CDA83A0B0F; Tue, 12 Oct 2021 20:53:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=joelhalpern.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 PflS7959Pv5d; Tue, 12 Oct 2021 20:52:56 -0700 (PDT)
Received: from mailb2.tigertech.net (mailb2.tigertech.net [208.80.4.154]) (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 4D5983A0B0A; Tue, 12 Oct 2021 20:52:56 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mailb2.tigertech.net (Postfix) with ESMTP id 4HTdsg66Qrz1pGcw; Tue, 12 Oct 2021 20:52:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joelhalpern.com; s=2.tigertech; t=1634097175; bh=0BTSKJBg+QQEtSeERzvdGyBZ6lOtDN1EcF7Xu6+UfJo=; h=Date:To:Cc:From:Subject:From; b=iSSBZ+o04SAtuQQtG3cm0KLaTdvwvHtORaWYaZeAyX6hwWNhE4n6knO3e24k8CL37 iidlMI/arkTUy7W+QPaRGs9ajWj/MWs6u2Fpii9Eoea1Y4GOBHNexv7RzbWXrPxd/Y 9Rm9ORaciN1NXX7A6Yq4QBLIZBZEkQKd5sfiiUL8=
X-Quarantine-ID: <uG1_JMFuTnBV>
X-Virus-Scanned: Debian amavisd-new at b2.tigertech.net
Received: from [192.168.22.111] (50-233-136-230-static.hfc.comcastbusiness.net [50.233.136.230]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mailb2.tigertech.net (Postfix) with ESMTPSA id 4HTdsg2dqPz1ns1W; Tue, 12 Oct 2021 20:52:55 -0700 (PDT)
Message-ID: <85fddbe9-4eb8-7d90-d246-a888fe8bdcd3@joelhalpern.com>
Date: Tue, 12 Oct 2021 23:52:54 -0400
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.2.0
Content-Language: en-US
To: "ipv6@ietf.org" <ipv6@ietf.org>
Cc: "spring@ietf.org" <spring@ietf.org>
From: "Joel M. Halpern" <jmh@joelhalpern.com>
Subject: Question from SPRING regarding draft-filsfilscheng-spring-srv6-srh-compression
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/5IpkHf5tVa-G4sKca-EWGEziYSo>
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "IPv6 Maintenance Working Group \(6man\)" <ipv6.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ipv6>, <mailto:ipv6-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ipv6/>
List-Post: <mailto:ipv6@ietf.org>
List-Help: <mailto:ipv6-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ipv6>, <mailto:ipv6-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 13 Oct 2021 03:53:01 -0000

The SPRING working group is in the midst of an adoption call on 
https://datatracker.ietf.org/doc/draft-filsfilscheng-spring-srv6-srh-compression/.

The SPRING charter has text that is explicit that modifications to data 
planes and architectures standardized by other working groups may not be 
modified in SPRING unless the chairs and ADs responsible for that data 
plane and / or architecture agree.

To complete the context, as my SPRING co-chairs are co-authors on the 
document in question, they have recused themselves from decisional 
activities regarding the document.  Therefore, this message is coming 
just from my as the responsible SPRING co-chair managing this adoption call.

As you have seen, multiple questions have been raised about the 
relationship of the document to the IPv6 defined data plane and 
architecture (particularly RFC 4291 and 8200). In particular the 
questions seem to revolve around what the document describes as the 
NEXT-C-SID flavor of compressed SID, and its relationship to the IPv6 
standards.  (For those seeking more context without reading the full 
document, a paraphrase and simplification of the NEXT-C_SID flavor is 
provided as a postscript.)

I raised the question of concurrence as required by the SPRING charter 
with the Internet ADs and SPRING chairs.  They quite reasonably asked me 
to write a note to 6man explaining the concerns as clearly as a can, so 
that they can then determine how to proceed.

The questions that prompted my inquiry are:

1) Does the placement of a list of sids in the IPv6 DA field change the 
IPv6 architectural description of that field.
2) Does the operation of shifting information around in the IPv6 
destination address field represent a modification or extension of the 
IPv6 data plane.

On a related note, the document in question also defines two other 
flavors, REPLACE-C-SID, and NEXT-and-REPLACE-C-SID.  The 
NEXT-and-REPLACE-C_SID flavor is defined to include the NEXT-C_SID 
flavor operation, so seems to be affected by the same question.

 From my own reading, it appears that the REPLACE-C-SID flavor does not 
raise issues requiring 6man leadership concurrence.

Yours,
Joel M. Halpern for the SPRING working group


PS:
Clearly, understanding the question requires some understanding of what 
the NEXT-C_SID flavor does.   This explanation is a simplification for 
length and context.  Really, the best place to understand it is the 
draft.  However, to give you enough information to let you decide 
whether you care, I will try to provide a fair summary.  My apologies in 
advance to the authors for necessary liberties for length.  Also, 
discussion of the draft contents (as distinct from the interaction with 
the IPv6 data plane and architecture) belongs on the SPRING list, and 
should not clutter up 6man.

SIDs are the identifiers used in segment routing.
In SRv6, as document in the current RFCs, these are 128 bits.   As 
defined in the relevant RFCs, SIDs which identify endpoints to which 
packets are directed are identified by endpoint SIDs.  These can have 
behaviors (decapsulate and forward is one example).  They can have 
flavors such as where the SRH is removed.

The topic under discussion is means to compress these SIDs in the 
packets on the wire.  The document under discussion provides three 
flavors of compression.

The fundamental mechanism of the draft is to use a single SRH entry as a 
container for multiple SIDs.  In the NEXT-C_SID mechanism, when it is 
first encountered the entire container is copied into the desination 
address of the IPv6 packet.  The container has a common routing prefix 
used for all the NEXT-C-SID SIDs.  It is followed by a sequence of 
compressed SIDs of a configured length.  One could configure 16, 24, or 
32 bits.  Or whatever length.  The routing advertisements are arranged 
so that the IPv6 packet is directed to the node represented by the first 
compressed SID on the basis of longest prefix match matching the 
combination of the common routing prefix and that compressed SID.

When the packet arrives at that node, it looks up the configured 
portion, the compressed SID, and determines the behavior and flavor.  In 
the case of the NEXT-C-SID flavor, the resulting operation is to shift 
the entire remaining contents of the IPv6 address (the bits past the 
first compressed sid) so as to over-write the first compressed SID.  0 
bits are shifted into the low order positions.  If the result is a 
non-zero new first compressed SID, then the packets is forwarded and the 
process repeats.  When all that is left are 0s, if there is an SRH, it 
is consulted to find the next SRH entry, which is, per normal SRv6 
processing, put into the IPv6 DA.
Note that in the common case where the SIDS needed all fit in to a 
single container, the analysis also assumes the use of the reduced 
encapsulation options which omits the SRH that is not needed as it would 
have no entries.  This the packet contains a normal IPv6 header, with a 
sequence of compressed SIDs (what one might or might not call a source 
route) in the IPv6 destination address field.

PPS: If the authors of the NEXT-C-SID flavor feel I have mis-represented 
the work, please, send clarifications or corrections.   Again, the best 
source of information is the draft itself.  I was asked to provide extra 
context in this email.