diff options
author | 2016-09-03 14:20:25 +0000 | |
---|---|---|
committer | 2016-09-03 14:20:25 +0000 | |
commit | 0211a728c2614da81823ab2ea291b6d00b2253db (patch) | |
tree | b48b85fe494fb7177f1d0946d67e5d8533e82650 /sys/net/route.c | |
parent | sync (diff) | |
download | wireguard-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.c | 19 |
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], |