Re:Extension Header processing rules

peng.shaofu@zte.com.cn Tue, 10 November 2020 07:02 UTC

Return-Path: <peng.shaofu@zte.com.cn>
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 11F6D3A09D1 for <ipv6@ietfa.amsl.com>; Mon, 9 Nov 2020 23:02:07 -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, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=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 DoUuQqE2ULDj for <ipv6@ietfa.amsl.com>; Mon, 9 Nov 2020 23:02:04 -0800 (PST)
Received: from mxhk.zte.com.cn (mxhk.zte.com.cn [63.217.80.70]) (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 84D913A09D6 for <ipv6@ietf.org>; Mon, 9 Nov 2020 23:02:04 -0800 (PST)
Received: from mse-fl2.zte.com.cn (unknown [10.30.14.239]) by Forcepoint Email with ESMTPS id EB31CC3D5D59C3FDF17A; Tue, 10 Nov 2020 15:01:59 +0800 (CST)
Received: from njxapp02.zte.com.cn ([10.41.132.201]) by mse-fl2.zte.com.cn with SMTP id 0AA71w8w006798; Tue, 10 Nov 2020 15:01:58 +0800 (GMT-8) (envelope-from peng.shaofu@zte.com.cn)
Received: from mapi (njxapp01[null]) by mapi (Zmail) with MAPI id mid201; Tue, 10 Nov 2020 15:01:58 +0800 (CST)
Date: Tue, 10 Nov 2020 15:01:58 +0800
X-Zmail-TransId: 2af95faa3ae694289ac6
X-Mailer: Zmail v1.0
Message-ID: <202011101501583763174@zte.com.cn>
In-Reply-To: <CALx6S36dF2GQ=nL9DPsdJeeRt4K2KaQRjdQogf_EL=xc_0ws3w@mail.gmail.com>
References: 9EEAC2D8-375A-43C6-BC51-3C3242C80287@gmail.com, 202011091732387131414@zte.com.cn, CALx6S36dF2GQ=nL9DPsdJeeRt4K2KaQRjdQogf_EL=xc_0ws3w@mail.gmail.com
Mime-Version: 1.0
From: peng.shaofu@zte.com.cn
To: tom@herbertland.com
Cc: bob.hinden@gmail.com, ipv6@ietf.org
Subject: Re:Extension Header processing rules
Content-Type: multipart/mixed; boundary="=====_001_next====="
X-MAIL: mse-fl2.zte.com.cn 0AA71w8w006798
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/RSJ-4nzuxjKpCkVQVxgUex1kePg>
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: Tue, 10 Nov 2020 07:02:07 -0000

Hi Tom, and Bob,






Thank you for sharing your opinion. I totally agree with that.


So, in general, we should discuss all kinds of Extension Header under the IPv6 specification, not simply equate them with IPv4 options. I think there are differences in semantics.


Now I am faced with the implementation of DOH related functions, and try to get a clear processing rule for DOH. According to your opinon the design of DOH has its specific purpose to provide optional information to end nodes. Therefore, when the packet arrives at the end node and all the options in the DOH are processed strictly in the order, the processing rule I'm trying to get is: the next header should be parsed. I think this processing rule is also Bob's answer to me. 


However, I'm worried that the problem will go beyond design principles. If, I mean if, in DOH it also implements the function similar to RH, in this case when the source route entries in the related option have not been traversed, obviously the next header should not be parsed. This (i.e, whether to parse next header is decided by an option) brings confusion and complexity to the DOH's processing rules, because DOH can contain multiple options and the decisions for each option may be inconsistent. I don't think we should encourage DOH to do this under the IPv6 specification.


What do you think ?






Regards,


PSF












>
>
> Hi Bob,
>
>
> Excuse me, I have other doubts.
>
> I don't know what principles IPv6 followed when designing IPv6 Extension Heads, maybe these principles determine the application scenarios of each Extension Head.
>
Right having different type extension of extensions facilitates
different use cases and efficient implementation. For instance,
there's separate Hop-by-Hop Options and Destination Options because
the former needs to be processed by all nodes in the path, and the
latter is just processed by the destination so an intermediate node
doesn't have to burn cycles processing options that are only of
consequence at the end nodes.

> For example, why not use DOH to realize the function of RH, just like the loose source and record route (LSRR) option defined in RFC791 ?
>
Conceivably that could be done, but having a separate extension header
devoted to just one purpose leads to more efficient implementation in
high speed devices (serially parsing a potentially long list of
options to find a routing header might be prohibitive in
implementation). Another thing to point out is that IPv4 options,
including LSRR, weren't exactly a success; the extension header model
of IPv6 attempts to correct some of the deficiencies in IPv4 options.

Tom

>
>
> Regards,
>
> PSF
>
>
>
> > On Nov 4, 2020, at 11:44 PM, peng.shaofu@zte.com.cn wrote:
> >
> >
> >
> > Hi 6man experts,
> >
> > RFC8200 mention that extension headers must be processed strictly in the order they appear in the packet, but there are
>
> It doesn’t mention, it specifies.
>
> > not explicit description for that when an EH is finished processing it must continue to process the next EH. Is this an obvious behavior so that no necessary to describe explicitly, or a local behavior that can be controlled?
>
> It is an obvious behavior.   That is why the field is called the “Next Header”.  I think the relavant text from Section 4 is:
>
>    At the destination node, normal demultiplexing on the Next Header
>    field of the IPv6 header invokes the module to process the first
>    extension header, or the upper-layer header if no extension header is
>    present.  The contents and semantics of each extension header
>    determine whether or not to proceed to the next header.  Therefore,
>    extension headers must be processed strictly in the order they appear
>    in the packet; a receiver must not, for example, scan through a
>    packet looking for a particular kind of extension header and process
>    that header prior to processing all preceding ones.
>
> Note the last sentence where is says a receiver must not scan through a packet….
>
> Bob
>
>
>
> >
> > For example, for the follow packet,
> >
> >    IPv6 Header + DOH + Upper-layer
> >
> >
> >
> > At the destination node, normal demultiplexing on the Next Header field of the IPv6 header invokes the module to process the DOH. When DOH is finished processing, should the upper-layer be processed ? or not be processed by local policy ? What is the standard behavior ?
> >
> >
> >
> > In addition to DOH, same question is for HBH.
> >
> >
> >
> > Regards,
> >
> > PSF
> >
> > --------------------------------------------------------------------
> > IETF IPv6 working group mailing list
> > ipv6@ietf.org
> > Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
> > --------------------------------------------------------------------
>
>
> --------------------------------------------------------------------
> IETF IPv6 working group mailing list
> ipv6@ietf.org
> Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
> --------------------------------------------------------------------