Huaimo –

I am still not convinced you have understood the problem. Let me make one more 
attempt.

Node A is currently advertising 255 bytes of information about a link.
A configuration change is made on that node requiring it to also advertise 
unidirectional link delay (sub-TLV 33). This link attribute is used by a 
flex-algo already deployed in the network.
All nodes in the network support the use of link delay by flex algo.
But all nodes do NOT support receiving more than 255 bytes about a given link.

There is no backwards compatible way to address this requirement.
If you send more than 255 bytes (whether by a second TLV or by BIG-TLV) some 
nodes in the network will not correctly process it and operation of the 
flex-algo which requires that information will be compromised.
If you don’t send the additional information, again – operation of the 
flex-algo which requires that information will be compromised because now all 
the nodes do not have the delay advertisement associated with that link.

There is no middle ground where only the nodes which support sending/receiving 
of more than 255 bytes use the additional information and the affected 
flex-algo still works.

Reading your response a second time, it suggests to me that you think 
advertising some new “capability” will allow you to safely deploy advertising 
more than 255 bytes.
I “think” the idea you propose (though I had difficulty parsing your text – 
particularly since your draft does not even suggest this – so maybe this isn’t 
what you are trying to say) is that a new capability advertisement could be 
used to indicate whether a node supports sending/receiving more than 255 
bytes/object. Nodes could then send more than 255 bytes/object if they need to 
do so, but would be restricted from actually using advertisements in the 
BIG-TLV unless all nodes in the network indicate they support this capability. 
Is this what you are trying to say?

If so, this doesn’t provide “backwards compatibility”. The +255 advertisements 
still can’t be used unless all nodes explicitly indicate support. I am 
speculating that you are arguing this addresses “unpredictability”.
But, for this to be useful we have look at the larger issues. The need for 
advertising more than 255 bytes/object arises because of the configuration of 
features on routers in the network. It is not done simply because an 
implementation has the capability of doing it.
If we advertise more than 255 bytes/object, but only use the first 255 bytes 
(based on the state of capability advertised in the network), for this to be 
useful we would need to introduce a set of criteria to determine what 
attributes get advertised in the “first 255 bytes” and which ones are placed in 
the subsequent set of advertisements. This could allow (to take a simple 
example) the attributes needed for flex-algo 128 to be advertised in the “first 
TLV”, but the attributes needed for flex-algo 129 to be advertised in the 
“second TLV”. Theoretically this could allow flex-algo 128 to work – but 
compromise the functionality of flex-algo 129.

But such a scheme is extremely complex – as well as dynamic. Priorities could 
change as features are configured/deconfigured. And, of course, the priorities 
would need to be set consistently on all nodes in the network – which begs for 
an entirely new signaling of “feature priorities” by nodes. This would place 
new requirements on LSP generation – where the advertisement of  a given piece 
of information would no longer depend solely on where space in a TLV/LSP is 
available, but also on this new prioritization. And the Decision process would 
be constrained in new ways – it would be required to ignore valid information 
received from reachable nodes based on the state of +255 byte/object support. 
And at least some of the features configured still would not work – so the 
state of the network is not what was intended. All of this complexity does not 
result in a working network.

I don’t find this idea practical or desirable.
(Apologies if I misinterpreted your proposal – but it was the only 
interpretation that made sense to me. 😊 )

  Les


From: Huaimo Chen <huaimo.c...@futurewei.com>
Sent: Sunday, November 5, 2023 3:06 PM
To: Les Ginsberg (ginsberg) <ginsb...@cisco.com>; lsr@ietf.org
Subject: RE: draft-chen-lsr-isis-big-tlv

Hi Les,

    Thank you very much for your responses.

draft-chen-lsr-isis-big-tlv resolves the issue: unpredictable behavior with 
partial deployment, which are stated in both IETF 117 and IETF 118 slides. I 
explained this in detail in my previous email.

For the existing Sub-TLVs in a TLV > 255, the solution in 
draft-chen-lsr-isis-big-tlv is also backwards compatible. For a piece of new 
information in existing Sub-TLVs, when adding this new information into a TLV 
makes the TLV > 255, this new information in existing Sub-TLVs can be put into 
a container TLV. If all the nodes need to have the same new information for 
using the new information, every node needs to check if all the nodes support 
the capability which is distributed by the nodes supporting it. If all nodes 
support it, every node uses the new information. If it is not required that all 
the nodes must have the same new information for using the new information, the 
nodes supporting the capability can use the new information, the nodes not 
supporting the capability ignore the new information.

Best Regards,
Huaimo
From: Les Ginsberg (ginsberg) <ginsb...@cisco.com<mailto:ginsb...@cisco.com>>
Sent: Sunday, November 5, 2023 10:30 PM
To: Huaimo Chen <huaimo.c...@futurewei.com<mailto:huaimo.c...@futurewei.com>>; 
lsr@ietf.org<mailto:lsr@ietf.org>
Subject: RE: draft-chen-lsr-isis-big-tlv

Huaimo –

Thanx for bringing this up. Resolving this before the meeting hopefully will 
save us time during the meeting.

“Backwards compatibility” is possible in situations where new advertisements 
are being introduced and the legacy nodes either:


  *   Don’t need to process the new advertisements or
  *   There are existing advertisements (in a different format) that contain 
the same information

Neither is the case here.

The problem being discussed is how to handle cases where the deployment 
requires more than 255 bytes of existing (sic) advertisements about a 
particular object.
For example, there are cases today where the total amount of information about 
a link (link endpoint identifiers, bandwidth, delay, affinity, adjacency-sids, 
etc.) exceeds 255 bytes. This is not because new sub-TLVs are being introduced 
– it is because the sum total of the existing sub-TLVs required in a given 
deployment exceeds 255 bytes.
All nodes in the network have to understand and process all of the sub-TLVs 
being advertised. There is no subset which is sufficient for “legacy nodes” and 
there is no existing way to advertise more than 255 bytes in a single TLV.

This problem therefore cannot be addressed in a backwards compatible way.

The solution defined in draft-pkaneria-lsr-multi-tlv is consistent with 
existing behavior explicitly defined for some TLVs (see  
https://www.ietf.org/archive/id/draft-pkaneria-lsr-multi-tlv-04.html#name-introduction
 ).

Could the problem be addressed by “Big-TLV”? Yes – but there are multiple 
reasons why this is not a good choice:

1)It introduces inconsistency – some TLVs would use multiple native TLVs to 
deal with the issue (as per existing RFCs) – and some TLVs would use a native 
TLV plus Big-TLV. As there is no advantage to Big-TLV this simply adds 
ambiguity with no benefits.

2)There are multiple existing implementations which have already been 
successfully deployed and proven interoperable using the solution discussed in 
draft-pkaneria-lsr-multi-tlv. Declaring that solution as invalid would set the 
industry back and require all implementations to start from scratch since no 
implementation today supports Big-TLV.

3)As BIG-TLV is a generic container TLV, it is inherently less efficient as it 
consumes bytes in the encapsulation.

Your main argument for Big-TLV has been the mistaken claim that it is 
“backwards-compatible”. Hopefully you now understand that this is not the case 
and we need not debate this further.

  Les



From: Lsr <lsr-boun...@ietf.org<mailto:lsr-boun...@ietf.org>> On Behalf Of 
Huaimo Chen
Sent: Sunday, November 5, 2023 11:34 AM
To: lsr@ietf.org<mailto:lsr@ietf.org>
Subject: [Lsr] draft-chen-lsr-isis-big-tlv

Hi Les,

In last IETF, you presented/stated that Backwards compatibility is not 
possible.  This seems not true. The solution proposed in 
draft-chen-lsr-isis-big-tlv is backwards compatible. Can you give your 
definition of backwards compatibility?

In this IETF and last IETF, the slides states that With partial deployment 
behavior is unpredictable. This seems resolved by draft-chen-lsr-isis-big-tlv.
A container TLV is used by a node to contain a piece of new information. The 
nodes that do not support the capability of container TLV will ignore container 
TLVs. This will resolve unpredictable behavior with partial deployment.

Best Regards,
Huaimo
_______________________________________________
Lsr mailing list
Lsr@ietf.org
https://www.ietf.org/mailman/listinfo/lsr

Reply via email to