Re: [Cbor] 🔔 WGLC on draft-ietf-cbor-array-tags-03
Jim Schaad <ietf@augustcellars.com> Sat, 09 March 2019 22:07 UTC
Return-Path: <ietf@augustcellars.com>
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 D0DE71277D9; Sat, 9 Mar 2019 14:07:39 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-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 YVQM_HVlvbYq; Sat, 9 Mar 2019 14:07:36 -0800 (PST)
Received: from mail2.augustcellars.com (augustcellars.com [50.45.239.150]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3198812705F; Sat, 9 Mar 2019 14:07:36 -0800 (PST)
Received: from Jude (50.252.25.182) by mail2.augustcellars.com (192.168.0.56) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Sat, 9 Mar 2019 14:07:26 -0800
From: Jim Schaad <ietf@augustcellars.com>
To: 'Laurence Lundblade' <lgl@island-resort.com>
CC: 'Francesca Palombini' <francesca.palombini@ericsson.com>, cbor@ietf.org, draft-ietf-cbor-array-tags@ietf.org
References: <426CD514-B174-4CE7-B467-2727C6B5B354@ericsson.com> <6F7C83DD-E98C-44EF-A315-194E31759518@island-resort.com> <72F7B17A-2684-4591-8D70-01DE32BFA03B@island-resort.com> <033d01d4d6af$c48be3b0$4da3ab10$@augustcellars.com> <E3735603-8744-4686-9FA7-459DDD8F57AE@island-resort.com>
In-Reply-To: <E3735603-8744-4686-9FA7-459DDD8F57AE@island-resort.com>
Date: Sat, 09 Mar 2019 14:07:22 -0800
Message-ID: <034701d4d6c4$7a4f52e0$6eedf8a0$@augustcellars.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AQJDckXT1PNyaRbuIeGp9sN/08XZzALTp86QAZld6+8BpCWg/gJzCcw6pOKCIAA=
Content-Language: en-us
X-Originating-IP: [50.252.25.182]
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/j1TroTuf9i6GvfnDYTRZCg6kXYY>
Subject: Re: [Cbor] 🔔 WGLC on draft-ietf-cbor-array-tags-03
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
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: Sat, 09 Mar 2019 22:07:40 -0000
> -----Original Message----- > From: Laurence Lundblade <lgl@island-resort.com> > Sent: Saturday, March 9, 2019 12:46 PM > To: Jim Schaad <ietf@augustcellars.com> > Cc: Francesca Palombini <francesca.palombini@ericsson.com>; > cbor@ietf.org; draft-ietf-cbor-array-tags@ietf.org > Subject: Re: [Cbor] 🔔 WGLC on draft-ietf-cbor-array-tags-03 > > Hi Jim, > > > On Mar 9, 2019, at 11:39 AM, Jim Schaad <ietf@augustcellars.com> wrote: > > > > > > > >> -----Original Message----- > >> From: CBOR <cbor-bounces@ietf.org> On Behalf Of Laurence Lundblade > >> Sent: Friday, March 8, 2019 7:44 AM > >> To: Francesca Palombini <francesca.palombini@ericsson.com> > >> Cc: cbor@ietf.org; draft-ietf-cbor-array-tags@ietf.org > >> Subject: Re: [Cbor] 🔔 WGLC on draft-ietf-cbor-array-tags-03 > >> > >> In addition to what I said before, a deterministic encoding should be > >> specified (formerly known as canonical) in the specification and that > >> should probably be network / big endian. > > > > I don't know that I agree with this. Most of the machines that I am working > with today are little endian machines, from that point of view if such a thing is > done then little endian makes more sense. However the fact that these are > different tags implies that there is no need to have a deterministic encoding > for this. The encoding is going to be deterministic based on which > endianness is chosen and that is machine or program specific. I would expect > that many implementations would not bother with the big endian encode > and might not do the decode as they would be very rarely found. > > My understanding of deterministic encoding is something like this — For a > given input, say the array [100,200,300,400], two independently written > encoders should produce *exactly* the same encoded bits. A general test > vector for this array would work correctly for both an encoder written in the > Foo language on a big endian machine and the Bar language on a little endian > machine. > > There is also the COSE Sig_structure and similar use cases. Some encoded > CBOR that is not transmitted must be constructed by the sender and receiver > and it has to be exactly correct because it is being hashed. > > If the implementor gets to choose big / little endian as they wish, we don’t > get deterministic encoding like that. > > Personally, I don’t think deterministic encoding is that useful and would > probably be happy seeing it go away completely. I suggested that in Bangkok, > and the response was that some people (who weren’t in the room) really > care about it. Here, I’m just pointing out, that if we’re doing deterministic > encoding, we should do it for array tags too. > > > I think interop is the bigger issue here (and deterministic encoding != > interop) . If everyone does what is natural for their CPU, we mostly have > interop because little endian is the most common, but interop is not > guaranteed because big endian CPUs exist. I think the spec should be tighter > and should spell out what is to be done by a generic encode/decoder so that > interop is guaranteed. Maybe frame it up in three options: > > 1) Specify rules for preferred encoders and decoders like this: decoders > should support both big and little endian. Encoders should do network byte > order, but can choose as they wish. > > 2) Just outright say tagged arrays are always little endian. Drop the tagging of > little vs big. > > 3) Just outright say tagged arrays are always network big endian. Drop the > tagging of little vs big. > > If most CPUs were big endian, the obvious choice would be 3). The problem > with 2) is the mixed message where some parts of CBOR are big endian and > other are little. The problem with 1) is that it is more complicated and > implementors are more likely to get it wrong. > > Personally, I kind of like 2). Given that I don't care about deterministic mapping from data model to CBOR encoding, I don't see an issue here. I will always get the same CBOR bytes given the same binary data. > > > > > >> > >> To go on a bit more about detailed implementation... > >> > >> In a native implementation there is also memory access alignment > >> issue on the decode side, but not the encode side. Memory alignment > >> is an issue on some Arm CPUs, though not on Intel CPUs as far as I > >> know. So on some Arm CPUs, it won’t be possible to just return > >> pointers to the bytes that came off the wire. Because non-string and > >> non-aggregate CBOR data items can be 1, 2, 3, 5 and 9 bytes long, > >> there can be no guarantee of alignment of the incoming encoded CBOR > bytes. > >> A portable decoder implementation will have to allocate aligned > >> memory for the array and copy it. The decoder can byte-swap while it > >> is copying so it lines up OK with the decoder having to do most of the > work to achieve interop. > > > > I am confused here about what you are saying here. I think you mean that > returning a pointer to data block in the encoded structure may be a problem > if it is not aligned, but if that is what you are saying I really don't understand > that from the above text. > > Yes, that is what I’m saying. Sorry I wasn’t more clear. I would agree this is a valid issue to highlight. Jim > > > > > Jim > > > >> > >> There’s no alignment issue on the encode side. > >> > >> The only other thing I’ve encountered in CBOR that needs copying of > >> data is indefinite length strings. > > > > That depends on the internal structure of binary data as well. It may also > need to be copied to get correct alignment. > > For a rich, complete and true generic decoder, the obvious thing to do with > array tags is return an array of integers in the native CPU format. If the CPU > doesn’t support unaligned access, then that array of integers must be > aligned. > > I think the contents of a binary string are different. First of all, if it has internal > structure, they should have encoded the internals with CBOR in the first > place. :-). Second, there is nothing in the CBOR type information that tells a > generic CBOR encoder if it needs to be aligned or not. I would think most of > the time it does not, so aligning by default would be wasteful. > > > All that said, I don’t see that alignment has any affect on the text in the draft. > The main issue for me is the interop issue that arrises from the option to > transmit either big or little endian. > > LL > > > > > > > >> > >> LL > >> > >> > >> > >>> On Mar 7, 2019, at 7:15 PM, Laurence Lundblade > >>> <lgl@island-resort.com> > >> wrote: > >>> > >>> Comments in my usual vein… > >>> > >>> Because of the big/little endian option, it seems like this needs a > >>> discussion > >> about design protocols with it, about preferred encoding / decoding > >> and about interop. > >>> > >>> Probably it should say decoders should support both big and little > >>> and the > >> encoder can do what is natural. It seems like there might be an > >> option for both sides to support only one endianness, which will > >> likely often be little endian because it is common. > >>> > >>> LL > >>> > >>> > >>>> On Mar 6, 2019, at 4:53 AM, Francesca Palombini > >> <francesca.palombini@ericsson.com> wrote: > >>>> > >>>> CBOR WG, > >>>> > >>>> The chairs believe the array-tags document is ready for WGLC: > >>>> https://tools.ietf.org/html/draft-ietf-cbor-array-tags-03 > >>>> > >>>> The WGLC will end by *20th of March*, please make sure to send your > >> comments to the list before then. > >>>> > >>>> Best regards, > >>>> Francesca & Barry > >>>> > >>>> On 05/03/2019, 23:58, "CBOR on behalf of Carsten Bormann" <cbor- > >> bounces@ietf.org on behalf of cabo@tzi.org> wrote: > >>>> > >>>> -03 reflects the fact that IANA has made the allocations. > >>>> > >>>> From this author’s point of view, we are ready for WGLC. > >>>> > >>>> Grüße, Carsten > >>>> > >>>> > >>>>> On Mar 5, 2019, at 23:55, internet-drafts@ietf.org wrote: > >>>>> > >>>>> > >>>>> A New Internet-Draft is available from the on-line Internet-Drafts > >> directories. > >>>>> This draft is a work item of the Concise Binary Object > >>>>> Representation > >> Maintenance and Extensions WG of the IETF. > >>>>> > >>>>> Title : Concise Binary Object Representation (CBOR) Tags for > >> Typed Arrays > >>>>> Authors : Johnathan Roatch > >>>>> Carsten Bormann > >>>>> Filename : draft-ietf-cbor-array-tags-03.txt > >>>>> Pages : 14 > >>>>> Date : 2019-03-05 > >>>>> > >>>>> Abstract: > >>>>> The Concise Binary Object Representation (CBOR, RFC 7049) is a > >>>>> data format whose design goals include the possibility of > >>>>> extremely small code size, fairly small message size, and > >>>>> extensibility without the need for version negotiation. > >>>>> > >>>>> The present document makes use of this extensibility to define a > >>>>> number of CBOR tags for typed arrays of numeric data, as well as > >>>>> two additional tags for multi-dimensional and homogeneous arrays. > >>>>> It is intended as the reference document for the IANA registration > >>>>> of the CBOR tags defined. > >>>>> > >>>>> > >>>>> The IETF datatracker status page for this draft is: > >>>>> https://datatracker.ietf.org/doc/draft-ietf-cbor-array-tags/ > >>>>> > >>>>> There are also htmlized versions available at: > >>>>> https://tools.ietf.org/html/draft-ietf-cbor-array-tags-03 > >>>>> https://datatracker.ietf.org/doc/html/draft-ietf-cbor-array-tags-0 > >>>>> 3 > >>>>> > >>>>> A diff from the previous version is available at: > >>>>> https://www.ietf.org/rfcdiff?url2=draft-ietf-cbor-array-tags-03 > >>>>> > >>>>> > >>>>> Please note that it may take a couple of minutes from the time of > >>>>> submission until the htmlized version and diff are available at > >> tools.ietf.org. > >>>>> > >>>>> Internet-Drafts are also available by anonymous FTP at: > >>>>> ftp://ftp.ietf.org/internet-drafts/ > >>>>> > >>>>> _______________________________________________ > >>>>> I-D-Announce mailing list > >>>>> I-D-Announce@ietf.org > >>>>> https://www.ietf.org/mailman/listinfo/i-d-announce > >>>>> Internet-Draft directories: http://www.ietf.org/shadow.html or > >>>>> ftp://ftp.ietf.org/ietf/1shadow-sites.txt > >>>>> > >>>> > >>>> _______________________________________________ > >>>> CBOR mailing list > >>>> CBOR@ietf.org > >>>> https://www.ietf.org/mailman/listinfo/cbor > >>>> > >>>> > >>>> _______________________________________________ > >>>> CBOR mailing list > >>>> CBOR@ietf.org > >>>> https://www.ietf.org/mailman/listinfo/cbor > >>> > >>> _______________________________________________ > >>> CBOR mailing list > >>> CBOR@ietf.org > >>> https://www.ietf.org/mailman/listinfo/cbor > >> > >> _______________________________________________ > >> CBOR mailing list > >> CBOR@ietf.org > >> https://www.ietf.org/mailman/listinfo/cbor > > > >
- [Cbor] 🔔 WGLC on draft-ietf-cbor-array-tags-03 Francesca Palombini
- Re: [Cbor] 🔔 WGLC on draft-ietf-cbor-array-tags-03 Jeffrey Yasskin
- Re: [Cbor] 🔔 WGLC on draft-ietf-cbor-array-tags-03 Laurence Lundblade
- Re: [Cbor] 🔔 WGLC on draft-ietf-cbor-array-tags-03 Carsten Bormann
- Re: [Cbor] 🔔 WGLC on draft-ietf-cbor-array-tags-03 Laurence Lundblade
- Re: [Cbor] 🔔 WGLC on draft-ietf-cbor-array-tags-03 Jim Schaad
- Re: [Cbor] 🔔 WGLC on draft-ietf-cbor-array-tags-03 Jim Schaad
- Re: [Cbor] 🔔 WGLC on draft-ietf-cbor-array-tags-03 Laurence Lundblade
- Re: [Cbor] 🔔 WGLC on draft-ietf-cbor-array-tags-03 Jim Schaad
- Re: [Cbor] 🔔 WGLC on draft-ietf-cbor-array-tags-03 Jeffrey Yasskin
- Re: [Cbor] 🔔 WGLC on draft-ietf-cbor-array-tags-03 Jim Schaad