As Les’ example pointed out, what I suggested doesn’t quite capture it 
correctly.  Let me say it differently: the solution is recursive, but strictly 
hierarchical.

Is that clearer?

T


> On Feb 21, 2025, at 12:22 PM, Robert Raszuk - robert at raszuk.net 
> <mailforwa...@cloudmails.net> wrote:
> 
> 
> > I cannot split this sub-TLV across two TLV 22 advertisements i.e.,
> 
> Hmm based on what Tony wrote I read it that you could actually split it as 
> shown ... I think the draft could improve if the split boundaries were to be 
> clearly defined. 
> 
> 
> On Fri, Feb 21, 2025 at 7:08 PM Les Ginsberg (ginsberg) <ginsb...@cisco.com 
> <mailto:ginsb...@cisco.com>> wrote:
>> Robert –
>> 
>>  
>> 
>> Consider the following example.
>> 
>>  
>> 
>> https://www.rfc-editor.org/rfc/rfc8570.html#section-4.2 defines Min/Max 
>> Unidirectional Link Delay Sub-TLV:
>> 
>>  
>> 
>>  
>> 
>>      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
>> 
>>     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>> 
>>     |   34          |     Len = 8   |
>> 
>>     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>> 
>>     |A| RESERVED    |                   Min Delay                   |
>> 
>>     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>> 
>>     |   RESERVED    |                   Max Delay                   |
>> 
>>     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>> 
>>  
>> 
>> I cannot split this sub-TLV across two TLV 22 advertisements i.e.,
>> 
>>  
>> 
>> In TLV #1: have
>> 
>>  
>> 
>>  
>> 
>>      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
>> 
>>     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>> 
>>     |   34          |     Len = 4   |
>> 
>>     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>> 
>>     |A| RESERVED    |                   Min Delay                   |
>> 
>>     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>> 
>>  
>> 
>> And in TLV #2:
>> 
>>  
>> 
>>  
>> 
>>      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
>> 
>>     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>> 
>>     |   34          |     Len = 4   |
>> 
>>     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>> 
>>     |   RESERVED    |                   Max Delay                   |
>> 
>>     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>> 
>>  
>> 
>> (or any other variations you can think of).
>> 
>>  
>> 
>> Same applies to any level of sub-TLV.
>> 
>> HTH
>> 
>>  
>> 
>>    Les
>> 
>>  
>> 
>> From: Robert Raszuk <rob...@raszuk.net <mailto:rob...@raszuk.net>> 
>> Sent: Friday, February 21, 2025 9:25 AM
>> To: Les Ginsberg (ginsberg) <ginsb...@cisco.com <mailto:ginsb...@cisco.com>>
>> Cc: Tony Li <tony...@tony.li <mailto:tony...@tony.li>>; lsr <lsr@ietf.org 
>> <mailto:lsr@ietf.org>>
>> Subject: Re: [Lsr] [Last-Call] 答复: Re: 【Can you concatenate several pieces 
>> together without one "explicit key" to identify them belong to the same 
>> segment】Re: Rtgdir last call review of draft-ietf-lsr-multi-tlv-08
>> 
>>  
>> 
>> Yes this was exactly my doubt ... and I actually thought that such boundary 
>> must be sub-TLV
>> 
>>  
>> 
>> Maybe Tony had in mind sub-TLV which consists of TLVs (sub-sub-TLVs) such 
>> boundary could also work. 
>> 
>>  
>> 
>> But this sentence: 
>> 
>>  
>> 
>> "it cannot be required to have parts of another TLV in order to correctly 
>> parse any sub-TLV." 
>> 
>>  
>> 
>> is a bit cryptic. Can you pls provide some real life example(s) ? 
>> 
>>  
>> 
>> Thx
>> 
>>  
>> 
>> On Fri, Feb 21, 2025 at 6:13 PM Les Ginsberg (ginsberg) <ginsb...@cisco.com 
>> <mailto:ginsb...@cisco.com>> wrote:
>> 
>> Robert/Tony -
>> 
>> I think this relates to a point discussed during Adrian's RTGDIR review. 
>> Adrian made the point that:
>> 
>> "... that the split between component TLVs MUST be done at a sub-TLV or 
>> other unit boundary."
>> 
>> I had suggested text (but not actually added it to the latest version of the 
>> draft):
>> 
>> “Each TLV that is part of an MP-TLV MUST be parsable independent of other 
>> TLVs in the MP-TLV.
>> Breaking of a single sub-TLV or other data unit across TLVs MUST NOT be 
>> done.”
>> 
>> Perhaps adding that text would help.
>> 
>> Tony, of course, is also correct. He is saying just as we can split a top 
>> level TLV into multiple TLVs, we can also split any level of sub-TLV into 
>> multiple TLVs - the restriction being that the splitting MUST be done on a 
>> parsable boundary i.e., it cannot be required to have parts of another TLV 
>> in order to correctly parse any sub-TLV.
>> 
>>    Les
>> 
>> > -----Original Message-----
>> > From: Tony Li <tony1ath...@gmail.com <mailto:tony1ath...@gmail.com>> On 
>> > Behalf Of Tony Li
>> > Sent: Friday, February 21, 2025 8:58 AM
>> > To: Robert Raszuk <rob...@raszuk.net <mailto:rob...@raszuk.net>>
>> > Cc: Les Ginsberg (ginsberg) <ginsb...@cisco.com 
>> > <mailto:ginsb...@cisco.com>>; lsr <lsr@ietf.org <mailto:lsr@ietf.org>>
>> > Subject: Re: [Lsr] [Last-Call] 答复: Re: 【Can you concatenate several pieces
>> > together without one "explicit key" to identify them belong to the same
>> > segment】Re: Rtgdir last call review of draft-ietf-lsr-multi-tlv-08
>> > 
>> > 
>> > Robert,
>> > 
>> > > So it was very clear that we MUST skip what we do not recognize :)  I 
>> > > was not
>> > sure if we should at that point bail out from further parsing of a given 
>> > TLV or
>> > trying next sub-TLV. I guess there is no mandate of that in the spec and
>> > implementations should/may try to continue to parse.
>> > 
>> > 
>> > You always continue to parse.  Production implementations are not test 
>> > suites
>> > looking for bugs.  If there is unrecognized data, then the presumption is 
>> > that it
>> > is new functionality that the implementation does not yet understand.
>> > Stopping parsing would break legacy behavior.
>> > 
>> > 
>> > > Also is my understanding correct that the subject draft does not allow to
>> > split sub-TLVs itself ? Meaning that any sub-TLV must fit one part of the 
>> > TLV. I
>> > found some text allowing duplication of sub-TLVs in multiple parts of TLV 
>> > if
>> > sender choose to do such thing - but I assume this says that sub-TLV is 
>> > still a
>> > complete one in each part ?
>> > 
>> > 
>> > I’m not sure that I can parse that. :-)
>> > 
>> > Sub-TLVs can be split into multiple sub-TLVs. If the parent TLV is full, 
>> > then parts
>> > of the sub-TLV may be carried in separate instances of the parent TLV.
>> > 
>> > In other words, the solution is fully recursive.
>> > 
>> > T
>> >
>> 

_______________________________________________
Lsr mailing list -- lsr@ietf.org
To unsubscribe send an email to lsr-le...@ietf.org

Reply via email to