Re: [Fwd: [Forces-protocol] Presentation of the options forLFB-level multicast]

Jamal Hadi Salim <> Sat, 13 November 2004 01:14 UTC

Received: from ( []) by (8.9.1a/8.9.1a) with ESMTP id UAA18124 for <>; Fri, 12 Nov 2004 20:14:24 -0500 (EST)
Received: from ([]) by with esmtp (Exim 4.33) id 1CSmWE-0002li-Ia for; Fri, 12 Nov 2004 20:15:58 -0500
Received: from localhost.localdomain ([] by with esmtp (Exim 4.32) id 1CSmTD-00084S-7n; Fri, 12 Nov 2004 20:12:51 -0500
Received: from ([] by with esmtp (Exim 4.32) id 1CSmLK-0006xp-FR for; Fri, 12 Nov 2004 20:04:44 -0500
Received: from ( []) by (8.9.1a/8.9.1a) with ESMTP id UAA17517 for <>; Fri, 12 Nov 2004 20:04:40 -0500 (EST)
Received: from ([] by with esmtp (Exim 4.33) id 1CSmMk-0002Md-UJ for; Fri, 12 Nov 2004 20:06:14 -0500
Received: from localhost ([]) by (Lotus Domino Release 5.0.11) with ESMTP id 2004111217082356:21065 ; Fri, 12 Nov 2004 17:08:23 -0800
Subject: Re: [Fwd: [Forces-protocol] Presentation of the options forLFB-level multicast]
From: Jamal Hadi Salim <>
To: "Wang,Weiming" <>
In-Reply-To: <1100271071.1109.38.camel@jzny.localdomain>
References: <> <1099700691.1038.2.camel@jzny.localdomain> <005101c4c408$dc341600$020aa8c0@wwm1> <1099752095.1037.11.camel@jzny.localdomain> <003201c4c46d$1bbce4a0$020aa8c0@wwm1> <004201c4c4ec$61d34c20$020aa8c0@wwm1> <1099829057.2165.18.camel@jzny.localdomain> <00bd01c4c536$fb418ee0$020aa8c0@wwm1> <1099885892.2167.13.camel@jzny.localdomain> <132001c4c551$86023150$> <1099911200.2169.29.camel@jzny.localdomain> <134f01c4c585$216584c0$> <> <142a01c4c6d6$13569980$> <1100100893.2210.24.camel@jzny.localdomain> <14fc01c4c79f$75231f20$> <> <155001c4c8c0$5eb73ec0$> <1100269665.1106.30.camel@jzny.localdomain> <156501c4c8c5$1fb19220$> <1100271071.1109.38.camel@jzny.localdomain>
Organization: ZNYX Networks
Message-Id: <1100307886.1110.20.camel@jzny.localdomain>
Mime-Version: 1.0
X-Mailer: Ximian Evolution 1.2.2
Date: Fri, 12 Nov 2004 20:04:46 -0500
X-MIMETrack: Itemize by SMTP Server on Lotus/Znyx(Release 5.0.11 |July 24, 2002) at 11/12/2004 05:08:23 PM, Serialize by Router on Lotus/Znyx(Release 5.0.11 |July 24, 2002) at 11/12/2004 05:08:26 PM, Serialize complete at 11/12/2004 05:08:26 PM
Content-Transfer-Encoding: 7bit
Content-Type: text/plain
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 4d87d2aa806f79fed918a62e834505ca
Content-Transfer-Encoding: 7bit
Cc: "Khosravi, Hormuzd M" <>, "(Ram Gopal )" <>, Avri Doria <>,, "Joel M. Halpern" <>, Patrick Droz <>,, Dong Ligang <>, Robert Haas <>
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: forces-protocol <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 5a9a1bd6c2d06a21d748b7d0070ddcb8
Content-Transfer-Encoding: 7bit

Hrm, I think i may have figured what Weiming has been saying all
along - but i could still be wrong ;->
While on the plane i started jotting down how we do data encoding in our
code. And it struck me to be probably related to what Weiming was
saying. To make sense of this please look at the slides i presented at
the last example.

In our implementation so far we havent had the opportunity to use a
nested table, but i think that example is useful.

When we do a get we pass the path as in the scheme presented so far i.e
path=1 to access goo1 and path=2 to access goo2 as well as path={4,0} to
access datatable2 first row.
So lets start with a simple example of the response getting goo1.

We get back a TLV; the T=ID=1  and the content being a padded
32 bit (since goo1 is 16 bits).

Lets say the request path was 4 (for datatable2) in that case we get the
whole table 4.

This is encoded similarly with T being the ID in this case
T = 4, length = size of all entries in bytes + 4*numberofrows
It is assumed that all rows in the tables are 32 bit aligned.
Each table row is preceeded by a 32 bit index followed by the structure
for the row. This extra 32 bit index is not needed if the table already
has an index as part of its row contents.

I wont go into the nested table example because i want people to digest

Now you could logically argue (as probably Weiming was) that to set a
value you would use the same technique.

A query and delete stay the same as before (since they only need to
identify the path). 
Dont wanna go into block or content operations yet. But it should be
noted that if you used the above mentioned encoding you could send
blocks of data to update a table as well as have holes in that table;
example you could have index0 followed by 3 and miss out 1 and 2.

I will write up more on our encoding scheme later, just wanted to share
my brain storm at 30K feet.


Forces-protocol mailing list