Please, can someone tell me, in which casewe use the BFD Demand Mode ?
From my understanding, BFD is moreefficient in Asynch. Mode then demand Mode.
Thanks in advance,
BFD has two types of packets, each with a specific scope: control and echo. It also has two implementations varions, differece being on how control packets are being used, where in asynchronous mode control packets are sent periodically (like hello messages), while in on-demand mode control packets are sent in the beginning and afterwards only as required. Cisco implemented only asynchronous mode, which from my point of view given that multi-hop BFD cannot make use of the echo function, it can only rely on periodic control packets, it makes sense.
It all depends on the vision of the vendor, and how it integrates BFD with other control-plane features, and what does it does with BFD; it also depends on what you understand by more efficient, as if this means less packets, on-demand is more efficient, but this may detect neighbor failure slower, so it's actually not efficient.
You cannot assess the efficieny, performance, strength of a technology implementation without first fully understanding its fucntionality and options.
Yes, in the scopeof performance and from the definition of the Demand Mode in the RFC5880 : “ … except when the system feels the need to verifyconnectivity explicitly”. This sentences rise the question about the “need”.
The “need” issubject to what ?
An algorithm whosend Hello packets randomly ? This is the main reason, why a posted the question. [:)]
Asynchronous modeis from my understanding more logical then Demand Mode.
Actually, i’m on anAlcatel project and Alcatel implement BFD like Cisco (Dell use also one mode :Asynch., for example).
I guess the DemandMode is used by end-hosts, like Servers.
Echo function issupported by the two modes, but can we say. When using Demand Mode, we recommendto use the Echo Function too ?
Many thanks foryour time and kidness [:)]
I don't see a reason to implement BFD on the end-hosts/servers, and even the RFC says nothing about this, it only refers to forwarding engines which are networking devices. From my point of view, because in multi-hop BFD, you cannot use echo function, you can use only control function, and in order to detect availability of your neighbor you would want to send periodic control packets, implemeting async mode is a wise decision as it allows you to have a single implementation for both single-hop and multi-hop BFD. Technically speaking, for single-hop BFD, on-demand mode would be more scalable if you use the echo function, as that's the only thing you need actually, and send control packets on-demand only as BFD configuration has been changed.
Echo function detects neighbor forwarding plane functionality; control function negotiates how to run BFD and detects neighbor BFD control-plane functionality. Echo function is always recommended to be used, but cannot be used with multi-hop BFD.
Demand-mode was basically designed so that control packets would be sent only if the neighbor does not seem to be reachable, thus on-demand; how could we know that? via other means, like if no data plane packets are received from the neighbor it could mean the neighbor has a problem (just like how IPv6 ND NA/NS works from the NUD point of view), so start sending control packets again, or when you change BFD configuration, start sending control packets again to renegotiate how to run BFD.
In the RFC, they say that the On-Demand mode is used when the device have many BFD sessions, to reduce the charge of the CPU.
Many thanks Cristian, for the additional information about Echo Fuction. It's very clear now
On modular platforms, BFD is offloaded at the line-card level, so zero impact on the main CPU, while in the non-modular platforms, it can be implemented with a low-fingerprint on the CPU, which is how Cisco has done it.
Ok, so. It's highly depend how the vendor impelment the BFD.
Thank you for the additional information