aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander V. Chernikov <melifaro@FreeBSD.org>2020-06-01 20:40:40 +0000
committerAlexander V. Chernikov <melifaro@FreeBSD.org>2020-06-01 20:40:40 +0000
commite7403d0230f21b9edcc3f64c877a1d619049483e (patch)
tree3ef6904b67e313609be9bec95bb53317d51beada
parent79674562b8883beff69f81cc9163044f8c029474 (diff)
downloadsrc-e7403d0230f21b9edcc3f64c877a1d619049483e.tar.gz
src-e7403d0230f21b9edcc3f64c877a1d619049483e.zip
Revert r361704, it accidentally committed merged D25067 and D25070.
Notes
Notes: svn path=/head/; revision=361705
-rw-r--r--sys/net/if_llatbl.c1
-rw-r--r--sys/net/route.c15
-rw-r--r--sys/net/route.h10
-rw-r--r--sys/net/route/nhop_ctl.c1
-rw-r--r--sys/net/route/route_ctl.c220
-rw-r--r--sys/net/route/route_ctl.h90
-rw-r--r--sys/net/route/route_ddb.c1
-rw-r--r--sys/net/route/route_helpers.c1
-rw-r--r--sys/net/route/route_temporal.c2
-rw-r--r--sys/net/route/route_var.h9
-rw-r--r--sys/netinet/in_rmx.c1
-rw-r--r--sys/netinet/ip_icmp.c1
-rw-r--r--sys/netinet6/icmp6.c1
-rw-r--r--sys/netinet6/in6_rmx.c1
-rw-r--r--sys/netinet6/nd6_rtr.c1
15 files changed, 37 insertions, 318 deletions
diff --git a/sys/net/if_llatbl.c b/sys/net/if_llatbl.c
index 2bfa5debc380..1652e76fe955 100644
--- a/sys/net/if_llatbl.c
+++ b/sys/net/if_llatbl.c
@@ -58,7 +58,6 @@ __FBSDID("$FreeBSD$");
#include <net/if_dl.h>
#include <net/if_var.h>
#include <net/route.h>
-#include <net/route/route_ctl.h>
#include <net/vnet.h>
#include <netinet/if_ether.h>
#include <netinet6/in6_var.h>
diff --git a/sys/net/route.c b/sys/net/route.c
index 6c42e8f6eda5..55360fb600d9 100644
--- a/sys/net/route.c
+++ b/sys/net/route.c
@@ -61,7 +61,6 @@
#include <net/if_var.h>
#include <net/if_dl.h>
#include <net/route.h>
-#include <net/route/route_ctl.h>
#include <net/route/route_var.h>
#include <net/route/nhop.h>
#include <net/route/shared.h>
@@ -347,9 +346,6 @@ rt_table_init(int offset, int family, u_int fibnum)
nhops_init_rib(rh);
- /* Init subscription system */
- CK_STAILQ_INIT(&rh->rnh_subscribers);
-
/* Finally, set base callbacks */
rh->rnh_addaddr = rn_addroute;
rh->rnh_deladdr = rn_delete;
@@ -1152,7 +1148,6 @@ rtrequest1_fib(int req, struct rt_addrinfo *info, struct rtentry **ret_nrt,
{
const struct sockaddr *dst;
struct rib_head *rnh;
- struct rib_cmd_info rc;
int error;
KASSERT((fibnum < rt_numfibs), ("rtrequest1_fib: bad fibnum"));
@@ -1185,11 +1180,10 @@ rtrequest1_fib(int req, struct rt_addrinfo *info, struct rtentry **ret_nrt,
if (info->rti_flags & RTF_HOST)
info->rti_info[RTAX_NETMASK] = NULL;
- bzero(&rc, sizeof(struct rib_cmd_info));
error = 0;
switch (req) {
case RTM_DELETE:
- error = del_route(rnh, info, &rc);
+ error = del_route(rnh, info, ret_nrt);
break;
case RTM_RESOLVE:
/*
@@ -1198,18 +1192,15 @@ rtrequest1_fib(int req, struct rt_addrinfo *info, struct rtentry **ret_nrt,
*/
break;
case RTM_ADD:
- error = add_route(rnh, info, &rc);
+ error = add_route(rnh, info, ret_nrt);
break;
case RTM_CHANGE:
- error = change_route(rnh, info, &rc);
+ error = change_route(rnh, info, ret_nrt);
break;
default:
error = EOPNOTSUPP;
}
- if (ret_nrt != NULL)
- *ret_nrt = rc.rc_rt;
-
return (error);
}
diff --git a/sys/net/route.h b/sys/net/route.h
index fad32d1a5ee1..355a84407f9b 100644
--- a/sys/net/route.h
+++ b/sys/net/route.h
@@ -399,6 +399,12 @@ void rtfree(struct rtentry *);
void rtfree_func(struct rtentry *);
void rt_updatemtu(struct ifnet *);
+typedef int rt_walktree_f_t(struct rtentry *, void *);
+typedef void rt_setwarg_t(struct rib_head *, uint32_t, int, void *);
+void rib_walk_del(u_int fibnum, int family, rt_filter_f_t *filter_f,
+ void *arg, bool report);
+void rt_foreach_fib_walk(int af, rt_setwarg_t *, rt_walktree_f_t *, void *);
+void rt_foreach_fib_walk_del(int af, rt_filter_f_t *filter_f, void *arg);
void rt_flushifroutes_af(struct ifnet *, int);
void rt_flushifroutes(struct ifnet *ifp);
@@ -417,8 +423,12 @@ int rtrequest1_fib(int, struct rt_addrinfo *, struct rtentry **, u_int);
int rib_lookup_info(uint32_t, const struct sockaddr *, uint32_t, uint32_t,
struct rt_addrinfo *);
void rib_free_info(struct rt_addrinfo *info);
+int rib_add_redirect(u_int fibnum, struct sockaddr *dst,
+ struct sockaddr *gateway, struct sockaddr *author, struct ifnet *ifp,
+ int flags, int expire_sec);
/* New API */
+void rib_walk(int af, u_int fibnum, rt_walktree_f_t *wa_f, void *arg);
struct nhop_object *rib_lookup(uint32_t fibnum, const struct sockaddr *dst,
uint32_t flags, uint32_t flowid);
#endif
diff --git a/sys/net/route/nhop_ctl.c b/sys/net/route/nhop_ctl.c
index 2d74faa212ce..464d4cb05eab 100644
--- a/sys/net/route/nhop_ctl.c
+++ b/sys/net/route/nhop_ctl.c
@@ -44,7 +44,6 @@ __FBSDID("$FreeBSD$");
#include <net/if_var.h>
#include <net/if_dl.h>
#include <net/route.h>
-#include <net/route/route_ctl.h>
#include <net/route/route_var.h>
#include <net/route/nhop_utils.h>
#include <net/route/nhop.h>
diff --git a/sys/net/route/route_ctl.c b/sys/net/route/route_ctl.c
index d7a2d1bea9ea..961a7347258e 100644
--- a/sys/net/route/route_ctl.c
+++ b/sys/net/route/route_ctl.c
@@ -47,7 +47,6 @@ __FBSDID("$FreeBSD$");
#include <net/if_dl.h>
#include <net/vnet.h>
#include <net/route.h>
-#include <net/route/route_ctl.h>
#include <net/route/route_var.h>
#include <net/route/nhop_utils.h>
#include <net/route/nhop.h>
@@ -68,61 +67,11 @@ __FBSDID("$FreeBSD$");
* All functions assumes they are called in net epoch.
*/
-static void rib_notify(struct rib_head *rnh, enum rib_subscription_type type,
- struct rib_cmd_info *rc);
-
static void rt_notifydelete(struct rtentry *rt, struct rt_addrinfo *info);
-static struct rib_head *
-get_rnh(uint32_t fibnum, const struct rt_addrinfo *info)
-{
- struct rib_head *rnh;
- struct sockaddr *dst;
-
- KASSERT((fibnum < rt_numfibs), ("rib_add_route: bad fibnum"));
-
- dst = info->rti_info[RTAX_DST];
- rnh = rt_tables_get_rnh(fibnum, dst->sa_family);
-
- return (rnh);
-}
-
-/*
- * Adds route defined by @info into the kernel table specified by @fibnum and
- * sa_family in @info->rti_info[RTAX_DST].
- *
- * Returns 0 on success and fills in operation metadata into @rc.
- */
-int
-rib_add_route(uint32_t fibnum, struct rt_addrinfo *info,
- struct rib_cmd_info *rc)
-{
- struct rib_head *rnh;
-
- NET_EPOCH_ASSERT();
-
- rnh = get_rnh(fibnum, info);
- if (rnh == NULL)
- return (EAFNOSUPPORT);
-
- /*
- * Check consistency between RTF_HOST flag and netmask
- * existence.
- */
- if (info->rti_flags & RTF_HOST)
- info->rti_info[RTAX_NETMASK] = NULL;
- else if (info->rti_info[RTAX_NETMASK] == NULL)
- return (EINVAL);
-
- bzero(rc, sizeof(struct rib_cmd_info));
- rc->rc_cmd = RTM_ADD;
-
- return (add_route(rnh, info, rc));
-}
-
int
add_route(struct rib_head *rnh, struct rt_addrinfo *info,
- struct rib_cmd_info *rc)
+ struct rtentry **ret_nrt)
{
struct sockaddr *dst, *ndst, *gateway, *netmask;
struct rtentry *rt, *rt_old;
@@ -197,7 +146,6 @@ add_route(struct rib_head *rnh, struct rt_addrinfo *info,
rt->rt_weight = 1;
rt_setmetrics(info, rt);
- rt_old = NULL;
RIB_WLOCK(rnh);
RT_LOCK(rt);
@@ -215,19 +163,11 @@ add_route(struct rib_head *rnh, struct rt_addrinfo *info,
rn = rnh->rnh_addaddr(ndst, netmask, &rnh->head, rt->rt_nodes);
- if (rn != NULL) {
- /* Most common usecase */
- if (rt->rt_expire > 0)
- tmproutes_update(rnh, rt);
+ if (rn != NULL && rt->rt_expire > 0)
+ tmproutes_update(rnh, rt);
- /* Finalize notification */
- rnh->rnh_gen++;
-
- rc->rc_rt = RNTORT(rn);
- rc->rc_nh_new = nh;
-
- rib_notify(rnh, RIB_NOTIFY_IMMEDIATE, rc);
- } else if ((info->rti_flags & RTF_PINNED) != 0) {
+ rt_old = NULL;
+ if (rn == NULL && (info->rti_flags & RTF_PINNED) != 0) {
/*
* Force removal and re-try addition
@@ -240,26 +180,9 @@ add_route(struct rib_head *rnh, struct rt_addrinfo *info,
rt_old = rt_unlinkrte(rnh, info, &error);
info->rti_flags |= RTF_PINNED;
info->rti_info[RTAX_DST] = info_dst;
- if (rt_old != NULL) {
+ if (rt_old != NULL)
rn = rnh->rnh_addaddr(ndst, netmask, &rnh->head,
rt->rt_nodes);
-
- /* Finalize notification */
- rnh->rnh_gen++;
-
- if (rn != NULL) {
- rc->rc_cmd = RTM_CHANGE;
- rc->rc_rt = RNTORT(rn);
- rc->rc_nh_old = rt_old->rt_nhop;
- rc->rc_nh_new = nh;
- } else {
- rc->rc_cmd = RTM_DELETE;
- rc->rc_rt = RNTORT(rn);
- rc->rc_nh_old = rt_old->rt_nhop;
- rc->rc_nh_new = nh;
- }
- rib_notify(rnh, RIB_NOTIFY_IMMEDIATE, rc);
- }
}
RIB_WUNLOCK(rnh);
@@ -285,6 +208,12 @@ add_route(struct rib_head *rnh, struct rt_addrinfo *info,
if (ifa->ifa_rtrequest)
ifa->ifa_rtrequest(RTM_ADD, rt, rt->rt_nhop, info);
+ /*
+ * actually return a resultant rtentry
+ */
+ if (ret_nrt)
+ *ret_nrt = rt;
+ rnh->rnh_gen++; /* Routing table updated */
RT_UNLOCK(rt);
return (0);
@@ -292,29 +221,6 @@ add_route(struct rib_head *rnh, struct rt_addrinfo *info,
/*
- * Removes route defined by @info from the kernel table specified by @fibnum and
- * sa_family in @info->rti_info[RTAX_DST].
- *
- * Returns 0 on success and fills in operation metadata into @rc.
- */
-int
-rib_del_route(uint32_t fibnum, struct rt_addrinfo *info, struct rib_cmd_info *rc)
-{
- struct rib_head *rnh;
-
- NET_EPOCH_ASSERT();
-
- rnh = get_rnh(fibnum, info);
- if (rnh == NULL)
- return (EAFNOSUPPORT);
-
- bzero(rc, sizeof(struct rib_cmd_info));
- rc->rc_cmd = RTM_DELETE;
-
- return (del_route(rnh, info, rc));
-}
-
-/*
* Conditionally unlinks rtentry matching data inside @info from @rnh.
* Returns unlinked, locked and referenced @rtentry on success,
* Returns NULL and sets @perror to:
@@ -389,7 +295,7 @@ rt_unlinkrte(struct rib_head *rnh, struct rt_addrinfo *info, int *perror)
int
del_route(struct rib_head *rnh, struct rt_addrinfo *info,
- struct rib_cmd_info *rc)
+ struct rtentry **ret_nrt)
{
struct sockaddr *dst, *netmask;
struct sockaddr_storage mdst;
@@ -408,13 +314,6 @@ del_route(struct rib_head *rnh, struct rt_addrinfo *info,
RIB_WLOCK(rnh);
rt = rt_unlinkrte(rnh, info, &error);
- if (rt != NULL) {
- /* Finalize notification */
- rnh->rnh_gen++;
- rc->rc_rt = rt;
- rc->rc_nh_old = rt->rt_nhop;
- rib_notify(rnh, RIB_NOTIFY_IMMEDIATE, rc);
- }
RIB_WUNLOCK(rnh);
if (error != 0)
return (error);
@@ -425,32 +324,17 @@ del_route(struct rib_head *rnh, struct rt_addrinfo *info,
* If the caller wants it, then it can have it,
* the entry will be deleted after the end of the current epoch.
*/
+ if (ret_nrt)
+ *ret_nrt = rt;
+
rtfree(rt);
return (0);
}
-int
-rib_change_route(uint32_t fibnum, struct rt_addrinfo *info,
- struct rib_cmd_info *rc)
-{
- struct rib_head *rnh;
-
- NET_EPOCH_ASSERT();
-
- rnh = get_rnh(fibnum, info);
- if (rnh == NULL)
- return (EAFNOSUPPORT);
-
- bzero(rc, sizeof(struct rib_cmd_info));
- rc->rc_cmd = RTM_CHANGE;
-
- return (change_route(rnh, info, rc));
-}
-
static int
change_route_one(struct rib_head *rnh, struct rt_addrinfo *info,
- struct rib_cmd_info *rc)
+ struct rtentry **ret_nrt)
{
RIB_RLOCK_TRACKER;
struct rtentry *rt = NULL;
@@ -550,18 +434,14 @@ change_route_one(struct rib_head *rnh, struct rt_addrinfo *info,
if ((nh_orig->nh_ifa != nh->nh_ifa) && nh_orig->nh_ifa->ifa_rtrequest)
nh_orig->nh_ifa->ifa_rtrequest(RTM_DELETE, rt, nh_orig, info);
- /* Finalize notification */
- rc->rc_rt = rt;
- rc->rc_nh_old = nh_orig;
- rc->rc_nh_new = rt->rt_nhop;
+ if (ret_nrt != NULL)
+ *ret_nrt = rt;
RT_UNLOCK(rt);
/* Update generation id to reflect rtable change */
rnh->rnh_gen++;
- rib_notify(rnh, RIB_NOTIFY_IMMEDIATE, rc);
-
RIB_WUNLOCK(rnh);
nhop_free(nh_orig);
@@ -571,7 +451,7 @@ change_route_one(struct rib_head *rnh, struct rt_addrinfo *info,
int
change_route(struct rib_head *rnh, struct rt_addrinfo *info,
- struct rib_cmd_info *rc)
+ struct rtentry **ret_nrt)
{
int error;
@@ -588,7 +468,7 @@ change_route(struct rib_head *rnh, struct rt_addrinfo *info,
* multiple times before failing.
*/
for (int i = 0; i < RIB_MAX_RETRIES; i++) {
- error = change_route_one(rnh, info, rc);
+ error = change_route_one(rnh, info, ret_nrt);
if (error != EAGAIN)
break;
}
@@ -701,62 +581,4 @@ rib_walk_del(u_int fibnum, int family, rt_filter_f_t *filter_f, void *arg, bool
}
}
-static void
-rib_notify(struct rib_head *rnh, enum rib_subscription_type type,
- struct rib_cmd_info *rc)
-{
- struct rib_subscription *rs;
-
- CK_STAILQ_FOREACH(rs, &rnh->rnh_subscribers, next) {
- if (rs->type == type)
- rs->func(rnh, rc, rs->arg);
- }
-}
-
-struct rib_subscription *
-rib_subscribe(uint32_t fibnum, int family, rib_subscription_cb_t *f, void *arg,
- enum rib_subscription_type type, int waitok)
-{
- struct rib_head *rnh;
- struct rib_subscription *rs;
- int flags = M_ZERO | (waitok ? M_WAITOK : 0);
-
- NET_EPOCH_ASSERT();
- KASSERT((fibnum < rt_numfibs), ("%s: bad fibnum", __func__));
- rnh = rt_tables_get_rnh(fibnum, family);
-
- rs = malloc(sizeof(struct rib_subscription), M_RTABLE, flags);
- if (rs == NULL)
- return (NULL);
-
- rs->func = f;
- rs->arg = arg;
- rs->type = type;
-
- RIB_WLOCK(rnh);
- CK_STAILQ_INSERT_TAIL(&rnh->rnh_subscribers, rs, next);
- RIB_WUNLOCK(rnh);
-
- return (rs);
-}
-
-int
-rib_unsibscribe(uint32_t fibnum, int family, struct rib_subscription *rs)
-{
- struct rib_head *rnh;
-
- NET_EPOCH_ASSERT();
- KASSERT((fibnum < rt_numfibs), ("%s: bad fibnum", __func__));
- rnh = rt_tables_get_rnh(fibnum, family);
-
- if (rnh == NULL)
- return (ENOENT);
-
- RIB_WLOCK(rnh);
- CK_STAILQ_REMOVE(&rnh->rnh_subscribers, rs, rib_subscription, next);
- RIB_WUNLOCK(rnh);
-
- free(rs, M_RTABLE);
- return (0);
-}
diff --git a/sys/net/route/route_ctl.h b/sys/net/route/route_ctl.h
deleted file mode 100644
index 0ff3bca29a5a..000000000000
--- a/sys/net/route/route_ctl.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
- * Copyright (c) 2020 Alexander V. Chernikov
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD$
- */
-
-/*
- * This header file contains public functions and structures used for
- * routing table manipulations.
- */
-
-#ifndef _NET_ROUTE_ROUTE_CTL_H_
-#define _NET_ROUTE_ROUTE_CTL_H_
-
-struct rib_cmd_info {
- uint8_t rc_cmd; /* RTM_ADD|RTM_DEL|RTM_CHANGE */
- uint8_t spare[3];
- uint32_t rc_nh_weight; /* new nhop weight */
- struct rtentry *rc_rt; /* Target entry */
- struct nhop_object *rc_nh_old; /* Target nhop OR mpath */
- struct nhop_object *rc_nh_new; /* Target nhop OR mpath */
-};
-
-
-int rib_add_route(uint32_t fibnum, struct rt_addrinfo *info,
- struct rib_cmd_info *rc);
-int rib_del_route(uint32_t fibnum, struct rt_addrinfo *info,
- struct rib_cmd_info *rc);
-int rib_change_route(uint32_t fibnum, struct rt_addrinfo *info,
- struct rib_cmd_info *rc);
-
-int rib_add_redirect(u_int fibnum, struct sockaddr *dst,
- struct sockaddr *gateway, struct sockaddr *author, struct ifnet *ifp,
- int flags, int expire_sec);
-
-typedef int rt_walktree_f_t(struct rtentry *, void *);
-void rib_walk(int af, u_int fibnum, rt_walktree_f_t *wa_f, void *arg);
-void rib_walk_del(u_int fibnum, int family, rt_filter_f_t *filter_f,
- void *arg, bool report);
-
-typedef void rt_setwarg_t(struct rib_head *, uint32_t, int, void *);
-void rt_foreach_fib_walk(int af, rt_setwarg_t *, rt_walktree_f_t *, void *);
-void rt_foreach_fib_walk_del(int af, rt_filter_f_t *filter_f, void *arg);
-
-enum rib_subscription_type {
- RIB_NOTIFY_IMMEDIATE,
- RIB_NOTIFY_DELAYED
-};
-
-typedef void rib_subscription_cb_t(struct rib_head *rnh, struct rib_cmd_info *rc,
- void *arg);
-
-struct rib_subscription {
- CK_STAILQ_ENTRY(rib_subscription) next;
- rib_subscription_cb_t *func;
- void *arg;
- enum rib_subscription_type type;
-};
-
-struct rib_subscription *rib_subscribe(uint32_t fibnum, int family,
- rib_subscription_cb_t *f, void *arg, enum rib_subscription_type type,
- int waitok);
-int rib_unsibscribe(uint32_t fibnum, int family, struct rib_subscription *rs);
-
-
-#endif
-
diff --git a/sys/net/route/route_ddb.c b/sys/net/route/route_ddb.c
index df50a3e725a4..64cbff700667 100644
--- a/sys/net/route/route_ddb.c
+++ b/sys/net/route/route_ddb.c
@@ -50,7 +50,6 @@ __FBSDID("$FreeBSD$");
#include <net/if_dl.h>
#include <net/route.h>
#include <net/route/nhop.h>
-#include <net/route/route_ctl.h>
#include <net/route/route_var.h>
/*
diff --git a/sys/net/route/route_helpers.c b/sys/net/route/route_helpers.c
index eadb62b804f3..54ab18989d30 100644
--- a/sys/net/route/route_helpers.c
+++ b/sys/net/route/route_helpers.c
@@ -50,7 +50,6 @@ __FBSDID("$FreeBSD$");
#include <net/if_var.h>
#include <net/if_dl.h>
#include <net/route.h>
-#include <net/route/route_ctl.h>
#include <net/route/route_var.h>
#include <net/route/nhop_utils.h>
#include <net/route/nhop.h>
diff --git a/sys/net/route/route_temporal.c b/sys/net/route/route_temporal.c
index 660436a2eb6e..c797eefd0c18 100644
--- a/sys/net/route/route_temporal.c
+++ b/sys/net/route/route_temporal.c
@@ -38,13 +38,11 @@ __FBSDID("$FreeBSD$");
#include <sys/socket.h>
#include <sys/kernel.h>
#include <sys/lock.h>
-#include <sys/ck.h>
#include <sys/rmlock.h>
#include <sys/callout.h>
#include <net/if.h>
#include <net/route.h>
-#include <net/route/route_ctl.h>
#include <net/route/route_var.h>
#include <net/vnet.h>
diff --git a/sys/net/route/route_var.h b/sys/net/route/route_var.h
index 4427ac046ee8..176084372609 100644
--- a/sys/net/route/route_var.h
+++ b/sys/net/route/route_var.h
@@ -35,7 +35,6 @@
#ifndef RNF_NORMAL
#include <net/radix.h>
#endif
-#include <sys/ck.h>
#include <sys/epoch.h>
#include <netinet/in.h> /* struct sockaddr_in */
#include <sys/counter.h>
@@ -64,7 +63,6 @@ struct rib_head {
struct callout expire_callout; /* Callout for expiring dynamic routes */
time_t next_expire; /* Next expire run ts */
struct nh_control *nh_control; /* nexthop subsystem data */
- CK_STAILQ_HEAD(, rib_subscription) rnh_subscribers;/* notification subscribers */
};
#define RIB_RLOCK_TRACKER struct rm_priotracker _rib_tracker
@@ -112,13 +110,12 @@ void rt_setmetrics(const struct rt_addrinfo *info, struct rtentry *rt);
struct radix_node *rt_mpath_unlink(struct rib_head *rnh,
struct rt_addrinfo *info, struct rtentry *rto, int *perror);
#endif
-struct rib_cmd_info;
int add_route(struct rib_head *rnh, struct rt_addrinfo *info,
- struct rib_cmd_info *rc);
+ struct rtentry **ret_nrt);
int del_route(struct rib_head *rnh, struct rt_addrinfo *info,
- struct rib_cmd_info *rc);
+ struct rtentry **ret_nrt);
int change_route(struct rib_head *, struct rt_addrinfo *,
- struct rib_cmd_info *rc);
+ struct rtentry **);
VNET_PCPUSTAT_DECLARE(struct rtstat, rtstat);
#define RTSTAT_ADD(name, val) \
diff --git a/sys/netinet/in_rmx.c b/sys/netinet/in_rmx.c
index 38a9d9232a8a..c94a85de0880 100644
--- a/sys/netinet/in_rmx.c
+++ b/sys/netinet/in_rmx.c
@@ -42,7 +42,6 @@ __FBSDID("$FreeBSD$");
#include <net/if.h>
#include <net/if_var.h>
#include <net/route.h>
-#include <net/route/route_ctl.h>
#include <net/route/route_var.h>
#include <net/route/nhop.h>
#include <net/route/shared.h>
diff --git a/sys/netinet/ip_icmp.c b/sys/netinet/ip_icmp.c
index 94daae43fd20..af55a5e72514 100644
--- a/sys/netinet/ip_icmp.c
+++ b/sys/netinet/ip_icmp.c
@@ -52,7 +52,6 @@ __FBSDID("$FreeBSD$");
#include <net/if_var.h>
#include <net/if_types.h>
#include <net/route.h>
-#include <net/route/route_ctl.h>
#include <net/route/nhop.h>
#include <net/vnet.h>
diff --git a/sys/netinet6/icmp6.c b/sys/netinet6/icmp6.c
index 597fb9d5de27..1fac329a9cec 100644
--- a/sys/netinet6/icmp6.c
+++ b/sys/netinet6/icmp6.c
@@ -93,7 +93,6 @@ __FBSDID("$FreeBSD$");
#include <net/if_llatbl.h>
#include <net/if_types.h>
#include <net/route.h>
-#include <net/route/route_ctl.h>
#include <net/route/nhop.h>
#include <net/vnet.h>
diff --git a/sys/netinet6/in6_rmx.c b/sys/netinet6/in6_rmx.c
index 54cf0dcb23c2..ce74aee0c231 100644
--- a/sys/netinet6/in6_rmx.c
+++ b/sys/netinet6/in6_rmx.c
@@ -81,7 +81,6 @@ __FBSDID("$FreeBSD$");
#include <net/if.h>
#include <net/if_var.h>
#include <net/route.h>
-#include <net/route/route_ctl.h>
#include <net/route/route_var.h>
#include <net/route/nhop.h>
#include <net/route/shared.h>
diff --git a/sys/netinet6/nd6_rtr.c b/sys/netinet6/nd6_rtr.c
index 023fbb0e4175..98cc1b220248 100644
--- a/sys/netinet6/nd6_rtr.c
+++ b/sys/netinet6/nd6_rtr.c
@@ -60,7 +60,6 @@ __FBSDID("$FreeBSD$");
#include <net/if_dl.h>
#include <net/route.h>
#include <net/route/nhop.h>
-#include <net/route/route_ctl.h>
#include <net/route/route_var.h>
#include <net/radix.h>
#include <net/vnet.h>