Support Support Downloads Knowledge Base Juniper Support Portal Community

Knowledge Base

Search our Knowledge Base sites to find answers to your questions.

Ask All Knowledge Base Sites All Knowledge Base Sites JunosE Defect (KA)Knowledge BaseSecurity AdvisoriesTechnical BulletinsTechnotes Sign in to display secure content and recently viewed articles

FAQ for Bidirectional Forwarding Detection (BFD)



Article ID: KB37015 KB Last Updated: 14 Jun 2021Version: 1.0

Frequently Asked Questions (FAQ) for the BFD in Junos implementation.



What is the purpose of BFD?

The purpose or goal of Bidirectional Forwarding Detection (BFD) is to provide low-overhead, short-duration detection of failures in the path between adjacent forwarding engines, including the interfaces, data link(s), and to the forwarding engines themselves. An additional goal is to provide a single mechanism that can be used for liveness detection over any media, at any protocol layer, with a wide range of Detection Times and overhead, to avoid a proliferation of different methods.

Why can’t the same thing be achieved by reducing the Hello timer of various routing/control plane protocols?

BFD can detect failures in sub-second levels while most of the control plane Hello protocols cannot have a sub-second interval.

If there are multiple application protocols between the same endpoints, do we have multiple BFD sessions or the same BFD session?  

 An implementation SHOULD establish only a single BFD session per data protocol path, regardless of the number of applications that wish to utilize it. There is no additional value in having multiple BFD sessions to the   same endpoints.

Can BFD be applied between non-directly connected neighbors/endpoints?

BFD can also be useful on arbitrary paths between systems, which may span multiple network hops and follow unpredictable paths. Furthermore, a pair of systems may have multiple paths between them that may overlap.

What is the use of a multiplier in BFD? 

 The negotiated transmit interval, multiplied by this value provides the Detection Time for the receiving system in Asynchronous mode.

How is BFD implemented in JUNOS?

There are two types of BFD implementations in Junos Centralized and Distributed mode.

  • Centralized Mode or Non-Distributed or RE-based Mode: Periodic Packet Processing Daemon(PPMD) runs in RE, instructing the Kernel to handle Periodic/Keep-alive Packet processing
  • Distributed Mode: Distribute the Periodic Packet processing task to FPC PFE where the link is hosted (For single link sessions)

Does BFD use any underlying transport protocol like UDP or TCP?

BFD Control packets MUST be transmitted in UDP packets with destination port 3784, within an IPv4 or IPv6 packet. The source port MUST be in the range of 49152 through 65535. The same UDP source port number MUST be used for all BFD Control packets associated with a particular session.

How does BFD send hello packets in the millisecond range without becoming a burden on the router?

BFD is intended to be lightweight and run in the forwarding plane, as opposed to the control plane (as is the case with routing protocols). While early implementations of BFD ran on the control plane, most of the newer implementations run in the forwarding plane, taking advantage of the dedicated processors built into the forwarding plane and alleviating the burden which would otherwise be placed on the RE. In JUNOS releases prior to JUNOS 9.4, BFD Hello packets were generated via RPD running on the RE. In order to enable BFD to operate in the PFE in JUNOS versions prior to JUNOS 9.4, the Periodic Packet Management Daemon (PPMD) had to be enabled, using the command 'set routing-options ppm delegate processing'. In JUNOS 9.4 and higher this is the default behavior and BFD Hello packets are automatically handled by PPMD operating within the PFE.

What if the BFD parameters required for different protocols are different?

If multiple applications request different session parameters, it is a local issue as to how to resolve the parameter conflicts. BFD in turn, will notify all applications bound to a session when a session state change occurs.

What are the various stages of a BFD state machine?

There are three states through which a session normally proceeds: two for establishing a session (Init and Up) and one for tearing down a session (Down). This allows a three-way handshake for both session establishment and session tear down (assuring that both systems are aware of all session state changes). A fourth state (AdminDown) exists so that a session can be administratively put down indefinitely.

What are the various modes in which BFD operates?

BFD has two operating modes that may be selected, as well as an additional function that can be used in combination with the two modes.

  • The primary mode is known as the Asynchronous mode. In this mode, the systems periodically send BFD Control packets to one another, and if a number of those packets in a row are not received by the other system, the  session is declared to be down.
  • The second mode is known as the Demand mode. In this mode, it is assumed that a system has an independent way of verifying that it has connectivity to the other system.

What is the ECHO function in BFD?

When the Echo function is active, a stream of BFD Echo packets is transmitted in such a way as to have the other system loop them back through its forwarding path. If a number of packets of the echoed data stream are not received, the session is declared to be down. The Echo function may be used with either Asynchronous or Demand mode.

What does the BFD packet header look like?          

What is the admin down state in BFD?

Admin down state means the session is being held administratively down. This causes the remote system to enter down state, and remain there until the local system exits AdminDown state. Admin down state has no semantic implications for the availability of the forwarding path.

Do timers need to match between 2 routers having a BFD session between them?

No, the BFD timers need not match.

Comment on this article > Affected Products Browse the Knowledge Base for more articles related to these product categories. Select a category to begin.

Getting Up and Running with Junos

Getting Up and Running with Junos Security Alerts and Vulnerabilities Product Alerts and Software Release Notices Problem Report (PR) Search Tool EOL Notices and Bulletins JTAC User Guide Customer Care User Guide Pathfinder SRX High Availability Configurator SRX VPN Configurator Training Courses and Videos End User Licence Agreement Global Search