All,
This thread touches on day one bgp architecture bug where the BGP spec is too vague on what should be considered as valid next hop.
Most implementations today go as far as checking if the next hop can be resolved in RIB and if so consider the path as valid and eligible for best path selection.
Well clearly that approach is not working well in IXP setup as there can be peers on a connected subnet which went down 179 seconds ago and we are still blackholing by pushing the traffic to such next hops.
In reality the situation get's worse even in intradomain cases where operators use encapsulation via the domain while IGP does install the route to a next hop. The encap path can be broken while the BGP thinks it is all cool and keep blasting traffic towards it.
So to the top of this thread IMHO we should not put BFD state in BGP. That's as ugly as BGP-LS.
Instead each peer should be able to periodically test reachability to a peer (bgp nh) in the data plane and only then consider the path is valid for BGP best path selection.
Would running even ICMP to a nh peer every second be an overkill ? I don't think so but I am sure there would be some who think it would.
Best,
R.