Re: [Cbor] [COSE] [Rats] RAM requirements for COSE/CWT
Laurence Lundblade <lgl@island-resort.com> Tue, 01 March 2022 22:21 UTC
Return-Path: <lgl@island-resort.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 05C563A108E
for <cbor@ietfa.amsl.com>; Tue, 1 Mar 2022 14:21:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.906
X-Spam-Level:
X-Spam-Status: No, score=-1.906 tagged_above=-999 required=5
tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H4=0.001,
RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001,
T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001]
autolearn=unavailable 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 rAQaFaCubT6h for <cbor@ietfa.amsl.com>;
Tue, 1 Mar 2022 14:21:19 -0800 (PST)
Received: from p3plsmtpa12-03.prod.phx3.secureserver.net
(p3plsmtpa12-03.prod.phx3.secureserver.net [68.178.252.232])
(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 5688D3A1091
for <cbor@ietf.org>; Tue, 1 Mar 2022 14:21:18 -0800 (PST)
Received: from [192.168.1.7] ([75.80.148.139]) by :SMTPAUTH: with ESMTPSA
id PArunvS7X9EzPPArunV2M4; Tue, 01 Mar 2022 15:21:18 -0700
X-CMAE-Analysis: v=2.4 cv=O8z8ADxW c=1 sm=1 tr=0 ts=621e9c5e
a=qS/Wyu6Nw1Yro6yF1S+Djg==:117 a=qS/Wyu6Nw1Yro6yF1S+Djg==:17 a=NEAV23lmAAAA:8
a=gKmFwSsBAAAA:8 a=iop919EFVVZG0SD-EnMA:9 a=7Zwj6sZBwVKJAoWSPKxL6X1jA+E=:19
a=QEXdDO2ut3YA:10 a=pOcCc5LdgyTJHc8busUA:9 a=16XlOQV-uZ3bXccZ:21
a=_W_S_7VecoQA:10 a=nnPW6aIcBuj1ljLj_o6Q:22
X-SECURESERVER-ACCT: lgl@island-resort.com
From: Laurence Lundblade <lgl@island-resort.com>
Message-Id: <D20BAD71-EF8D-4849-9E90-6C19EF879896@island-resort.com>
Content-Type: multipart/alternative;
boundary="Apple-Mail=_FC0DE943-45F6-40C7-B1F2-886D0B411BA6"
Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.1\))
Date: Tue, 1 Mar 2022 14:21:17 -0800
In-Reply-To: <2A13AF29-6309-4FA3-9A84-59D4E0C8F089@tzi.org>
Cc: "rats@ietf.org" <rats@ietf.org>, cbor@ietf.org,
"cose@ietf.org" <cose@ietf.org>
To: Carsten Bormann <cabo@tzi.org>
References: <e8995f0c-ad85-f702-da6b-051ffdc4cb08@gmail.com>
<DBBPR08MB5915B874FD16107A7B0105AAFA3A9@DBBPR08MB5915.eurprd08.prod.outlook.com>
<1a16c80d-40cd-baba-b1ce-2033dd0db294@gmail.com>
<D22D0D63-F76C-48B3-A034-F8B5B2BB6005@tzi.org>
<2c8be442-9899-d117-155c-f6f2096b7055@gmail.com>
<92C7CF7C-ED23-41B3-AB32-8438C4C88C20@tzi.org>
<14c8d106-3b4b-f973-94b8-018852ff4769@gmail.com>
<8C2C6592-D5B9-430A-B878-E1009E9BCF22@tzi.org>
<AB9F0C55-9C23-43F1-A83F-91D4159C888F@island-resort.com>
<59939C29-5370-4385-AE61-A21ADDC0D194@tzi.org>
<ED025590-3CA0-42B8-B50E-030D94FA88D6@island-resort.com>
<E74C7303-E7D5-45EA-886C-158DB6D83844@tzi.org>
<E5AD55D7-33B2-4E50-83EA-5BD1C1462F01@island-resort.com>
<2A13AF29-6309-4FA3-9A84-59D4E0C8F089@tzi.org>
X-Mailer: Apple Mail (2.3608.120.23.2.1)
X-CMAE-Envelope: MS4xfMGgtd6kyUWSEDOH/UPR0yH+r5W1C/4rAyx/iv3+sCNVFZON5vwAhmEYqdFQGVZHC2ujNoEyO/e5tCCnHLhutHVxsSFdhr7MmYaepxWQ2T1fzGwzvmVg
Z78sw6zTRRfHBGqFMniKjUmz1moFO4T8tBEjk4xaQrZT2GkJO2lE8/+Exdrs5aimXcGD7LWb8Sej+B8YwTNrKtEp45ugfURohwvTcUv5Rx1/ragE8otB1+4w
+RhVNYfvWxTOmNQvCPFVRQ==
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/XMxSNMNBr3PUjRsCltBwUOGU8kg>
Subject: Re: [Cbor] [COSE] [Rats] RAM requirements for COSE/CWT
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: Tue, 01 Mar 2022 22:21:25 -0000
Got it. Made PR to remove half-precision exclusion <https://github.com/ietf-rats-wg/eat/pull/172> from location. Thanks for the discussion and foot notes! Checked a few decoders and can see that half-precision decoding is often supported. LL > On Feb 23, 2022, at 1:08 PM, Carsten Bormann <cabo@tzi.org> wrote: > >>> >>> This discussion was more about lat/lon. >>> cti (label 7) is a byte string, so there is no such problem there. >> >> Lat/long needs double precision float to be useful to beings the size of humans on a planet of earth's size. Half-precision has so little precision on a planet of earth's size that it is useless for location. > > That is not what this is about. > > Saying “You need 16 bits to express the unsigned integer weight of a street vehicle in kg” does not mean that I can’t encode the weight of my bike in 8 bits. > What the current text in EAT says is equivalent to "you can’t ever use 8 bits because some vehicles need 16". That is not smart. > >> I mis-remembered “iat” as “cti”. Iat is a time stamp. A uint64 can represent everything needed for a time stamp, 1 second precision and +/- 500 million years. Float adds no value. > > Right, but that is OK: It is a restriction at the data model level. You are asking the application not to feed floats into the generic encoder. > > (Note that we strengthened the little wall between integer and floating point for RFC 8949, after seeing that RFC 7049 was confusing people a lot.) > >> >> So EAT >> - disallows half-precision in location, but allows doubles to relieve a decoder from implementing half-precision > > Bad. Half-precision (binary16) is not a different type at the data model level, it is just an efficient way to represent certain numbers in your data model. > Binary16 has a significand [sic] precision of 11 bits. Binary32 has 24 bits. > So if you feed random binary32 lat/lon (~ meter precision) to your generic encoder, every 8192th will be encoded in half-precision (*). > > Since lat/lon values are probably approximately evenly distributed, that by itself is not a reason to implement half-precision. > The fact that CBOR preferred encoding does employ half-precision is. > Deviating from that by disallowing binary16 is expensive: You no longer can employ generic encoders. > > Don’t do that. > >> - disallows float for iat to relieve a decoder from implementing float, assuming it is not implementing location (many EAT implementations will not support location) > > Good(**). That selection of integer second timestamps is a part of your data model. > You can do that, and no generic encoder will suddenly turn your integer iat number into a float. > (Again, with RFC 7049, it possibly could have, but we fixed that.) > > Grüße, Carsten > > (*) Note that a similar thing happens in JSON: numbers that happen to be whole numbers will be encoded without fractional parts (10.0 becomes 10). > In certain decoder implementations, that makes them a different “type" than 10.0 or 1e1 or 0.1e2 etc., causing breakage. > But the JSON data model only has numbers, not integers as a separate, incompatible type, so these decoders are broken with applications that simply expect numbers. > (Find ISO 6093:1985 for some fascinating history in this space :-) > > (**) ((I’m not making any representation on whether applications need to know with a precision of smaller than a second when your EAT was issued. > I really can’t imagine that, but that is proof by lack of imagination; I do assess that the cost of enabling that is higher than the benefits. > But that is true until someone has a convincing counterexample… > Consolation is that these people can introduce a float iat = “fiat” :-))) >
- Re: [Cbor] [COSE] [Rats] RAM requirements for COS… Carsten Bormann
- Re: [Cbor] [COSE] [Rats] RAM requirements for COS… Laurence Lundblade
- Re: [Cbor] [COSE] [Rats] RAM requirements for COS… Laurence Lundblade
- Re: [Cbor] [COSE] [Rats] RAM requirements for COS… Jeremy O'Donoghue
- Re: [Cbor] [COSE] [Rats] RAM requirements for COS… Carsten Bormann
- Re: [Cbor] [COSE] [Rats] RAM requirements for COS… Laurence Lundblade
- Re: [Cbor] [Rats] [COSE] RAM requirements for COS… Anders Rundgren