summaryrefslogtreecommitdiffstats
path: root/sys/net/route.c
diff options
context:
space:
mode:
authorphessler <phessler@openbsd.org>2016-09-03 14:20:25 +0000
committerphessler <phessler@openbsd.org>2016-09-03 14:20:25 +0000
commit0211a728c2614da81823ab2ea291b6d00b2253db (patch)
treeb48b85fe494fb7177f1d0946d67e5d8533e82650 /sys/net/route.c
parentsync (diff)
downloadwireguard-openbsd-0211a728c2614da81823ab2ea291b6d00b2253db.tar.xz
wireguard-openbsd-0211a728c2614da81823ab2ea291b6d00b2253db.zip
Add in the (disabled) kernel glue for BFD
OK claudio@, henning@
Diffstat (limited to 'sys/net/route.c')
-rw-r--r--sys/net/route.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/sys/net/route.c b/sys/net/route.c
index f8fd23c2039..e6fbda6d0c9 100644
--- a/sys/net/route.c
+++ b/sys/net/route.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: route.c,v 1.321 2016/09/01 15:40:38 bluhm Exp $ */
+/* $OpenBSD: route.c,v 1.322 2016/09/03 14:20:26 phessler Exp $ */
/* $NetBSD: route.c,v 1.14 1996/02/13 22:00:46 christos Exp $ */
/*
@@ -139,6 +139,10 @@
#include <net/if_enc.h>
#endif
+#if BFD
+#include <net/bfd.h>
+#endif
+
#define ROUNDUP(a) (a>0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long))
/* Give some jitter to hash, to avoid synchronization between routers. */
@@ -196,6 +200,9 @@ route_init(void)
if (rtable_add(0) != 0)
panic("route_init rtable_add");
+#if BFD
+ bfdinit();
+#endif
}
/*
@@ -907,6 +914,11 @@ rtrequest_delete(struct rt_addrinfo *info, u_int8_t prio, struct ifnet *ifp,
rtfree(rt);
return (ESRCH);
}
+
+#if BFD
+ if (ISSET(rt->rt_flags, RTF_BFD))
+ (void)bfd_rtfree(rt);
+#endif /* BFD */
#endif
error = rtable_delete(tableid, info->rti_info[RTAX_DST],
@@ -1166,6 +1178,11 @@ rtrequest(int req, struct rt_addrinfo *info, u_int8_t prio,
pool_put(&rtentry_pool, rt);
return (EEXIST);
}
+#if BFD
+ if (ISSET(rt->rt_flags, RTF_BFD)) {
+ error = bfd_rtalloc(rt, NULL);
+ }
+#endif
ifp->if_rtrequest(ifp, req, rt);
if_group_routechange(info->rti_info[RTAX_DST],