Re: How many Routing Headers?

Tony Whyman <tony.whyman@mccallumwhyman.com> Mon, 26 October 2020 16:38 UTC

Return-Path: <tony.whyman@mccallumwhyman.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 550333A0BAD for <ipv6@ietfa.amsl.com>; Mon, 26 Oct 2020 09:38:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.144
X-Spam-Level:
X-Spam-Status: No, score=-2.144 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, NICE_REPLY_A=-0.247, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] 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 nxdw5ZRHt3GO for <ipv6@ietfa.amsl.com>; Mon, 26 Oct 2020 09:38:06 -0700 (PDT)
Received: from mail2.mwassocs.co.uk (mail2.mwassocs.co.uk [IPv6:2a00:da00:1800:8030::1]) (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 1C9E23A0AB4 for <ipv6@ietf.org>; Mon, 26 Oct 2020 09:38:05 -0700 (PDT)
Received: from [172.16.1.19] (cust154-dsl56.idnet.net [212.69.56.154]) (authenticated bits=0) by mail2.mwassocs.co.uk (8.15.2/8.15.2/Debian-3) with ESMTPSA id 09QGc0pY035682 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Mon, 26 Oct 2020 16:38:02 GMT
Subject: Re: How many Routing Headers?
To: Bob Hinden <bob.hinden@gmail.com>
Cc: IPv6 List <ipv6@ietf.org>
References: <6470852b-1a18-c22a-0c53-a288d24b2269@mccallumwhyman.com> <3E484A7D-B45E-4113-ABF7-167C6623CD72@gmail.com>
From: Tony Whyman <tony.whyman@mccallumwhyman.com>
Message-ID: <0fffa981-5bb2-b35a-3411-a117b22e7c7b@mccallumwhyman.com>
Date: Mon, 26 Oct 2020 16:38:00 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0
MIME-Version: 1.0
In-Reply-To: <3E484A7D-B45E-4113-ABF7-167C6623CD72@gmail.com>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 7bit
Content-Language: en-GB
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/Ba56SeuPlztFyU-7M-3lH-VvPX8>
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: Mon, 26 Oct 2020 16:38:08 -0000

Bob,

The header size is a perfectly good point and a motivation for my 
looking at the CRH in the first place. My primary interest is in the 
ICAO domain, and the segment routing paradigm looks to be a good fit 
with the way the network operates. However, our air/ground datalinks 
have a low data rate and header size is a big issue. The downside of 
segment routing is the size of the SRH, hence my interest in the CRH. On 
the other hand, the final segment in the list will often be a IPv6 
Address on an aircraft and it just isn't feasible to compress that to a 
16-bit or 32-bit SID.

Using a CRH with an SRH seems to be one way out of the problem. 
Alternatively, a variant of the CRH where the final segment was a full 
IPv6 Address, while all other segments were identified by shorter SIDs, 
would also be interesting. Maybe if there are too many problems with 
multiple routing headers, this sort of mixed approach might be the best 
solution.

I know that encapsulation of the end-to-end packet may also be an 
alternative. However, there is potentially useful information in the 
segment list that is lost if that is in an outer header discarded before 
the packet is uplinked to an aircraft. Encapsulation just makes the 
header size problem worse if segment routing is applied to downlink packets.

Tony


On 26/10/2020 15:38, Bob Hinden wrote:
> Tony,
>
> An issue with multiple routing headers is the percentage of headers to payload could get very high.    Perhaps not a terrible problem for packets with a lot of data, but not great for a TCP acknowledgement.   The goal is to carry data, I think we start to reach the limits of datagram packet switching if the headers get too large.
>
> Bob
>
>
>> On Oct 23, 2020, at 6:47 AM, Tony Whyman <tony.whyman@mccallumwhyman.com> wrote:
>>
>> Reading through draft-bonica-6man-comp-rtg-hdr-23 "The IPv6 Compact Routing Header (CRH)" led me to the thought: why should there only be one Routing Header per packet header?
>>
>> RFC8200 states "Each extension header should occur at most once, except for the  Destination Options header, which should occur at most twice (once  before a Routing header and once before the upper-layer header)".
>>
>> At least this is "should" rather than "must" and the text goes on to say that
>>
>> "IPv6 nodes must accept and attempt to process extension headers in any order and occurring any number of times in the same packet, except for the Hop-by-Hop Options header, which is restricted to appear immediately after an IPv6 header only.  Nonetheless, it is strongly advised that sources of IPv6 packets adhere to the above recommended order until and unless subsequent specifications revise that recommendation".
>>
>> I read this as a strong steer in the direction of only a single Routing Header per packet while stopping short of actual declaring this to be an error. That is unless a subsequent specification explicitly allows for more than one Routing Header.
>>
>> However, I can see scenarios where a CRH could be preceded or more likely followed by a Segment Routing Header (SRH). For example, I want a packet to visit two intermediate routers (from a small set of routers) before it is delivered to its final destination. The intermediate routers have well known IPv6 Addresses and it is easy enough to assign consistent SIDs to them and configure them into all nodes that need to known these SIDs.
>>
>> On the other hand, the final segment IPv6 Address is not necessarily well known in advance and may be any valid IPv6 Address. It is not realistic to define an SID for such an IPv6 Address.
>>
>> So, why not use a CRH to identify the intermediate routers (by SID) and then follow it by an SRH containing the Final Destination? I can't see any reason as to why this should not work.
>>
>> I read RFC 8200 as saying that if the specification for a Routing Header allows that Routing Header to be used with another routing header, the specification of that Routing Header should say so. Hence, I propose that the next draft of draft-bonica-6man-comp-rtg-hdr-23 should include such a statement.
>>
>> Tony Whyman
>>
>> MWA
>>
>>
>>
>> --------------------------------------------------------------------
>> IETF IPv6 working group mailing list
>> ipv6@ietf.org
>> Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
>> --------------------------------------------------------------------