Tony, Thanks for the comments.
Pls see inline for replies... Juniper Business Use Only -----Original Message----- From: Tony Li <tony1ath...@gmail.com> On Behalf Of Tony Li Sent: Wednesday, March 3, 2021 5:30 AM To: William Britto A J <bwill...@juniper.net> Cc: lsr@ietf.org; Rajesh M <mraj...@juniper.net>; Shraddha Hegde <shrad...@juniper.net>; DECRAENE Bruno IMT/OLN <bruno.decra...@orange.com> Subject: Re: [Lsr] New draft on Flex-Algorithm Bandwidth Constraints [External Email. Be cautious of content] Hi William, > 1) I’ll start with the title: there is MUCH more here than bandwidth > constraints. Perhaps this should be generalized somehow? Sorry, I don’t have > a constructive suggestion. > [William] Agree. We are introducing few ‘definitions’ for a bandwidth based > Flex-Algo, along with couple of link constraints which can be used for any > type of flex-algo. Any suggestions are welcome. In the hopes of inspiring others with better thoughts: “Flexible Algorithms: Bandwidth Management Part 1” “Flexible Algorithms: Some Stuff We Forgot” “Flexible Algorithms: Bandwidth and Delay, Metrics and Constraints” “Flexible Algorithms: A Few More Bits” <SH> “Flexible Algorithms: Bandwidth, Delay, Metrics and Constraints” looks like a good title > 4) Sectiion 2.1: Why are there two octets reserved in this sub-TLV? If you’re > hoping for alignment within an IS-IS LSP, you’ve already lost. Nothing in > IS-IS is aligned. > [William] Apologies. This was an error in the figure. Intention was one octet > for Reserved/future flags, hence the Length of 5 octets. Will correct this in > the next version. And if you agree with a more general metric, maybe a few of those reserved bits could be used as the index for the user defined metric. <SH> This is a good idea. Its useful to have flexibility in assigning various metrics to the link and be able to find flex-algo SPF paths for those metric types. We will update the draft. > 5) Section 3.1.1: Here you have chosen to refer directly to subTLV 9. To be > consistent with the rest of FlexAlgo, should we use subTLV 9 inside of the > Application Specific Link Attribute subTLV. > [William] Shouldn’t there be only one Max link BW per link applicable for all > applications? However, agree that it could still be in a common ASLA. Will > add relevant text to clarify this. That argument might well apply to all of our other link attributes as well. Why do we need a separate administrative group for FlexAlgo? Why do we need a separate set of SRLGs? I have to confess that we have added a bit of complexity that I don’t think is very valuable. <SH> Totally agree with you on this. However, what’s done is done and there’s no point in arguing about it now. <SH> Arguing about this during working group adoption of such work didn’t help either! We should simply strive to be consistent with what’s already in place so that we don’t create even MORE complexity. <SH> Agree. > 6) Section 3.1.2: I’m unclear on the utility of this. I can understand > optimizing for path delay against the path metric. I can even understand > putting an upper bound on the total path delay. I don’t understand why a > bound on an individual link delay is important. If my path delay budget is > 100ms, then does it matter if it is exceeded in one hop or ten? Could you > please provide more motivation here? Also, wouldn’t a FlexAlgo system be > advertising the link delay in the Application Specific Link Attributes subTLV? > [William] This constraint could be useful in a Flex-Algo whose Metric-type is > anything but Link-delay. Here, Link-delay doesn’t influence the ‘cost’ of a > link in that Flex-Algo, but can be used to prune out certain links with very > high delay from that Flex-Algo. Thank you, that’s helpful motivation. Please add something like this to the draft. <SH> Sure. Continuing on from there… 7) Section 4. You’ve hidden a big part of what you want to do down here, 9 pages into the document. You’ve got one whole sentence in the introduction to motivate it. It deserves a good bit more. <SH> ok 8) Section 4.2. You write that an implementation "considers cumulative bandwidth of the parallel links while arriving at the metric for the link”. This seems a bit vague. I think you’re trying to say that in interface group mode the bandwidth of an adjacency is the sum of the bandwidths of the individual links. Typically today, if we have L3 parallel links they are encoded as separate adjacencies, complete with unique interface addresses. How does interface group mode work with that? <SH> It continues to work the same way. I mean the topological representation does not change. It is going to be represented as multiple parallel Adjacencies. How the metric is assigned to these links differs in simple mode and interface group mode. In simple mode, single l3 link bandwidth is taken and metric is derived by using either of two modes of metric derivation (reference bw or staircase bandwidth thresholds). In interface group mode, cumulative bandwidth of parallel links is used derive the metric (again either ref bw or staircase method can be used) and same metric is assigned to all parallel links. Does each adjacency advertise the same metric based on the total bandwidth of all of the links? <SH> In automatic metric calculation method, each node derives the metric based on advertised maximum link bandwidth . In interface group mode, metric is derived based on cumulative bandwidth of parallel links and same metric is assigned for all parallel links. In automatic metric calculation method, metric is not advertised. In cases where operators do not want to use this automatic metric derivation, they can advertise bandwidth metric. How this bandwidth metric is assigned, whether same metric on all parallel links or different metric and actual metric value is all upto the operator. When bandwidth metric sub-TLV is advertised on a link, simple mode or interface group mode does not come into play for that link. Bandwidth metric advertisement overrides, automatic metric derivation. The discussion about reference bandwidths and the staircase mapping seems a bit confusing and redundant. It appears to be orthogonal to the mode, correct? <SH> yes. It is orthogonal to the mode. Why not describe it independently? More proofreading is necessary here. <SH> agree. Will update in next revision. 9) Section 4.3.1. The reserved byte is wasteful. Your explanation of the round-off bandwidth is unclear. Are we expecting dynamic bandwidth changes? If so, that is an entire discussion unto itself. <SH> yes we are expecting dynamic bandwidth changes. These dynamic bw changes are applicable to L2 bundled links only. When constituent links go up/down link bw width changes and that’s why you have the dynamic changes. Just to reiterate, these dynamic bw changes are not reflecting any path placement or bw utilization etc its is still total link bandwidth. We will add more text for round-off bw and also about bw changes. 10) Section 4.3.1. The reserved byte here is also wasteful. Your explanation of how to use this is a bit unclear. <SH> ok will fix it. Are bandwidth ranges allowed to overlap? I hope not. Is max[1] == min[2]? I hope so, otherwise there is a gap in the ranges. If there is a gap, and a link bandwidth falls in the gap, then what do we do? Assuming that max[i] == min[i+1], then is there a point in carrying both values all of the time? What happens when a bandwidth exceeeds the highest max? Is below the smallest min? <SH> yes we have scope to optimize the encodings. We will post an updated encoding with clarifications. Regards, Tony _______________________________________________ Lsr mailing list Lsr@ietf.org https://www.ietf.org/mailman/listinfo/lsr