BFD-FIB interactions

- single-hop BFD: attach a delegate to the appropriate adjacency
- multi-hop BFD [not supported yet]: attach a delegate to the FIB entry.

adjacency/fib_entry state tracks the BFD session state. when the state is down the object does not contribute forwarding hence and hence dependent objects will not use it.
For example, if a route is ECMP via two adjacencies and one of them is BFD down, then only the other is used to forward (i.e. we don't drop half the traffic).

Change-Id: I0ef53e20e73b067001a132cd0a3045408811a822
Signed-off-by: Neale Ranns <nranns@cisco.com>
diff --git a/src/vnet.am b/src/vnet.am
index 1d52ae1..643ae92 100644
--- a/src/vnet.am
+++ b/src/vnet.am
@@ -936,7 +936,8 @@
   vnet/fib/fib_path.c				\
   vnet/fib/fib_path_ext.c			\
   vnet/fib/fib_urpf_list.c			\
-  vnet/fib/fib_attached_export.c
+  vnet/fib/fib_attached_export.c		\
+  vnet/fib/fib_bfd.c
 
 nobase_include_HEADERS +=			\
   vnet/fib/fib.h				\
@@ -962,7 +963,9 @@
   vnet/adj/adj_l2.c      			\
   vnet/adj/adj_nsh.c      			\
   vnet/adj/adj.c		                \
-  vnet/adj/rewrite.c
+  vnet/adj/rewrite.c				\
+  vnet/adj/adj_bfd.c				\
+  vnet/adj/adj_delegate.c
 
 nobase_include_HEADERS +=			\
   vnet/adj/adj.h				\