Re: [Cbor] [Anima] GRASP packet header extensions (CBOR question)

Carsten Bormann <cabo@tzi.org> Mon, 22 August 2022 18:46 UTC

Return-Path: <cabo@tzi.org>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0D706C14CE21; Mon, 22 Aug 2022 11:46:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.199
X-Spam-Level:
X-Spam-Status: No, score=-4.199 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01, T_SPF_TEMPERROR=0.01] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id KR80OyQ8DlSb; Mon, 22 Aug 2022 11:46:23 -0700 (PDT)
Received: from gabriel-smtp.zfn.uni-bremen.de (gabriel-smtp.zfn.uni-bremen.de [134.102.50.15]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DE411C1524B7; Mon, 22 Aug 2022 11:44:00 -0700 (PDT)
Received: from [192.168.217.124] (p5089abf5.dip0.t-ipconnect.de [80.137.171.245]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gabriel-smtp.zfn.uni-bremen.de (Postfix) with ESMTPSA id 4MBLqK75mbzDCd1; Mon, 22 Aug 2022 20:43:57 +0200 (CEST)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.7\))
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <YwNHvF1wzS0yaZGe@faui48e.informatik.uni-erlangen.de>
Date: Mon, 22 Aug 2022 20:43:57 +0200
Cc: Brian E Carpenter <brian.e.carpenter@gmail.com>, anima@ietf.org, cbor@ietf.org
X-Mao-Original-Outgoing-Id: 682886637.517512-f4d0e234af2629023d410412f87a55e0
Content-Transfer-Encoding: quoted-printable
Message-Id: <899DC56C-C1B5-4DC2-99DA-694B3FEF7C56@tzi.org>
References: <Yv+miC76QMc887cJ@faui48e.informatik.uni-erlangen.de> <A303E7B3-A83F-4B04-9C6F-5143E4A0B54D@tzi.org> <5fa4a9c7-bc0a-cba0-04fb-4cf5e7777c9e@gmail.com> <4E167B3F-9C68-4333-BB76-36119B8F39DF@tzi.org> <fa2a8d32-929d-46ec-97b3-b67ad33c23b7@gmail.com> <YwNHvF1wzS0yaZGe@faui48e.informatik.uni-erlangen.de>
To: Toerless Eckert <tte@cs.fau.de>
X-Mailer: Apple Mail (2.3608.120.23.2.7)
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/9gwdUlmsHGIqRsRSDm0MVTsdDIo>
Subject: Re: [Cbor] [Anima] GRASP packet header extensions (CBOR question)
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 22 Aug 2022 18:46:29 -0000

> 
> Aka: grasp-option can not represent the purely numeric ttl anymore.
> 
> We could do a one-off fix for ttl by channging message-structure, but
> i really don't see why we would want to constrain grasp-option to be
> less than any, see below.

Correct.

Grasp-option really is the lower layer of extensibility, which allows you to create new messages that then conform to message-structure.  These should provide maximum flexibility.

(Message should be/employ a socket, to make this extension point more visible.)

The production that is called grasp-option should not be called grasp-option, because it is not just about options, it’s all elements in a message after the common header.

> 2) Still want to understand .within correctly i think it does not doe
> not work as you hope above.
> 
> Carsten claimed offlist, that in your above syntax, grasp-option would
> match some option that is not yet defined, as long as it matches
> option-structure. From reading rfc8610, i think this is wrong, because
> numeric-option is an AND between option and option-structure, so only
> any currently defined options will be matched. No extensibility to
> include any future options, even if they match option-structure.

I’m not sure I understand the context of this, but yes, .within is a .and.  So you have to have both message-structure accept the message and the message choice as well.

Obviously, we need a second layer of extensibility beyond adding new messages: adding new options to a message.

So each message production should have a *grasp-really-option at the end, where that stands for an actual (registered) option.


> 
> Of course, i can be wrong, but then rfc8610 text is really misleading.
> 
> 3) Here is what i propose:
> 
> 
>    grasp-option = valid-option / objective / any
>    valid-option = option .within option-structure

(Valid-option is your grasp-really-option.)

>    option-structure = [*any]

No, an option starts with an option-type, so this should be

   option-structure = [option-type, *any]

>    option-type = uint

Yep.


> 
> 
>    flood-message = [M_FLOOD, session-id, initiator, ttl,
>                    +[objective, (locator-option / [])], *grasp-option]

Yes.

>    "All other"-message = [ ... existing definitions ..., *grasp-option]

Yes, that would be the whole-sale introduction of the second layer.
(Grasp-really-option, actually.)

The [~message, *grasp-really-option] approach might be able to do this with fewer changes.

> […]

> We may also want to carve out ranges to indicate that an option received
> with such a numbe,if not known to the receiver must not be ignored but
> needs to result in an error condition.

(Negative numbers would lend themselves to this…)

> 5) M_FLOOD
> 
> M_FLOOD still has the added issue, that it can have multiple objectives,
> and we do not have a way to express per-objective options. Which bugs me.

… a fourth layer of extensibility…

Grüße, Carsten