Re: [Fwd: [Forces-protocol] Presentation of the options forLFB-level multicast]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Fwd: [Forces-protocol] Presentation of the options forLFB-level multicast]
- To: "Wang,Weiming" <wmwang at mail.hzic.edu.cn>
- Subject: Re: [Fwd: [Forces-protocol] Presentation of the options forLFB-level multicast]
- From: Jamal Hadi Salim <hadi at znyx.com>
- Date: 12 Nov 2004 09:51:11 -0500
- Cc: "Khosravi, Hormuzd M" <hormuzd.m.khosravi at intel.com>, "\(Ram Gopal \)" <ram.gopal at nokia.com>, Avri Doria <avri at acm.org>, forces-protocol at ietf.org, "Joel M. Halpern" <joel at stevecrocker.com>, Patrick Droz <dro at zurich.ibm.com>, David.Putzolu at intel.com, Dong Ligang <donglg at mail.hzic.edu.cn>, Robert Haas <rha at zurich.ibm.com>
- In-reply-to: <156501c4c8c5$1fb19220$845c21d2@Necom.hzic.edu.cn>
- List-archive: <http://www1.ietf.org/pipermail/forces-protocol>
- List-help: <mailto:forces-protocol-request@ietf.org?subject=help>
- List-id: forces-protocol <forces-protocol.ietf.org>
- List-post: <mailto:forces-protocol@ietf.org>
- List-subscribe: <https://www1.ietf.org/mailman/listinfo/forces-protocol>, <mailto:forces-protocol-request@ietf.org?subject=subscribe>
- List-unsubscribe: <https://www1.ietf.org/mailman/listinfo/forces-protocol>, <mailto:forces-protocol-request@ietf.org?subject=unsubscribe>
- Organization: ZNYX Networks
- References: <4189F776.4080306@zurich.ibm.com> <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$845c21d2@Necom.hzic.edu.cn> <1099911200.2169.29.camel@jzny.localdomain> <134f01c4c585$216584c0$845c21d2@Necom.hzic.edu.cn> <4191299F.4020809@zurich.ibm.com> <142a01c4c6d6$13569980$845c21d2@Necom.hzic.edu.cn> <1100100893.2210.24.camel@jzny.localdomain> <14fc01c4c79f$75231f20$845c21d2@Necom.hzic.edu.cn> <6.1.2.0.0.20041111091015.03bafec0@localhost> <155001c4c8c0$5eb73ec0$845c21d2@Necom.hzic.edu.cn> <1100269665.1106.30.camel@jzny.localdomain> <156501c4c8c5$1fb19220$845c21d2@Necom.hzic.edu.cn>
- Reply-to: hadi at znyx.com
- Sender: forces-protocol-bounces at ietf.org
Weiming,
On Fri, 2004-11-12 at 09:37, Wang,Weiming wrote:
> I just see random index is unavoidable regardless of rules used.
I agree there will be holes in the indixes. So this somehow needs to be
managed.
> > Or maybe i should start the discussion on encoding in parallel?
> That's fine.
>
I am travelling today, but (at the cost of probably being frowned on)
heres the document i gathered from reading Steve/Zsolt doc. It talks
about content and block operations.
cheers,
jamal
This doc builds up on what was posted by Steve/Zsolt[1] to
try to map to protocol.
It by no means imposes a decision i.e tghis is merely here
as a discussion place holder with the a desire to speed things
up.
NOTE:
-----
A small reminder on layout:
main hdr (eg type = config)
|
|
+--- T = LFBselect
| |
| +-- LFBCLASSID = 0x45
| |
| |
| +-- LFBInstance = 0x1234
| |
| +-- T = ADD //operation
| | |
| | +-- // path target X
| | // with data to be added
| | // This is the discussion point
| |
| +-- T = ADD //operation
| | |
| | +-- // path target Y
| | // with data to be added
| | // This is the discussion point
| |
| |
| +-- T = DEL //operation
| . |
| . +-- // path target Z
| . // This is the discussion point
|
1) There could be multiple operations on any instance
2) path-data comes after the operation.
3) there is only one path-data per operation.
A possible path-data layout.
----------------------------
OPER_TLV : = <PATH-DATA>
PATH-DATA := flags IDcount <IDs> [BLOCK_OR_KEY_NOTATION] [DATA]
The operational TLV contains an opcode in the T part. Its V
contains the PATH-DATA.
Opcodes discussed so far:
* SET (create, modify or both depending on PATH-DATA flags}
* DEL (remove an existing entity specified by PATH-DATA }
* GET (Access a entity specified in PATH-DATA }
* EV_S (subscribe to an event defined in PATH-DATA }
* EV_U (unsubscribe to an event defined in PATH-DATA }
-> IDs := a series of 32bit IDs (whose size is given by IDcount)
defining the path.
-> flags are used to further refine the operation to be applied
on the ID_TLV.
-> BLOCK_OR_KEY_NOTATION := optional different BLOCK or KEY extension
defined in section 4.2 and 4.3 of [1]
-> DATA : = Optional variable sized data dependent on PATH
and applied operations (eg GET will not have DATA).
Some Clarification in relation to [1]:
-------------------------------------
[1] represents a requirement gathering/place holder.
This document is into details closer to implementation.
flags
-----
Derived from netlink and BSD route sockets to meet requirements
defined in [1]:
--> F_EXCL:
The exclusive flag.
Donot replace the config attribute(s) if already exists -
Report back error instead.
A CREATE operation with this flag is equivalent to
INS_IDX if index is passed and equivalent to INS if index is
not passed in the IDs.
A DEL with this flag is equivalent to DEL! in [1]. Without
this flag the equivalency is to DEL.
--> F_REPLACE:
Replace existing matching config attribute(s) with passed
data. An index must be passed. In the case of key operations, a
KEY must be passed.
A CREATE operation with this flag is equivalent to a SET
or a INS_IDX!.
Steve/Zsolt please double check that this is matching to your
doc.
A CREATE operation with F_EXCL|F_REPLACE is equivalent to SET!
** Other flags used for block operations mentioned in the BLOCK section.
BLOCK and KEY path selection
-----------------------------
The <all> variant described in [1] is not needed. To get access
to all of table contents, the IDs merely need to point to the table.
Therefore to access a range, the IDs field will contain the ID
leading to a table and an optional TLV will include the range
information.
- Additional flags needed:
1)F_BLOCK_ON, to indicate block selector embeded
2)F_KEY_ON, to indicate a key selector embeded
#1 and #2 are mutually exclusive.
3) F_REV_TRAVERSE, to indicate reverse progress in the access.
4) F_KEY_MODE (2 bits or more) to select the KEY mode in case #2 is
on.
5) F_BLOCK_MODE (1 bit); indicates count or range for second
parameter of BLOCK Notation.
In the case of block operations:
Two modes exist. [a,b] or [a,N]
We introduce a block TLV
T = BLOCK_TLV
start // "a"
end // "b" or "N"
The flag F_BLOCK_ON will indicate the presence of this TLV.
F_BLOCK_MODE will indicate that "end" is an "a" or "N"
F_REV_TRAVERSE will indicate whether reverse or forward progress
In the case of the associative paths:
the flag F_KEY_ON will indicate that we are using associative approach
F_KEY_MODE will define the mode .
We introduce a KEY_INFO TLV.
T = BLOCK_TLV
KEY
KEY_DATA
The length of the TLV will help deducing the size of the KEY_DATA.
DATA:
-----
Not discussing the optional data right now; a lot of details
above need ironing out first.
DATA is complex twist when it comes with variable sized data.
$Log: path-data-oper.txt,v $
Revision 1.2 2004/10/16 14:03:25 hadi
incoporating feedback from Joel et al
Revision 1.1 2004/10/14 13:12:32 hadi
Initial revision
_______________________________________________
Forces-protocol mailing list
Forces-protocol at ietf.org
https://www1.ietf.org/mailman/listinfo/forces-protocol
Note: Messages sent to this list are the opinions of the senders and do not imply endorsement by the IETF.