Robert,

Assuming C and E provide access to the same set of destinations, that are 
closer of further away from C and E.
B (which is fast), after it notifies A that it can’t reach C directly will 
cause A to send traffic to D. D - dependent on total cost would start happily 
sending some traffic towards destinations behind C to B so LFA on B wouldn’t 
really help.

Cheers,
Jeff
On May 5, 2020, 5:04 PM -0700, Robert Raszuk <rob...@raszuk.net>, wrote:
> Hi Les,
>
> A side comment but your example shows another - one may say even much more 
> serious issue.
>
> Assume we have LFA/TI-LFA enabled in the network and precomputed on B which 
> get's activated and shifts traffic to E when detects that C is down. 
> Detection is fast .. 10s-100s of milliseconds.
>
> Now if B converges fast and recomputes topology much faster then D it may 
> remove protection and send packets to D natively. Well clearly as we 
> established D is slow and will loop it back.
>
> That is why I mentioned the other day that a fast control plane is not always 
> a good thing (I am sure many will say the opposite - but it is ok ;).
>
> But this proves that consistent convergence time in a domain is rather a good 
> thing regardless if it takes 2 sec or 50 sec on all nodes.
>
> Best,
> Robert.
>
>
>
> > On Wed, May 6, 2020 at 1:35 AM Les Ginsberg (ginsberg) 
> > <ginsberg=40cisco....@dmarc.ietf.org> wrote:
> > > Bruno -
> > >
> > > Seems like it was not too long ago that we were discussing this in 
> > > person.  Ahhh...the good old days...
> > >
> > > First, let's agree that the interesting case does not involve 1 or even a 
> > > small number of LSPs. For those cases flooding speed does not matter.
> > > The interesting cases involve a large number of LSPs (hundreds or 
> > > thousands). And in such cases LFA/microloop avoidance techniques are not 
> > > applicable.
> > >
> > > Take the following simple topology:
> > >
> > >    |  | ... |            |
> > >      +---+             +---+
> > >      | C |             | E |
> > >      +---+             +---+
> > >        |                 | 1000
> > >      +---+             +---+
> > >      | B |-------------| D |
> > >      +---+   1000      +---+
> > >        |                 |
> > >        |                 |
> > >         \               /
> > >          \            /
> > >           \         /
> > >            \      /
> > >              +---+
> > >              | A |
> > >              +---+
> > >
> > > There is a topology northbound of C and E (not shown) and a topology 
> > > southbound of A (not shown).
> > > Cost on all links is 10 except B-D and D-E where cost is high.
> > >
> > > C is a node with 1000 neighbors.
> > > When all links are up, shortest path for all northbound destinations is 
> > > via C.
> > > All nodes in the network support fast flooding except for Node D.
> > > Let’s say fast flooding is 500 LSPs/second and slow flooding (Node D) is 
> > > 20 LSPs/seconds.
> > > If  Node C fails we have 1000 LSPs to flood.
> > > All nodes except for D can receive these in 2 seconds (plus internode 
> > > delay time).
> > > D can receive LSPs in 50 seconds.
> > >
> > > When A and B and all southbound nodes receive/process the LSP updates 
> > > they will start sending traffic to Northbound destinations via D.
> > > But for the better part of 50 seconds, Node D has yet to receive all LSP 
> > > updates and still believes that shortest path is via B-C. It will loop 
> > > traffic.
> > >
> > > Had all nodes used slow flooding, it still would have taken 50 seconds to 
> > > converge, but there would be significantly less looping. There could be a 
> > > good amount of blackholing, but this is preferable to looping.
> > >
> > > One can always come up with examples – based on a specific topology and a 
> > > specific failure - where things might be better/worse/unchanged in the 
> > > face of inconsistent flooding speed support.
> > > But I hope this simple example illustrates the pitfalls.
> > >
> > >     Les
> > >
> > > > -----Original Message-----
> > > > From: bruno.decra...@orange.com <bruno.decra...@orange.com>
> > > > Sent: Tuesday, May 05, 2020 8:28 AM
> > > > To: Les Ginsberg (ginsberg) <ginsb...@cisco.com>; lsr@ietf.org
> > > > Subject: Flooding across a network
> > > >
> > > > Les,
> > > >
> > > > > From: Lsr [mailto:lsr-boun...@ietf.org] On Behalf Of Les Ginsberg
> > > > (ginsberg)
> > > > > Sent: Monday, May 4, 2020 4:39 PM
> > > > [...]
> > > > > when only some nodes in the network support faster flooding the 
> > > > > behavior
> > > > of the whole network may not be "better" when faster flooding is enabled
> > > > because it prolongs the period of LSDB inconsistency.
> > > >
> > > > 1) Do you have data on this?
> > > >
> > > > 2) If not, can you provide an example where increasing the flooding 
> > > > rate on
> > > > one adjacency prolongs the period of LSDB inconsistency across the
> > > > network?
> > > >
> > > > 3) In the meantime, let's try the theoretical analysis on a simple 
> > > > scenario
> > > > where a single LSP needs to be flooded across the network.
> > > >
> > > > - Let's call Dij the time needed to flood the LSP from node i to the 
> > > > adjacent
> > > > node j. Clearly Dij>0.
> > > > - Let's call k the node originating this LSP at t0=0s
> > > >
> > > > >From t0, the LSDB is inconsistent across the network as all nodes but 
> > > > >k are
> > > > missing the LSP and hence only know about the 'old' topology.
> > > >
> > > > Let's call  SPT(k) the SPT rooted on k, using Dij as the metric between
> > > > adjacent nodes i and j. Let's call SP(k,i) the shortest path from k to 
> > > > i; and
> > > > D(k,i) the shortest distance between k and i..
> > > >
> > > > It seems that the time needed:
> > > > - for node j to learn about the LSP, and get in sync with k, is D(k,j)
> > > > - for all nodes across the network to learn about the LSP, and get in 
> > > > sync with
> > > > k, is Max[for all j] D(k,j)
> > > >
> > > > Then how can reducing the flooding delay on one adjacency could prolongs
> > > > the period of LSDB inconsistency?
> > > > It seems to me that it can only improve/decrease it. Otherwise, this 
> > > > would
> > > > mean that decreasing the cost on a link can increase the cost of the 
> > > > shortest
> > > > path.
> > > >
> > > > Note: I agree that there are other cases, such as  multiple LSPs 
> > > > originated by
> > > > the same node, and multiple LSPs originated by multiple nodes, but 
> > > > let's start
> > > > with the simple case.
> > > >
> > > > Thanks,
> > > > --Bruno
> > > >
> > > > > -----Original Message-----
> > > > > From: Lsr [mailto:lsr-boun...@ietf.org] On Behalf Of Les Ginsberg
> > > > (ginsberg)
> > > > > Sent: Monday, May 4, 2020 4:39 PM
> > > > >
> > > > > Henk -
> > > > >
> > > > > Thanx for your thoughtful posts.
> > > > > I have read your later posts on this thread as well - but decided to 
> > > > > reply to
> > > > this one.
> > > > > Top posting for better readability.
> > > > >
> > > > > There is broad agreement that faster flooding is desirable.
> > > > > There are now two proposals as to how to address the issue - neither 
> > > > > of
> > > > which is proposing to use TCP (or equivalent).
> > > > >
> > > > > I have commented on why IS-IS flooding requirements are significantly
> > > > different than that for which TCP is used.
> > > > > I think it is also useful to note that even the simple test case 
> > > > > which Bruno
> > > > reported on in last week's interim meeting demonstrated that without any
> > > > changes to the protocol at all IS-IS was able to flood an order of 
> > > > magnitude
> > > > faster than it commonly does today.
> > > > > This gives me hope that we are looking at the problem correctly and 
> > > > > will not
> > > > need "TCP".
> > > > >
> > > > > Introducing a TCP based solution requires:
> > > > >
> > > > > a)A major change to the adjacency formation logic
> > > > >
> > > > > b)Removal of the independence of the IS-IS protocol from the address
> > > > families whose reachability advertisements it supports - something 
> > > > which I
> > > > think is a great strength of the protocol - particularly in 
> > > > environments where
> > > > multiple address family support is needed
> > > > >
> > > > > I really don't want to do either of the above.
> > > > >
> > > > > Your comments regarding PSNP response times are quite correct - and
> > > > both of the draft proposals discuss this - though I agree more detail 
> > > > will be
> > > > required.
> > > > > It is intuitive that if you want to flood faster you also need to ACK 
> > > > > faster -
> > > > and probably even retransmit faster when that is needed.
> > > > > The basic relationship between retransmit interval and PSNP interval 
> > > > > is
> > > > expressed in ISO 10589:
> > > > >
> > > > > " partialSNPInterval - This is the amount of time between periodic
> > > >         > action for transmission of Partial Sequence Number PDUs.
> > > >         > It shall be less than minimumLSPTransmission-Interval."
> > > > >
> > > > > Of course ISO 10589 recommended values (2 seconds and 5 seconds
> > > > respectively) associated with a much slower flooding rate and
> > > > implementations I am aware of use values in this order of magnitude.. 
> > > > These
> > > > numbers need to be reduced if we are to flood faster, but the 
> > > > relationship
> > > > between the two needs to remain the same.
> > > > >
> > > > > It is also true - as you state - that sending ACKs more quickly will 
> > > > > result in
> > > > additional PDUs which need to be received/processed by IS-IS - and this 
> > > > has
> > > > some impact. But I think it is reasonable to expect that an 
> > > > implementation
> > > > which can support sending and receiving LSPs at a faster rate should 
> > > > also be
> > > > able to send/receive PSNPs at a faster rate. But we still need to be 
> > > > smarter
> > > > than sending one PSNP/one LSP in cases where we have a burst.
> > > > >
> > > > > LANs are a more difficult problem than P2P - and thus far 
> > > > > draft-ginsberg-lsr-
> > > > isis-flooding-scale has been silent on this - but not because we aren't 
> > > > aware
> > > > of this - just have focused on the P2P behavior first.
> > > > > What the best behavior on a LAN may be is something I am still 
> > > > > considering.
> > > > Slowing flooding down to the speed at which the slowest IS on the LAN 
> > > > can
> > > > support may not be the best strategy - as it also slows down the 
> > > > propagation
> > > > rate for systems downstream from the nodes on the LAN which can handle
> > > > faster flooding - thereby having an impact on flooding speed throughout 
> > > > the
> > > > network in a way which may be out of proportion. This is a smaller 
> > > > example
> > > > of the larger issue that when only some nodes in the network support 
> > > > faster
> > > > flooding the behavior of the whole network may not be "better" when 
> > > > faster
> > > > flooding is enabled because it prolongs the period of LSDB 
> > > > inconsistency.
> > > > More work needs to be done here...
> > > > >
> > > > > In summary, I don't expect to have to "reinvent TCP" - but I do think 
> > > > > you
> > > > have provided a useful perspective for us to consider as we progress on 
> > > > this
> > > > topic,
> > > > >
> > > > > Thanx.
> > > > >
> > > >     > Les
> > > > >
> > > > >
> > > > > > -----Original Message-----
> > > > > > From: Lsr <lsr-boun...@ietf.org> On Behalf Of Henk Smit
> > > > > > Sent: Thursday, April 30, 2020 6:58 AM
> > > > > > To: lsr@ietf.org
> > > > > > Subject: [Lsr] Why only a congestion-avoidance algorithm on the 
> > > > > > sender
> > > > isn't
> > > > > > enough
> > > > > >
> > > > > >
> > > > > > Hello all,
> > > > > >
> > > > > > Two years ago, Gunter Van de Velde and myself published this draft:
> > > > > > https://tools.ietf.org/html/draft-hsmit-lsr-isis-flooding-over-tcp-00
> > > > > > That started this discussion about flow/congestion control and ISIS
> > > > > > flooding.
> > > > > >
> > > > > > My thoughts were that once we start implementing new algorithms to
> > > > > > optimize ISIS flooding speed, we'll end up with our own version of 
> > > > > > TCP.
> > > > > > I think most people here have a good general understanding of TCP.
> > > > > > But if not, this is a good overview how TCP does it:
> > > > > > https://en.wikipedia.org/wiki/TCP_congestion_control
> > > > > >
> > > > > >
> > > > > > What does TCP do:
> > > > > > ====
> > > > > > TCP does 2 things: flow control and congestion control.
> > > > > >
> > > > > > 1) Flow control is: the receiver trying to prevent itself from being
> > > > > > overloaded. The receiver indicates, through the receiver-window-size
> > > > > > in the TCP acks, how much data it can or wants to receive..
> > > > > > 2) Congestion control is: the sender trying to prevent the links 
> > > > > > between
> > > > > > sender and receiver from being overloaded. The sender makes an
> > > > educated
> > > > > > guess at what speed it can send.
> > > > > >
> > > > > >
> > > > > > The part we seem to be missing:
> > > > > > ====
> > > > > > For the sender to make a guess at what speed it can send, it looks 
> > > > > > at
> > > > > > how the transmission is behaving. Are there drops ? What is the RTT 
> > > > > > ?
> > > > > > Do drop-percentage and RTT change ? Do acks come in at the same rate
> > > > > > as the sender sends segments ? Are there duplicate acks ? To be able
> > > > > > to do this, the sender must know what to expect. How acks behave.
> > > > > >
> > > > > > If you want an ISIS sender to make a guess at what speed it can 
> > > > > > send,
> > > > > > without changing the protocol, the only thing the sender can do is 
> > > > > > look
> > > > > > at the PSNPs that come back from the receiver. But the RTT of PSNPs 
> > > > > > can
> > > > > > not be predicted. Because a good ISIS implementation does not
> > > > > > immediately
> > > > > > send a PSNP when it receives a LSP.. 1) the receiver should jitter 
> > > > > > the
> > > > > > PSNP,
> > > > > > like it should jitter all packets. And 2) the receiver should wait a
> > > > > > little
> > > > > > to see if it can combine multiple acks into a single PSNP packet.
> > > > > >
> > > > > > In TCP, if a single segment gets lost, each new segment will cause 
> > > > > > the
> > > > > > receiver to send an ack with the seqnr of the last received byte. 
> > > > > > This
> > > > > > is called "duplicate acks". This triggers the sender to do
> > > > > > fast-retransmission. In ISIS, this can't be be done. The information
> > > > > > a sender can get from looking at incoming PSNPs is a lot less than 
> > > > > > what
> > > > > > TCP can learn from incoming acks.
> > > > > >
> > > > > >
> > > > > > The problem with sender-side congestion control:
> > > > > > ====
> > > > > > In ISIS, all we know is that the default retransmit-interval is 5
> > > > > > seconds.
> > > > > > And I think most implementations use that as the default. This means
> > > > > > that
> > > > > > the receiver of an LSP has one requirement: send a PSNP within 5
> > > > > > seconds.
> > > > > > For the rest, implementations are free to send PSNPs however and
> > > > > > whenever
> > > > > > they want. This means a sender can not really make conclusions about
> > > > > > flooding speed, dropped LSPs, capacity of the receiver, etc.
> > > > > > There is no ordering when flooding LSPs, or sending PSNPs.. This 
> > > > > > makes
> > > > > > a sender-side algorithm for ISIS a lot harder.
> > > > > >
> > > > > > When you think about it, you realize that a sender should wait the
> > > > > > full 5 seconds before it can make any real conclusions about dropped
> > > > > > LSPs.
> > > > > > If a sender looks at PSNPs to determine its flooding speed, it will
> > > > > > probably
> > > > > > not be able to react without a delay of a few seconds. A sender 
> > > > > > might
> > > > > > send
> > > > > > hunderds or thousands of LSPs in those 5 seconds, which might all or
> > > > > > partially be dropped, complicating matters even further.
> > > > > >
> > > > > >
> > > > > > A sender-sider algorithm should specify how to do PSNPs.
> > > > > > ====
> > > > > > So imho a sender-side only algorithm can't work just like that in a
> > > > > > multi-vendor environment. We must not only specify a congestion-
> > > > control
> > > > > > algorithm for the sender. We must also specify for the receiver a 
> > > > > > more
> > > > > > specific algorithm how and when to send PSNPs. At least how to do
> > > > PSNPs
> > > > > > under load.
> > > > > >
> > > > > > Note that this might result in the receiver sending more (and 
> > > > > > smaller)
> > > > > > PSNPs.
> > > > > > More packets might mean more congestion (inside routers).
> > > > > >
> > > > > >
> > > > > > Will receiver-side flow-control work ?
> > > > > > ====
> > > > > > I don't know if that's enough. It will certainly help.
> > > > > >
> > > > > > I think to tackle this problem, we need 3 parts:
> > > > > > 1) sender-side congestion-control algorithm
> > > > > > 2) more detailed algorithm on receiver when and how to send PSNPs
> > > > > > 3) receiver-side flow-control mechanism
> > > > > >
> > > > > > As discussed at length, I don't know if the ISIS process on the
> > > > > > receiving
> > > > > > router can actually know if its running out of resources (buffers on
> > > > > > interfaces, linecards, etc). That's implementation dependent. A 
> > > > > > receiver
> > > > > > can definitely advertise a fixed value. So the sender has an upper 
> > > > > > bound
> > > > > > to use when doing congestion-control. Just like TCP has both a
> > > > > > flow-control
> > > > > > window and a congestion-control window, and a sender uses both.
> > > > Maybe
> > > > > > the
> > > > > > receiver can even advertise a dynamic value. Maybe now, maybe only 
> > > > > > in
> > > > > > the
> > > > > > future. An advertised upper limit seems useful to me today.
> > > > > >
> > > > > >
> > > > > > What I didn't like about our own proposal (flooding over TCP):
> > > > > > ====
> > > > > > The problem I saw with flooding over TCP concerns multi-point 
> > > > > > networks
> > > > > > (LANs).
> > > > > >
> > > > > > When flooding over a multi-point network, setting up TCP connections
> > > > > > introduces serious challenges. Who are the endpoints of the TCP
> > > > > > connections ?
> > > > > > Full mesh ? Or do all ISes on a LAN create a TCP-connection to the 
> > > > > > DIS ?
> > > > > > There is no backup DIS in ISIS (unlike OSPF). Things get messy 
> > > > > > quickly.
> > > > > >
> > > > > > However, the other two proposals do not solve this problem either.
> > > > > > How will a sender-side congestion-avoidence algorithm determine
> > > > whether
> > > > > > there were drops ? There are no acks (PSNPs) on a LAN. We assume 
> > > > > > most
> > > > > > LSPs
> > > > > > that are broadcasted are received by all other ISes on the LAN. 
> > > > > > There
> > > > > > are
> > > > > > no acks. Only after the DIS has sent its periodic CSNPs, ISes can 
> > > > > > send
> > > > > > PSNPs to request retransmissions. It seems impossible (or very 
> > > > > > hard) to
> > > > > > me for all ISes on a LAN to keep track of dropped LSPs and adjust 
> > > > > > their
> > > > > > sending speed accordingly.
> > > > > >
> > > > > > When flooding on a LAN, the receiver-side algorithm seems best.
> > > > Because
> > > > > > all ISes can see what the lowest advertised sending-speed is. And 
> > > > > > make
> > > > > > sure they send slow enough to not overload the slowest IS.. I'm not 
> > > > > > sure
> > > > > > this is a good solution, but is seems easier and more realistic than
> > > > > > ISIS-flooding-over-TCP or sender-side congestion-avoidance.
> > > > > >
> > > > > >
> > > > > > My conclusion:
> > > > > > ====
> > > > > > Sender-side congestion-control won't work without specifying in more
> > > > > > detail how and when to send PSNPs.
> > > > > > Receiver-side flow-control will certainly help. I dont' know if it's
> > > > > > good enough. I don't know if advertising a static value is good 
> > > > > > enough.
> > > > > > But it's a start.
> > > > > >
> > > > > > I still think we'll end up re-implementing a new (and weaker) TCP.
> > > > > >
> > > > > >
> > > > > > henk.
> > > > > >
> > > > > > _______________________________________________
> > > > > > Lsr mailing list
> > > > > > Lsr@ietf.org
> > > > > > https://www.ietf.org/mailman/listinfo/lsr
> > > > >
> > > > > _______________________________________________
> > > > > Lsr mailing list
> > > > > Lsr@ietf.org
> > > > > https://www.ietf.org/mailman/listinfo/lsr
> > > >
> > > > __________________________________________________________
> > > > __________________________________________________________
> > > > _____
> > > >
> > > > Ce message et ses pieces jointes peuvent contenir des informations
> > > > confidentielles ou privilegiees et ne doivent donc
> > > > pas etre diffuses, exploites ou copies sans autorisation. Si vous avez 
> > > > recu ce
> > > > message par erreur, veuillez le signaler
> > > > a l'expediteur et le detruire ainsi que les pieces jointes. Les messages
> > > > electroniques etant susceptibles d'alteration,
> > > > Orange decline toute responsabilite si ce message a ete altere, deforme 
> > > > ou
> > > > falsifie. Merci.
> > > >
> > > > This message and its attachments may contain confidential or privileged
> > > > information that may be protected by law;
> > > > they should not be distributed, used or copied without authorisation.
> > > > If you have received this email in error, please notify the sender and 
> > > > delete
> > > > this message and its attachments.
> > > > As emails may be altered, Orange is not liable for messages that have 
> > > > been
> > > > modified, changed or falsified.
> > > > Thank you.
> > >
> > > _______________________________________________
> > > Lsr mailing list
> > > Lsr@ietf.org
> > > https://www.ietf.org/mailman/listinfo/lsr
> _______________________________________________
> Lsr mailing list
> Lsr@ietf.org
> https://www.ietf.org/mailman/listinfo/lsr
_______________________________________________
Lsr mailing list
Lsr@ietf.org
https://www.ietf.org/mailman/listinfo/lsr

Reply via email to