+u8 *format_bfd_session_brief (u8 * s, va_list * args);
+u8 *format_bfd_auth_key (u8 * s, va_list * args);
+void bfd_session_set_flags (vlib_main_t * vm, bfd_session_t * bs,
+ u8 admin_up_down);
+unsigned bfd_auth_type_supported (bfd_auth_type_e auth_type);
+vnet_api_error_t bfd_auth_activate (bfd_session_t * bs, u32 conf_key_id,
+ u8 bfd_key_id, u8 is_delayed);
+vnet_api_error_t bfd_auth_deactivate (bfd_session_t * bs, u8 is_delayed);
+vnet_api_error_t bfd_session_set_params (bfd_main_t * bm, bfd_session_t * bs,
+ u32 desired_min_tx_usec,
+ u32 required_min_rx_usec,
+ u8 detect_mult);
+
+u32 bfd_nsec_to_usec (u64 nsec);
+const char *bfd_poll_state_string (bfd_poll_state_e state);
+
+#define USEC_PER_MS (1000LL)
+#define MSEC_PER_SEC (1000LL)
+#define NSEC_PER_USEC (1000LL)
+#define USEC_PER_SEC (MSEC_PER_SEC * USEC_PER_MS)
+#define NSEC_PER_SEC (NSEC_PER_USEC * USEC_PER_SEC)
+#define SEC_PER_NSEC ((f64)1/NSEC_PER_SEC)
+
+/** timing wheel tick-rate, 1ms should be good enough */
+#define BFD_TW_TPS (MSEC_PER_SEC)
+
+/** default, slow transmission interval for BFD packets, per spec at least 1s */
+#define BFD_DEFAULT_DESIRED_MIN_TX_USEC USEC_PER_SEC