BFD session for BGP neighbor which is routed over bundle-interface can not be established without using below command ;
bfd multipath include location 0/0/CPU0
Before that for bfd session following error can be seen on show bfd session detail;
BFD_MP_DOWNLOAD_NO_LC.
BFD session must be tied to a specific location, Line card. With bundle configured and without that command BFD can not bind interface for the session as IOSXR uses LC for BFD sessions.
Below is nicely explanation for the behavior by Xander Thuijs ;
This I think is maybe nicely explained with this: Implementation of various BFD flavours over bundle interfaces in IOS XR was carried out in 3 phases:
- IPv4 BFD session over individual bundle sub-interfaces. This feature was called “BFD over VLAN over bundle”.
- IOS XR releases 4.0.1 and beyond: “BFD Over Bundle (BoB)” feature was introduced.
- IOS XR releases 4.3.0 and beyond: full support for IPv4 and IPv6 BFD sessions over bundle interfaces and sub-interfaces. For disambiguation from the BoB feature, this implementation is called BLB, and sessions are often referred to as native BFD sessions over bundle interfaces and/or sub-interfaces. BFD multipath must be enabled for any of these BFD flavours to work.
Due to the introduction of BLB (bfd over logical bundle) in XR43 this was necessary, I agree that you may have been mislead by the nomenclature of that multipath location keyword which suggests multihop, but it was meant to also include multipath as in multiple members of a bundle..
https://community.cisco.com/t5/xr-os-and-platforms/bfd-on-asr9k-cluster/td-p/2477664