Re: Extension Header processing rules

Gyan Mishra <hayabusagsm@gmail.com> Thu, 12 November 2020 03:50 UTC

Return-Path: <hayabusagsm@gmail.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 659C13A1384 for <ipv6@ietfa.amsl.com>; Wed, 11 Nov 2020 19:50:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.087
X-Spam-Level:
X-Spam-Status: No, score=-2.087 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_REMOTE_IMAGE=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 1zRFPR_Dum8U for <ipv6@ietfa.amsl.com>; Wed, 11 Nov 2020 19:50:41 -0800 (PST)
Received: from mail-pf1-x433.google.com (mail-pf1-x433.google.com [IPv6:2607:f8b0:4864:20::433]) (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 B26C13A1378 for <ipv6@ietf.org>; Wed, 11 Nov 2020 19:50:41 -0800 (PST)
Received: by mail-pf1-x433.google.com with SMTP id q5so3248464pfk.6 for <ipv6@ietf.org>; Wed, 11 Nov 2020 19:50:41 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=pIIKwJ1BQr0BFjIvMjZsg5Zau8Otij7R6lI2K7GpQic=; b=Hyh2EFN8y0muBwFimwgoA8gKKLOS/rHtOXKoqYPkjQ7B+S5E/VnLTRU0t3EalQe+Mk pAB7upYxqQ0xPsPjHrqI39o61GNfSCfvCT+7MS1Ug/qr4rP4gzgKsAvPngZqu/KTIasB oeEzhps1sjjdW3oQJQPiW+g9u2Hl2mi6Q/4g81vuL+7VOSwFaXMYlY73NFaUrpzKa4M0 YzeMreFjfChFSFKoMlyXEisSyooS3F8fHJi8c2zdUeA6eJuXAqiH2E/gl2drjsCDj7kE f9UdQqm/5Q9Av4BnhfK1FP78Zu8EqwB6QI8XbkgZj1CF/Y5mG+Rj+l/6oPag/1TqtLN4 f9JA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=pIIKwJ1BQr0BFjIvMjZsg5Zau8Otij7R6lI2K7GpQic=; b=e/Cn1MHmcb02MuTh2TYvm/jpiAGmAFJeX9XhkRH5yW5HhiVdrHgdzNApwaNxtxsqzb lzG2v38or/jTqhK54kAHsucOqOPN11gviZu4U3uOJhXNgjtw6zlLvkQ+1HL3jv2oHdeU FXKTzCvu3OeWoWjFHuY3bJTgvAEjSGSNduK5NJ4m4m1Gi9FwUdoDJoDXaumFiWJswWIY xy7cCIta5PhslfswWFK25vMxUM1PT82dMq5QT35UxY6KPLXTbg4vIgxFuSE2YsR9Pgso iDVj5+Ufo7WtgLLOsBgyA+GgOkEysqCZJ8KeJ8qLjpirSvFo37/t0YnUm+cw0Vy7qaer tuiw==
X-Gm-Message-State: AOAM532zV7Pv8lc1JcTHcRqPCYBc3WBCPLprFk1nRN4ZAogtwiUp+avV cfmMdt4suvb6mmd3cdgSR+jlvCNV0/DWaojD8FU=
X-Google-Smtp-Source: ABdhPJxDcKp8Fe5ldWomBR5JneNIxudDVys8ZffknJBqZ+5PyOFn8sKzKOHP86mkPZ8zjbKabrXD88plvA6AUPIC1Ls=
X-Received: by 2002:a62:ee06:0:b029:164:20d:183b with SMTP id e6-20020a62ee060000b0290164020d183bmr26324861pfi.4.1605153041011; Wed, 11 Nov 2020 19:50:41 -0800 (PST)
MIME-Version: 1.0
References: <3E0C3544-EF7F-44BF-BF10-97DB5F79639E@gmail.com> <202011111750325779453@zte.com.cn> <CABNhwV3rZyUZ-LjBu1BBt9E=ufy6KzYWSAjPAnmKdD5UmhyuLg@mail.gmail.com>
In-Reply-To: <CABNhwV3rZyUZ-LjBu1BBt9E=ufy6KzYWSAjPAnmKdD5UmhyuLg@mail.gmail.com>
From: Gyan Mishra <hayabusagsm@gmail.com>
Date: Wed, 11 Nov 2020 22:50:30 -0500
Message-ID: <CABNhwV0xq+WagpS_QQoY-4T0uJGMw4m4xsq2XAO2fMoPhvumPQ@mail.gmail.com>
Subject: Re: Extension Header processing rules
To: peng.shaofu@zte.com.cn
Cc: bob.hinden@gmail.com, ipv6@ietf.org
Content-Type: multipart/alternative; boundary="000000000000d1d96805b3e0d063"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/Cc8SC8ZiBtfa0lyRdtrWhjqrmEo>
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: Thu, 12 Nov 2020 03:50:44 -0000

Bob

So in our use case we are using note 1 for doh en route hop by hop BIER
header processing.

Destination Options header (note 1)


Do you see any technical issues with this solution.


Kind Regards


Gyan


On Wed, Nov 11, 2020 at 10:43 PM Gyan Mishra <hayabusagsm@gmail.com> wrote:

>
> In BIERv6 processing we encode the BIER header in DOH and we set flag for
> en route hop by bop processing.  This does end up getting processed in the
> slow path similar to hbh, however maybe newer hardware maybe able to
> process in the fast path.
>
> https://tools.ietf.org/html/draft-xie-bier-ipv6-encapsulation-00
>
> RFC 8200
>
>    When more than one extension header is used in the same packet, it is
>    recommended that those headers appear in the following order:
>
>       IPv6 header
>       Hop-by-Hop Options header
>       Destination Options header (note 1)
>       Routing header
>       Fragment header
>       Authentication header (note 2)
>       Encapsulating Security Payload header (note 2)
>       Destination Options header (note 3)
>       Upper-Layer header
>
>
>
>       note 1: for options to be processed by the first destination that
>               appears in the IPv6 Destination Address field plus
>               subsequent destinations listed in the Routing header.
>
>
>
>       note 2: additional recommendations regarding the relative order of
>               the Authentication and Encapsulating Security Payload
>               headers are given in [RFC4303 <https://tools.ietf.org/html/rfc4303>].
>
>
>    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).
>
>
>    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.
>
>
>
>
> 4.2 <https://tools.ietf.org/html/rfc8200#section-4.2>.  Options
>
>    Two of the currently defined extension headers specified in this
>    document -- the Hop-by-Hop Options header and the Destination Options
>    header -- carry a variable number of "options" that are type-length-
>    value (TLV) encoded in the following format:
>
>
> The third-highest-order bit of the Option Type specifies whether or
>    not the Option Data of that option can change en route to the
>    packet's final destination.
>
>
>    The three high-order bits described above are to be treated as part
>    of the Option Type, not independent of the Option Type.  That is, a
>    particular option is identified by a full 8-bit Option Type, not just
>    the low-order 5 bits of an Option Type.
>
>
> value.
>
>        0 - Option Data does not change en route
>
>        1 - Option Data may change en route
>
>
> So with BIER v6 we set the 3rd higher order options bit for en route hop
> by hop bier header processing.
>
>
> On Wed, Nov 11, 2020 at 4:51 AM <peng.shaofu@zte.com.cn> wrote:
>
>>
>> Hi Bob,
>>
>>
>> I think the sentence "
>> The contents and semantics of each extension header determine whether or not to proceed to the next header."
>> is certainly true for any extension headers, but it's too general. In
>> fact, the same sentence applies to IPv4 option.
>>
>> I mean, since we have defined various specific extension headers with
>> different purposes in IPv6, thus, is it necessary to define more specific
>> individual processing rules for each extension header in separate
>> documents, rather than an overview of the general statement ?
>>
>>
>> Regards,
>>
>> PSF
>>
>>
>>
>>
>> Peng,
>>
>> > On Nov 9, 2020, at 11:01 PM, peng.shaofu@zte.com.cn wrote:
>> >
>> >
>> >
>> > 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.
>>
>>
>> If I understand your question, the answer to your question is in the excerpt I sent earlier:
>>
>> >    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.
>>
>> Specifically:
>>
>>    The contents and semantics of each extension header
>>    determine whether or not to proceed to the next header.
>>
>> Bob
>>
>>
>> >
>> > 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
>> > > --------------------------------------------------------------------
>> >
>> >
>>
>>
>> --------------------------------------------------------------------
>> IETF IPv6 working group mailing list
>> ipv6@ietf.org
>> Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
>> --------------------------------------------------------------------
>>
> --
>
> <http://www.verizon.com/>
>
> *Gyan Mishra*
>
> *Network Solutions A**rchitect *
>
>
>
> *M 301 502-134713101 Columbia Pike *Silver Spring, MD
>
> --

<http://www.verizon.com/>

*Gyan Mishra*

*Network Solutions A**rchitect *



*M 301 502-134713101 Columbia Pike *Silver Spring, MD