diff options
Diffstat (limited to 'staticd/static_routes.h')
-rw-r--r-- | staticd/static_routes.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/staticd/static_routes.h b/staticd/static_routes.h index 71c3689be..7082e8959 100644 --- a/staticd/static_routes.h +++ b/staticd/static_routes.h @@ -20,6 +20,7 @@ #ifndef __STATIC_ROUTES_H__ #define __STATIC_ROUTES_H__ +#include "lib/bfd.h" #include "lib/mpls.h" #include "table.h" #include "memory.h" @@ -30,6 +31,8 @@ extern "C" { DECLARE_MGROUP(STATIC); +#include "staticd/static_vrf.h" + /* Static route label information */ struct static_nh_label { uint8_t num_labels; @@ -148,6 +151,13 @@ struct static_nexthop { /* SR-TE color */ uint32_t color; + + /** BFD integration data. */ + struct bfd_session_params *bsp; + /** Back pointer for route node. */ + struct route_node *rn; + /** Path connection status. */ + bool path_down; }; DECLARE_DLIST(static_nexthop_list, struct static_nexthop, list); @@ -218,6 +228,22 @@ extern void zebra_stable_node_cleanup(struct route_table *table, extern void static_get_nh_str(struct static_nexthop *nh, char *nexthop, size_t size); +/* + * BFD integration. + */ +extern void static_next_hop_bfd_source(struct static_nexthop *sn, + const struct ipaddr *source); +extern void static_next_hop_bfd_auto_source(struct static_nexthop *sn); +extern void static_next_hop_bfd_monitor_enable(struct static_nexthop *sn, + const struct lyd_node *dnode); +extern void static_next_hop_bfd_monitor_disable(struct static_nexthop *sn); +extern void static_next_hop_bfd_profile(struct static_nexthop *sn, + const char *name); +extern void static_next_hop_bfd_multi_hop(struct static_nexthop *sn, bool mhop); + +/** Call this function after zebra client initialization. */ +extern void static_bfd_initialize(struct zclient *zc, struct thread_master *tm); + #ifdef __cplusplus } #endif |