summaryrefslogtreecommitdiffstats
path: root/staticd/static_routes.h
diff options
context:
space:
mode:
Diffstat (limited to 'staticd/static_routes.h')
-rw-r--r--staticd/static_routes.h26
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