[Forces-protocol] Re: Data encoding -- first part

"Joel M. Halpern" <jhalpern@MEGISTO.com> Mon, 18 October 2004 19:56 UTC

Received: from ietf-mx.ietf.org (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id PAA17838 for <forces-protocol-web-archive@ietf.org>; Mon, 18 Oct 2004 15:56:23 -0400 (EDT)
Received: from megatron.ietf.org ([132.151.6.71]) by ietf-mx.ietf.org with esmtp (Exim 4.33) id 1CJdo4-0008Tx-I5 for forces-protocol-web-archive@ietf.org; Mon, 18 Oct 2004 16:08:52 -0400
Received: from localhost.localdomain ([127.0.0.1] helo=megatron.ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1CJdNL-0003Or-0J; Mon, 18 Oct 2004 15:40:59 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1CJd3Y-0006WN-4x for forces-protocol@megatron.ietf.org; Mon, 18 Oct 2004 15:20:32 -0400
Received: from ietf-mx.ietf.org (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id PAA15283 for <forces-protocol@ietf.org>; Mon, 18 Oct 2004 15:20:25 -0400 (EDT)
Received: from [64.254.114.114] (helo=megisto-e2k.megisto.com) by ietf-mx.ietf.org with esmtp (Exim 4.33) id 1CJdFE-0007dL-6W for forces-protocol@ietf.org; Mon, 18 Oct 2004 15:32:54 -0400
Received: from JLaptop.megisto.com ([192.168.20.163]) by megisto-e2k.megisto.com with Microsoft SMTPSVC(5.0.2195.6713); Mon, 18 Oct 2004 15:19:47 -0400
Message-Id: <5.1.0.14.0.20041018151520.03591698@mail.megisto.com>
X-Sender: jhalpern@mail.megisto.com
X-Mailer: QUALCOMM Windows Eudora Version 5.1
Date: Mon, 18 Oct 2004 15:19:43 -0400
To: Zsolt Haraszti <zsolt@modularnet.com>, Alan DeKok <alan.dekok@idt.com>
From: "Joel M. Halpern" <jhalpern@MEGISTO.com>
In-Reply-To: <1098126011.2884.162.camel@localhost.localdomain>
References: <4173FB88.1000008@idt.com> <468F3FDA28AA87429AD807992E22D07E025791E5@orsmsx408> <002d01c4b50b$1ecc9c10$020aa8c0@wwm1> <1098102734.1042.134.camel@jzny.localdomain> <1098113089.2364.12.camel@localhost.localdomain> <1098115003.2884.67.camel@localhost.localdomain> <4173FB88.1000008@idt.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format="flowed"
X-OriginalArrivalTime: 18 Oct 2004 19:19:47.0638 (UTC) FILETIME=[6E9E2560:01C4B547]
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 21c69d3cfc2dd19218717dbe1d974352
Cc: "Khosravi, Hormuzd M" <hormuzd.m.khosravi@intel.com>, ram.gopal@nokia.com, forces-protocol@ietf.org, "Yang, Lily L" <lily.l.yang@intel.com>, Jamal Hadi Salim <hadi@znyx.com>, "Steven Blake (petri-meat)" <slblake@petri-meat.com>, Ellen M Deleganes <ellen.m.deleganes@intel.com>, Weiming Wang <wmwang@mail.hzic.edu.cn>
Subject: [Forces-protocol] Re: Data encoding -- first part
X-BeenThere: forces-protocol@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: forces-protocol <forces-protocol.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/forces-protocol>, <mailto:forces-protocol-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www1.ietf.org/pipermail/forces-protocol>
List-Post: <mailto:forces-protocol@ietf.org>
List-Help: <mailto:forces-protocol-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/forces-protocol>, <mailto:forces-protocol-request@ietf.org?subject=subscribe>
Sender: forces-protocol-bounces@ietf.org
Errors-To: forces-protocol-bounces@ietf.org
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 50a516d93fd399dc60588708fd9a3002

Note that an array of structs, where the struct itself contains an array 
(or an array of arrays, which is our equivalent of a two dimensional array) 
is an array with variable sized components.

Note that with the encoding defined, if an array starts with its array 
count one can parse the array sequentially and find all the boundaries even 
if the elements are variable length.  The inner length (which I may have 
suggested) just makes decomposition much cleaner.


I did find one aspect of the description confusing, but technically 
correct.  The packing of 8 and 16 bit integers is defined without 
packing.  You do this so you can use that encoding in the building of 
structs.  However, the encoding of single 8 or 16 bit integers will require 
padding.  (And likely, an array of 8 bit integers should probably be padded 
so that iterative array processing is clean.  (After all, we have STRING 
and BYTES for the common packed cases.

Yours,
Joel M. Halpern

At 03:00 PM 10/18/2004 -0400, Zsolt Haraszti wrote:
> > > 4.2.2  Encoding of Array Types
> > >
> > > This is the only non-trivial type in terms of encoding.  Before 
> presenting
> > > the encoding format and rules, let's state some requirements:
> > >
> > > - Number of elements must be specified in a header
> > > - If the type of the entries are not of fixed size, the encoded entries
> > >   will have variable sizes, so the size of each entry must be provided.
> >
> >    Variable-sized entries are severely problematic.
> >
>I agree that they are more trouble-some.  But I find it too restrictive
>to prohibit them.  Arrays of arrays will have this.  Or, if your array
>is based on a struct that has string field(s), will have this problem.
>
>This is one of those places where I would think good designs will avoid
>such ARRAYs as much as possible, but in some cases it cannot be avoided
>so we must support it in the protocol.
>
>/zsolt


_______________________________________________
Forces-protocol mailing list
Forces-protocol@ietf.org
https://www1.ietf.org/mailman/listinfo/forces-protocol