Date: 2005-02-19T13:03:17 Editor: EmmanuelLecharny Wiki: Apache Directory Project Wiki Page: TLVPageInfo URL: http://wiki.apache.org/directory/TLVPageInfo
no comment Change Log: ------------------------------------------------------------------------------ @@ -89,7 +89,7 @@ Those '''Value''' are terminal. They can't contain another TLV. In the sample, we have 4 primitive '''Values''' : * 02 01 01 which is an ''Integer'' representing the Message ID #1 * 0A 01 00 which is an ''ENUMERATED'' which value is 0 (success for a BindResponse LDAP Message) - * 04 00 are OCTET STRING with no value, as the ''Length'' is 0. + * the last two 04 00 are OCTET STRINGs with no value, as the ''Length'' is 0. We can see that even if we can read a '''TLV''', the semantic is carried by the upper layer. '''TLV''' are just structured containers, no more. @@ -98,6 +98,9 @@ The last point is that a primitive value has a fixed size, given by the '''Lengh''' part of the '''TLV'''. It will be used for ''constructed values''. ==== Constructed Value ==== +Constructed values are '''TLV''' with inner '''TLVs''' in its '''Value'''. It ha a '''Length''' which is the sum of all its inner '''TLVs'''. A bit is set in the '''Tag''' to distinguish a ''Constructed value'' from a ''Primitive value'' : the 5th bit of the first tag's byte. In the sample, the first '''TLV''' tag is ''30'', which can be read 00__'''1'''__1-0000 binary. The 5th bit (bold) is set : it's a ''constructed value''. + + (TODO : replace the total BS below ...) What about the '''Values'''? '''Length''' was easy, it was totally context-free. Which kind of '''Value''' can we have? How do we know the type of each '''Value'''?
