Protocol Draft - PathDataTLV

Evangelos Haleplidis <ehalep@gmail.com> Mon, 31 March 2008 19:56 UTC

Message-Id: <MON.31.MAR.2008.225609.0300.>
Date: Mon, 31 Mar 2008 22:56:09 +0300
From: Evangelos Haleplidis <ehalep@gmail.com>
Subject: Protocol Draft - PathDataTLV
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-7"
Content-Transfer-Encoding: 7bit

Greetings to the list,

I have some questions/comments regarding the Path-Data-TLV.

Let me copy-paste here the parts of the Protocol draft version 14 that
provoked these questions:

===============================
In Page 45 there is a text that says:

      *  flags (16 bits) are used to further refine the operation to be
         applied on the Path.  More on these later.

There is a text in Page 48 that says:

	In the case of FULLDATA TLVs:

      *  When a table is referred to in the PATH (IDs) of a PATH-DATA-
         TLV, then the FULLDATA's "V" will contain that table's row
         content prefixed by its 32 bit index/subscript.  On the other
         hand, when PATH flags are 00, the PATH may contain an index
         pointing to a row in table; in such a case, the FULLDATA's "V"
         will only contain the content with the index in order to avoid
         ambiguity.

Also there is a text about flags in page 48 that contains a flag regarding
F_Selector.

   o  SELECTOR Bit: F_SELKEY indicates that a KEY Selector is present
      following this path information, and should be considered in
      evaluating the path.
===============================

1. Path-Data-TLV is the only TLV (besides KEYINFO-TLV) that is not depicted
as a graph in the document. While it is described, it would be good for
consistency to be seen. In the end of the document I include an example.

2. In the second text the part "when PATH flags are 00" should be changed to
"when PATH flags are 0x00", unless there was intended as 0b00. It should be
specified however for clarity.

3. About Selector Bit, in which position does it exist in the flags? I guess
it should be the first. However I think it should be documented for clarity
purposes (I also include a graph in the end of the mail).

4. I don't understand exactly what the text in page 48 regarding FullData
TLVs mean. If PathFlags!=0x00 then the FullData MUST contain inside the V
the row besides the value, the index of the row (fifth row for example)? But
if PathFlags==0x00 then it MAY contain that OR the row will be specified in
the Path (IDs)? While I searched I did not see an example in the document,
or perhaps I was searching wrong.

===============================
Path-Data-TLV Graph

     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |        Type = PathData        |               Length          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |            flags              |              IDcount          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                              ID(0)                            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ~                              ...                              ~
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          ID(IDcount-1)                        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                              Data                             |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


Flags in Path-Data-TLV:

     0                   1
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |S|          Reserved           |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

S: Selector Flag.

Data is one of the following TLVs:

   o  SELECTOR is an optional construct that further defines the PATH.
      Currently, the only defined selector is the KEYINFO-TLV, used for
      selecting an array entry by the value of a key field.  The
      presence of a SELECTOR is indicated by the appropriate flags settings.
      A mismatch is a protocol format error.

Or

   o  DATA may contain a FULLDATA-TLV, SPARSEDATA-TLV, a RESULT-TLV or 1
      or more further PATH-DATA selection.  FULLDATA and SPARSEDATA are
      only allowed on SET requests, or on responses which return content
      information (GET-RESPONSE for example).  PATH-DATA may be included
      to extend the path on any request.

==================================