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

Toerless Eckert <tte@cs.fau.de> Tue, 23 August 2022 10:35 UTC

Return-Path: <eckert@i4.informatik.uni-erlangen.de>
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 72AFDC14CF1D; Tue, 23 Aug 2022 03:35:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.66
X-Spam-Level:
X-Spam-Status: No, score=-1.66 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01] autolearn=no 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 TOTltCqrlZen; Tue, 23 Aug 2022 03:35:53 -0700 (PDT)
Received: from faui40.informatik.uni-erlangen.de (faui40.informatik.uni-erlangen.de [IPv6:2001:638:a000:4134::ffff:40]) (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 A2A47C1526E8; Tue, 23 Aug 2022 03:35:52 -0700 (PDT)
Received: from faui48e.informatik.uni-erlangen.de (faui48e.informatik.uni-erlangen.de [IPv6:2001:638:a000:4134::ffff:51]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by faui40.informatik.uni-erlangen.de (Postfix) with ESMTPS id 973DB58C4AF; Tue, 23 Aug 2022 12:35:48 +0200 (CEST)
Received: by faui48e.informatik.uni-erlangen.de (Postfix, from userid 10463) id 8CF2F4EB829; Tue, 23 Aug 2022 12:35:48 +0200 (CEST)
Date: Tue, 23 Aug 2022 12:35:48 +0200
From: Toerless Eckert <tte@cs.fau.de>
To: Carsten Bormann <cabo@tzi.org>
Cc: Brian E Carpenter <brian.e.carpenter@gmail.com>, anima@ietf.org, cbor@ietf.org
Message-ID: <YwSthGEEUDGgqqqz@faui48e.informatik.uni-erlangen.de>
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> <899DC56C-C1B5-4DC2-99DA-694B3FEF7C56@tzi.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <899DC56C-C1B5-4DC2-99DA-694B3FEF7C56@tzi.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/JNEbVDjyNCpRlpYv41R_qKvms8c>
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: Tue, 23 Aug 2022 10:35:58 -0000

On Mon, Aug 22, 2022 at 08:43:57PM +0200, Carsten Bormann wrote:
[... snip...]
> > 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.

I think we've got that covered in our understanding.

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

But that would not suffice to receive and ignore an option that
was not specified in the CDDL at the time of the implementation of the
receiver.

> > 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]

Oops. typo. Thanks

> >    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.

Hah. "~" is the unravel i was asking for in my other mail. Can that be
used to do inline moficiation:

    flood-message = [ ~flood-message, *grasp-option ]

Or does that have to be a new name on the left-hand side ?

> > […]
> 
> > 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…)

Right... 

> > 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…

Yeah. Still trying to find the killer use-case of two objectives requring different
options to make that point.

Thanks
    Toerless

> 
> Grüße, Carsten
> 
> 

-- 
---
tte@cs.fau.de