
From glenn_engel@keysight.com  Mon Jun  6 15:08:26 2016
Return-Path: <glenn_engel@keysight.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 DFDF612D93C for <cbor@ietfa.amsl.com>; Mon,  6 Jun 2016 15:08:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.625
X-Spam-Level: 
X-Spam-Status: No, score=-5.625 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-1.426] 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 DI5J5syQY0Sv for <cbor@ietfa.amsl.com>; Mon,  6 Jun 2016 15:08:24 -0700 (PDT)
Received: from cos-us-iron02k.cos.keysight.com (cos-us-iron02k.cos.keysight.com [192.25.5.36]) (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 54C2D12D51D for <cbor@ietf.org>; Mon,  6 Jun 2016 15:08:23 -0700 (PDT)
X-IPAS-Result: A2AyBAAQ9FVXbRUYjJxbgm6BI30GvE8SEIVxAoFwEAEBAQEBAQESGDMvhEwtXgEqViYBBBuIJw6aDKEOAQsBHwWPNoMqgi4FmEiBMIRTl0GPWjWEDW4BiRkBfgEBAQ
X-IronPort-AV: E=Sophos; i="5.26,429,1459836000"; d="scan'208,217"; a="32245935"
Received: from wcosexch02k.cos.is.keysight.com (HELO 2k10hubs.keysight.com) ([156.140.24.21]) by cos-us-iron02k.cos.keysight.com with ESMTP/TLS/AES128-SHA256; 06 Jun 2016 15:51:26 -0600
Received: from wcosexch01k.cos.is.keysight.com ([169.254.3.99]) by wcosexch02k.cos.is.keysight.com ([169.254.2.149]) with mapi id 14.03.0266.001; Mon, 6 Jun 2016 16:08:04 -0600
From: <glenn_engel@keysight.com>
To: <cbor@ietf.org>
Thread-Topic: Additional data types
Thread-Index: AdHAP6Oy25pLOQV2Rp6gIejeIb5M2g==
Date: Mon, 6 Jun 2016 22:08:03 +0000
Message-ID: <04EFF12F483FA149B07653989B86861F2178C6CF@wcosexch01k.cos.is.keysight.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [156.140.13.70]
x-tm-as-product-ver: SMEX-11.0.0.4255-8.000.1202-22376.003
x-tm-as-result: No--51.732600-8.000000-31
x-tm-as-user-approved-sender: No
x-tm-as-user-blocked-sender: No
Content-Type: multipart/alternative; boundary="_000_04EFF12F483FA149B07653989B86861F2178C6CFwcosexch01kcosi_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/jJJPz0FihfUQFnD1Ven96L7l-Ds>
Subject: [Cbor] Additional data types
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.17
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, 06 Jun 2016 22:11:36 -0000

--_000_04EFF12F483FA149B07653989B86861F2178C6CFwcosexch01kcosi_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

I'm evaluating use of CBOR as a replacement for a proprietary format that i=
s very similar to CBOR.  With the addition of TypedArrays most of our data =
types are supported.  I was pleased to see Null and zero length arrays supp=
orted as well.  The standard seems to be well thought out!

We have several additional data types which I would appreciate being consid=
ered or alternatively educating me on how they may already be included in C=
BOR.


1.      Multidimensional Arrays - perhaps a tag preceding an array of integ=
er dimensions followed by the array data as a single TypedArray.  Data woul=
d be in row major format as is used in C, C++, and Python.

2.      Jagged Arrays<https://msdn.microsoft.com/en-us/library/2s05feca.asp=
x> or an Array of Arrays.  A tag indicating the dimension of the following =
jagged array followed by each array.

3.      IEEE1588 Precision Time Protocol Timestamp.  The basic time represe=
ntation is 48 bits of UTC seconds and 32 bits of nanoseconds.   An addition=
al 16 bits of subnanoseconds can also be present.   Rather than a new tag, =
I initially thought this could be covered by using a Decimal Fraction with =
-9 as the exponent.  The mantissa would be seconds*1e9+nanoseconds.  Howeve=
r, it would appear the RFC restricts the semantic tag for epoch-based date/=
time to ints and floats.   Perhaps if time could be expressed in integer UT=
C milliseconds, microseconds, nanoseconds, and picoseconds accurately that =
would fill the need.  UTC milliseconds is a very common timestamp method.

4.      Time Duration or Interval.  This is different from a timestamp in t=
hat it measures a difference in time between two events but with similar pr=
ecision.  This would represent a TimeSpan or Duration as is used in some li=
braries.

Thanks in advance for your thoughts on these items,

Glenn Engel
Keysight Technologies

--_000_04EFF12F483FA149B07653989B86861F2178C6CFwcosexch01kcosi_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:1505706115;
	mso-list-type:hybrid;
	mso-list-template-ids:-1807072546 67698703 67698713 67698715 67698703 6769=
8713 67698715 67698703 67698713 67698715;}
@list l0:level1
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level2
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level3
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level4
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level5
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level6
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level7
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level8
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level9
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">I&#8217;m evaluating use of CBOR as a replacement fo=
r a proprietary format that is very similar to CBOR.&nbsp; With the additio=
n of TypedArrays most of our data types are supported.&nbsp; I was pleased =
to see Null and zero length arrays supported as well.&nbsp;
 The standard seems to be well thought out!<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">We have several additional data types which I would =
appreciate being considered or alternatively educating me on how they may a=
lready be included in CBOR.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo1"><![if !supportLists]><span style=3D"mso-list:Ignore">1.<span style=
=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>Multidimensional Arrays &#8211; perhaps a tag prece=
ding an array of integer dimensions followed by the array data as a single =
TypedArray.&nbsp; Data would be in row major format as is used in C, C&#43;=
&#43;, and Python.<o:p></o:p></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo1"><![if !supportLists]><span style=3D"mso-list:Ignore">2.<span style=
=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]><a href=3D"https://msdn.microsoft.com/en-us/library=
/2s05feca.aspx">Jagged Arrays</a> or an Array of Arrays.&nbsp; A tag indica=
ting the dimension of the following jagged array followed by each array.<o:=
p></o:p></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo1"><![if !supportLists]><span style=3D"mso-list:Ignore">3.<span style=
=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>IEEE1588 Precision Time Protocol Timestamp.&nbsp; T=
he basic time representation is 48 bits of UTC seconds and 32 bits of nanos=
econds. &nbsp;&nbsp;An additional 16 bits of subnanoseconds can also be pre=
sent.&nbsp; &nbsp;Rather than a new tag, I initially thought
 this could be covered by using a Decimal Fraction with -9 as the exponent.=
&nbsp; The mantissa would be seconds*1e9&#43;nanoseconds.&nbsp; However, it=
 would appear the RFC restricts the semantic tag for epoch-based date/time =
to ints and floats.&nbsp;&nbsp; Perhaps if time could be
 expressed in integer UTC milliseconds, microseconds, nanoseconds, and pico=
seconds accurately that would fill the need.&nbsp; UTC milliseconds is a ve=
ry common timestamp method.<o:p></o:p></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo1"><![if !supportLists]><span style=3D"mso-list:Ignore">4.<span style=
=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>Time Duration or Interval.&nbsp; This is different =
from a timestamp in that it measures a difference in time between two event=
s but with similar precision.&nbsp; This would represent a TimeSpan or Dura=
tion as is used in some libraries.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Thanks in advance for your thoughts on these items,<=
o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Glenn Engel<o:p></o:p></p>
<p class=3D"MsoNormal">Keysight Technologies<o:p></o:p></p>
</div>
</body>
</html>

--_000_04EFF12F483FA149B07653989B86861F2178C6CFwcosexch01kcosi_--


From nobody Mon Jun  6 17:34:26 2016
Return-Path: <Michel.Veillette@trilliantinc.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 AC19C12D966 for <cbor@ietfa.amsl.com>; Mon,  6 Jun 2016 17:34:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=trilliant.onmicrosoft.com
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 v-fluEyE84ln for <cbor@ietfa.amsl.com>; Mon,  6 Jun 2016 17:34:20 -0700 (PDT)
Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0771.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc09::771]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8C25112D732 for <cbor@ietf.org>; Mon,  6 Jun 2016 17:34:19 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Trilliant.onmicrosoft.com; s=selector1-trilliantinc-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=Zj3wSUdH7KA3B1iiHijReYTSiYjTFr0XAQt9CPDBbWo=; b=ZoOiqzfQIIaa9XgmPi4nkn6+m+4b4xUuPJkd2yskbqdlSaKjYXjxgOpJb+DnhU4K3onU0RR8ZV0uxBIbUAjy/ZpiaTgU46TB4wYmEujYq7KiKf0lfrYZsUeYEXUmgTmCHBQav/ow9lSZNjiuRbhWxa3qYYjK2N2h0V7ci3wk3HE=
Received: from BLUPR06MB1763.namprd06.prod.outlook.com (10.162.224.149) by BLUPR06MB1762.namprd06.prod.outlook.com (10.162.224.148) with Microsoft SMTP Server (TLS) id 15.1.511.8; Tue, 7 Jun 2016 00:34:17 +0000
Received: from BLUPR06MB1763.namprd06.prod.outlook.com ([10.162.224.149]) by BLUPR06MB1763.namprd06.prod.outlook.com ([10.162.224.149]) with mapi id 15.01.0511.010; Tue, 7 Jun 2016 00:34:17 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: "glenn_engel@keysight.com" <glenn_engel@keysight.com>, "cbor@ietf.org" <cbor@ietf.org>
Thread-Topic: Additional data types
Thread-Index: AdHAP6Oy25pLOQV2Rp6gIejeIb5M2gAEoPxg
Date: Tue, 7 Jun 2016 00:34:16 +0000
Message-ID: <BLUPR06MB17636F1667538D0F1C0A95D9FE5D0@BLUPR06MB1763.namprd06.prod.outlook.com>
References: <04EFF12F483FA149B07653989B86861F2178C6CF@wcosexch01k.cos.is.keysight.com>
In-Reply-To: <04EFF12F483FA149B07653989B86861F2178C6CF@wcosexch01k.cos.is.keysight.com>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michel.Veillette@trilliantinc.com; 
x-originating-ip: [80.112.247.170]
x-ms-office365-filtering-correlation-id: 023ca237-03f7-4601-a285-08d38e6b7579
x-microsoft-exchange-diagnostics: 1; BLUPR06MB1762; 5:zmaaC1PkZM8zoj1jhALNUOVoWje4D5d0E15auCaEt/QGWIk+IUzLGfF0xGD06BDlcI0n4J3jwLT4zR5VogwnrrP2XMdB05g70BwDvlhjBNLrCQjjR5VtiowHBM7kJL2I0cEvQXHYVYZM/usIZBWQzA==; 24:0xtsOOpHgRe9bQrLc8J0hAzSPBIi7LvCeEV/CUHL7bNGOdqTuAV0drOpjf60t14iF4GMQCNRYwIeJasipFFfhS4WZOh1/pVux3WUEaLgkhU=; 7:QKQu5JwouttTqMi3u2jCasoUfY34Zq1EMANTkxORVieMnXPrUintiO/K/o91syCwrgg0MLFC4PX9MELVW96AyBC3ZK1xyl5Awcw0Rhbbp7f0zD7f5SI6ATWHaMTsgdAy20duoINs0lKFMQcYQZhuyGIThgPsx+9NEyAVDTNAdSYswg1Gs+XJk5VUBmkqbyKBkruYzvPL3+feYCF73p3Klmgs97Dwv18q96WLcLVYe4w=
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR06MB1762;
x-microsoft-antispam-prvs: <BLUPR06MB1762B7F0EAA0BB3B60FBA627FE5D0@BLUPR06MB1762.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(176295241369792)(21748063052155);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(102415321)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046); SRVR:BLUPR06MB1762; BCL:0; PCL:0; RULEID:; SRVR:BLUPR06MB1762; 
x-forefront-prvs: 09669DB681
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(377454003)(189002)(3905003)(199003)(51874003)(87936001)(54356999)(76176999)(50986999)(99936001)(92566002)(5003600100002)(86362001)(5002640100001)(99286002)(15975445007)(19625215002)(66066001)(2900100001)(101416001)(77096005)(2906002)(2950100001)(5008740100001)(19300405004)(3846002)(790700001)(586003)(189998001)(107886002)(19580395003)(19580405001)(6116002)(5001770100001)(102836003)(97736004)(106356001)(122556002)(74316001)(105586002)(8936002)(81156014)(3480700004)(2501003)(81166006)(8676002)(19627595001)(19617315012)(5004730100002)(16236675004)(11100500001)(68736007)(18206015028)(3280700002)(10400500002)(9686002)(17760045003)(3660700001)(76576001)(33656002)(7099028); DIR:OUT; SFP:1102; SCL:1; SRVR:BLUPR06MB1762; H:BLUPR06MB1763.namprd06.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  MX:1; A:1; LANG:en; 
received-spf: None (protection.outlook.com: trilliantinc.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/related; boundary="_005_BLUPR06MB17636F1667538D0F1C0A95D9FE5D0BLUPR06MB1763namp_"; type="multipart/alternative"
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Jun 2016 00:34:16.8234 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR06MB1762
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/NIFVfriFLxZCxWCnbhMIBnjQ08w>
Subject: Re: [Cbor] Additional data types
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.17
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, 07 Jun 2016 00:34:24 -0000

--_005_BLUPR06MB17636F1667538D0F1C0A95D9FE5D0BLUPR06MB1763namp_
Content-Type: multipart/alternative;
	boundary="_000_BLUPR06MB17636F1667538D0F1C0A95D9FE5D0BLUPR06MB1763namp_"

--_000_BLUPR06MB17636F1667538D0F1C0A95D9FE5D0BLUPR06MB1763namp_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi Glen

Multidimensional Arrays are not directly supported in CBOR but you can enco=
de arrays within arrays.
This should also answer you second question.

[cid:image001.png@01D1C063.79CD7BA0]

For the representation of the is 48 bits of UTC seconds, CBOR don't support=
 directly 48 bits unsigned integer. You can either use a unsigned integer 6=
4 bits (major type 0) or byte string of 6 bytes (major type 2).

All these data types can be tag if such meta information is required. You w=
ill need  to request these tags from IANA. The use of tags is not required =
when the decoder have enough knowledge of the information received to proce=
ss it correctly. By not transmitting tags, you can minimize the payload siz=
e.

Hope this answer some of your questions.

Regards

[cid:image001.jpg@01C868D8.BF0BB7E0]

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-531-3109



From: CBOR [mailto:cbor-bounces@ietf.org] On Behalf Of glenn_engel@keysight=
.com
Sent: Tuesday, June 7, 2016 12:08 AM
To: cbor@ietf.org
Subject: [Cbor] Additional data types

I'm evaluating use of CBOR as a replacement for a proprietary format that i=
s very similar to CBOR.  With the addition of TypedArrays most of our data =
types are supported.  I was pleased to see Null and zero length arrays supp=
orted as well.  The standard seems to be well thought out!

We have several additional data types which I would appreciate being consid=
ered or alternatively educating me on how they may already be included in C=
BOR.


1.       Multidimensional Arrays - perhaps a tag preceding an array of inte=
ger dimensions followed by the array data as a single TypedArray.  Data wou=
ld be in row major format as is used in C, C++, and Python.

2.       Jagged Arrays<https://msdn.microsoft.com/en-us/library/2s05feca.as=
px> or an Array of Arrays.  A tag indicating the dimension of the following=
 jagged array followed by each array.

3.       IEEE1588 Precision Time Protocol Timestamp.  The basic time repres=
entation is 48 bits of UTC seconds and 32 bits of nanoseconds.   An additio=
nal 16 bits of subnanoseconds can also be present.   Rather than a new tag,=
 I initially thought this could be covered by using a Decimal Fraction with=
 -9 as the exponent.  The mantissa would be seconds*1e9+nanoseconds.  Howev=
er, it would appear the RFC restricts the semantic tag for epoch-based date=
/time to ints and floats.   Perhaps if time could be expressed in integer U=
TC milliseconds, microseconds, nanoseconds, and picoseconds accurately that=
 would fill the need.  UTC milliseconds is a very common timestamp method.

4.       Time Duration or Interval.  This is different from a timestamp in =
that it measures a difference in time between two events but with similar p=
recision.  This would represent a TimeSpan or Duration as is used in some l=
ibraries.

Thanks in advance for your thoughts on these items,

Glenn Engel
Keysight Technologies

--_000_BLUPR06MB17636F1667538D0F1C0A95D9FE5D0BLUPR06MB1763namp_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:x=3D"urn:schemas-microsoft-com:office:excel" xmlns:m=3D"http://schema=
s.microsoft.com/office/2004/12/omml" xmlns=3D"http://www.w3.org/TR/REC-html=
40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
p.msonormal0, li.msonormal0, div.msonormal0
	{mso-style-name:msonormal;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:12.0pt;
	font-family:"Times New Roman",serif;}
span.EmailStyle19
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
span.EmailStyle20
	{mso-style-type:personal-reply;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:1505706115;
	mso-list-type:hybrid;
	mso-list-template-ids:-1807072546 67698703 67698713 67698715 67698703 6769=
8713 67698715 67698703 67698713 67698715;}
@list l0:level1
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level2
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level3
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level4
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level5
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level6
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level7
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level8
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level9
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-CA" link=3D"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span style=3D"color:#1F497D;mso-fareast-language:EN=
-US">Hi Glen<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D;mso-fareast-language:EN=
-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D;mso-fareast-language:EN=
-US">Multidimensional Arrays are not directly supported in CBOR but you can=
 encode arrays within arrays.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D;mso-fareast-language:EN=
-US">This should also answer you second question.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D;mso-fareast-language:EN=
-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><img width=3D"492" hei=
ght=3D"302" id=3D"Picture_x0020_1" src=3D"cid:image001.png@01D1C063.79CD7BA=
0"></span><span style=3D"color:#1F497D;mso-fareast-language:EN-US"><o:p></o=
:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D;mso-fareast-language:EN=
-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D;mso-fareast-language:EN=
-US">For the representation of the is 48 bits of UTC seconds, CBOR don't su=
pport directly 48 bits unsigned integer. You can either use a unsigned inte=
ger 64 bits (major type 0) or byte string
 of 6 bytes (major type 2).<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D;mso-fareast-language:EN=
-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D;mso-fareast-language:EN=
-US">All these data types can be tag if such meta information is required. =
You will need&nbsp; to request these tags from IANA. The use of tags is not=
 required when the decoder have enough knowledge
 of the information received to process it correctly. By not transmitting t=
ags, you can minimize the payload size.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D;mso-fareast-language:EN=
-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D;mso-fareast-language:EN=
-US">Hope this answer some of your questions.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D;mso-fareast-language:EN=
-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D;mso-fareast-language:EN=
-US">Regards<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"717" style=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"137" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><img width=3D"96" heig=
ht=3D"18" id=3D"Picture_x0020_2" src=3D"cid:image003.jpg@01D1C065.142209E0"=
 alt=3D"cid:image001.jpg@01C868D8.BF0BB7E0"><o:p></o:p></span></p>
</td>
<td width=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt =
0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1F497D">Michel Veill=
ette<br>
System Architecture Director</span><span style=3D"color:#1F497D"><o:p></o:p=
></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1F497D">Trilliant In=
c.<br>
Tel: 450-531-3109</span><span style=3D"color:#1F497D"><o:p></o:p></span></p=
>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D;mso-fareast-language:EN=
-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D;mso-fareast-language:EN=
-US"><o:p>&nbsp;</o:p></span></p>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US">From:</span></b><span lang=
=3D"EN-US"> CBOR [mailto:cbor-bounces@ietf.org]
<b>On Behalf Of </b>glenn_engel@keysight.com<br>
<b>Sent:</b> Tuesday, June 7, 2016 12:08 AM<br>
<b>To:</b> cbor@ietf.org<br>
<b>Subject:</b> [Cbor] Additional data types<o:p></o:p></span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">I&#8217;m evaluating use of CBO=
R as a replacement for a proprietary format that is very similar to CBOR.&n=
bsp; With the addition of TypedArrays most of our data types are supported.=
&nbsp; I was pleased to see Null and zero length arrays
 supported as well.&nbsp; The standard seems to be well thought out!<o:p></=
o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">We have several additional data=
 types which I would appreciate being considered or alternatively educating=
 me on how they may already be included in CBOR.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo2"><![if !supportLists]><span lang=3D"EN-US"><span style=3D"mso-list:I=
gnore">1.<span style=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=3D"EN-US">Multidimensional Arrays=
 &#8211; perhaps a tag preceding an array of integer dimensions followed by=
 the array data as a single TypedArray.&nbsp; Data would be in row major fo=
rmat as is used in C, C&#43;&#43;, and Python.<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo2"><![if !supportLists]><span lang=3D"EN-US"><span style=3D"mso-list:I=
gnore">2.<span style=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=3D"EN-US"><a href=3D"https://msdn=
.microsoft.com/en-us/library/2s05feca.aspx">Jagged Arrays</a> or an Array o=
f Arrays.&nbsp; A tag indicating the dimension of the following jagged arra=
y followed by each array.<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo2"><![if !supportLists]><span lang=3D"EN-US"><span style=3D"mso-list:I=
gnore">3.<span style=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=3D"EN-US">IEEE1588 Precision Time=
 Protocol Timestamp.&nbsp; The basic time representation is 48 bits of UTC =
seconds and 32 bits of nanoseconds. &nbsp;&nbsp;An additional 16 bits of su=
bnanoseconds can also be present.&nbsp; &nbsp;Rather than a
 new tag, I initially thought this could be covered by using a Decimal Frac=
tion with -9 as the exponent.&nbsp; The mantissa would be seconds*1e9&#43;n=
anoseconds.&nbsp; However, it would appear the RFC restricts the semantic t=
ag for epoch-based date/time to ints and floats.&nbsp;&nbsp;
 Perhaps if time could be expressed in integer UTC milliseconds, microsecon=
ds, nanoseconds, and picoseconds accurately that would fill the need.&nbsp;=
 UTC milliseconds is a very common timestamp method.<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo2"><![if !supportLists]><span lang=3D"EN-US"><span style=3D"mso-list:I=
gnore">4.<span style=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=3D"EN-US">Time Duration or Interv=
al.&nbsp; This is different from a timestamp in that it measures a differen=
ce in time between two events but with similar precision.&nbsp; This would =
represent a TimeSpan or Duration as is used
 in some libraries.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">Thanks in advance for your thou=
ghts on these items,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">Glenn Engel<o:p></o:p></span></=
p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">Keysight Technologies<o:p></o:p=
></span></p>
</div>
</body>
</html>

--_000_BLUPR06MB17636F1667538D0F1C0A95D9FE5D0BLUPR06MB1763namp_--

--_005_BLUPR06MB17636F1667538D0F1C0A95D9FE5D0BLUPR06MB1763namp_
Content-Type: image/png; name="image001.png"
Content-Description: image001.png
Content-Disposition: inline; filename="image001.png"; size=23220;
	creation-date="Tue, 07 Jun 2016 00:34:15 GMT";
	modification-date="Tue, 07 Jun 2016 00:34:15 GMT"
Content-ID: <image001.png@01D1C063.79CD7BA0>
Content-Transfer-Encoding: base64

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
P3Y1X3R4/AxSAAAAAElFTkSuQmCC

--_005_BLUPR06MB17636F1667538D0F1C0A95D9FE5D0BLUPR06MB1763namp_
Content-Type: image/jpeg; name="image003.jpg"
Content-Description: image003.jpg
Content-Disposition: inline; filename="image003.jpg"; size=1478;
	creation-date="Tue, 07 Jun 2016 00:34:15 GMT";
	modification-date="Tue, 07 Jun 2016 00:34:15 GMT"
Content-ID: <image003.jpg@01D1C065.142209E0>
Content-Transfer-Encoding: base64

/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAoHBwkHBgoJCAkLCwoMDxkQDw4ODx4WFxIZJCAmJSMg
IyIoLTkwKCo2KyIjMkQyNjs9QEBAJjBGS0U+Sjk/QD3/2wBDAQsLCw8NDx0QEB09KSMpPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT3/wAARCAASAGADASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD0nWda
ktpTa2hVZFAaaZl3CIHoAP4nPYVEJni0syCSRZJHAEsku9wexYDjGcAgdAaddpZW1wUmDvKzNLt4
UuW43LnqQOMDmmtNbataCzVPIkTOxMEZ4IwMgEVHU4JOTk7vXohLyHUPEWk2k2l6i2myBj52F3cj
gr+Brj9HPiPWNdvtMXxBPE1pnMhGQ2DjpXoek25toZ0IIBuHYZ9Ca4nwaf8AivPEHPZ//Q67cPN+
zl5LsVKLbhzbvc2bDxppVo1tpdxqEl5eqVheZYjtd84zn61g3WuXkPh3Wp7XW7i5mhukQMY9hhGT
8oz1/wDrVY+F8MUh1d3jRmW4XaxUEj73Suaj/wCRW8S/9f0f/oTV0RpwU2l0a/FkSqTcE31udNBr
Wot4t0O2a9l8ifT0klTjDMVYlj78Ve8P+I4LLQr2/wBQ1ae/hiuAhkaEqUz0AHesOA/8Vr4e/wCw
Wn/oD1R0fVrjR/A+pXFqiNI1+se51DBARnOD9MfjRKkpK1u35sUaji737/kjs4viR4ellWP7RKm4
43PEQB9TVzV/Gej6JdrbXkz+aUD4SMsMHpzXmmv3813pSibW7G7G4N5MMGxgfXOB0rodPAk+I+kB
8NnS4zzzn92aiWGglza9fw+RccRNu3p+PzOp0vxrourzNFa3LeaqltjoVJAGTj1rntK+Iiz+JriG
6l/4l0hCWoWH5txIAz+tP8RRRxfE3w+Y0VS6/NtGM8tVLSr3T9M+Jmri9McaSHy4QUyN5K4xxxSj
Sp8raV7q/wCI5VJ8yTezt+B32pwRT2EyzRJIoXIDqCAfWvOtIvroakIhcziPf9wSHHX0oorzZfEY
Yn+Oj09e9UbWztob+aWK3iSSQHe6oAW57nvRRXRD4ZHoS3iFhaW9oZvs0EUO85by0C5PqcVCum2X
2aeP7Hb7JHDOvlLhj6kY5oorVfG/kZfZXzJPsVqLqCUW0PmRx7UfyxlRg8A9hSQadZpZTQraW4ic
5ZBGNrH3GKKKHt936iXX5lY6LpmD/wAS6z/78L/hVpbO2S/imW3iEqJsVwg3BcdAfSiirq7fJkU9
/uJLm1t5dRgmkgiaWMfI7ICy/Q9qjudOs5r1J5bS3ebg+Y0aluDxziiis6e69P1NJ9fU/9k=

--_005_BLUPR06MB17636F1667538D0F1C0A95D9FE5D0BLUPR06MB1763namp_--


From nobody Tue Jun  7 17:18:22 2016
Return-Path: <glenn_engel@keysight.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 0A1F112D900 for <cbor@ietfa.amsl.com>; Tue,  7 Jun 2016 17:18:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.625
X-Spam-Level: 
X-Spam-Status: No, score=-5.625 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-1.426] 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 rk7MVViYrfnj for <cbor@ietfa.amsl.com>; Tue,  7 Jun 2016 17:18:17 -0700 (PDT)
Received: from cos-us-iron02k.cos.keysight.com (cos-us-iron02k.cos.keysight.com [192.25.5.36]) (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 B2AB712D901 for <cbor@ietf.org>; Tue,  7 Jun 2016 17:18:16 -0700 (PDT)
X-IPAS-Result: A2B+AgBaY1dXbRUYjJxZAxkBAQEBAYJSgSR9Brx5IgZxhHoCgX0RAQEBAQEBARIYMy+ERQEBAQEDBSAIAVsCAQgRAQMBAQYBAQECCBUHAgUQDQIMFAMGCAEBBAERAQgGiCEOvHYBAQEBAQEBAQEBAQEBAQEBAQEBAQEODop0hEIVChURgmWCLgWVXXgDgXOFFwFsLIIIiCeEDohaj1cINIIkAxyBS24BiQ8BfgEBAQ
X-IronPort-AV: E=Sophos;i="5.26,436,1459836000";  d="jpg'145?scan'145,208,217,145";a="32331163"
X-Attachment-OP-filename: image001.jpg, image002.jpg
Received: from wcosexch02k.cos.is.keysight.com (HELO 2k10hubs.keysight.com) ([156.140.24.21]) by cos-us-iron02k.cos.keysight.com with ESMTP/TLS/AES128-SHA256; 07 Jun 2016 18:01:26 -0600
Received: from wcosexch01k.cos.is.keysight.com ([169.254.3.99]) by wcosexch02k.cos.is.keysight.com ([169.254.2.149]) with mapi id 14.03.0266.001; Tue, 7 Jun 2016 18:18:12 -0600
From: <glenn_engel@keysight.com>
To: <Michel.Veillette@trilliantinc.com>, <cbor@ietf.org>
Thread-Topic: Additional data types
Thread-Index: AdHAP6Oy25pLOQV2Rp6gIejeIb5M2gAEoPxgACDdFeA=
Date: Wed, 8 Jun 2016 00:18:12 +0000
Message-ID: <04EFF12F483FA149B07653989B86861F2178DD15@wcosexch01k.cos.is.keysight.com>
References: <04EFF12F483FA149B07653989B86861F2178C6CF@wcosexch01k.cos.is.keysight.com> <BLUPR06MB17636F1667538D0F1C0A95D9FE5D0@BLUPR06MB1763.namprd06.prod.outlook.com>
In-Reply-To: <BLUPR06MB17636F1667538D0F1C0A95D9FE5D0@BLUPR06MB1763.namprd06.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
x-originating-ip: [156.140.13.70]
x-tm-as-product-ver: SMEX-11.0.0.4255-8.000.1202-22378.003
x-tm-as-result: No--42.329200-8.000000-31
x-tm-as-user-approved-sender: No
x-tm-as-user-blocked-sender: No
Content-Type: multipart/related; boundary="_005_04EFF12F483FA149B07653989B86861F2178DD15wcosexch01kcosi_"; type="multipart/alternative"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/3V-sdmdDAKGUAaWGBcf_C6C90j8>
Subject: Re: [Cbor] Additional data types
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.17
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: Wed, 08 Jun 2016 00:18:20 -0000

--_005_04EFF12F483FA149B07653989B86861F2178DD15wcosexch01kcosi_
Content-Type: multipart/alternative;
	boundary="_000_04EFF12F483FA149B07653989B86861F2178DD15wcosexch01kcosi_"

--_000_04EFF12F483FA149B07653989B86861F2178DD15wcosexch01kcosi_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Thanks for the examples.  cbor.me is a handy tool!

In my case I want to deserialize into a strongly typed language (C++ and C#=
) so it is desirable to know the type of the array for memory allocation pu=
rposes.  Another objective is to be able to round-trip from strongly typed =
into CBOR and back again resulting in the same types.  This results in some=
what larger encoding in some cases such as a float 1.0 using 4 bytes instea=
d of 2 but it also speeds up serialization.

I think of the 'array'  major type as more of a 'list' which maps nicely in=
 javascript but for analytic data going into C++ for signal processing it's=
 important to keep it as a native array so the type and dimension propertie=
s are needed up front for efficient memory allocation of contiguous memory.

If I would like to see a multidimensional array tag that could use the new =
TypedArrays would that be something I would propose to IANA or would it be =
a tweak to the existing TypedArray proposal?  I'm thinking a tag that is fo=
llowed by two items - an array of dimensions followed by a single TypedArra=
y.

What about a TypedArray of strings, another common data type.

Thanks in advance for your advice and insight.

--
Glenn

From: Michel Veillette [mailto:Michel.Veillette@trilliantinc.com]
Sent: Monday, June 06, 2016 5:34 PM
To: ENGEL,GLENN (K-Labs,ex1) <glenn_engel@keysight.com>; cbor@ietf.org
Subject: RE: Additional data types

Hi Glen

Multidimensional Arrays are not directly supported in CBOR but you can enco=
de arrays within arrays.
This should also answer you second question.

[cid:image001.png@01D1C09B.A7C9A910]

For the representation of the is 48 bits of UTC seconds, CBOR don't support=
 directly 48 bits unsigned integer. You can either use a unsigned integer 6=
4 bits (major type 0) or byte string of 6 bytes (major type 2).

All these data types can be tag if such meta information is required. You w=
ill need  to request these tags from IANA. The use of tags is not required =
when the decoder have enough knowledge of the information received to proce=
ss it correctly. By not transmitting tags, you can minimize the payload siz=
e.

Hope this answer some of your questions.

Regards

[cid:image001.jpg@01C868D8.BF0BB7E0]

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-531-3109



From: CBOR [mailto:cbor-bounces@ietf.org] On Behalf Of glenn_engel@keysight=
.com<mailto:glenn_engel@keysight.com>
Sent: Tuesday, June 7, 2016 12:08 AM
To: cbor@ietf.org<mailto:cbor@ietf.org>
Subject: [Cbor] Additional data types

I'm evaluating use of CBOR as a replacement for a proprietary format that i=
s very similar to CBOR.  With the addition of TypedArrays most of our data =
types are supported.  I was pleased to see Null and zero length arrays supp=
orted as well.  The standard seems to be well thought out!

We have several additional data types which I would appreciate being consid=
ered or alternatively educating me on how they may already be included in C=
BOR.


1.      Multidimensional Arrays - perhaps a tag preceding an array of integ=
er dimensions followed by the array data as a single TypedArray.  Data woul=
d be in row major format as is used in C, C++, and Python.

2.      Jagged Arrays<https://msdn.microsoft.com/en-us/library/2s05feca.asp=
x> or an Array of Arrays.  A tag indicating the dimension of the following =
jagged array followed by each array.

3.      IEEE1588 Precision Time Protocol Timestamp.  The basic time represe=
ntation is 48 bits of UTC seconds and 32 bits of nanoseconds.   An addition=
al 16 bits of subnanoseconds can also be present.   Rather than a new tag, =
I initially thought this could be covered by using a Decimal Fraction with =
-9 as the exponent.  The mantissa would be seconds*1e9+nanoseconds.  Howeve=
r, it would appear the RFC restricts the semantic tag for epoch-based date/=
time to ints and floats.   Perhaps if time could be expressed in integer UT=
C milliseconds, microseconds, nanoseconds, and picoseconds accurately that =
would fill the need.  UTC milliseconds is a very common timestamp method.

4.      Time Duration or Interval.  This is different from a timestamp in t=
hat it measures a difference in time between two events but with similar pr=
ecision.  This would represent a TimeSpan or Duration as is used in some li=
braries.

Thanks in advance for your thoughts on these items,

Glenn Engel
Keysight Technologies

--_000_04EFF12F483FA149B07653989B86861F2178DD15wcosexch01kcosi_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
p.msonormal0, li.msonormal0, div.msonormal0
	{mso-style-name:msonormal;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:12.0pt;
	font-family:"Times New Roman",serif;}
span.EmailStyle19
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
span.EmailStyle20
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
span.EmailStyle21
	{mso-style-type:personal-reply;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:1505706115;
	mso-list-type:hybrid;
	mso-list-template-ids:-1807072546 67698703 67698713 67698715 67698703 6769=
8713 67698715 67698703 67698713 67698715;}
@list l0:level1
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level2
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level3
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level4
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level5
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level6
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level7
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level8
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level9
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Thanks for the example=
s.&nbsp; cbor.me is a handy tool!&nbsp;
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">In my case I want to d=
eserialize into a strongly typed language (C&#43;&#43; and C#) so it is des=
irable to know the type of the array for memory allocation purposes.&nbsp; =
Another objective is to be able to round-trip from
 strongly typed into CBOR and back again resulting in the same types.&nbsp;=
 This results in somewhat larger encoding in some cases such as a float 1.0=
 using 4 bytes instead of 2 but it also speeds up serialization.<o:p></o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">I think of the &#8216;=
array&#8217;&nbsp; major type as more of a &#8216;list&#8217; which maps ni=
cely in javascript but for analytic data going into C&#43;&#43; for signal =
processing it&#8217;s important to keep it as a native array so the type an=
d dimension
 properties are needed up front for efficient memory allocation of contiguo=
us memory.
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">If I would like to see=
 a multidimensional array tag that could use the new TypedArrays would that=
 be something I would propose to IANA or would it be a tweak to the existin=
g TypedArray proposal?&nbsp; I&#8217;m thinking
 a tag that is followed by two items - an array of dimensions followed by a=
 single TypedArray.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">What about a TypedArra=
y of strings, another common data type.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Thanks in advance for =
your advice and insight.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">--<o:p></o:p></span></=
p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Glenn<o:p></o:p></span=
></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b>From:</b> Michel Veillette [mailto:Michel.Veillet=
te@trilliantinc.com]
<br>
<b>Sent:</b> Monday, June 06, 2016 5:34 PM<br>
<b>To:</b> ENGEL,GLENN (K-Labs,ex1) &lt;glenn_engel@keysight.com&gt;; cbor@=
ietf.org<br>
<b>Subject:</b> RE: Additional data types<o:p></o:p></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D">Hi Glen=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D">Multidi=
mensional Arrays are not directly supported in CBOR but you can encode arra=
ys within arrays.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D">This sh=
ould also answer you second question.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><img width=3D"615" hei=
ght=3D"378" id=3D"Picture_x0020_1" src=3D"cid:image001.jpg@01D1C0E0.9078FAF=
0" alt=3D"cid:image001.png@01D1C09B.A7C9A910"></span><span lang=3D"EN-CA" s=
tyle=3D"color:#1F497D"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D">For the=
 representation of the is 48 bits of UTC seconds, CBOR don't support direct=
ly 48 bits unsigned integer. You can either use a unsigned integer 64 bits =
(major type 0) or byte string of 6 bytes
 (major type 2).<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D">All the=
se data types can be tag if such meta information is required. You will nee=
d&nbsp; to request these tags from IANA. The use of tags is not required wh=
en the decoder have enough knowledge of the
 information received to process it correctly. By not transmitting tags, yo=
u can minimize the payload size.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D">Hope th=
is answer some of your questions.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D">Regards=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"896" style=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"172" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><img width=3D"120" hei=
ght=3D"23" id=3D"Picture_x0020_2" src=3D"cid:image002.jpg@01D1C0E0.9078FAF0=
" alt=3D"cid:image001.jpg@01C868D8.BF0BB7E0"></span><span style=3D"color:#1=
F497D"><o:p></o:p></span></p>
</td>
<td width=3D"724" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt =
0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1F497D">Michel Veill=
ette<br>
System Architecture Director</span><span style=3D"color:#1F497D"><o:p></o:p=
></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1F497D">Trilliant In=
c.<br>
Tel: 450-531-3109</span><span style=3D"color:#1F497D"><o:p></o:p></span></p=
>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b>From:</b> CBOR [<a href=3D"mailto:cbor-bounces@ie=
tf.org">mailto:cbor-bounces@ietf.org</a>]
<b>On Behalf Of </b><a href=3D"mailto:glenn_engel@keysight.com">glenn_engel=
@keysight.com</a><br>
<b>Sent:</b> Tuesday, June 7, 2016 12:08 AM<br>
<b>To:</b> <a href=3D"mailto:cbor@ietf.org">cbor@ietf.org</a><br>
<b>Subject:</b> [Cbor] Additional data types<o:p></o:p></p>
</div>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal">I&#8217;m evaluating use of CBOR as a replacement fo=
r a proprietary format that is very similar to CBOR.&nbsp; With the additio=
n of TypedArrays most of our data types are supported.&nbsp; I was pleased =
to see Null and zero length arrays supported as well.&nbsp;
 The standard seems to be well thought out!<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">We have several additional data types which I would =
appreciate being considered or alternatively educating me on how they may a=
lready be included in CBOR.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo2"><![if !supportLists]><span style=3D"mso-list:Ignore">1.<span style=
=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>Multidimensional Arrays &#8211; perhaps a tag prece=
ding an array of integer dimensions followed by the array data as a single =
TypedArray.&nbsp; Data would be in row major format as is used in C, C&#43;=
&#43;, and Python.<o:p></o:p></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo2"><![if !supportLists]><span style=3D"mso-list:Ignore">2.<span style=
=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]><a href=3D"https://msdn.microsoft.com/en-us/library=
/2s05feca.aspx">Jagged Arrays</a> or an Array of Arrays.&nbsp; A tag indica=
ting the dimension of the following jagged array followed by each array.<o:=
p></o:p></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo2"><![if !supportLists]><span style=3D"mso-list:Ignore">3.<span style=
=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>IEEE1588 Precision Time Protocol Timestamp.&nbsp; T=
he basic time representation is 48 bits of UTC seconds and 32 bits of nanos=
econds. &nbsp;&nbsp;An additional 16 bits of subnanoseconds can also be pre=
sent.&nbsp; &nbsp;Rather than a new tag, I initially thought
 this could be covered by using a Decimal Fraction with -9 as the exponent.=
&nbsp; The mantissa would be seconds*1e9&#43;nanoseconds.&nbsp; However, it=
 would appear the RFC restricts the semantic tag for epoch-based date/time =
to ints and floats.&nbsp;&nbsp; Perhaps if time could be
 expressed in integer UTC milliseconds, microseconds, nanoseconds, and pico=
seconds accurately that would fill the need.&nbsp; UTC milliseconds is a ve=
ry common timestamp method.<o:p></o:p></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo2"><![if !supportLists]><span style=3D"mso-list:Ignore">4.<span style=
=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>Time Duration or Interval.&nbsp; This is different =
from a timestamp in that it measures a difference in time between two event=
s but with similar precision.&nbsp; This would represent a TimeSpan or Dura=
tion as is used in some libraries.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Thanks in advance for your thoughts on these items,<=
o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Glenn Engel<o:p></o:p></p>
<p class=3D"MsoNormal">Keysight Technologies<o:p></o:p></p>
</div>
</body>
</html>

--_000_04EFF12F483FA149B07653989B86861F2178DD15wcosexch01kcosi_--

--_005_04EFF12F483FA149B07653989B86861F2178DD15wcosexch01kcosi_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=26086;
	creation-date="Wed, 08 Jun 2016 00:18:11 GMT";
	modification-date="Wed, 08 Jun 2016 00:18:11 GMT"
Content-ID: <image001.jpg@01D1C0E0.9078FAF0>
Content-Transfer-Encoding: base64

/9j/4AAQSkZJRgABAQEAeAB4AAD/2wBDAAoHBwkHBgoJCAkLCwoMDxkQDw4ODx4WFxIZJCAmJSMg
IyIoLTkwKCo2KyIjMkQyNjs9QEBAJjBGS0U+Sjk/QD3/2wBDAQsLCw8NDx0QEB09KSMpPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT3/wAARCAF6AmcDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD2DNGa
ZmkaRURndgqqMlieAKAJM0ZrM0rXtP1vz/7Pn83yG2v8pGDWhmgB+aM0zNGaAH5ozUbSBEZmOFUZ
JqOC6iuU3xNke/BoAsZozTM0ZoAfmjNUtR1O10mza6vphFEvc9SfQDua5YfE/TPOwbO7EOf9bjj8
utAHbZozWPZeJtN1G/htLKcTSSwmb5f4QPX0NauaAH5ozTM1Xvr+302ykuruQRwxjJJ/kKALeaM1
hSeKrP7Pps9sj3EV/L5Sshx5Z/2q2icEigBxYAEk4A5JqsL5mGY7S4dT0YAYP61JOf8AR5P90/yq
xD/qI/8AdH8qAKn2yX/nxuf/AB3/ABo+2S/8+Nz/AOO/40LqE0rSeRZvIiOU3bwMkU+w1GO/QlVZ
HUkFG68HH4igBn2yX/nxuf0/xo+2S/8APjc/+O/41fooAofbJf8Anxuf0/xo+2S/8+Nz/wCO/wCN
SJqds+qyacrn7VHGJWXB4UnAOfwq3QBQ+2S/8+Nz/wCO/wCNH2yX/nxuf/Hf8av0UAUPtkv/AD43
P6f40fbJf+fG5/8AHf8AGr9FAFD7ZL/z43P6f40fbJf+fG5/8d/xq/RQBQ+2S/8APjc/+O/40fbJ
f+fG5/T/ABq/RQBQ+2S/8+Nz+n+NH2yX/nxuf/Hf8av0UAUPtkn/AD43P6f40fbJf+fG5/8AHf8A
Gr9FAFD7ZL/z43P/AI7/AI0fbJf+fG5/T/Gr9FAFD7ZL/wA+Nz/47/jR9sl/58bn/wAd/wAav0UA
UPtkv/Pjc/p/jR9sl/58bn/x3/Gr9FAFD7ZL/wA+Nz+n+NH2yX/nxuf0/wAav0UAUPtkv/Pjc/8A
jv8AjR9sl/58bn9P8av0UAUPtkv/AD43P/jv+NH2yX/nxuf/AB3/ABq/RQBQ+2S/8+Nz+n+NH2yX
/nxuf0/xq/RQBQ+2S/8APjc/+O/40fbJf+fG5/T/ABq/RQBQ+2S/8+Nz/wCO/wCNH2yX/nxuf0/x
q/RQBQ+2S/8APjc/+O/40fbJf+fG5/T/ABq/RQBQ+2S/8+Nz+n+NH2yX/nxuf0/xq/RQBQ+2S/8A
Pjc/+O/40fbJf+fG5/8AHf8AGr9FAFD7ZL/z43P6f40fbJf+fG5/8d/xq/WRqOrz2148VvCjpCgk
mLE5AJ7e+OaALH2yX/nxuf0/xp0d3vkCSQyxE/d345q3G4kjV1+6wBFV7z79v/10/oaAJM0Zpma5
XWvEd5bak9ta4RYzjpkk0AdbmjNclFeeI5ovMQfL/uVSPifVYJdsrqSp5UrigDus0Zqva3H2m1im
xjzFDY9KlzQA/NGao6nqtrpFmbq+k8uEELkDJye2Kx/+FgeH/wDn7l/78tQB02aM1jaX4p0rWrk2
9jcM8oXdtZCvH41rZoAx/FPOnL/vCik8UHOmr/viigDWzXn/AI61q7mvn0mMNDaoAZG7ze30rvM1
ma5olvrdoY5MJMo/dyjqD6H2oA4rRvFn9gWnkWfh93J5eXzcFz+VdX4a8Uy+IJp45dMks/KXcGZt
wb26daPCdtq+n2s9tqpBjjbFuTgnHf8ACt4tmgB+ajnmMULOFLlR90d6M0u6gCgdUlYEG0yD1G+o
Edon8+IbCOqZ6j0rUdm8ttmN2OM+tVba1cHzLg7nznBoAuo+9FbGNwzg9qdmo80ZoA4vxNH/AGv4
30/TLliLVQDt7EkZ/pXR6tp7tpD2ml2VoWYbQJcKFHrWb4r8Pz6p5N7pz7L635X/AGhWUfE3it4/
sg0dBc/d8/n88dKALfhbwnfaHrH2q5FuEMTIfLbJJNdjmsTw1ZajY6YU1a6a4uHcv8xyUB7ZrXzQ
A8tgE4Jx2HU15f4i1W98Q6wbZoZI4YZCkVqR8xYdyPWvTgeRXn1nb3A+IfmmCYR/bHO8oduMdc0A
Zmj3t1oOrrA1s0sbyqJbVh8wfsyj1r1YPuAbBBPOG6j6155rFvcP4/8AMWCZo/tMJ3hDtxgd69BZ
vmP1oAJTmGT/AHTVyH/UR/7o/lVGQ/un/wB01eh/1Mf+6KAM/TXxDP8A9fEn86pT2JsjFcRXU3yT
DCEjaAzcj9aS31K1tftEM8jI4uHOPLY8E8dBSXep2tzFHDBIzyNNGQBGw6H3FAHRVzK6jrWt3Fw+
jSWltaW0piDTxlzMy8NjBG0Z47101c1HpOtaRdTpoz2cllcymUrclg0LNy23A5555oW4+hnzDUn8
f3UdgYI5206PfLINyodx/h7/AJ1aTxVdadaanDqkSS32nlB+54Wbf90gdvepLvRtai8SSavp01o5
a0SAwzZAdgSSSQOOvahPCkt5Y6i2p3C/b79lZnhHyxbPuBc9QPfrT6a/1r/kD3+78uo2bUNf0byb
vVGtLi0lkWN4oYyrQ7jjOSTux+FKdV1e+8WX2l2T20NvbRQy+bIhYndnIxkenWlbSdc1bybbWZbN
LSGRZC1sW3zFTkZBGB+FXbHRprXxTqWpM8Zhuooo0UZ3ArnOfzpx8/62JewzxdrF3omirc2KRvOZ
44wsnQ7mAP8AOs+XVPEFtriaU5tJJL1GkgnVCBAB1DDPzfpU+q6Hq2saO1rdXNsZhepNGwUgCJXD
AH3wKv3OkzTeJ7HUldBDbxOjKc7iW6YpJKyv5/lp+I35f1r/AJGXF4pn03S9WfWRE9xpjKrvECqy
BvunHOKoaX43eXVrWCTUbG+S7fZ5VtE6tAT0yT94flWrceFXvZNcW4mVYtQMbRlPvIU6E/jirOlR
a+lwiakNO8hBjzIN2+T6gjA/Chbq/l/wf6+4T208/wDgG5RRRSGFFFFABRRRQAUUUUAFFFFABRRR
QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBialJNHqX+k3Fxb2bKAkkJGA3fd
xV210yCKOfMkk5uR87yNksMY/lSa1P5GlTtgEsNoz0545qjFqUsMEcOm2jXUFuoV5c4zj+760ARX
0RsVW2sb28kuiP3UIYEKP9rjgVrXG7bbb8bt4zj1xWdpl3C+tTGA7lukDnI+ZGHBB9K073rD/wBd
P6GgBua5VII5/GE/mDIVs4rps1zN8skGsyzx8NuyPegDs1ZdgKkBQPyrgNaKXVxdToBjfkGr93rd
zPCYYYjDu4ds9fpWe0TPEExx396AOt0w/wDErtf+uYq1mqtkNllAvTCAVNmgDM8T3cNpozSXFgb9
N4Hk+/rXFf29pv8A0KA/77P+Fdzrb6munMdFCNd7hjeARt79a5vzvHv9yD/v0lAFjwnqlnd6m8dv
oH2B9hPmg549K6/Nc3oMvidr1hriRC228FUVTu/CugzQBl+Jv+QaP98UUniT/kGD/fFFAGlmjNSf
Y5fVfzo+xy/7P50AR5ozUn2OX1X86Pscvqv50AR5ozUn2OX1X86Pscvqv50AR5ozUn2OX/Z/Oj7H
L6r+dAEeaM1J9jl/2fzo+xy/7P50AR5pd7Yxk0/7HL6r+dH2OX1X86AI80ZqT7HL6r+dH2OX/Z/O
gCPNL5jYxuOPTNP+xy+q/nR9jl9V/OgBnmMBgMcemaTNSfY5fVfzo+xy+q/nQBGfmVh6girEd4iR
qrLJkAA4XNR/Y5fVfzpfsk3qPzoAcbmAnPlyf98GgXMAOfLk/wC+DTfsk3qPzo+yTeo/OgCX7dH/
AHZP++DR9uj/ALsn/fBqL7JN6j86Psk3qPzoAl+3R/3ZP++DR9uj/uyf98Govsk3qPzo+yTeo/Og
CX7dH/dk/wC+DR9uj/uyf98Govsk3qPzo+yS+o/OgCX7dH/dk/74NH26P+7J/wB8Gofsk3qPzpfs
k3qPzoAl+3R/3ZP++DR9uj/uyf8AfBqL7JN6j86Psk3qPzoAl+3R/wB2T/vg0fbo/wC7J/3wai+y
Teo/Oj7JN6j86AJft0f92T/vg0fbo/7sn/fBqL7JN6j86Psk3qPzoAl+3R/3ZP8Avg0fbo/7sn/f
BqL7JN6j86T7JN6j86AJvt0f92T/AL4NH26P+7J/3wai+yTeo/Oj7JL6j86AJft0f92T/vg0fbo/
7sn/AHwai+yTeo/Oj7JN6j86AJft0f8Adk/74NH26P8Auyf98Govsk3qPzo+yTeo/OgCX7dH/dk/
74NH26P+7J/3wai+yTeo/Oj7JN6j86AJft0f92T/AL4NH26P+7J/3wai+yTeo/Oj7JN6j86AJft0
f92T/vg0fbo/7sn/AHwah+yTeo/Ol+yTeo/OgCX7dH/dk/74NH26P+7J/wB8Gofsk3qPzpfsk3qP
zoAl+3R/3ZP++DR9uj/uyf8AfBqL7JN6j86Psk3qPzoAl+3R/wB2T/vg0fbo/wC7J/3wai+yTeo/
Oj7JL6j86AJft0f92T/vg0fbo/7sn/fBqL7JN6j86Psk3qPzoAl+3R/3ZP8Avg0fbo/7sn/fBqL7
JN6j86Psk3qPzoAl+3R/3ZP++DR9uj/uyf8AfBqL7JN6j86T7JN6j86AJHu4ZEKvG7KeoMeQaVLu
GNQqRuqjoBHgCo/sk3qPzo+yTeo/OgBy3FusjSLCwdurCPk/jTJ5xOY9qsAp3EsMUv2Sb1H50n2S
X1X86AI81HJBFKcyICfWrH2OX/Z/Oj7HL6r+dAFT7Hb/APPIUotLcEERDNWvscvqv50fY5fVfzoA
jzRmpPscv+z+dH2OX/Z/OgCPNGak+xy+q/nQbOUDqv50AR5ozVWW8jhlaN925euBTP7Qi9H/ACoA
h8RHOlj/AHxRTNccS6Mjr0Z+M0UAdTRRTXdY0LOQFUZJPYUAOorFHjHw+z7V1e0LE4wHrUa6gS1N
y0qCBV3mTPGPXNaSpVIfFFr5CumTUUyKVJ4kliYMjgMrDoQafWYwooooAKKKKACiimu6xoXdgqqM
knoKAHUVXkvraFYWknRVnYJGSfvk9AKsU2mtwCiqeqanBpNi9zcnCr0A6sfSuAvvHOp3MjfZitvH
n5QBk496ltIwq4iFLSR6XRXk/wDwlmt/8/7/APfK/wCFSweMtZhfc1yJR6Oox+lLmRisdT7M9Tor
D8OeJoddjZGXyrlBlkz1HqK3Krc64TU1zRCiiigoKKKKACiiigAooooAKKKKACiiigAooooAKKKK
ACiisnX/ABBBoVsHkHmTPwkYPX/61BMpKKuzWory658aaxcOSk6wj0RR/WoP+Es1v/n/AH/75X/C
p5kcjx1Psz1iivMbPxtq1s4M0i3C55DjH8q73RdZg1uyE8HykcOh6qaaaZtSxEKrstzRooqGK7gm
nlgimR5YceYinJTPTNM3JqKz7/XtL0ueOG+voIJZPuo74Jq+rB1DKQVPII70ALRVHUda07SNn9o3
kNt5n3PMbG76Umn65puqsy2F7BcMvUI2SKv2U+Xn5XbuK6L9FFRyzxw7PNdU3sFXJxk+lRuMkooo
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACkb7p+lLSN90/SgDltQ/4
/pfrVerGof8AH9L9ar0AS6p/yL0P+/8A1oo1T/kXof8Af/rRQB1tVtR/5Bt1/wBcm/lVmqWrzw2+
l3DXE0UKFCu+Vgq5PA5NVBXkrDW5ieAraGTwPpu+GNsxHOVHPzGs6xu5dFXxXZ2pHlWC+dbq43Km
5C2PpntVPw34qbRNCtNNkt7R3gUqZRqEO08k565xzU6SadHoOtiTWtNm1PU1dm23ChQSpCqMnt0r
2J0pqrUc1dSenX7V7/df7zKLVkjYm1fUH0vSzFJb2ouYBJNeSAbYztBwFJ5J9Kg0jxS63uo2l5dR
3q2cH2j7RHF5eRjkFaxLi5soptGu2utN1FLO0EL2bXUY2vgfOMnFS295aXniC/uL/UNMgsruy+zo
iXSExdsHnk/Sl9WjyO8dNemt7/ft6ISk7L5fpcvXOr+Iv+EYm8QW8tsIzCZY7Nos7V7Evnk45xVi
917VRP4fhs/JLaihMxdfu/KDkfTPSue1LX3svBdzo6XGnSeTbmNLpLpCroOgCZ3bsVojUNOkvfDk
8eqWBis4WExa5UFcqMcZ9qp0LK7grXlbTpy6X+ffUaennZmxY6vfWGu3Ol6tPHciO1N2k6R+X8oO
CCtV4NS16/0o63by26W+GeOyMeS6A937E49Kq3N9pdz4ze9fVNP+wyae1szfaUzuLdMZ9Kp2uuHT
tFOhw3emSqFaOK9+2IEVSeMrnOQD2rNULpSjFXdr3WnW/wCm2vYd9fL/AIC/4Jqah4sknTSvsk6W
FvqERl+2TR71Q/3MdMn3pdZOqT+C9VEl/aSbYmKXMKg+YmOQV6A9uDVZtW03SdGs9OtZ9J1Ozhi8
uSJ7lA5PqNx24rPsv7NNnrQXUdO0+LUISkVkLpGWJsfe4OBn2qo0krSjGyT7Xvr960+QReqv5GrH
fahpOheHUa4iuGurmKJmMIGEK9APXjrV3+0NU1vU76DSbmGzgsXEZkeLzDK+ORjIwBWDJqlvfaZo
Ucl1YQS2F5G0qteRn5FBG4EH9KsQ63aaBqV/Lp9zYX1vfS+aFW8jRomxznJ5H0olRbu1H3teitv9
22xKdkvl+v8AwDP8W6le3aWUOoW5tp0Us8ecgnJGR9cVzZIHWtvxEZrpLW+nvre9ZwUZ7cgohznb
kegNZVrdSWc3mxBC2MfOgYfka8WurVJL+vxPJxH8V3INy+o/OpZreW3KCZCu9dyk9CPar39v3v8A
ctP/AAGT/CpNX119Utbe38tEjhXrsAJP4dBWfQztCz1IvD901nrtpIpIzIEOO4PFevV5BoNs13rl
nGuciQN+XNev1UD0MBflYUUUVZ3hRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV5X4wumufEl
wrE4hxGBXqleVeL7ZrfxJdFs4lIkH41Mtjix1/Zr1MmGCW5lEcKF3PYVGSFYgkZBwea09E1l9Hnd
hGrxyKVcFQT+FB1+83HalpjPGbZOn5VB5qUeW7epmAg9Dmum8BXTRa8YATtmjOR9Oawbu+lvmVph
ECowPLjCfyrd8B27S+IPOAO2GNs/jxQty6H8WPKeg6hBcXNjLFaXP2aZxhZdu7b74rkvA2nJpXiX
xLapLNNtliZpJm3MzFMkk121c/oml3dn4n168njCwXbxGFgwO4BcHjtzW0d36fqj3HsM1Swg0e0v
7m20y41K4vCWdeHOcYxz0X6UvgQIvhCyjS5W48tSrMCflOeV59OlJLc+ItOuriNbIapDK5aCRJEi
8lf7rA9fqKseFNDl0LSniuJFe4nme4lKfdDMckD2pR2fy/4YJGL4tnNr418Pyi0luyqTfuYlBY/L
2B4pl1qEV54o0b7Rp93pOyRiksyKvmnH+r+Unr70vivUI7TxZpV7DJazNYiRZoGukjcblwPvGobv
W7bxHd6f9tuLHTrezuBcNvvI3aQjoBtPHWvapwbp03y6crV76q7l0+fYzm9zfsdanj1XV7TUmQC0
AmiYDGYiM/p0rmtTl1jVbTQLuS8it2nvQUQQBtoydp688U3xrqWnXd/p8unatY+ZcN9luT5ykeSe
Wzg1oeINT0t7XTDpuo6fM1hOkgh+1IpZRxgEnFKlScHCajrLy2smuvdhN3uv6/rcuajrtzJrb6Pa
X1rZvbxLJPdTgHk9AqkjNRJ4suItP1VGWG7vNPUMHgOVlU9GwOmO4rL1K40Y63Jq4/sjUhcxKstr
LPEXjYdCpbj61a0rVbKxgvZ4bvQbSWbHk2iyIoQDszL1JpOhFU17l9vv0v59/KwX10NPQ7/ULyaG
VdXsdQgkGZI0QRvF9ACSfxxXS15x9q07UtasbmIabpEtvOJJZ0u4yZx3XCnnPvXowIIBByD0NcmM
p8kk7Wv5L9NBxYtFFFcRYUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABSN90/SlpG+6f
pQBy2of8f0v1qvVjUP8Aj+l+tV6AJdU/5F6H/f8A60Uap/yL0P8Av/1ooA62mSwxzxlJo0kQ9VdQ
R+VPqve3D20AaNVZ2dVAY4HJxRewDP7K0/8A58bX/vyv+FH9laf/AM+Nr/35X/Ck36j/AM8rb/vs
/wCFG/Uf+eVt/wB9n/Cr9pLuFhf7K0//AJ8bX/vyv+FH9k6f/wA+Nr/35X/Ck36j/wA8rb/vs/4U
b9R/55W3/fZ/wo9pLuFjPi8F+HoL37ZHpFqs+d27Z3+nStH+ytP/AOfG1/78r/hSb9R/55W3/fZ/
wo36j/zytv8Avs/4U5Vqkvik38xWQv8AZWn/APPja/8Aflf8KP7K0/8A58bX/vyv+FJv1H/nlbf9
9n/CjfqP/PK2/wC+z/hS9pLuOwv9laf/AM+Nr/35X/Cj+ytP/wCfG1/78r/hSb9R/wCeVt/32f8A
CjfqP/PK2/77P+FHtJdwsL/ZWn/8+Nr/AN+V/wAKP7K0/wD58bX/AL8r/hSb9R/55W3/AH2f8KN+
o/8APK2/77P+FHtJdwsQ6joVnqGmvZ+UkSE7l8tQNrevFcBfeDNVs5GEUP2hAeGj6kfSvRd+o/8A
PK2/77P+FG/Uf+eVt/32f8KzkubVmFXDwq6vc8u/4RzWP+gbc/8AfNSweFdYnfb9hkj95OBXpm/U
f+eVt/32f8KN+o/88rb/AL7P+FLkMPqEO7Mvwz4XTREM0zCS6cYLDoo9BXQVT36j/wA8rb/vs/4U
b9R/55W3/fZ/wqkrHZCEYLliXKKp79R/55W3/fZ/wo36j/zytv8Avs/4UFFyiqe/Uf8Anlbf99n/
AAo36j/zytv++z/hQBcoqnv1H/nlbf8AfZ/wo36j/wA8rb/vs/4UAXKKp79R/wCeVt/32f8ACjfq
P/PK2/77P+FAFyiqe/Uf+eVt/wB9n/CjfqP/ADytv++z/hQBcoqnv1H/AJ5W3/fZ/wAKN+o/88rb
/vs/4UAXKKp79R/55W3/AH2f8KN+o/8APK2/77P+FAFyiqe/Uf8Anlbf99n/AAo36j/zytv++z/h
QBcrF8R+HYtdt1+by7iP7j4/Q1e36j/zytv++z/hWfbXmrX4kkgFrGiOY8MSeRVRhzIzqKMlyyV7
nC3PhPWLZyv2N5R6x8ioP+Ec1j/oG3P/AHzXo+3W/wC/Z/kaNut/37P8jR7FfzI43g4eZwNp4Q1e
7cBrYwLnlpeMV6DoWhwaHZeTEd8jcySHqxpm3W/79n+Ro263/fs/yNNUkuqNqVCFJ3SdzWorJ263
/fs/yNG3W/79n+Rp+z80b83ka1FZO3W/79n+Ro263/fs/wAjR7PzQc3kXZdPs5pC8tpbu56s0YJP
44pv9laf/wA+Nr/35X/Cqm3W/wC/Z/kaNut/37P8jVe8vtfiw5vIdF4a0aG9lu49MtVnlADv5Y5H
06VZ/srT/wDnxtf+/K/4VU263/fs/wAjRt1v+/Z/kabc3vP8WHN5Fv8AsrT/APnxtf8Avyv+FH9l
af8A8+Nr/wB+V/wqpt1v+/Z/kaNut/37P8jR738/4sObyLY0qwByLG1z/wBcV/wq0OOBWVt1v+/Z
/kaNut/37P8AI1Li3vIObyNaisnbrf8Afs/yNG3W/wC/Z/kaXs/NBzeRrUVk7db/AL9n+Ro263/f
s/yNHs/NBzeRrUVk7db/AL9n+Ro263/fs/yNHs/NBzeRrUVk7db/AL9n+Ro263/fs/yNHs/NBzeR
rUVk7db/AL9n+Ro263/fs/yNHs/NBzeRrUVk7db/AL9n+Ro263/fs/yNHs/NBzeRrUVk7db/AL9n
+Ro263/fs/yNHs/NBzeRrUVk7db/AL9n+Ro263/fs/yNHs/NBzeRrUVk7db/AL9n+Ro263/fs/yN
Hs/NBzeRrUjfdP0rJf8AttEZi9ngDPermn3ZvtOjuCu0uvI96ThZXuNSu7GBqH/H9L9ar1Y1D/j+
l+tV6gol1T/kXof9/wDrRRqn/IvQ/wC//WigDrap6n/qIv8Arsn86uVT1P8A1EX/AF2T+dAGfruo
6lb6jYWWli0ElyWLNchiAFx029+a213bRuxuxzjpmsHVefFejf7sv8hW/Uxe/qN7oKKKKoQUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV
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
er/99Gj7RN/z1f8A76NAHU1k+H/+PW5/6+X/AKVmfaJv+er/APfRpFkeMYRmUHk4OOatP3WiWtUz
qqK5b7RN/wA9X/76NH2ib/nq/wD30ago6miuW+0Tf89X/wC+jR9om/56v/30aAOporlvtE3/AD1f
/vo0faJv+er/APfRoA6miuW+0Tf89X/76NH2ib/nq/8A30aAOporlvtE3/PV/wDvo0faJv8Anq//
AH0aAOporlvtE3/PV/8Avo0faJv+er/99GgDqaK5b7RN/wA9X/76NH2ib/nq/wD30aAOporlvtE3
/PV/++jR9om/56v/AN9GgDqaK5b7RN/z1f8A76NH2ib/AJ6v/wB9GgDqaK5b7RN/z1f/AL6NH2ib
/nq//fRoA6miuW+0Tf8APV/++jR9om/56v8A99GgDqaK5b7RN/z1f/vo0faJv+er/wDfRoA6miuW
+0Tf89X/AO+jR9om/wCer/8AfRoA6miuW+0Tf89X/wC+jR9om/56v/30aAOporlvtE3/AD1f/vo0
faJv+er/APfRoA6miuW+0Tf89X/76NH2ib/nq/8A30aAOporlvtE3/PV/wDvo0faJv8Anq//AH0a
AOln/wBRJ/un+VZ+gf8AICg/3TWV58p4Mr4/3jSLI8ahUdlUdgcCrT91om3vXN/FGPasHzpP+ej/
AJ0edJ/z0f8AOoKJvE3/ACDV/wB8UVnam7PZNuYnkdTRQB//2Q==

--_005_04EFF12F483FA149B07653989B86861F2178DD15wcosexch01kcosi_
Content-Type: image/jpeg; name="image002.jpg"
Content-Description: image002.jpg
Content-Disposition: inline; filename="image002.jpg"; size=1561;
	creation-date="Wed, 08 Jun 2016 00:18:11 GMT";
	modification-date="Wed, 08 Jun 2016 00:18:11 GMT"
Content-ID: <image002.jpg@01D1C0E0.9078FAF0>
Content-Transfer-Encoding: base64

/9j/4AAQSkZJRgABAQEAeAB4AAD/2wBDAAoHBwkHBgoJCAkLCwoMDxkQDw4ODx4WFxIZJCAmJSMg
IyIoLTkwKCo2KyIjMkQyNjs9QEBAJjBGS0U+Sjk/QD3/2wBDAQsLCw8NDx0QEB09KSMpPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT3/wAARCAAXAHgDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD1HV9X
j0uFfkMs8pxFEv3nNZ2nzz3d3uupmllHWKHhIvbPc0XWnzXV5NcsWEjt5UT94k7kfX1q5pthHaI8
fmgMc4QNyPf3JqXucTc6k/IjstV/4mf2eRi0U+WhY9VI6qawNeg8XRXt3c2dzElig3IO+KsSW8yX
CysMFbhGB6HJznNdJrXGi3n/AFxb+VaUpWkEJOpGXN0PNdE1Txb4hEx0+9XMRwwfpXeadqYsdOgi
1u+gF8E/e/MOtcn8Kji31MjjFY3hjQbfxR4i1FNSaVwhZgd3PWu2rBSbvpaxNObio+Z2t9cao/iy
0+yajbLprgFoS3zN9Ky9K8RajceLdVtZbgNBBHIyRkcgjpWbq9tHZ/EzSreEEJCqKuT2pdF58da5
k/8ALKX+VCpJRv5BKo3K3mWvDmu61q3hfU3N9ELuJx5cr8Kvsa6vQ76S30GCbWL2GSUnBlVvlrzf
Rcf8K+1v/rqtbFt/ZS/DWy/tgSeQZMqkRwWNKpSi/vCnUlH7jvBr2l8f6fb5PA+cVZku7eCAzSzR
pF/fZuK8Zvv+Eaayk+xWN+k5+47k7V96ty3Ms/wu2zOWMV0EBJ7VLwqte/WxSxTvY9ROvaZ0+3W/
/fYqW4v7a2sXuTNH5arkMW4Jri9K+H+i33h23upIpfPkh3k7zjOPSszwZZjWNI1jS72R5LeFtyc8
gio9jF3lfYv2s9F3Oh8JeNG1ma6j1AwQFGxEM/e5orl/h/oFnq2oXMt0H32cgaPaeDyetFFanSU2
gpTk4I9G1W0u2XzLV1b5cPDJ91x9exrljqiWt5snmlglXHykbwPxFFFcc9Gc+MbjJWOnspINXtg4
beyMNzbcZxVzU4GuNMuIo8bnjKjP0ooq47pnZT96nqcp4B8P32iw36XioGl+6FbNR+CfDd/o2vah
cXiRqsudu18980UV0zm3zeZCivdHav4bv73x/Z6nCqG1jAyS3PHtUemeGNQtvFOqXsqxiC4SRUIY
E5PtRRQqsrJeRLpxu2UNM8I6nbeENUspFj86aRWTDjBAqS68Fahd+CtPtE8sXVrIXALcHPvRRVSr
SX3kqlFr5Ec2leL57E2kkdl5ZXacFQcU1vCOqDwHNpxWL7T9oEgG/jH1ooqvbS0XmTGCv8jutGtZ
bXw7a20uPMSDa2DxnFc34K8OX2lTat9sCKLkkIVbP50UVzqbSl5nQ4puJl6H4a8SaBq7/ZnhFtJN
+8+YfMM56UUUVpOo5O7RFOPKrI//2Q==

--_005_04EFF12F483FA149B07653989B86861F2178DD15wcosexch01kcosi_--


From nobody Tue Jun  7 17:39:26 2016
Return-Path: <Michel.Veillette@trilliantinc.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 083E212D917 for <cbor@ietfa.amsl.com>; Tue,  7 Jun 2016 17:39:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=trilliant.onmicrosoft.com
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 5KSX4R-rkGrM for <cbor@ietfa.amsl.com>; Tue,  7 Jun 2016 17:39:22 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bon0714.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::1:714]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E30C012D914 for <cbor@ietf.org>; Tue,  7 Jun 2016 17:39:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Trilliant.onmicrosoft.com; s=selector1-trilliantinc-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=tC3ujaq+TVveHmd8gFPL33dYG2D8je6i0YkyAK1OuXA=; b=NBh/uBhgJBlNek293+1LJr/nLzOAN2a82yawCKPJFLmFm5lUnrYq+S+Md3q5M7jXvAitZJbwWKZ80sA+wVkSwLFyTabTLmBG3JAr0ltAi3LJO7jcvBWMJ4CKDQi2AzK8YTXRxbskDVhrmowezzZuQYGk5K2shIXrLDxchuHGOWc=
Received: from BLUPR06MB1763.namprd06.prod.outlook.com (10.162.224.149) by BLUPR06MB1764.namprd06.prod.outlook.com (10.162.224.150) with Microsoft SMTP Server (TLS) id 15.1.511.8; Wed, 8 Jun 2016 00:39:19 +0000
Received: from BLUPR06MB1763.namprd06.prod.outlook.com ([10.162.224.149]) by BLUPR06MB1763.namprd06.prod.outlook.com ([10.162.224.149]) with mapi id 15.01.0511.010; Wed, 8 Jun 2016 00:39:19 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: "glenn_engel@keysight.com" <glenn_engel@keysight.com>, "cbor@ietf.org" <cbor@ietf.org>
Thread-Topic: Additional data types
Thread-Index: AdHAP6Oy25pLOQV2Rp6gIejeIb5M2gAEoPxgACDdFeAAEZrJ8A==
Date: Wed, 8 Jun 2016 00:39:18 +0000
Message-ID: <BLUPR06MB17635547DFEC2F139C08E518FE5E0@BLUPR06MB1763.namprd06.prod.outlook.com>
References: <04EFF12F483FA149B07653989B86861F2178C6CF@wcosexch01k.cos.is.keysight.com> <BLUPR06MB17636F1667538D0F1C0A95D9FE5D0@BLUPR06MB1763.namprd06.prod.outlook.com> <04EFF12F483FA149B07653989B86861F2178DD15@wcosexch01k.cos.is.keysight.com>
In-Reply-To: <04EFF12F483FA149B07653989B86861F2178DD15@wcosexch01k.cos.is.keysight.com>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michel.Veillette@trilliantinc.com; 
x-originating-ip: [80.112.247.170]
x-ms-office365-filtering-correlation-id: 7136270d-bb08-4cf2-5e84-08d38f3553cf
x-microsoft-exchange-diagnostics: 1; BLUPR06MB1764; 5:f8wszmcd/MeX+0G/XwOBOHGLSWhwXIi7tme3+sdI605Hn53FHKO7UgwWNZG541mbpo7UE2BI8vL01YtrckphecbHwBmIDY/q5a6vx4ZIu9LblIyziG7/Z1urk9lsrOfyXxzMU2kNKAb8cVjO15FyCQ==; 24:i0S8A4i5faN2cAYpDnkV1F8722MVS8cJPUbK/7T2d4ypYQ8CHhrb+mserLTXXxLPNzaxcTePkd3mqo5YF3xvqY+mx3K/s4HuY1ZrErbGX6I=; 7:lnLWXGcJTsoXVw6rluhV6XCdb2VjClUnvGSbnjryBhB2EnmSVPLjDt9r9k2g20oH/cCHOCyRV83omp3k6COCV66d0nj2ExF32mCBw/IPM/iyENu4l1LvkyrQcKK4Et/lcYWEy6Quwd8Yr3sUozG4IsB8KJzppukG9ZU6dInTGmHULdrM4gK1xQvnr4eWlxxrufulxoU5bpJL5aeycihRzjjbHlJKWPnM5uTINdF5G2I=
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR06MB1764;
x-microsoft-antispam-prvs: <BLUPR06MB1764683731F9ACC158498C81FE5E0@BLUPR06MB1764.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(176295241369792)(21748063052155);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(102415321)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046); SRVR:BLUPR06MB1764; BCL:0; PCL:0; RULEID:; SRVR:BLUPR06MB1764; 
x-forefront-prvs: 0967749BC1
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(189002)(51914003)(199003)(3905003)(377454003)(51874003)(2900100001)(3660700001)(5003600100002)(2950100001)(19625215002)(189998001)(15975445007)(5002640100001)(77096005)(107886002)(5001770100001)(86362001)(2501003)(8676002)(5004730100002)(2906002)(97736004)(561944003)(81156014)(81166006)(11100500001)(76576001)(101416001)(122556002)(19617315012)(19580395003)(19300405004)(68736007)(19580405001)(3846002)(3480700004)(99936001)(8936002)(74316001)(19627595001)(17760045003)(105586002)(87936001)(16236675004)(106356001)(6116002)(9686002)(50986999)(66066001)(3280700002)(54356999)(790700001)(10400500002)(76176999)(99286002)(18206015028)(92566002)(586003)(5008740100001)(33656002)(102836003)(7099028); DIR:OUT; SFP:1102; SCL:1; SRVR:BLUPR06MB1764; H:BLUPR06MB1763.namprd06.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  MX:1; A:1; LANG:en; 
received-spf: None (protection.outlook.com: trilliantinc.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/related; boundary="_005_BLUPR06MB17635547DFEC2F139C08E518FE5E0BLUPR06MB1763namp_"; type="multipart/alternative"
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Jun 2016 00:39:18.9478 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR06MB1764
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/zXIdtbsJrcpZIQ6GSFKIFYRnVB8>
Subject: Re: [Cbor] Additional data types
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.17
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: Wed, 08 Jun 2016 00:39:25 -0000

--_005_BLUPR06MB17635547DFEC2F139C08E518FE5E0BLUPR06MB1763namp_
Content-Type: multipart/alternative;
	boundary="_000_BLUPR06MB17635547DFEC2F139C08E518FE5E0BLUPR06MB1763namp_"

--_000_BLUPR06MB17635547DFEC2F139C08E518FE5E0BLUPR06MB1763namp_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

About " so the type and dimension properties are needed up front"

CBOR array already support the "up front" dimension.

For the type part, if your arrays are always homogeneous (array of int, arr=
ay of string, array of array), your decoder can do a lock up to the next ma=
jor type following the array tag and dimension to determine the type of thi=
s array and perform the proper allocation.

If not, I assume you can register a single tag "TypedArray" and do known if=
 a lock up is necessary.

The alternative method will be to register a tag for each of the TypedArray=
 you need to support but this seem to be an unbounded list of tags. Carsten=
 can probably give you an advise on this.
Regards,
Michel Veillette


From: glenn_engel@keysight.com [mailto:glenn_engel@keysight.com]
Sent: Wednesday, June 8, 2016 2:18 AM
To: Michel Veillette <Michel.Veillette@trilliantinc.com>; cbor@ietf.org
Subject: RE: Additional data types

Thanks for the examples.  cbor.me is a handy tool!

In my case I want to deserialize into a strongly typed language (C++ and C#=
) so it is desirable to know the type of the array for memory allocation pu=
rposes.  Another objective is to be able to round-trip from strongly typed =
into CBOR and back again resulting in the same types.  This results in some=
what larger encoding in some cases such as a float 1.0 using 4 bytes instea=
d of 2 but it also speeds up serialization.

I think of the 'array'  major type as more of a 'list' which maps nicely in=
 javascript but for analytic data going into C++ for signal processing it's=
 important to keep it as a native array so the type and dimension propertie=
s are needed up front for efficient memory allocation of contiguous memory.

If I would like to see a multidimensional array tag that could use the new =
TypedArrays would that be something I would propose to IANA or would it be =
a tweak to the existing TypedArray proposal?  I'm thinking a tag that is fo=
llowed by two items - an array of dimensions followed by a single TypedArra=
y.

What about a TypedArray of strings, another common data type.

Thanks in advance for your advice and insight.

--
Glenn

From: Michel Veillette [mailto:Michel.Veillette@trilliantinc.com]
Sent: Monday, June 06, 2016 5:34 PM
To: ENGEL,GLENN (K-Labs,ex1) <glenn_engel@keysight.com<mailto:glenn_engel@k=
eysight.com>>; cbor@ietf.org<mailto:cbor@ietf.org>
Subject: RE: Additional data types

Hi Glen

Multidimensional Arrays are not directly supported in CBOR but you can enco=
de arrays within arrays.
This should also answer you second question.

[cid:image001.png@01D1C09B.A7C9A910]

For the representation of the is 48 bits of UTC seconds, CBOR don't support=
 directly 48 bits unsigned integer. You can either use a unsigned integer 6=
4 bits (major type 0) or byte string of 6 bytes (major type 2).

All these data types can be tag if such meta information is required. You w=
ill need  to request these tags from IANA. The use of tags is not required =
when the decoder have enough knowledge of the information received to proce=
ss it correctly. By not transmitting tags, you can minimize the payload siz=
e.

Hope this answer some of your questions.

Regards

[cid:image001.jpg@01C868D8.BF0BB7E0]

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-531-3109



From: CBOR [mailto:cbor-bounces@ietf.org] On Behalf Of glenn_engel@keysight=
.com<mailto:glenn_engel@keysight.com>
Sent: Tuesday, June 7, 2016 12:08 AM
To: cbor@ietf.org<mailto:cbor@ietf.org>
Subject: [Cbor] Additional data types

I'm evaluating use of CBOR as a replacement for a proprietary format that i=
s very similar to CBOR.  With the addition of TypedArrays most of our data =
types are supported.  I was pleased to see Null and zero length arrays supp=
orted as well.  The standard seems to be well thought out!

We have several additional data types which I would appreciate being consid=
ered or alternatively educating me on how they may already be included in C=
BOR.


1.       Multidimensional Arrays - perhaps a tag preceding an array of inte=
ger dimensions followed by the array data as a single TypedArray.  Data wou=
ld be in row major format as is used in C, C++, and Python.

2.       Jagged Arrays<https://msdn.microsoft.com/en-us/library/2s05feca.as=
px> or an Array of Arrays.  A tag indicating the dimension of the following=
 jagged array followed by each array.

3.       IEEE1588 Precision Time Protocol Timestamp.  The basic time repres=
entation is 48 bits of UTC seconds and 32 bits of nanoseconds.   An additio=
nal 16 bits of subnanoseconds can also be present.   Rather than a new tag,=
 I initially thought this could be covered by using a Decimal Fraction with=
 -9 as the exponent.  The mantissa would be seconds*1e9+nanoseconds.  Howev=
er, it would appear the RFC restricts the semantic tag for epoch-based date=
/time to ints and floats.   Perhaps if time could be expressed in integer U=
TC milliseconds, microseconds, nanoseconds, and picoseconds accurately that=
 would fill the need.  UTC milliseconds is a very common timestamp method.

4.       Time Duration or Interval.  This is different from a timestamp in =
that it measures a difference in time between two events but with similar p=
recision.  This would represent a TimeSpan or Duration as is used in some l=
ibraries.

Thanks in advance for your thoughts on these items,

Glenn Engel
Keysight Technologies

--_000_BLUPR06MB17635547DFEC2F139C08E518FE5E0BLUPR06MB1763namp_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:x=3D"urn:schemas-microsoft-com:office:excel" xmlns:m=3D"http://schema=
s.microsoft.com/office/2004/12/omml" xmlns=3D"http://www.w3.org/TR/REC-html=
40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
p.msonormal0, li.msonormal0, div.msonormal0
	{mso-style-name:msonormal;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:12.0pt;
	font-family:"Times New Roman",serif;}
span.EmailStyle19
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
span.EmailStyle20
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
span.EmailStyle21
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
span.EmailStyle22
	{mso-style-type:personal-reply;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:1505706115;
	mso-list-type:hybrid;
	mso-list-template-ids:-1807072546 67698703 67698713 67698715 67698703 6769=
8713 67698715 67698703 67698713 67698715;}
@list l0:level1
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level2
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level3
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level4
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level5
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level6
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level7
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level8
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level9
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-CA" link=3D"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span style=3D"color:#1F497D;mso-fareast-language:EN=
-US">About &quot;</span><span lang=3D"EN-US" style=3D"color:#1F497D"> so th=
e type and dimension properties are needed up front&quot;<o:p></o:p></span>=
</p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">CBOR ar=
ray already support the &quot;up front&quot; dimension.
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">For the=
 type part, if your arrays are always homogeneous (array of int, array of s=
tring, array of array), your decoder can do a lock up to the next major typ=
e following the array tag and dimension
 to determine the type of this array and perform the proper allocation.<o:p=
></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">If not,=
 I assume you can register a single tag &quot;TypedArray&quot; and do known=
 if a lock up is necessary.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">The alt=
ernative method will be to register a tag for each of the TypedArray you ne=
ed to support but this seem to be an unbounded list of tags. Carsten can pr=
obably give you an advise on this.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p></=
o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Regards=
,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Michel =
Veillette<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D;mso-fareast-language:EN=
-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D;mso-fareast-language:EN=
-US"><o:p>&nbsp;</o:p></span></p>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US">From:</span></b><span lang=
=3D"EN-US"> glenn_engel@keysight.com [mailto:glenn_engel@keysight.com]
<br>
<b>Sent:</b> Wednesday, June 8, 2016 2:18 AM<br>
<b>To:</b> Michel Veillette &lt;Michel.Veillette@trilliantinc.com&gt;; cbor=
@ietf.org<br>
<b>Subject:</b> RE: Additional data types<o:p></o:p></span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Thanks =
for the examples.&nbsp; cbor.me is a handy tool!&nbsp;
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">In my c=
ase I want to deserialize into a strongly typed language (C&#43;&#43; and C=
#) so it is desirable to know the type of the array for memory allocation p=
urposes.&nbsp; Another objective is to be able to round-trip
 from strongly typed into CBOR and back again resulting in the same types.&=
nbsp; This results in somewhat larger encoding in some cases such as a floa=
t 1.0 using 4 bytes instead of 2 but it also speeds up serialization.<o:p><=
/o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">I think=
 of the &#8216;array&#8217;&nbsp; major type as more of a &#8216;list&#8217=
; which maps nicely in javascript but for analytic data going into C&#43;&#=
43; for signal processing it&#8217;s important to keep it as a native array=
 so the
 type and dimension properties are needed up front for efficient memory all=
ocation of contiguous memory.
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">If I wo=
uld like to see a multidimensional array tag that could use the new TypedAr=
rays would that be something I would propose to IANA or would it be a tweak=
 to the existing TypedArray proposal?&nbsp;
 I&#8217;m thinking a tag that is followed by two items - an array of dimen=
sions followed by a single TypedArray.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">What ab=
out a TypedArray of strings, another common data type.<o:p></o:p></span></p=
>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Thanks =
in advance for your advice and insight.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">--<o:p>=
</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Glenn<o=
:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US">From:</span></b><span lang=
=3D"EN-US"> Michel Veillette [<a href=3D"mailto:Michel.Veillette@trillianti=
nc.com">mailto:Michel.Veillette@trilliantinc.com</a>]
<br>
<b>Sent:</b> Monday, June 06, 2016 5:34 PM<br>
<b>To:</b> ENGEL,GLENN (K-Labs,ex1) &lt;<a href=3D"mailto:glenn_engel@keysi=
ght.com">glenn_engel@keysight.com</a>&gt;;
<a href=3D"mailto:cbor@ietf.org">cbor@ietf.org</a><br>
<b>Subject:</b> RE: Additional data types<o:p></o:p></span></p>
</div>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Hi Glen<o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Multidimensional Array=
s are not directly supported in CBOR but you can encode arrays within array=
s.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">This should also answe=
r you second question.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><img bo=
rder=3D"0" width=3D"615" height=3D"378" id=3D"Picture_x0020_1" src=3D"cid:i=
mage001.jpg@01D1C12D.37E1A980" alt=3D"cid:image001.png@01D1C09B.A7C9A910"><=
/span><span style=3D"color:#1F497D"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">For the representation=
 of the is 48 bits of UTC seconds, CBOR don't support directly 48 bits unsi=
gned integer. You can either use a unsigned integer 64 bits (major type 0) =
or byte string of 6 bytes (major type
 2).<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">All these data types c=
an be tag if such meta information is required. You will need&nbsp; to requ=
est these tags from IANA. The use of tags is not required when the decoder =
have enough knowledge of the information
 received to process it correctly. By not transmitting tags, you can minimi=
ze the payload size.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Hope this answer some =
of your questions.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Regards<o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"717" style=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"137" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><img border=3D"0" widt=
h=3D"120" height=3D"23" id=3D"Picture_x0020_2" src=3D"cid:image002.jpg@01D1=
C12D.37E1A980" alt=3D"cid:image001.jpg@01C868D8.BF0BB7E0"><o:p></o:p></span=
></p>
</td>
<td width=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt =
0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1F497D">Michel Veill=
ette<br>
System Architecture Director</span><span style=3D"color:#1F497D"><o:p></o:p=
></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1F497D">Trilliant In=
c.<br>
Tel: 450-531-3109</span><span style=3D"color:#1F497D"><o:p></o:p></span></p=
>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US">From:</span></b><span lang=
=3D"EN-US"> CBOR [<a href=3D"mailto:cbor-bounces@ietf.org">mailto:cbor-boun=
ces@ietf.org</a>]
<b>On Behalf Of </b><a href=3D"mailto:glenn_engel@keysight.com">glenn_engel=
@keysight.com</a><br>
<b>Sent:</b> Tuesday, June 7, 2016 12:08 AM<br>
<b>To:</b> <a href=3D"mailto:cbor@ietf.org">cbor@ietf.org</a><br>
<b>Subject:</b> [Cbor] Additional data types<o:p></o:p></span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">I&#8217;m evaluating use of CBO=
R as a replacement for a proprietary format that is very similar to CBOR.&n=
bsp; With the addition of TypedArrays most of our data types are supported.=
&nbsp; I was pleased to see Null and zero length arrays
 supported as well.&nbsp; The standard seems to be well thought out!<o:p></=
o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">We have several additional data=
 types which I would appreciate being considered or alternatively educating=
 me on how they may already be included in CBOR.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo2"><![if !supportLists]><span lang=3D"EN-US"><span style=3D"mso-list:I=
gnore">1.<span style=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=3D"EN-US">Multidimensional Arrays=
 &#8211; perhaps a tag preceding an array of integer dimensions followed by=
 the array data as a single TypedArray.&nbsp; Data would be in row major fo=
rmat as is used in C, C&#43;&#43;, and Python.<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo2"><![if !supportLists]><span lang=3D"EN-US"><span style=3D"mso-list:I=
gnore">2.<span style=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=3D"EN-US"><a href=3D"https://msdn=
.microsoft.com/en-us/library/2s05feca.aspx">Jagged Arrays</a> or an Array o=
f Arrays.&nbsp; A tag indicating the dimension of the following jagged arra=
y followed by each array.<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo2"><![if !supportLists]><span lang=3D"EN-US"><span style=3D"mso-list:I=
gnore">3.<span style=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=3D"EN-US">IEEE1588 Precision Time=
 Protocol Timestamp.&nbsp; The basic time representation is 48 bits of UTC =
seconds and 32 bits of nanoseconds. &nbsp;&nbsp;An additional 16 bits of su=
bnanoseconds can also be present.&nbsp; &nbsp;Rather than a
 new tag, I initially thought this could be covered by using a Decimal Frac=
tion with -9 as the exponent.&nbsp; The mantissa would be seconds*1e9&#43;n=
anoseconds.&nbsp; However, it would appear the RFC restricts the semantic t=
ag for epoch-based date/time to ints and floats.&nbsp;&nbsp;
 Perhaps if time could be expressed in integer UTC milliseconds, microsecon=
ds, nanoseconds, and picoseconds accurately that would fill the need.&nbsp;=
 UTC milliseconds is a very common timestamp method.<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo2"><![if !supportLists]><span lang=3D"EN-US"><span style=3D"mso-list:I=
gnore">4.<span style=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=3D"EN-US">Time Duration or Interv=
al.&nbsp; This is different from a timestamp in that it measures a differen=
ce in time between two events but with similar precision.&nbsp; This would =
represent a TimeSpan or Duration as is used
 in some libraries.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">Thanks in advance for your thou=
ghts on these items,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">Glenn Engel<o:p></o:p></span></=
p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">Keysight Technologies<o:p></o:p=
></span></p>
</div>
</body>
</html>

--_000_BLUPR06MB17635547DFEC2F139C08E518FE5E0BLUPR06MB1763namp_--

--_005_BLUPR06MB17635547DFEC2F139C08E518FE5E0BLUPR06MB1763namp_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=26086;
	creation-date="Wed, 08 Jun 2016 00:39:17 GMT";
	modification-date="Wed, 08 Jun 2016 00:39:17 GMT"
Content-ID: <image001.jpg@01D1C12D.37E1A980>
Content-Transfer-Encoding: base64

/9j/4AAQSkZJRgABAQEAeAB4AAD/2wBDAAoHBwkHBgoJCAkLCwoMDxkQDw4ODx4WFxIZJCAmJSMg
IyIoLTkwKCo2KyIjMkQyNjs9QEBAJjBGS0U+Sjk/QD3/2wBDAQsLCw8NDx0QEB09KSMpPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT3/wAARCAF6AmcDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD2DNGa
ZmkaRURndgqqMlieAKAJM0ZrM0rXtP1vz/7Pn83yG2v8pGDWhmgB+aM0zNGaAH5ozUbSBEZmOFUZ
JqOC6iuU3xNke/BoAsZozTM0ZoAfmjNUtR1O10mza6vphFEvc9SfQDua5YfE/TPOwbO7EOf9bjj8
utAHbZozWPZeJtN1G/htLKcTSSwmb5f4QPX0NauaAH5ozTM1Xvr+302ykuruQRwxjJJ/kKALeaM1
hSeKrP7Pps9sj3EV/L5Sshx5Z/2q2icEigBxYAEk4A5JqsL5mGY7S4dT0YAYP61JOf8AR5P90/yq
xD/qI/8AdH8qAKn2yX/nxuf/AB3/ABo+2S/8+Nz/AOO/40LqE0rSeRZvIiOU3bwMkU+w1GO/QlVZ
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
/vs/4UAXKKp79R/55W3/AH2f8KN+o/8APK2/77P+FAFyiqe/Uf8Anlbf99n/AAo36j/zytv++z/h
QBcrF8R+HYtdt1+by7iP7j4/Q1e36j/zytv++z/hWfbXmrX4kkgFrGiOY8MSeRVRhzIzqKMlyyV7
nC3PhPWLZyv2N5R6x8ioP+Ec1j/oG3P/AHzXo+3W/wC/Z/kaNut/37P8jR7FfzI43g4eZwNp4Q1e
7cBrYwLnlpeMV6DoWhwaHZeTEd8jcySHqxpm3W/79n+Ro263/fs/yNNUkuqNqVCFJ3SdzWorJ263
/fs/yNG3W/79n+Rp+z80b83ka1FZO3W/79n+Ro263/fs/wAjR7PzQc3kXZdPs5pC8tpbu56s0YJP
44pv9laf/wA+Nr/35X/Cqm3W/wC/Z/kaNut/37P8jVe8vtfiw5vIdF4a0aG9lu49MtVnlADv5Y5H
06VZ/srT/wDnxtf+/K/4VU263/fs/wAjRt1v+/Z/kabc3vP8WHN5Fv8AsrT/APnxtf8Avyv+FH9l
af8A8+Nr/wB+V/wqpt1v+/Z/kaNut/37P8jR738/4sObyLY0qwByLG1z/wBcV/wq0OOBWVt1v+/Z
/kaNut/37P8AI1Li3vIObyNaisnbrf8Afs/yNG3W/wC/Z/kaXs/NBzeRrUVk7db/AL9n+Ro263/f
s/yNHs/NBzeRrUVk7db/AL9n+Ro263/fs/yNHs/NBzeRrUVk7db/AL9n+Ro263/fs/yNHs/NBzeR
rUVk7db/AL9n+Ro263/fs/yNHs/NBzeRrUVk7db/AL9n+Ro263/fs/yNHs/NBzeRrUVk7db/AL9n
+Ro263/fs/yNHs/NBzeRrUVk7db/AL9n+Ro263/fs/yNHs/NBzeRrUVk7db/AL9n+Ro263/fs/yN
Hs/NBzeRrUjfdP0rJf8AttEZi9ngDPermn3ZvtOjuCu0uvI96ThZXuNSu7GBqH/H9L9ar1Y1D/j+
l+tV6gol1T/kXof9/wDrRRqn/IvQ/wC//WigDrap6n/qIv8Arsn86uVT1P8A1EX/AF2T+dAGfruo
6lb6jYWWli0ElyWLNchiAFx029+a213bRuxuxzjpmsHVefFejf7sv8hW/Uxe/qN7oKKKKoQUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV
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
er/99Gj7RN/z1f8A76NAHU1k+H/+PW5/6+X/AKVmfaJv+er/APfRpFkeMYRmUHk4OOatP3WiWtUz
qqK5b7RN/wA9X/76NH2ib/nq/wD30ago6miuW+0Tf89X/wC+jR9om/56v/30aAOporlvtE3/AD1f
/vo0faJv+er/APfRoA6miuW+0Tf89X/76NH2ib/nq/8A30aAOporlvtE3/PV/wDvo0faJv8Anq//
AH0aAOporlvtE3/PV/8Avo0faJv+er/99GgDqaK5b7RN/wA9X/76NH2ib/nq/wD30aAOporlvtE3
/PV/++jR9om/56v/AN9GgDqaK5b7RN/z1f8A76NH2ib/AJ6v/wB9GgDqaK5b7RN/z1f/AL6NH2ib
/nq//fRoA6miuW+0Tf8APV/++jR9om/56v8A99GgDqaK5b7RN/z1f/vo0faJv+er/wDfRoA6miuW
+0Tf89X/AO+jR9om/wCer/8AfRoA6miuW+0Tf89X/wC+jR9om/56v/30aAOporlvtE3/AD1f/vo0
faJv+er/APfRoA6miuW+0Tf89X/76NH2ib/nq/8A30aAOporlvtE3/PV/wDvo0faJv8Anq//AH0a
AOln/wBRJ/un+VZ+gf8AICg/3TWV58p4Mr4/3jSLI8ahUdlUdgcCrT91om3vXN/FGPasHzpP+ej/
AJ0edJ/z0f8AOoKJvE3/ACDV/wB8UVnam7PZNuYnkdTRQB//2Q==

--_005_BLUPR06MB17635547DFEC2F139C08E518FE5E0BLUPR06MB1763namp_
Content-Type: image/jpeg; name="image002.jpg"
Content-Description: image002.jpg
Content-Disposition: inline; filename="image002.jpg"; size=1561;
	creation-date="Wed, 08 Jun 2016 00:39:18 GMT";
	modification-date="Wed, 08 Jun 2016 00:39:18 GMT"
Content-ID: <image002.jpg@01D1C12D.37E1A980>
Content-Transfer-Encoding: base64

/9j/4AAQSkZJRgABAQEAeAB4AAD/2wBDAAoHBwkHBgoJCAkLCwoMDxkQDw4ODx4WFxIZJCAmJSMg
IyIoLTkwKCo2KyIjMkQyNjs9QEBAJjBGS0U+Sjk/QD3/2wBDAQsLCw8NDx0QEB09KSMpPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT3/wAARCAAXAHgDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD1HV9X
j0uFfkMs8pxFEv3nNZ2nzz3d3uupmllHWKHhIvbPc0XWnzXV5NcsWEjt5UT94k7kfX1q5pthHaI8
fmgMc4QNyPf3JqXucTc6k/IjstV/4mf2eRi0U+WhY9VI6qawNeg8XRXt3c2dzElig3IO+KsSW8yX
CysMFbhGB6HJznNdJrXGi3n/AFxb+VaUpWkEJOpGXN0PNdE1Txb4hEx0+9XMRwwfpXeadqYsdOgi
1u+gF8E/e/MOtcn8Kji31MjjFY3hjQbfxR4i1FNSaVwhZgd3PWu2rBSbvpaxNObio+Z2t9cao/iy
0+yajbLprgFoS3zN9Ky9K8RajceLdVtZbgNBBHIyRkcgjpWbq9tHZ/EzSreEEJCqKuT2pdF58da5
k/8ALKX+VCpJRv5BKo3K3mWvDmu61q3hfU3N9ELuJx5cr8Kvsa6vQ76S30GCbWL2GSUnBlVvlrzf
Rcf8K+1v/rqtbFt/ZS/DWy/tgSeQZMqkRwWNKpSi/vCnUlH7jvBr2l8f6fb5PA+cVZku7eCAzSzR
pF/fZuK8Zvv+Eaayk+xWN+k5+47k7V96ty3Ms/wu2zOWMV0EBJ7VLwqte/WxSxTvY9ROvaZ0+3W/
/fYqW4v7a2sXuTNH5arkMW4Jri9K+H+i33h23upIpfPkh3k7zjOPSszwZZjWNI1jS72R5LeFtyc8
gio9jF3lfYv2s9F3Oh8JeNG1ma6j1AwQFGxEM/e5orl/h/oFnq2oXMt0H32cgaPaeDyetFFanSU2
gpTk4I9G1W0u2XzLV1b5cPDJ91x9exrljqiWt5snmlglXHykbwPxFFFcc9Gc+MbjJWOnspINXtg4
beyMNzbcZxVzU4GuNMuIo8bnjKjP0ooq47pnZT96nqcp4B8P32iw36XioGl+6FbNR+CfDd/o2vah
cXiRqsudu18980UV0zm3zeZCivdHav4bv73x/Z6nCqG1jAyS3PHtUemeGNQtvFOqXsqxiC4SRUIY
E5PtRRQqsrJeRLpxu2UNM8I6nbeENUspFj86aRWTDjBAqS68Fahd+CtPtE8sXVrIXALcHPvRRVSr
SX3kqlFr5Ec2leL57E2kkdl5ZXacFQcU1vCOqDwHNpxWL7T9oEgG/jH1ooqvbS0XmTGCv8jutGtZ
bXw7a20uPMSDa2DxnFc34K8OX2lTat9sCKLkkIVbP50UVzqbSl5nQ4puJl6H4a8SaBq7/ZnhFtJN
+8+YfMM56UUUVpOo5O7RFOPKrI//2Q==

--_005_BLUPR06MB17635547DFEC2F139C08E518FE5E0BLUPR06MB1763namp_--


From nobody Wed Jun  8 14:58:09 2016
Return-Path: <glenn_engel@keysight.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 E31E912D50D for <cbor@ietfa.amsl.com>; Wed,  8 Jun 2016 14:58:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.625
X-Spam-Level: 
X-Spam-Status: No, score=-5.625 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-1.426] 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 9So8ZcKvovKf for <cbor@ietfa.amsl.com>; Wed,  8 Jun 2016 14:58:05 -0700 (PDT)
Received: from cos-us-iron01k.cos.keysight.com (cos-us-iron01k.cos.keysight.com [192.25.5.35]) (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 3931212D0A7 for <cbor@ietf.org>; Wed,  8 Jun 2016 14:58:04 -0700 (PDT)
X-IPAS-Result: A2CMAgAElFhXbRUYjJxbAxkBAQEBAYJSgSR9BrsPgXoiBnGEegKBfxMBAQEBAQEBEhgzL4RFAQEBAQMFIAgBWwIBCBEBAwEBBgEBAQIIDgEGBwIFEA8MFAMGCAEBBAERAQgGiCEOvgcBAQEBAQEBAQEBAQEBAQEBAQEBAQEODop0hEIMCQoVAg+CZYIuBZVgeAOBdIUWAWyCNESHFE6EDoMihTiPWQggAoI2AxyBS24BiQ8BfgEBAQ
X-IronPort-AV: E=Sophos;i="5.26,441,1459836000";  d="jpg'145?scan'145,208,217,145";a="32583087"
X-Attachment-OP-filename: image005.jpg, image006.jpg
Received: from wcosexch02k.cos.is.keysight.com (HELO 2k10hubs.keysight.com) ([156.140.24.21]) by cos-us-iron01k.cos.keysight.com with ESMTP/TLS/AES128-SHA256; 08 Jun 2016 15:33:17 -0600
Received: from wcosexch01k.cos.is.keysight.com ([169.254.3.99]) by wcosexch02k.cos.is.keysight.com ([169.254.2.149]) with mapi id 14.03.0266.001; Wed, 8 Jun 2016 15:58:01 -0600
From: <glenn_engel@keysight.com>
To: <Michel.Veillette@trilliantinc.com>, <cbor@ietf.org>
Thread-Topic: Additional data types
Thread-Index: AdHAP6Oy25pLOQV2Rp6gIejeIb5M2gAEoPxgACDdFeAAEZrJ8AAq+nGg
Date: Wed, 8 Jun 2016 21:58:01 +0000
Message-ID: <04EFF12F483FA149B07653989B86861F2178EE92@wcosexch01k.cos.is.keysight.com>
References: <04EFF12F483FA149B07653989B86861F2178C6CF@wcosexch01k.cos.is.keysight.com> <BLUPR06MB17636F1667538D0F1C0A95D9FE5D0@BLUPR06MB1763.namprd06.prod.outlook.com> <04EFF12F483FA149B07653989B86861F2178DD15@wcosexch01k.cos.is.keysight.com> <BLUPR06MB17635547DFEC2F139C08E518FE5E0@BLUPR06MB1763.namprd06.prod.outlook.com>
In-Reply-To: <BLUPR06MB17635547DFEC2F139C08E518FE5E0@BLUPR06MB1763.namprd06.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
x-originating-ip: [156.140.13.70]
x-tm-as-product-ver: SMEX-11.0.0.4255-8.000.1202-22380.003
x-tm-as-result: No--41.015800-8.000000-31
x-tm-as-user-approved-sender: No
x-tm-as-user-blocked-sender: No
Content-Type: multipart/related; boundary="_005_04EFF12F483FA149B07653989B86861F2178EE92wcosexch01kcosi_"; type="multipart/alternative"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/ksMw3LFW51U_2UG6FUZxaqaxs44>
Subject: Re: [Cbor] Additional data types
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.17
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: Wed, 08 Jun 2016 21:58:08 -0000

--_005_04EFF12F483FA149B07653989B86861F2178EE92wcosexch01kcosi_
Content-Type: multipart/alternative;
	boundary="_000_04EFF12F483FA149B07653989B86861F2178EE92wcosexch01kcosi_"

--_000_04EFF12F483FA149B07653989B86861F2178EE92wcosexch01kcosi_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

I agree that a sea of tags would be a poor approach.  I don't yet see how C=
BOR would support multi-dimensional arrays without either assumptions on th=
e decoder's part to expect it in places or introducing at least one tag.

Something like:

Tag: XX
Data Item: array
Semantics: Multi-dimensional array

A multi-dimensional array is represented as a tagged array that contains tw=
o arrays.  The first array defines the dimensions of the multi-dimensional =
array while the second array represents the contents of the multi-dimension=
al array.  If the second array is itself tagged as a TypedArray then the ty=
pe of the multi-dimensional array is assumed to be the same type as the Typ=
edArray<https://tools.ietf.org/html/draft-jroatch-cbor-tags-03>.   Data in =
the TypedArray byte string is considered to be in row major order.

I would imagine the encoding as follows.  Hopefully I read the spec right..=
.

uint16_t a[2][3] =3D {
  {0, 1, 2},   /* row 0 */
  {3, 4, 5},
};

<Tag XX>    # multi-dim array
   82       # array(2)

      82    # array(2)
         02 # unsigned(2) 1st Dimension
        03 # unsigned(3) 2nd Dimension

     d8 41 # uint16 array
         4a    # byte string(12)
            00 00 # unsigned(0)
            00 01 # unsigned(1)
            00 02 # unsigned(2)
            00 03 # unsigned(3)
            00 04 # unsigned(4)
            00 05 # unsigned(5)

Regards,

--
Glenn

From: Michel Veillette [mailto:Michel.Veillette@trilliantinc.com]
Sent: Tuesday, June 07, 2016 5:39 PM
To: ENGEL,GLENN (K-Labs,ex1) <glenn_engel@keysight.com>; cbor@ietf.org
Subject: RE: Additional data types

About " so the type and dimension properties are needed up front"

CBOR array already support the "up front" dimension.

For the type part, if your arrays are always homogeneous (array of int, arr=
ay of string, array of array), your decoder can do a lock up to the next ma=
jor type following the array tag and dimension to determine the type of thi=
s array and perform the proper allocation.

If not, I assume you can register a single tag "TypedArray" and do known if=
 a lock up is necessary.

The alternative method will be to register a tag for each of the TypedArray=
 you need to support but this seem to be an unbounded list of tags. Carsten=
 can probably give you an advise on this.

Regards,
Michel Veillette


From: glenn_engel@keysight.com<mailto:glenn_engel@keysight.com> [mailto:gle=
nn_engel@keysight.com]
Sent: Wednesday, June 8, 2016 2:18 AM
To: Michel Veillette <Michel.Veillette@trilliantinc.com<mailto:Michel.Veill=
ette@trilliantinc.com>>; cbor@ietf.org<mailto:cbor@ietf.org>
Subject: RE: Additional data types

Thanks for the examples.  cbor.me is a handy tool!

In my case I want to deserialize into a strongly typed language (C++ and C#=
) so it is desirable to know the type of the array for memory allocation pu=
rposes.  Another objective is to be able to round-trip from strongly typed =
into CBOR and back again resulting in the same types.  This results in some=
what larger encoding in some cases such as a float 1.0 using 4 bytes instea=
d of 2 but it also speeds up serialization.

I think of the 'array'  major type as more of a 'list' which maps nicely in=
 javascript but for analytic data going into C++ for signal processing it's=
 important to keep it as a native array so the type and dimension propertie=
s are needed up front for efficient memory allocation of contiguous memory.

If I would like to see a multidimensional array tag that could use the new =
TypedArrays would that be something I would propose to IANA or would it be =
a tweak to the existing TypedArray proposal?  I'm thinking a tag that is fo=
llowed by two items - an array of dimensions followed by a single TypedArra=
y.

What about a TypedArray of strings, another common data type.

Thanks in advance for your advice and insight.

--
Glenn

From: Michel Veillette [mailto:Michel.Veillette@trilliantinc.com]
Sent: Monday, June 06, 2016 5:34 PM
To: ENGEL,GLENN (K-Labs,ex1) <glenn_engel@keysight.com<mailto:glenn_engel@k=
eysight.com>>; cbor@ietf.org<mailto:cbor@ietf.org>
Subject: RE: Additional data types

Hi Glen

Multidimensional Arrays are not directly supported in CBOR but you can enco=
de arrays within arrays.
This should also answer you second question.

[cid:image001.png@01D1C09B.A7C9A910]

For the representation of the is 48 bits of UTC seconds, CBOR don't support=
 directly 48 bits unsigned integer. You can either use a unsigned integer 6=
4 bits (major type 0) or byte string of 6 bytes (major type 2).

All these data types can be tag if such meta information is required. You w=
ill need  to request these tags from IANA. The use of tags is not required =
when the decoder have enough knowledge of the information received to proce=
ss it correctly. By not transmitting tags, you can minimize the payload siz=
e.

Hope this answer some of your questions.

Regards

[cid:image001.jpg@01C868D8.BF0BB7E0]

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-531-3109



From: CBOR [mailto:cbor-bounces@ietf.org] On Behalf Of glenn_engel@keysight=
.com<mailto:glenn_engel@keysight.com>
Sent: Tuesday, June 7, 2016 12:08 AM
To: cbor@ietf.org<mailto:cbor@ietf.org>
Subject: [Cbor] Additional data types

I'm evaluating use of CBOR as a replacement for a proprietary format that i=
s very similar to CBOR.  With the addition of TypedArrays most of our data =
types are supported.  I was pleased to see Null and zero length arrays supp=
orted as well.  The standard seems to be well thought out!

We have several additional data types which I would appreciate being consid=
ered or alternatively educating me on how they may already be included in C=
BOR.


1.      Multidimensional Arrays - perhaps a tag preceding an array of integ=
er dimensions followed by the array data as a single TypedArray.  Data woul=
d be in row major format as is used in C, C++, and Python.

2.      Jagged Arrays<https://msdn.microsoft.com/en-us/library/2s05feca.asp=
x> or an Array of Arrays.  A tag indicating the dimension of the following =
jagged array followed by each array.

3.      IEEE1588 Precision Time Protocol Timestamp.  The basic time represe=
ntation is 48 bits of UTC seconds and 32 bits of nanoseconds.   An addition=
al 16 bits of subnanoseconds can also be present.   Rather than a new tag, =
I initially thought this could be covered by using a Decimal Fraction with =
-9 as the exponent.  The mantissa would be seconds*1e9+nanoseconds.  Howeve=
r, it would appear the RFC restricts the semantic tag for epoch-based date/=
time to ints and floats.   Perhaps if time could be expressed in integer UT=
C milliseconds, microseconds, nanoseconds, and picoseconds accurately that =
would fill the need.  UTC milliseconds is a very common timestamp method.

4.      Time Duration or Interval.  This is different from a timestamp in t=
hat it measures a difference in time between two events but with similar pr=
ecision.  This would represent a TimeSpan or Duration as is used in some li=
braries.

Thanks in advance for your thoughts on these items,

Glenn Engel
Keysight Technologies

--_000_04EFF12F483FA149B07653989B86861F2178EE92wcosexch01kcosi_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
p.msonormal0, li.msonormal0, div.msonormal0
	{mso-style-name:msonormal;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:12.0pt;
	font-family:"Times New Roman",serif;}
span.EmailStyle19
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
span.EmailStyle20
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
span.EmailStyle21
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
span.EmailStyle22
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
span.EmailStyle23
	{mso-style-type:personal-reply;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:1505706115;
	mso-list-type:hybrid;
	mso-list-template-ids:-1807072546 67698703 67698713 67698715 67698703 6769=
8713 67698715 67698703 67698713 67698715;}
@list l0:level1
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level2
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level3
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level4
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level5
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level6
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level7
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level8
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level9
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">I agree that a sea of =
tags would be a poor approach.&nbsp; I don&#8217;t yet see how CBOR would s=
upport multi-dimensional arrays without either assumptions on the decoder&#=
8217;s part to expect it in places or introducing at
 least one tag.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Something like:<o:p></=
o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Tag: XX<o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Data Item: array<o:p><=
/o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Semantics: Multi-dimen=
sional array<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">A multi-dimensional ar=
ray is represented as a tagged array that contains two arrays.&nbsp; The fi=
rst array defines the dimensions of the multi-dimensional array while the s=
econd array represents the contents of the
 multi-dimensional array.&nbsp; If the second array is itself tagged as a T=
ypedArray then the type of the multi-dimensional array is assumed to be the=
 same type as the
<a href=3D"https://tools.ietf.org/html/draft-jroatch-cbor-tags-03">TypedArr=
ay</a>.&nbsp;&nbsp; Data in the TypedArray byte string is considered to be =
in row major order.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">I would imagine the en=
coding as follows.&nbsp; Hopefully I read the spec right&#8230;<o:p></o:p><=
/span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:#1F497D">uint16_t a[2][3] =3D {&nbsp;
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:#1F497D">&nbsp;&nbsp;{0, 1, 2},&nbsp;&nbsp; /* row 0 */<o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:#1F497D">&nbsp; {3, 4, 5},&nbsp;
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:#1F497D">};<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:#1F497D">&lt;Tag XX&gt;&nbsp;&nbsp;&nbsp; # multi-dim array<o:p></o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:#1F497D">&nbsp;&nbsp; 82&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # array(2=
)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:#1F497D">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;82&nbsp;&nbsp;&nbsp; # array(2=
)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:#1F497D">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;02 # unsigne=
d(2) 1<sup>st</sup> Dimension<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;03 # unsigned=
(3) 2<sup>nd</sup> Dimension<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d8 41 # uint16 array<o:p></o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;4a&nbsp;&nbs=
p;&nbsp; # byte string(12)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:#1F497D">&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;00 00 # unsigned(0)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:#1F497D">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;00 01 # unsigned(1)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:#1F497D">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;00 02 # unsigned(2)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:#1F497D">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;00 03 # unsigned(3)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:#1F497D">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;00 04 # unsigned(4)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;c=
olor:#1F497D">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;00 05 # unsigned(5)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Regards,<o:p></o:p></s=
pan></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">--<o:p></o:p></span></=
p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Glenn<o:p></o:p></span=
></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b>From:</b> Michel Veillette [mailto:Michel.Veillet=
te@trilliantinc.com]
<br>
<b>Sent:</b> Tuesday, June 07, 2016 5:39 PM<br>
<b>To:</b> ENGEL,GLENN (K-Labs,ex1) &lt;glenn_engel@keysight.com&gt;; cbor@=
ietf.org<br>
<b>Subject:</b> RE: Additional data types<o:p></o:p></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D">About &=
quot;</span><span style=3D"color:#1F497D"> so the type and dimension proper=
ties are needed up front&quot;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">CBOR array already sup=
port the &quot;up front&quot; dimension.
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">For the type part, if =
your arrays are always homogeneous (array of int, array of string, array of=
 array), your decoder can do a lock up to the next major type following the=
 array tag and dimension to determine
 the type of this array and perform the proper allocation.<o:p></o:p></span=
></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">If not, I assume you c=
an register a single tag &quot;TypedArray&quot; and do known if a lock up i=
s necessary.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">The alternative method=
 will be to register a tag for each of the TypedArray you need to support b=
ut this seem to be an unbounded list of tags. Carsten can probably give you=
 an advise on this.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Regards,<o:p></o:p></s=
pan></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Michel Veillette<o:p><=
/o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b>From:</b> <a href=3D"mailto:glenn_engel@keysight.=
com">glenn_engel@keysight.com</a> [<a href=3D"mailto:glenn_engel@keysight.c=
om">mailto:glenn_engel@keysight.com</a>]
<br>
<b>Sent:</b> Wednesday, June 8, 2016 2:18 AM<br>
<b>To:</b> Michel Veillette &lt;<a href=3D"mailto:Michel.Veillette@trillian=
tinc.com">Michel.Veillette@trilliantinc.com</a>&gt;;
<a href=3D"mailto:cbor@ietf.org">cbor@ietf.org</a><br>
<b>Subject:</b> RE: Additional data types<o:p></o:p></p>
</div>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Thanks for the example=
s.&nbsp; cbor.me is a handy tool!&nbsp;
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">In my case I want to d=
eserialize into a strongly typed language (C&#43;&#43; and C#) so it is des=
irable to know the type of the array for memory allocation purposes.&nbsp; =
Another objective is to be able to round-trip from
 strongly typed into CBOR and back again resulting in the same types.&nbsp;=
 This results in somewhat larger encoding in some cases such as a float 1.0=
 using 4 bytes instead of 2 but it also speeds up serialization.<o:p></o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">I think of the &#8216;=
array&#8217;&nbsp; major type as more of a &#8216;list&#8217; which maps ni=
cely in javascript but for analytic data going into C&#43;&#43; for signal =
processing it&#8217;s important to keep it as a native array so the type an=
d dimension
 properties are needed up front for efficient memory allocation of contiguo=
us memory.
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">If I would like to see=
 a multidimensional array tag that could use the new TypedArrays would that=
 be something I would propose to IANA or would it be a tweak to the existin=
g TypedArray proposal?&nbsp; I&#8217;m thinking
 a tag that is followed by two items - an array of dimensions followed by a=
 single TypedArray.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">What about a TypedArra=
y of strings, another common data type.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Thanks in advance for =
your advice and insight.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">--<o:p></o:p></span></=
p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Glenn<o:p></o:p></span=
></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b>From:</b> Michel Veillette [<a href=3D"mailto:Mic=
hel.Veillette@trilliantinc.com">mailto:Michel.Veillette@trilliantinc.com</a=
>]
<br>
<b>Sent:</b> Monday, June 06, 2016 5:34 PM<br>
<b>To:</b> ENGEL,GLENN (K-Labs,ex1) &lt;<a href=3D"mailto:glenn_engel@keysi=
ght.com">glenn_engel@keysight.com</a>&gt;;
<a href=3D"mailto:cbor@ietf.org">cbor@ietf.org</a><br>
<b>Subject:</b> RE: Additional data types<o:p></o:p></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D">Hi Glen=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D">Multidi=
mensional Arrays are not directly supported in CBOR but you can encode arra=
ys within arrays.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D">This sh=
ould also answer you second question.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><img border=3D"0" widt=
h=3D"769" height=3D"473" id=3D"Picture_x0020_1" src=3D"cid:image005.jpg@01D=
1C196.2563D5D0" alt=3D"cid:image001.png@01D1C09B.A7C9A910"></span><span lan=
g=3D"EN-CA" style=3D"color:#1F497D"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D">For the=
 representation of the is 48 bits of UTC seconds, CBOR don't support direct=
ly 48 bits unsigned integer. You can either use a unsigned integer 64 bits =
(major type 0) or byte string of 6 bytes
 (major type 2).<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D">All the=
se data types can be tag if such meta information is required. You will nee=
d&nbsp; to request these tags from IANA. The use of tags is not required wh=
en the decoder have enough knowledge of the
 information received to process it correctly. By not transmitting tags, yo=
u can minimize the payload size.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D">Hope th=
is answer some of your questions.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D">Regards=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"896" style=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"172" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><img border=3D"0" widt=
h=3D"150" height=3D"29" id=3D"Picture_x0020_2" src=3D"cid:image006.jpg@01D1=
C196.2563D5D0" alt=3D"cid:image001.jpg@01C868D8.BF0BB7E0"></span><span styl=
e=3D"color:#1F497D"><o:p></o:p></span></p>
</td>
<td width=3D"724" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt =
0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1F497D">Michel Veill=
ette<br>
System Architecture Director</span><span style=3D"color:#1F497D"><o:p></o:p=
></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1F497D">Trilliant In=
c.<br>
Tel: 450-531-3109</span><span style=3D"color:#1F497D"><o:p></o:p></span></p=
>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b>From:</b> CBOR [<a href=3D"mailto:cbor-bounces@ie=
tf.org">mailto:cbor-bounces@ietf.org</a>]
<b>On Behalf Of </b><a href=3D"mailto:glenn_engel@keysight.com">glenn_engel=
@keysight.com</a><br>
<b>Sent:</b> Tuesday, June 7, 2016 12:08 AM<br>
<b>To:</b> <a href=3D"mailto:cbor@ietf.org">cbor@ietf.org</a><br>
<b>Subject:</b> [Cbor] Additional data types<o:p></o:p></p>
</div>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal">I&#8217;m evaluating use of CBOR as a replacement fo=
r a proprietary format that is very similar to CBOR.&nbsp; With the additio=
n of TypedArrays most of our data types are supported.&nbsp; I was pleased =
to see Null and zero length arrays supported as well.&nbsp;
 The standard seems to be well thought out!<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">We have several additional data types which I would =
appreciate being considered or alternatively educating me on how they may a=
lready be included in CBOR.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo2"><![if !supportLists]><span style=3D"mso-list:Ignore">1.<span style=
=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>Multidimensional Arrays &#8211; perhaps a tag prece=
ding an array of integer dimensions followed by the array data as a single =
TypedArray.&nbsp; Data would be in row major format as is used in C, C&#43;=
&#43;, and Python.<o:p></o:p></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo2"><![if !supportLists]><span style=3D"mso-list:Ignore">2.<span style=
=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]><a href=3D"https://msdn.microsoft.com/en-us/library=
/2s05feca.aspx">Jagged Arrays</a> or an Array of Arrays.&nbsp; A tag indica=
ting the dimension of the following jagged array followed by each array.<o:=
p></o:p></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo2"><![if !supportLists]><span style=3D"mso-list:Ignore">3.<span style=
=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>IEEE1588 Precision Time Protocol Timestamp.&nbsp; T=
he basic time representation is 48 bits of UTC seconds and 32 bits of nanos=
econds. &nbsp;&nbsp;An additional 16 bits of subnanoseconds can also be pre=
sent.&nbsp; &nbsp;Rather than a new tag, I initially thought
 this could be covered by using a Decimal Fraction with -9 as the exponent.=
&nbsp; The mantissa would be seconds*1e9&#43;nanoseconds.&nbsp; However, it=
 would appear the RFC restricts the semantic tag for epoch-based date/time =
to ints and floats.&nbsp;&nbsp; Perhaps if time could be
 expressed in integer UTC milliseconds, microseconds, nanoseconds, and pico=
seconds accurately that would fill the need.&nbsp; UTC milliseconds is a ve=
ry common timestamp method.<o:p></o:p></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo2"><![if !supportLists]><span style=3D"mso-list:Ignore">4.<span style=
=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>Time Duration or Interval.&nbsp; This is different =
from a timestamp in that it measures a difference in time between two event=
s but with similar precision.&nbsp; This would represent a TimeSpan or Dura=
tion as is used in some libraries.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Thanks in advance for your thoughts on these items,<=
o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Glenn Engel<o:p></o:p></p>
<p class=3D"MsoNormal">Keysight Technologies<o:p></o:p></p>
</div>
</body>
</html>

--_000_04EFF12F483FA149B07653989B86861F2178EE92wcosexch01kcosi_--

--_005_04EFF12F483FA149B07653989B86861F2178EE92wcosexch01kcosi_
Content-Type: image/jpeg; name="image005.jpg"
Content-Description: image005.jpg
Content-Disposition: inline; filename="image005.jpg"; size=32515;
	creation-date="Wed, 08 Jun 2016 21:58:00 GMT";
	modification-date="Wed, 08 Jun 2016 21:58:00 GMT"
Content-ID: <image005.jpg@01D1C196.2563D5D0>
Content-Transfer-Encoding: base64

/9j/4AAQSkZJRgABAQEAeAB4AAD/2wBDAAoHBwkHBgoJCAkLCwoMDxkQDw4ODx4WFxIZJCAmJSMg
IyIoLTkwKCo2KyIjMkQyNjs9QEBAJjBGS0U+Sjk/QD3/2wBDAQsLCw8NDx0QEB09KSMpPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT3/wAARCAHZAwEDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD2DNGa
bmjOeBjPvQA7NGaTr07Umcf4UAOzRmm5ozQA7NGabmjNADs0ZpM56DNJn3596AHZozTc0ZoAdmjN
Nz/kUbsAkkADqewoAdmjNQrcwuQqzxFvQNUhIXG44zx75oAdmjNNzRmgB2aM03PvijJPsfT0oAdm
jNMeRIl3SSIgHdjgUBgQCCCD3HSgB5OfpTXkVFLuwVR60E5zVe8AfylP3S4GKAE/tazGR5pyO2DR
/a1n/wA9W/75NXfKjGMIv5UxpIEOGaNW9DigCr/a1n/z1b/vk0f2tZ/89G/75NW0aGTOwxtj+7g0
4Ip+8i/lQBS/taz/AOejf98mj+1rP/nq3/fJq/5af3F/Kjy0/ur+VAFD+1rP/no35Gj+1rP/AJ6t
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
Rk/5G2L/AK5Hisz4bMG0C5IOR9tm5/GtKnT0Jj1OvooorMoKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKSlooAKKKKAEopaKAEpaKKACiiigAooooAKKKKACiiigAooooAKKKKACi
iigBO5rCsf8AkY776Ct3uawrH/kY776CtaW0vQiZrTfeH0qOpJvvD6VHWRYVV1T/AJBs3+7Vqquq
f8g2b/doA4OiiigD1KiiigDP0n7tx/11NaFZ+k/duP8Arqa0KACiiigAooooAKKKKACiiigAoooo
AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
ooooAKTvS0lAGJN/yNsP/XI1p2Vjb6fEYrSJY0LFiF7k9TWXL/yNkH/XI1uCtJ9PQmHUWiiisygo
oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKAE7msKx/5GO++grcJ5rEsefEd99BWtPaXoRPoas33h9KytT8
Qabo0iR39wYmfoSvBrVm+8PpWZrOjWuuae9rdxqSR8kmPmU+tZFkNj4p0jU7oW1ldebMegCn9at6
p/yDZv8Adqh4a8MWvhyz2RDzLhuHmI5Iq/qn/INm/wB2gDg6KKKAPTvPi/56L+dHnxf89F/OuWqW
P+lAGtpciIs4ZgMyEjJ7Ve8+L/nov51y56UlAHU+fF/z0X86PPi/56L+dctRQB1Pnxf89F/Ojz4v
+ei/nXLUUAdT58X/AD0X86PPi/56L+dctRQB1Pnxf89F/Ojz4v8Anov51y1FAHU+fF/z0X86PPi/
56L+dctRQB1Pnxf89F/Ojz4v+ei/nXLUUAdT58X/AD0X86PPi/56L+dctRQB1Pnxf89F/Ojz4v8A
nov51y1FAHU+fF/z0X86PPi/56L+dctRQB1Pnxf89F/Ojz4v+ei/nXLUUAdT58X/AD0X86PPi/56
L+dctRQB1Pnxf89F/Ojz4v8Anov51y1FAHU+fF/z0X86PPi/56L+dctRQB1Pnxf89F/Ojz4v+ei/
nXLUUAdT58X/AD0X86PPi/56L+dctRQB1Pnxf89F/Ojz4v8Anov51y1FAHU+fF/z0X86PPi/56L+
dctRQB1Pnxf89F/Ojz4v+ei/nXLUUAdT58X/AD0X86PPi/56L+dctRQB1Pnxf89F/Ojz4v8Anov5
1y1FAHU+fF/z0X86POj/AOei/nXLUUAaErA+KIZARsEZBbtWyJo/+ei/nXMJ/rEpG6n61c+hMd2d
R58X/PRfzo8+L/nov51y1FQUdT58X/PRfzo8+L/nov51y1FAHU+fF/z0X86PPi/56L+dctRQB1Pn
xf8APRfzo8+L/nov51y1FAHU+fF/z0X86PPi/wCei/nXLUUAdT58X/PRfzo8+L/nov51y1FAHU+f
F/z0X86PPi/56L+dctRQB1Pnxf8APRfzo8+L/nov51y1FAHU+fF/z0X86PPi/wCei/nXLUUAdT58
X/PRfzo8+L/nov51y1FAHU+fF/z0X86PPi/56L+dctRQB1Pnxf8APRfzo8+L/nov51y1FAHU+fF/
z0X86PPi/wCei/nXLUUAdT58X/PRfzo8+L/nov51y1FAHU+fF/z0X86PPi/56L+dctRQB1Pnxf8A
PRfzo8+L/nov51y1FAHU+fF/z0X86PPi/wCei/nXLUUAdT58X/PRfzo8+L/nov51y1FAHU+fF/z0
X86PPi/56L+dctRQB1Pnxf8APRfzo8+L/nov51y1FAHU+fF/z0X86PPi/wCei/nXLUUAdQZo/wDn
ov51jWLBfEN4zEBWAwexqh/CaWLoauHUiW50UssZI+dfzpnmx/31/OsJelLUFm55if31/OqmpyId
PlUMCSvSs6mXH+of/doA5rafSilooA//2Q==

--_005_04EFF12F483FA149B07653989B86861F2178EE92wcosexch01kcosi_
Content-Type: image/jpeg; name="image006.jpg"
Content-Description: image006.jpg
Content-Disposition: inline; filename="image006.jpg"; size=1826;
	creation-date="Wed, 08 Jun 2016 21:58:00 GMT";
	modification-date="Wed, 08 Jun 2016 21:58:00 GMT"
Content-ID: <image006.jpg@01D1C196.2563D5D0>
Content-Transfer-Encoding: base64

/9j/4AAQSkZJRgABAQEAeAB4AAD/2wBDAAoHBwkHBgoJCAkLCwoMDxkQDw4ODx4WFxIZJCAmJSMg
IyIoLTkwKCo2KyIjMkQyNjs9QEBAJjBGS0U+Sjk/QD3/2wBDAQsLCw8NDx0QEB09KSMpPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT3/wAARCAAdAJYDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD12eeO
2heWUhUUZLGubOs3OrMxtGFvZKcNM/V/pS65v1W9+yFmjtLcb5SP4z/dFV7W3lubqJ5IAqDiOAdA
PU1Mtzhq1ZSlZGtJK0NgPsszGb7yhv4sVZs9RF/przQD96FIKejVR1wmGGE427DkOv61W8PSGLVp
ol/1UyiQfWnew1UcZKBytz4h8XRPO7WhWFGODjtVO08Z+I9QkZbIb3XqoFem6+B/Yd3wOIya84+F
6j+3LnPJINd1KUXBtoU48tRI6zwdqWt332ka1B5IQjZkV0V88i2MzW2GmCEoB6153488RalFri6b
ZSeUhAwR3NW9F0rxBp0N1d6hdl4vJyoJ9qzdHaXc0hV3Rd8Pav4gktNQm1iHyvKUmI+tVfCXinUd
U/tE3m0rbxlkPvWd4K1S8v7bWFvZzKFRtoPaq3gAfLrGM/6pq1dJK5i6l7G14L8UarrX2+O6xvRS
YsVo+ENR1++vbhNYg8qFSduK5X4dFo/7XkUkOEJB9Kv/AA91K9vtTvluLl5MA7VNKpSVpDp1Gmj0
hXXHDDilyMYBFeZXegeKXvJnTUkjUudibu1ZOpz+IvC08U9xqAmLHlVbOBWccM5NJM1eIsexggD/
ABo3qO4rzvxhr92fCdhd2sxiacgMRWfp+geK9TsI7uHU8JIMgE81PsWldsft3LY9S45Oefaua8Xe
Lh4aaBVg80yHHHauT0XxDq2i+JU0nVJTMrNt3Gs7xzZX9pqxkvpt8Mr5iz2FaU8NaST6kVK7a9D1
rTrz7dp8FyFGZFyRnpRXE+D9G1tYTJc3BFu6AxDNFYyoxT3N41HY6u5W0t2Mc77TcHduPTNVpdXW
1bHlCOQfLk8gitW+tILyEQzxh1b16j6VxuuJJoKAxytOm7hJB0rCRzV37LVHRmSHV4R8wEiggL2N
NsrMwayr7MARhfpXNaV4gZ2DrbRo24DINd5CQ6LLgBmHNG6Ko2qtSe5S8Qf8gO8/65mvOfhaMa5c
/Q16fqFsl1YyxSfdZSDXO+FvClpod/LLbySMzdd1ddKdqTRcoXqJnE+OOPHcRxkllr0zVF/4pucH
/nh/SsbW/BtnqGuR6hLLKJM/dHTiukubVZ7E2rEhHTaT3oqTXusmENZHlfw+/wCPXWCO0bdak8AN
hNYOR/qW6112g+D7PSIbxIZJG8/IYt2qTRPB9poiXTQyu/2hCGDVtKqndGUabWpxfw+bEesc/wDL
JjxT/h1MYbzVZFGWSMsK67w/4PtNI+2iCWQi4Uhge2aXw34UtNIuLl4nd/NyGDelJ1I2kChLQ880
z7R4j1C5a61VrTDnhmpniHSV06JW/tP7YW4IznFdvdfDXTJrx5VmmjLnOF6CoX+GGnYObq4I9DVw
rRUkzOUG07mD4l+X4e6Vjkbq9B8HgDwxY85+QVm6n4Rs77w3b6fJJII4W+Vh1roNGsU0/Sba2hJ2
RqAM1z1Zpw07nTShZnmXiPj4mQdxvHWr3xXI3aeDjB9a6HUvCNne+JY9SkkkEynIA6Ve8S+G7TX7
WMXO5WToy9a0VRXjciUHaRH4W1Wzm0W2giuUZ44xuBPSiqmjeB7LSZ5fJmlbeozuorGSg3c1jex/
/9k=

--_005_04EFF12F483FA149B07653989B86861F2178EE92wcosexch01kcosi_--


From nobody Wed Jun  8 15:11:41 2016
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 EE87312D732 for <cbor@ietfa.amsl.com>; Wed,  8 Jun 2016 15:11:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.62
X-Spam-Level: 
X-Spam-Status: No, score=-2.62 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01] 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 Hk0_G2iaOSr3 for <cbor@ietfa.amsl.com>; Wed,  8 Jun 2016 15:11:38 -0700 (PDT)
Received: from relay4-d.mail.gandi.net (relay4-d.mail.gandi.net [217.70.183.196]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6C55312D68A for <cbor@ietf.org>; Wed,  8 Jun 2016 15:11:38 -0700 (PDT)
Received: from mfilter33-d.gandi.net (mfilter33-d.gandi.net [217.70.178.164]) by relay4-d.mail.gandi.net (Postfix) with ESMTP id 447DD17209A; Thu,  9 Jun 2016 00:11:37 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at mfilter33-d.gandi.net
Received: from relay4-d.mail.gandi.net ([IPv6:::ffff:217.70.183.196]) by mfilter33-d.gandi.net (mfilter33-d.gandi.net [::ffff:10.0.15.180]) (amavisd-new, port 10024) with ESMTP id xz9N5q0y2EXQ; Thu,  9 Jun 2016 00:11:35 +0200 (CEST)
X-Originating-IP: 93.199.242.26
Received: from nar-3.local (p5DC7F21A.dip0.t-ipconnect.de [93.199.242.26]) (Authenticated sender: cabo@cabo.im) by relay4-d.mail.gandi.net (Postfix) with ESMTPSA id 1A2731720A3; Thu,  9 Jun 2016 00:11:33 +0200 (CEST)
Message-ID: <57589814.7010505@tzi.org>
Date: Thu, 09 Jun 2016 00:11:32 +0200
From: Carsten Bormann <cabo@tzi.org>
User-Agent: Postbox 4.0.8 (Macintosh/20151105)
MIME-Version: 1.0
To: glenn_engel@keysight.com
References: <04EFF12F483FA149B07653989B86861F2178C6CF@wcosexch01k.cos.is.keysight.com> <BLUPR06MB17636F1667538D0F1C0A95D9FE5D0@BLUPR06MB1763.namprd06.prod.outlook.com> <04EFF12F483FA149B07653989B86861F2178DD15@wcosexch01k.cos.is.keysight.com> <BLUPR06MB17635547DFEC2F139C08E518FE5E0@BLUPR06MB1763.namprd06.prod.outlook.com> <04EFF12F483FA149B07653989B86861F2178EE92@wcosexch01k.cos.is.keysight.com>
In-Reply-To: <04EFF12F483FA149B07653989B86861F2178EE92@wcosexch01k.cos.is.keysight.com>
X-Enigmail-Version: 1.2.3
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/Ac3pXtHpMChFrigC6IDh6WIlVY4>
Cc: Michel.Veillette@trilliantinc.com, cbor@ietf.org
Subject: Re: [Cbor] Additional data types
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.17
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: Wed, 08 Jun 2016 22:11:40 -0000

glenn_engel@keysight.com wrote:
> Something like:

Hi Glenn,

this is precisely what I was going to propose as well!
(Except that I wouldn't use the term "row major order", maybe.)

Is this well thought out enough that we include this in the typedarray
draft?
(And is that maybe a good way to use that one reserved tag in the 24-tag
space?)

Grüße, Carsten


From nobody Thu Jun  9 08:34:34 2016
Return-Path: <glenn_engel@keysight.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 D456412D5C4 for <cbor@ietfa.amsl.com>; Thu,  9 Jun 2016 08:34:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.605
X-Spam-Level: 
X-Spam-Status: No, score=-4.605 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, MISSING_HEADERS=1.021, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-1.426] 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 0301HWo7i225 for <cbor@ietfa.amsl.com>; Thu,  9 Jun 2016 08:34:31 -0700 (PDT)
Received: from cos-us-iron02k.cos.keysight.com (cos-us-iron02k.cos.keysight.com [192.25.5.36]) (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 6435812B03A for <cbor@ietf.org>; Thu,  9 Jun 2016 08:34:30 -0700 (PDT)
X-IPAS-Result: A2DzBQBbjFlXbRYYjJxeGgEBAQGEZwwGpzeVVYYTAhwMgUkQAQEBAQEBARIYMy+EPQgBAQEBAyMRRQwEAgEGAhEEAQEBAgIGHQMCAgIwFAEICAISBQiFaoI9kAudHZEJAQEBAQEBAQMBAQEBAQEBAR+BAYlzhEKCfxAbgi4BBJhViHuUTI9lNYQNbokJAX4BAQU
X-IronPort-AV: E=Sophos;i="5.26,445,1459836000"; d="scan'208";a="32456461"
Received: from wcosexch03k.cos.is.keysight.com (HELO 2k10hubs.keysight.com) ([156.140.24.22]) by cos-us-iron02k.cos.keysight.com with ESMTP/TLS/AES128-SHA256; 09 Jun 2016 09:17:13 -0600
Received: from wcosexch01k.cos.is.keysight.com ([169.254.3.99]) by wcosexch03k.cos.is.keysight.com ([169.254.1.192]) with mapi id 14.03.0266.001; Thu, 9 Jun 2016 09:34:13 -0600
From: <glenn_engel@keysight.com>
CC: <cbor@ietf.org>
Thread-Topic: [Cbor] Additional data types
Thread-Index: AdHAP6Oy25pLOQV2Rp6gIejeIb5M2gAEoPxgACDdFeAAEZrJ8AAq+nGgAA9EEAAAFs53MA==
Date: Thu, 9 Jun 2016 15:34:13 +0000
Message-ID: <04EFF12F483FA149B07653989B86861F2178FC14@wcosexch01k.cos.is.keysight.com>
References: <04EFF12F483FA149B07653989B86861F2178C6CF@wcosexch01k.cos.is.keysight.com> <BLUPR06MB17636F1667538D0F1C0A95D9FE5D0@BLUPR06MB1763.namprd06.prod.outlook.com> <04EFF12F483FA149B07653989B86861F2178DD15@wcosexch01k.cos.is.keysight.com> <BLUPR06MB17635547DFEC2F139C08E518FE5E0@BLUPR06MB1763.namprd06.prod.outlook.com> <04EFF12F483FA149B07653989B86861F2178EE92@wcosexch01k.cos.is.keysight.com> <57589814.7010505@tzi.org>
In-Reply-To: <57589814.7010505@tzi.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [156.140.13.70]
x-tm-as-product-ver: SMEX-11.0.0.4255-8.000.1202-22382.000
x-tm-as-result: No--38.613800-8.000000-31
x-tm-as-user-approved-sender: No
x-tm-as-user-blocked-sender: No
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/Oo2CtxuyYMDUQ26rkwZlGE3Nxrg>
Subject: Re: [Cbor] Additional data types
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.17
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: Thu, 09 Jun 2016 15:34:33 -0000

VXNlIG9mIHRoZSByZXNlcnZlZCB0YWcgZm9yIE11bHRpLWRpbSBhcnJheXMgd291bGQgYmUgZ3Jl
YXQuICAgSG93ZXZlciwgbXkgZmlyc3QgdGhvdWdodCB3aGVuIEkgc2F3IHRoZSByZXNlcnZlZCB0
YWcgd2FzIGl0IGNvdWxkIGJlIHVzZWQgZm9yIG9uZSBvZiB0aGUgb3RoZXIgbWFqb3IgdHlwZXMg
dGhhdCBhcmUgbm90IGNvdmVyZWQuICAgRm9yIGV4YW1wbGUsIHRleHQgc3RyaW5ncy4gIA0KDQpU
aGUgb25lcyBtaXNzaW5nIGZyb20gbXkgc3BlY2lmaWMgYXBwbGljYXRpb24gd291bGQgYmUgVHlw
ZWRBcnJheSBvZiANCjEuIFRleHQgc3RyaW5nIChtYWpvciAzKQ0KMi4gVGltZSAodGFnIDEpDQoz
LiBCb29sIChNYWpvciA3LzIwLTIxKQ0KDQpQZXJoYXBzIHRoZXNlIGFuZCBvdGhlcnMgY291bGQg
YmUgc3VwcG9ydGVkIGJ5IGhhdmluZyBhIHNpbmdsZSAnSG9tb2dlbmVvdXMgQXJyYXknIHRhZzoN
Cg0KVGFnOiBYWA0KRGF0YSBJdGVtOiBhcnJheQ0KU2VtYW50aWNzOiBIb21vZ2VuZW91cyBBcnJh
eQ0KDQpUaGlzIHRhZyBwcm92aWRlcyBhIGhpbnQgdG8gZGVjb2RlcnMgdGhhdCB0aGUgZm9sbG93
aW5nIGFycmF5IGhhcyBlbGVtZW50cyB0aGF0IGFyZSBhbGwgb2YgdGhlIHNhbWUgdHlwZS4gICBU
aGUgdHlwZSBvZiB0aGUgYXJyYXkgaXMgdGh1cyBkZXRlcm1pbmVkIGJ5IHRoZSB0eXBlIG9mIHRo
ZSBmaXJzdCBlbGVtZW50LiAgVGhpcyBjYW4gYmUgdXNlZCBieSBzdHJvbmdseSB0eXBlZCBsYW5n
dWFnZXMgd2hpbGUgZGVjb2RpbmcgIHRvIGNyZWF0ZSBuYXRpdmUgYXJyYXlzIG9mIHNwZWNpZmlj
IHR5cGVzIGluc3RlYWQgb2Ygb3JkZXJlZCBsaXN0cy4NCg0KV2hpbGUgZW5jb2RpbmcgaXMgbm90
IG9wdGltaXplZCBmb3IgY29tcGFjdG5lc3MgbGlrZSB0aGUgbnVtZXJpYyB0eXBlcywgaXQgZG9l
cyBtZWFuIHRoYXQgdmlydHVhbGx5IGFueSBob21vZ2VuZW91cyBhcnJheSB0eXBlIGNhbiByb3Vu
ZC10cmlwIHRocnUgQ0JPUiBuaWNlbHkgaWYgdGhlIGFwcGxpY2F0aW9uIHdhbnRzIHRvIHN1cHBv
cnQgc3BlY2lmaWMgbmF0aXZlIGFycmF5IHR5cGVzLg0KDQotLQ0KR2xlbm4NCg0KLS0tLS1Pcmln
aW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IENhcnN0ZW4gQm9ybWFubiBbbWFpbHRvOmNhYm9AdHpp
Lm9yZ10gDQpTZW50OiBXZWRuZXNkYXksIEp1bmUgMDgsIDIwMTYgMzoxMiBQTQ0KVG86IEVOR0VM
LEdMRU5OIChLLUxhYnMsZXgxKSA8Z2xlbm5fZW5nZWxAa2V5c2lnaHQuY29tPg0KQ2M6IE1pY2hl
bC5WZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTsgY2JvckBpZXRmLm9yZw0KU3ViamVjdDogUmU6
IFtDYm9yXSBBZGRpdGlvbmFsIGRhdGEgdHlwZXMNCg0KZ2xlbm5fZW5nZWxAa2V5c2lnaHQuY29t
IHdyb3RlOg0KPiBTb21ldGhpbmcgbGlrZToNCg0KSGkgR2xlbm4sDQoNCnRoaXMgaXMgcHJlY2lz
ZWx5IHdoYXQgSSB3YXMgZ29pbmcgdG8gcHJvcG9zZSBhcyB3ZWxsIQ0KKEV4Y2VwdCB0aGF0IEkg
d291bGRuJ3QgdXNlIHRoZSB0ZXJtICJyb3cgbWFqb3Igb3JkZXIiLCBtYXliZS4pDQoNCklzIHRo
aXMgd2VsbCB0aG91Z2h0IG91dCBlbm91Z2ggdGhhdCB3ZSBpbmNsdWRlIHRoaXMgaW4gdGhlIHR5
cGVkYXJyYXkgZHJhZnQ/DQooQW5kIGlzIHRoYXQgbWF5YmUgYSBnb29kIHdheSB0byB1c2UgdGhh
dCBvbmUgcmVzZXJ2ZWQgdGFnIGluIHRoZSAyNC10YWcNCnNwYWNlPykNCg0KR3LDvMOfZSwgQ2Fy
c3Rlbg0KDQo=


From nobody Wed Jun 29 10:19:21 2016
Return-Path: <glenn_engel@keysight.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 A8ECA12D5A9 for <cbor@ietfa.amsl.com>; Wed, 29 Jun 2016 10:19:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.626
X-Spam-Level: 
X-Spam-Status: No, score=-5.626 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-1.426] 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 twujhsiA4cxU for <cbor@ietfa.amsl.com>; Wed, 29 Jun 2016 10:19:18 -0700 (PDT)
Received: from cos-us-iron02k.cos.keysight.com (cos-us-iron02k.cos.keysight.com [192.25.5.36]) (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 D6ADB12D5AA for <cbor@ietf.org>; Wed, 29 Jun 2016 10:19:14 -0700 (PDT)
X-IPAS-Result: A2DGAQCjAnRXfRUYjJxaHQGEebs+hhgCHIFQEAEBAQEBAQESAQEWMy+EUAMjEVcBIgIGIAIEMBURAQQbiCikDI9ikDUBAQEjgQGONjgSgjUrgi8FmQWBMYdPlGOQAzWED4ktAX4BAQE
X-IronPort-AV: E=Sophos;i="5.26,547,1459836000"; d="scan'208";a="33587804"
Received: from wcosexch02k.cos.is.keysight.com (HELO 2k10hubs.keysight.com) ([156.140.24.21]) by cos-us-iron02k.cos.keysight.com with ESMTP/TLS/AES128-SHA256; 29 Jun 2016 11:19:13 -0600
Received: from wcosexch01k.cos.is.keysight.com ([169.254.3.76]) by wcosexch02k.cos.is.keysight.com ([169.254.2.179]) with mapi id 14.03.0279.002; Wed, 29 Jun 2016 11:19:12 -0600
From: <glenn_engel@keysight.com>
To: <cbor@ietf.org>
Thread-Topic: Next steps for additional data types
Thread-Index: AdHSJLofMCSgcVdjTkCBqiFk8YzVhQ==
Date: Wed, 29 Jun 2016 17:19:12 +0000
Message-ID: <04EFF12F483FA149B07653989B86861F217A069F@wcosexch01k.cos.is.keysight.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [156.140.13.70]
x-tm-as-product-ver: SMEX-11.0.0.4255-8.000.1202-22422.001
x-tm-as-result: No--38.837500-8.000000-31
x-tm-as-user-approved-sender: No
x-tm-as-user-blocked-sender: No
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/hZRNw5cKGC19asArZCbmF4UThXU>
Subject: [Cbor] Next steps for additional data types
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.17
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: Wed, 29 Jun 2016 17:19:20 -0000

SGksIGhhcyB0aGVyZSBiZWVuIGFueSBkaXNjdXNzaW9uIG9mIHdoZXJlIHRoZXNlIHR3byBwcm9w
b3NhbHMgZml0IHdpdGggdGhlIGV4aXN0aW5nIFR5cGVkQXJyYXkgcHJvcG9zYWw/DQoNClNob3Vs
ZCB0aGVzZSBiZSBwcm9wb3NlZCBhcyBuZXcgdGFncyB0byBJQU5BIG9yIGVudmVsb3BlZCBieSB0
aGUgVHlwZWRBcnJheSBwcm9wb3NhbD8NCg0KSnVzdCB0byByZWNhcCwgdGhlIHR3byBzdWdnZXN0
aW9ucyB3ZXJlIG1lY2hhbmlzbXMgdG8gcHJvdmlkZSBmb3IgMSkgbXVsdGktZGltZW5zaW9uYWwg
YXJyYXlzIGFuZCAyKSBUeXBlQXJyYXlzIG9mIG90aGVyIHR5cGVzIG5vdCBwcm92aWRlZCBmb3Ig
aW4gdGhlIFR5cGVkQXJyYXkgcHJvcG9zYWwgKGUuZy4gYm9vbFtdLCBzdHJpbmdbXSwgdGltZXN0
YW1wW10sIG1hcFtdKS4NCg0KMS4gTXVsdGktZGltZW5zaW9uYWwgYXJyYXkNCg0KVGFnOiBYWA0K
RGF0YSBJdGVtOiBhcnJheQ0KU2VtYW50aWNzOiBNdWx0aS1kaW1lbnNpb25hbCBhcnJheQ0KDQpB
IG11bHRpLWRpbWVuc2lvbmFsIGFycmF5IGlzIHJlcHJlc2VudGVkIGFzIGEgdGFnZ2VkIGFycmF5
IHRoYXQgY29udGFpbnMgdHdvIGFycmF5cy4gIFRoZSBmaXJzdCBhcnJheSBkZWZpbmVzIHRoZSBk
aW1lbnNpb25zIG9mIHRoZSBtdWx0aS1kaW1lbnNpb25hbCBhcnJheSB3aGlsZSB0aGUgc2Vjb25k
IGFycmF5IHJlcHJlc2VudHMgdGhlIGNvbnRlbnRzIG9mIHRoZSBtdWx0aS1kaW1lbnNpb25hbCBh
cnJheS4gIElmIHRoZSBzZWNvbmQgYXJyYXkgaXMgaXRzZWxmIHRhZ2dlZCBhcyBhIFR5cGVkQXJy
YXkgdGhlbiB0aGUgdHlwZSBvZiB0aGUgbXVsdGktZGltZW5zaW9uYWwgYXJyYXkgaXMgYXNzdW1l
ZCB0byBiZSB0aGUgc2FtZSB0eXBlIGFzIHRoZSBUeXBlZEFycmF5LiAgIERhdGEgaW4gdGhlIFR5
cGVkQXJyYXkgYnl0ZSBzdHJpbmcgY29uc2lzdHMgb2YgY29uc2VjdXRpdmUgdmFsdWVzIHdoZXJl
IHRoZSBsYXN0IGRpbWVuc2lvbiBpcyBjb25zaWRlcmVkIGNvbnRpZ3VvdXMgKHJvdy1tYWpvciBv
cmRlcikuIA0KDQp1aW50MTZfdCBhWzJdWzNdID0geyAgDQogIHswLCAxLCAyfSwgICAvKiByb3cg
MCAqLw0KICB7MywgNCwgNX0sICANCn07DQoNCjxUYWcgWFg+ICAgICMgbXVsdGktZGltIGFycmF5
IHRhZw0KICAgODIgICAgICAgIyBhcnJheSgyKQ0KICAgICAgODIgICAgIyBhcnJheSgyKQ0KICAg
ICAgICAgMDIgIyB1bnNpZ25lZCgyKSAxc3QgRGltZW5zaW9uDQogICAgICAgIDAzICMgdW5zaWdu
ZWQoMykgMm5kIERpbWVuc2lvbg0KICAgICBkOCA0MSAjIHVpbnQxNiBhcnJheQ0KICAgICAgICAg
NGEgICAgIyBieXRlIHN0cmluZygxMikNCiAgICAgICAgICAgIDAwIDAwICMgdW5zaWduZWQoMCkN
CiAgICAgICAgICAgIDAwIDAxICMgdW5zaWduZWQoMSkNCiAgICAgICAgICAgIDAwIDAyICMgdW5z
aWduZWQoMikNCiAgICAgICAgICAgIDAwIDAzICMgdW5zaWduZWQoMykNCiAgICAgICAgICAgIDAw
IDA0ICMgdW5zaWduZWQoNCkNCiAgICAgICAgICAgIDAwIDA1ICMgdW5zaWduZWQoNSkNCg0KMi4g
SG9tb2dlbmVvdXMgQXJyYXkNCg0KVGFnOiBZWQ0KRGF0YSBJdGVtOiBhcnJheQ0KU2VtYW50aWNz
OiBIb21vZ2VuZW91cyBBcnJheQ0KDQpUaGlzIHRhZyBwcm92aWRlcyBhIGhpbnQgdG8gZGVjb2Rl
cnMgdGhhdCB0aGUgZm9sbG93aW5nIGFycmF5IGhhcyBlbGVtZW50cyB0aGF0IGFyZSBhbGwgb2Yg
dGhlIHNhbWUgdHlwZS4gICBUaGUgdHlwZSBvZiB0aGUgYXJyYXkgaXMgdGh1cyBkZXRlcm1pbmVk
IGJ5IHRoZSB0eXBlIG9mIHRoZSBmaXJzdCBhcnJheSBlbGVtZW50LiAgVGhpcyBjYW4gYmUgdXNl
ZCBieSBzdHJvbmdseSB0eXBlZCBsYW5ndWFnZXMgd2hpbGUgZGVjb2RpbmcgIHRvIGNyZWF0ZSBu
YXRpdmUgYXJyYXlzIG9mIHNwZWNpZmljIHR5cGVzIGluc3RlYWQgb2Ygb3JkZXJlZCBsaXN0cy4N
Cg0KYm9vbCBib29sQXJyYXlbMl0gPSB7IHRydWUsIGZhbHNlIH07DQoNCjxUYWcgWVk+ICAjIEhv
bW9nZW5lb3VzIEFycmF5IFRhZw0KICAgODIgICAgICAgICAgICNhcnJheSgyKQ0KICAgICAgRjUg
ICAgICAgICMgdHJ1ZQ0KICAgICAgRjQgICAgICAgICMgZmFsc2UNCg0KUmVnYXJkcywNCg0KR2xl
bm4gRW5nZWwNCg==


From nobody Wed Jun 29 11:43:08 2016
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 B714612D0B0 for <cbor@ietfa.amsl.com>; Wed, 29 Jun 2016 11:43:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level: 
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7] 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 3hJiyLTDdJnr for <cbor@ietfa.amsl.com>; Wed, 29 Jun 2016 11:43:04 -0700 (PDT)
Received: from relay5-d.mail.gandi.net (relay5-d.mail.gandi.net [IPv6:2001:4b98:c:538::197]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BC85912D0AB for <cbor@ietf.org>; Wed, 29 Jun 2016 11:43:04 -0700 (PDT)
Received: from mfilter19-d.gandi.net (mfilter19-d.gandi.net [217.70.178.147]) by relay5-d.mail.gandi.net (Postfix) with ESMTP id EA84E41C090; Wed, 29 Jun 2016 20:43:02 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at mfilter19-d.gandi.net
Received: from relay5-d.mail.gandi.net ([IPv6:::ffff:217.70.183.197]) by mfilter19-d.gandi.net (mfilter19-d.gandi.net [::ffff:10.0.15.180]) (amavisd-new, port 10024) with ESMTP id 9LTiGXkSwIma; Wed, 29 Jun 2016 20:43:01 +0200 (CEST)
X-Originating-IP: 93.199.242.26
Received: from nar-3.local (p5DC7F21A.dip0.t-ipconnect.de [93.199.242.26]) (Authenticated sender: cabo@cabo.im) by relay5-d.mail.gandi.net (Postfix) with ESMTPSA id A841641C084; Wed, 29 Jun 2016 20:42:59 +0200 (CEST)
Message-ID: <577416B1.3090308@tzi.org>
Date: Wed, 29 Jun 2016 20:42:57 +0200
From: Carsten Bormann <cabo@tzi.org>
User-Agent: Postbox 4.0.8 (Macintosh/20151105)
MIME-Version: 1.0
To: glenn_engel@keysight.com
References: <04EFF12F483FA149B07653989B86861F217A069F@wcosexch01k.cos.is.keysight.com>
In-Reply-To: <04EFF12F483FA149B07653989B86861F217A069F@wcosexch01k.cos.is.keysight.com>
X-Enigmail-Version: 1.2.3
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/oNYXQudz0-RmQMKYn2NKDOdjlgA>
Cc: cbor@ietf.org
Subject: Re: [Cbor] Next steps for additional data types
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.17
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: Wed, 29 Jun 2016 18:43:07 -0000

glenn_engel@keysight.com wrote:
> Hi, has there been any discussion of where these two proposals fit with the existing TypedArray proposal?

No, not yet.  There are still a few days up to the Internet-Draft
deadline for the Berlin meeting...

> Should these be proposed as new tags to IANA or enveloped by the TypedArray proposal?

>From the point of view of the work needed, It is probably most
economical to include them in the typed array draft, even if they don't
fit perfectly.

> Just to recap, the two suggestions were mechanisms to provide for 1) multi-dimensional arrays and 2) TypeArrays of other types not provided for in the TypedArray proposal (e.g. bool[], string[], timestamp[], map[]).
> 
> 1. Multi-dimensional array
> 
> Tag: XX
> Data Item: array
> Semantics: Multi-dimensional array
> 
> A multi-dimensional array is represented as a tagged array that contains two arrays.  The first array defines the dimensions of the multi-dimensional array while the second array represents the contents of the multi-dimensional array.  If the second array is itself tagged as a TypedArray then the type of the multi-dimensional array is assumed to be the same type as the TypedArray.   Data in the TypedArray byte string consists of consecutive values where the last dimension is considered contiguous (row-major order). 
> 
> uint16_t a[2][3] = {  
>   {0, 1, 2},   /* row 0 */
>   {3, 4, 5},  
> };
> 
> <Tag XX>    # multi-dim array tag
>    82       # array(2)
>       82    # array(2)
>          02 # unsigned(2) 1st Dimension
>         03 # unsigned(3) 2nd Dimension
>      d8 41 # uint16 array
>          4a    # byte string(12)
>             00 00 # unsigned(0)
>             00 01 # unsigned(1)
>             00 02 # unsigned(2)
>             00 03 # unsigned(3)
>             00 04 # unsigned(4)
>             00 05 # unsigned(5)
> 
> 2. Homogeneous Array
> 
> Tag: YY
> Data Item: array
> Semantics: Homogeneous Array
> 
> This tag provides a hint to decoders that the following array has elements that are all of the same type.   The type of the array is thus determined by the type of the first array element.  This can be used by strongly typed languages while decoding  to create native arrays of specific types instead of ordered lists.
> 
> bool boolArray[2] = { true, false };
> 
> <Tag YY>  # Homogeneous Array Tag
>    82           #array(2)
>       F5        # true
>       F4        # false

We probably need to add a little bit more text about what sets of values
should be considered a homogeneous set (e.g., is null included or not;
float vs. int, int vs. uint, ...).  A few more examples would help.  The
guiding principle probably should be what can be represented in a
typical static-type programming language as a homogeneous array.

Grüße, Carsten

