Re: [core] Benjamin Kaduk's No Objection on draft-ietf-core-senml-versions-03: (with COMMENT)

Benjamin Kaduk <kaduk@mit.edu> Fri, 04 June 2021 18:21 UTC

Return-Path: <kaduk@mit.edu>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5192E3A1BFF; Fri, 4 Jun 2021 11:21:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.497
X-Spam-Level:
X-Spam-Status: No, score=-1.497 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, KHOP_HELO_FCRDNS=0.398, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=no 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 GyeSIdxjUNhW; Fri, 4 Jun 2021 11:21:07 -0700 (PDT)
Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11]) (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 DDB9F3A1BFE; Fri, 4 Jun 2021 11:21:06 -0700 (PDT)
Received: from kduck.mit.edu ([24.16.140.251]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id 154IKwGe023841 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 4 Jun 2021 14:21:03 -0400
Date: Fri, 04 Jun 2021 11:20:57 -0700
From: Benjamin Kaduk <kaduk@mit.edu>
To: Carsten Bormann <cabo@tzi.org>
Cc: The IESG <iesg@ietf.org>, draft-ietf-core-senml-versions@ietf.org, core-chairs@ietf.org, "core@ietf.org WG" <core@ietf.org>, jaime@iki.fi
Message-ID: <20210604182057.GS32395@kduck.mit.edu>
References: <162265748074.13521.4368551591199171477@ietfa.amsl.com> <3BC8BF6C-94C6-46B7-9A38-0DB25CCBD0D9@tzi.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <3BC8BF6C-94C6-46B7-9A38-0DB25CCBD0D9@tzi.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/fvGljzBVpAPg2xTEUTxtA0TVKBc>
Subject: Re: [core] Benjamin Kaduk's No Objection on draft-ietf-core-senml-versions-03: (with COMMENT)
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 04 Jun 2021 18:21:12 -0000

On Thu, Jun 03, 2021 at 12:28:38PM +0200, Carsten Bormann wrote:
> Hi Ben,
> 
> > On 2021-06-02, at 20:11, Benjamin Kaduk via Datatracker <noreply@ietf.org> wrote:
> > 
> > Benjamin Kaduk has entered the following ballot position for
> > draft-ietf-core-senml-versions-03: No Objection
> > […]
> > 
> > 
> > ----------------------------------------------------------------------
> > COMMENT:
> > ----------------------------------------------------------------------
> > 
> > Thanks, this is nicely written and a reasonable approach.
> > 
> > Section 3
> > 
> > I think I'm supposed to interpret this as being "the exact bit pattern
> > 1010 in the last four bits indicates support for the base SenML version
> > defined in RFC 8428; any other bitstring in that position cannot be
> > taken as an indication of support for the base version".  In other
> > words, we're still getting a one-bit signal, just encoded in four bits.
> > Is that right?  Or maybe just "it's an error to see any other values for
> > those four bits"?  (If so, do we reject the entire pack?)
> 
> Well, really, RFC 8428 only defines version 10.
> So we have no idea what another setting of those four bits would mean.
> The cop-out is the text
> 
>    These four reserved feature codes are not to be used with any
>    more specific semantics except in a specification that updates the
>    present specification.
> 
> which to me indeed means unless there is another specification updating this one, one would reject lsb ≠ 1010, except for a legacy application that, e.g. still supports SenML version 5.
> Does this need more text?  Suggestions welcome.

I was actually thinking less text, rather than more :)

Specifically, we could skip talking about Reserved1/Reserved3 always set
and Reserved0/Reserved2 always absent, and just say "the four least
significant bits set to 0b1010 indicate version 10" before contining to the
next sentence "These four reserved feature codes are not to be used..."

> > Section 5
> > 
> > I'd consider adding a sentence "the assignment of new feature bits is
> > done in a backwards-compatible manner, so existing implementations will
> > not erroneously assume support for a version (feature) that is defined
> > in the future" in the vein of an avoided security consideration.
> 
> You lost me here.  How can one assign bits in a non-backwards-compatible manner?

Assigning Reserved0 would be backwards-incompatible, in that it would allow
advertising support for a "version" that, when interpreted as a number,
produces a value less than 10.  So, a legacy 8428 implementation that
applies an ordering on version numbers would find that version lower than
the version 10 it supports, and presumably do something bad.

-Ben

> Of course, feature code 37 could mean "support all of feature code 36 except for feature foognorz, as well as feature barfgnup”.  When 36 and 37 are set, this means 36 + barfgnup.
> 
> We don’t even touch on how a receiving implementation could signal its feature support to a generating implementation; the underlying assumption is that most SenML is generated for eternity and not for a specific recipient.
> 
> Grüße, Carsten
>