Jie -


Thanx for the quick response and confirming that my understanding of the intent 
of the draft is correct.



Making a routing decision when the full topology information is not provided as 
input to the Decision Process leads to incorrect or sub-optimal routing. Here 
is one simple example.

Consider the following simple topology (Layer 3 links):



    B

  /   \

A       D

 \   /

    C





All layer 3 links participate in Flex Algo 128.

On both B and C, the Layer 3 link to D is an L2 bundle and the total bandwidth 
of the bundle links are the same.

On link B-D, the L2 bundle member assigned to the NRP associated with flex algo 
128 has 100 Mb of bandwidth.

On link C-D, the L2 bundle member assigned to the NRP associated with flex algo 
128 has 1 GB of bandwidth.



The L3 SPF associated with algo 128 utilizes Layer 3 metric advertisements. 
Based on that, traffic from A to D will be equally balanced via B and C.

However, what you intend is that when algo 128 traffic is forwarded by B it 
will utilize a 100 Mb link – whereas when algo 128 traffic is forwarded by C it 
will utilize a 1 Gb link.

Clearly the ECMP traffic flow which is the output of the L3 SPF is sub-optimal.



How could this be fixed?



1)Do not use L2 bundles on B and C. Make each bundle member an L3 link and run 
IS-IS on the Layer 3 interfaces. In such a case different L3 metrics can be 
advertised for each L3 link and Flex Algo 128 can be associated only with the 
desired L3 link on C and D.

Standard flex-algo as defined in RFC 9350 works and requires no modifications.



2)Do not use L3 routing/flex algo. Define some other mechanism to mark packets 
in a way that the forwarding recognizes as mapping to the appropriate L2 link.

The L2 bundle advertisements provided by IS-IS as per RFC 8668 can be used by 
this (external to IS-IS) mechanism.

For example this mechanism could use the admin group advertised for each 
L2Bundle member to determine the mapping between an NRP and a link.

All of the functionality required is already defined in RFC 8668 – the only 
thing you need to define is this new mechanism – which is not part of IS-IS and 
therefore does not belong in an LSR draft.



NOTE: Please do not suggest that a different metric-type can be used for each 
Flex-Algo. Such an approach does not scale as it requires as many metric-types 
as Flex-Algos – which we do not have. 😊



What you MUST NOT do is use L3 routing to make a routing decision for a 
topology which is not part of the input to the routing decision process. But 
that is exactly what you are proposing in this draft.



Hope this example is clear.



As regards the clarity of Section 4, that section simply says (using the 
SR-MPLS text):



“A forwarding entry MUST be installed in the forwarding plane using the MPLS 
label that corresponds to the Prefix-SID associated with the Flex-algorithm 
corresponding to the NRP.”



But this entry must have next hops which include only the L2 links associated 
with the NRP mapped to Flex-algo 128. How this is done is not described – but 
as it requires using information advertised in the L2 Bundle Member Descriptors 
this clearly cannot be done by IS-IS w/o violating RFC 8668. IS-IS will simply 
attempt to install a forwarding entry based on the L3 topology – which will 
indicate to use the L3 link. How this forwarding entry is discarded/overwritten 
is not specified. But, this is a problem which should never need to be solved.



   Les







> -----Original Message-----

> From: Dongjie (Jimmy) <jie.d...@huawei.com>

> Sent: Wednesday, March 20, 2024 4:30 PM

> To: Les Ginsberg (ginsberg) <ginsb...@cisco.com>; lsr@ietf.org; draft-zhu-lsr-

> isis-sr-vtn-flexalgo.auth...@ietf.org

> Subject: RE: Comments on draft-zhu-lsr-isis-sr-vtn-flexalgo-07

>

> Hi Les,

>

> Thanks for the review and comments.

>

> Please see some replies inline:

>

> > -----Original Message-----

> > From: Les Ginsberg (ginsberg) 
> > <ginsb...@cisco.com<mailto:ginsb...@cisco.com>>

> > Sent: Thursday, March 21, 2024 7:32 AM

> > To: lsr@ietf.org<mailto:lsr@ietf.org>; 
> > draft-zhu-lsr-isis-sr-vtn-flexalgo.auth...@ietf.org<mailto:draft-zhu-lsr-isis-sr-vtn-flexalgo.auth...@ietf.org>

> > Subject: Comments on draft-zhu-lsr-isis-sr-vtn-flexalgo-07

> >

> > This draft discusses how to use flex-algo in support of Network Resource

> > Partitions (NRPs). In particular, it proposes to use a combination of L3 
> > links

> and

> > L2 Bundle member links as the topology associated with a given NRP. In

> those

> > cases where an L3 link is using an L2 bundle and individual bundle members

> > are "assigned" to different NRPs, it then proposes to associate the parent 
> > L3

> > link with multiple flex-algos. The intent seems to be to utilize the L3 algo

> > specific SIDs to assign the traffic to subsets of the L2 Bundle members.

>

> Your reading of the intent of this document is correct.

>

> With the proposed mechanism, traffic with Flex-Algo specific SIDs could be

> steered to different partitions of the L3 link resources.

>

> The only thing I'd like to mention is the L2 bundle members could be virtual 
> or

> physical, they are just used to represent different subsets of the link 
> resources.

>

>

> > This is extremely problematic.

> >

> > The output of the L3 algo-specific SPF will be to install nexthops pointing 
> > to

> the

> > L3 interface for packets which arrive with the L3 algo specific SID. But 
> > since

> the

> > intent is to only forward traffic for a given algo specific SID via 
> > specific L2

> > Bundle members, the L3 forwarding entries will have to be overwritten - in a

> > manner not specified by the draft.

>

> Section 4 of this document specifies the required forwarding plane behavior

> and the forwarding entry installation.

>

>

> > The implementation complexities this introduces arise because the proposed

> > solution attempts to use a Layer 3 technology (flex-algo) to control the use

> of

> > L2 links. This should not be done.

>

> In the proposed mechanism, Flex-Algo is still used for constraint path

> computation, and only the L3 links attributes are used in the computation. The

> L2 member links are only to partition the resources used by different 
> Flex-Algo

> traffic.

>

>

> > Indeed, even independent of flex-algo, trying to use a Layer 3 routing

> protocol

> > to control traffic flow on an L2 sub-topology is broken.

> > It means that the L2 bundles have been improperly defined for use by the L3

> > routing protocol.

>

> There is no routing computation based on the "L2 sub-topology", as L2 bundle

> member links are not visible in the L3DB. All the Flex-Algo computation is

> based on the attributes of L3 links.

>

>

> > RFC 8668 defines the advertisements of L2 Bundle member link attributes by

> > IS-IS. The introduction of RFC 8668 states:

> >

> > "...the new advertisements defined in this document are intended to be

> > provided to external (to IS-IS) entities."

> >

> > This means these advertisements are not to be used by the routing protocol

> > itself. The association of these advertisements with the Layer 3 SIDs 
> > defined

> by

> > Flex-Algo is a clear violation of the intended use as stated by RFC 8668.

>

> As stated above, L2 bundle link attributes are not used in path computation.

> The Flex-Algo specific SIDs still point to the L3 interface based on that

> computation. The only change is that a Flex-Algo SID can further points to the

> resource of an L2 member link (consider it as a subset of the resource of the 
> L3

> link if that is easier to understand). So the L2 bundle information is only 
> used

> for associating different Flex-Algo SIDs with different subsets of resources 
> of a

> l3 link.

>

>

> > This draft should be abandoned.

> >

> > NOTE: None of the points above should be interpreted to mean that flex-

> algo

> > cannot be used in support of NRPs. (Whether that is a good idea or not is

> out

> > of scope for this discussion).

>

> AFAIK people are talking about using Flex-Algo to support NRPs. This

> document provides a solution to meet their needs.

>

>

> > But the proper way to do that is when the NRP maps to an L3 topology. Such

> a

> > usage is fully supported by RFC 9350 and there is no need to write an

> > additional document to define how this is to be done.

>

> In some cases it is possible to map different NRPs to non-overlapping L3 sub-

> topologies, while in many other cases the same L3 link needs to participate in

> multiple NRPs, each of which is assigned with a subset of the link resources.

> The latter case cannot be supported by RFC 9350, and it is the target of this

> document.

>

>

> > In cases where an NRP maps to an L2 topology, some other mechanism

> needs

> > to be defined as to how forwarding entries for a given NRP are determined

> and

> > installed. Such a mechanism would qualify as "external to IS-IS" and

> therefore

> > could make use of RFC 8668 advertisements.

>

> This document also provides descriptions about this. As I mentioned it is 
> after

> L3 computation, and makes use of the L2 bundle information.

>

>

> > But attempts to utilize the Layer 3 Flex-Algo technology to control traffic 
> > flow

> > in an L2 topology are misguided and flawed.

>

> As long as Flex-Algo is used for L3 topology based computation, IMO it still

> complies to RFC 9350.

>

> Best regards,

> Jie (on behalf of coauthors)

>

> >

> >    Les


_______________________________________________
Lsr mailing list
Lsr@ietf.org
https://www.ietf.org/mailman/listinfo/lsr

Reply via email to