svn commit: r360449 - in head/sys: conf net net/route netinet netinet6 netpfil/ipfw

Alexander V. Chernikov melifaro at FreeBSD.org
Tue Apr 28 19:14:13 UTC 2020


Author: melifaro
Date: Tue Apr 28 19:14:09 2020
New Revision: 360449
URL: https://svnweb.freebsd.org/changeset/base/360449

Log:
  Move route_temporal.c and route_var.h to net/route.
  
  Nexthop objects implementation, defined in r359823,
   introduced sys/net/route directory intended to hold all
   routing-related code. Move recently-introduced route_temporal.c and
   private route_var.h header there.
  
  Differential Revision:	https://reviews.freebsd.org/D24597

Added:
  head/sys/net/route/route_temporal.c
     - copied, changed from r360430, head/sys/net/route_temporal.c
  head/sys/net/route/route_var.h
     - copied unchanged from r360447, head/sys/net/route_var.h
Deleted:
  head/sys/net/route_temporal.c
  head/sys/net/route_var.h
Modified:
  head/sys/conf/files
  head/sys/net/radix_mpath.c
  head/sys/net/route.c
  head/sys/net/route/nhop.c
  head/sys/net/route/nhop_ctl.c
  head/sys/net/route/route_ctl.c
  head/sys/net/route/route_helpers.c
  head/sys/net/rtsock.c
  head/sys/netinet/in_fib.c
  head/sys/netinet/in_rmx.c
  head/sys/netinet6/in6_fib.c
  head/sys/netinet6/in6_rmx.c
  head/sys/netinet6/nd6.c
  head/sys/netinet6/nd6_rtr.c
  head/sys/netpfil/ipfw/ip_fw_table_algo.c

Modified: head/sys/conf/files
==============================================================================
--- head/sys/conf/files	Tue Apr 28 18:53:49 2020	(r360448)
+++ head/sys/conf/files	Tue Apr 28 19:14:09 2020	(r360449)
@@ -4091,12 +4091,12 @@ net/radix_mpath.c		standard
 net/raw_cb.c			standard
 net/raw_usrreq.c		standard
 net/route.c			standard
-net/route_temporal.c		standard
 net/route/nhop.c		standard
 net/route/nhop_ctl.c		standard
 net/route/nhop_utils.c		standard
 net/route/route_ctl.c		standard
 net/route/route_helpers.c	standard
+net/route/route_temporal.c	standard
 net/rss_config.c		optional inet rss | inet6 rss
 net/rtsock.c			standard
 net/slcompress.c		optional netgraph_vjc | sppp | \

Modified: head/sys/net/radix_mpath.c
==============================================================================
--- head/sys/net/radix_mpath.c	Tue Apr 28 18:53:49 2020	(r360448)
+++ head/sys/net/radix_mpath.c	Tue Apr 28 19:14:09 2020	(r360449)
@@ -57,7 +57,7 @@ __FBSDID("$FreeBSD$");
 #include <net/route.h>
 #include <net/route/nhop.h>
 #include <net/route/shared.h>
-#include <net/route_var.h>
+#include <net/route/route_var.h>
 #include <net/route/nhop.h>
 #include <net/if.h>
 #include <net/if_var.h>

Modified: head/sys/net/route.c
==============================================================================
--- head/sys/net/route.c	Tue Apr 28 18:53:49 2020	(r360448)
+++ head/sys/net/route.c	Tue Apr 28 19:14:09 2020	(r360449)
@@ -61,7 +61,7 @@
 #include <net/if_var.h>
 #include <net/if_dl.h>
 #include <net/route.h>
-#include <net/route_var.h>
+#include <net/route/route_var.h>
 #include <net/route/nhop.h>
 #include <net/route/shared.h>
 #include <net/vnet.h>

Modified: head/sys/net/route/nhop.c
==============================================================================
--- head/sys/net/route/nhop.c	Tue Apr 28 18:53:49 2020	(r360448)
+++ head/sys/net/route/nhop.c	Tue Apr 28 19:14:09 2020	(r360449)
@@ -42,7 +42,7 @@ __FBSDID("$FreeBSD$");
 #include <net/if.h>
 #include <net/if_var.h>
 #include <net/route.h>
-#include <net/route_var.h>
+#include <net/route/route_var.h>
 #include <net/route/nhop_utils.h>
 #include <net/route/nhop.h>
 #include <net/route/nhop_var.h>

Modified: head/sys/net/route/nhop_ctl.c
==============================================================================
--- head/sys/net/route/nhop_ctl.c	Tue Apr 28 18:53:49 2020	(r360448)
+++ head/sys/net/route/nhop_ctl.c	Tue Apr 28 19:14:09 2020	(r360449)
@@ -44,7 +44,7 @@ __FBSDID("$FreeBSD$");
 #include <net/if_var.h>
 #include <net/if_dl.h>
 #include <net/route.h>
-#include <net/route_var.h>
+#include <net/route/route_var.h>
 #include <net/route/nhop_utils.h>
 #include <net/route/nhop.h>
 #include <net/route/nhop_var.h>

Modified: head/sys/net/route/route_ctl.c
==============================================================================
--- head/sys/net/route/route_ctl.c	Tue Apr 28 18:53:49 2020	(r360448)
+++ head/sys/net/route/route_ctl.c	Tue Apr 28 19:14:09 2020	(r360449)
@@ -46,7 +46,7 @@ __FBSDID("$FreeBSD$");
 #include <net/if_dl.h>
 #include <net/vnet.h>
 #include <net/route.h>
-#include <net/route_var.h>
+#include <net/route/route_var.h>
 #include <net/route/nhop_utils.h>
 #include <net/route/nhop.h>
 #include <net/route/nhop_var.h>

Modified: head/sys/net/route/route_helpers.c
==============================================================================
--- head/sys/net/route/route_helpers.c	Tue Apr 28 18:53:49 2020	(r360448)
+++ head/sys/net/route/route_helpers.c	Tue Apr 28 19:14:09 2020	(r360449)
@@ -50,7 +50,7 @@ __FBSDID("$FreeBSD$");
 #include <net/if_var.h>
 #include <net/if_dl.h>
 #include <net/route.h>
-#include <net/route_var.h>
+#include <net/route/route_var.h>
 #include <net/route/nhop_utils.h>
 #include <net/route/nhop.h>
 #include <net/route/nhop_var.h>

Copied and modified: head/sys/net/route/route_temporal.c (from r360430, head/sys/net/route_temporal.c)
==============================================================================
--- head/sys/net/route_temporal.c	Tue Apr 28 07:25:34 2020	(r360430, copy source)
+++ head/sys/net/route/route_temporal.c	Tue Apr 28 19:14:09 2020	(r360449)
@@ -43,7 +43,7 @@ __FBSDID("$FreeBSD$");
 
 #include <net/if.h>
 #include <net/route.h>
-#include <net/route_var.h>
+#include <net/route/route_var.h>
 #include <net/vnet.h>
 
 /*

Copied: head/sys/net/route/route_var.h (from r360447, head/sys/net/route_var.h)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/net/route/route_var.h	Tue Apr 28 19:14:09 2020	(r360449, copy of r360447, head/sys/net/route_var.h)
@@ -0,0 +1,230 @@
+/*-
+ * Copyright (c) 2015-2016
+ * 	Alexander V. Chernikov <melifaro at FreeBSD.org>
+ *
+ * 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.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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$
+ */
+
+#ifndef _NET_ROUTE_VAR_H_
+#define _NET_ROUTE_VAR_H_
+
+#ifndef RNF_NORMAL
+#include <net/radix.h>
+#endif
+#include <sys/counter.h>
+
+struct nh_control;
+typedef int rnh_preadd_entry_f_t(u_int fibnum, const struct sockaddr *addr,
+	const struct sockaddr *mask, struct nhop_object *nh);
+
+struct rib_head {
+	struct radix_head	head;
+	rn_matchaddr_f_t	*rnh_matchaddr;	/* longest match for sockaddr */
+	rn_addaddr_f_t		*rnh_addaddr;	/* add based on sockaddr*/
+	rn_deladdr_f_t		*rnh_deladdr;	/* remove based on sockaddr */
+	rn_lookup_f_t		*rnh_lookup;	/* exact match for sockaddr */
+	rn_walktree_t		*rnh_walktree;	/* traverse tree */
+	rn_walktree_from_t	*rnh_walktree_from; /* traverse tree below a */
+	rn_close_t		*rnh_close;	/*do something when the last ref drops*/
+	rnh_preadd_entry_f_t	*rnh_preadd;	/* hook to alter record prior to insertion */
+	rt_gen_t		rnh_gen;	/* generation counter */
+	int			rnh_multipath;	/* multipath capable ? */
+	struct radix_node	rnh_nodes[3];	/* empty tree for common case */
+	struct rmlock		rib_lock;	/* config/data path lock */
+	struct radix_mask_head	rmhead;		/* masks radix head */
+	struct vnet		*rib_vnet;	/* vnet pointer */
+	int			rib_family;	/* AF of the rtable */
+	u_int			rib_fibnum;	/* fib number */
+	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 */
+};
+
+#define	RIB_RLOCK_TRACKER	struct rm_priotracker _rib_tracker
+#define	RIB_LOCK_INIT(rh)	rm_init(&(rh)->rib_lock, "rib head lock")
+#define	RIB_LOCK_DESTROY(rh)	rm_destroy(&(rh)->rib_lock)
+#define	RIB_RLOCK(rh)		rm_rlock(&(rh)->rib_lock, &_rib_tracker)
+#define	RIB_RUNLOCK(rh)		rm_runlock(&(rh)->rib_lock, &_rib_tracker)
+#define	RIB_WLOCK(rh)		rm_wlock(&(rh)->rib_lock)
+#define	RIB_WUNLOCK(rh)		rm_wunlock(&(rh)->rib_lock)
+#define	RIB_LOCK_ASSERT(rh)	rm_assert(&(rh)->rib_lock, RA_LOCKED)
+#define	RIB_WLOCK_ASSERT(rh)	rm_assert(&(rh)->rib_lock, RA_WLOCKED)
+
+/* Macro for verifying fields in af-specific 'struct route' structures */
+#define CHK_STRUCT_FIELD_GENERIC(_s1, _f1, _s2, _f2)			\
+_Static_assert(sizeof(((_s1 *)0)->_f1) == sizeof(((_s2 *)0)->_f2),	\
+		"Fields " #_f1 " and " #_f2 " size differs");		\
+_Static_assert(__offsetof(_s1, _f1) == __offsetof(_s2, _f2),		\
+		"Fields " #_f1 " and " #_f2 " offset differs");
+
+#define _CHK_ROUTE_FIELD(_route_new, _field) \
+	CHK_STRUCT_FIELD_GENERIC(struct route, _field, _route_new, _field)
+
+#define CHK_STRUCT_ROUTE_FIELDS(_route_new)	\
+	_CHK_ROUTE_FIELD(_route_new, ro_nh)	\
+	_CHK_ROUTE_FIELD(_route_new, ro_lle)	\
+	_CHK_ROUTE_FIELD(_route_new, ro_prepend)\
+	_CHK_ROUTE_FIELD(_route_new, ro_plen)	\
+	_CHK_ROUTE_FIELD(_route_new, ro_flags)	\
+	_CHK_ROUTE_FIELD(_route_new, ro_mtu)	\
+	_CHK_ROUTE_FIELD(_route_new, spare)
+
+#define CHK_STRUCT_ROUTE_COMPAT(_ro_new, _dst_new)				\
+CHK_STRUCT_ROUTE_FIELDS(_ro_new);						\
+_Static_assert(__offsetof(struct route, ro_dst) == __offsetof(_ro_new, _dst_new),\
+		"ro_dst and " #_dst_new " are at different offset")
+
+struct rib_head *rt_tables_get_rnh(int fib, int family);
+void rt_mpath_init_rnh(struct rib_head *rnh);
+
+VNET_PCPUSTAT_DECLARE(struct rtstat, rtstat);
+#define	RTSTAT_ADD(name, val)	\
+	VNET_PCPUSTAT_ADD(struct rtstat, rtstat, name, (val))
+#define	RTSTAT_INC(name)	RTSTAT_ADD(name, 1)
+
+struct rtentry {
+	struct	radix_node rt_nodes[2];	/* tree glue, and other values */
+	/*
+	 * XXX struct rtentry must begin with a struct radix_node (or two!)
+	 * because the code does some casts of a 'struct radix_node *'
+	 * to a 'struct rtentry *'
+	 */
+#define	rt_key(r)	(*((struct sockaddr **)(&(r)->rt_nodes->rn_key)))
+#define	rt_mask(r)	(*((struct sockaddr **)(&(r)->rt_nodes->rn_mask)))
+#define	rt_key_const(r)		(*((const struct sockaddr * const *)(&(r)->rt_nodes->rn_key)))
+#define	rt_mask_const(r)	(*((const struct sockaddr * const *)(&(r)->rt_nodes->rn_mask)))
+	struct	sockaddr *rt_gateway;	/* value */
+	struct	ifnet *rt_ifp;		/* the answer: interface to use */
+	struct	ifaddr *rt_ifa;		/* the answer: interface address to use */
+	struct nhop_object	*rt_nhop;	/* nexthop data */
+	int		rt_flags;	/* up/down?, host/net */
+	int		rt_refcnt;	/* # held references */
+	u_int		rt_fibnum;	/* which FIB */
+	u_long		rt_mtu;		/* MTU for this path */
+	u_long		rt_weight;	/* absolute weight */ 
+	u_long		rt_expire;	/* lifetime for route, e.g. redirect */
+#define	rt_endzero	rt_pksent
+	counter_u64_t	rt_pksent;	/* packets sent using this route */
+	struct mtx	rt_mtx;		/* mutex for routing entry */
+	struct rtentry	*rt_chain;	/* pointer to next rtentry to delete */
+};
+
+#define	RT_LOCK_INIT(_rt) \
+	mtx_init(&(_rt)->rt_mtx, "rtentry", NULL, MTX_DEF | MTX_DUPOK | MTX_NEW)
+#define	RT_LOCK(_rt)		mtx_lock(&(_rt)->rt_mtx)
+#define	RT_UNLOCK(_rt)		mtx_unlock(&(_rt)->rt_mtx)
+#define	RT_LOCK_DESTROY(_rt)	mtx_destroy(&(_rt)->rt_mtx)
+#define	RT_LOCK_ASSERT(_rt)	mtx_assert(&(_rt)->rt_mtx, MA_OWNED)
+#define	RT_UNLOCK_COND(_rt)	do {				\
+	if (mtx_owned(&(_rt)->rt_mtx))				\
+		mtx_unlock(&(_rt)->rt_mtx);			\
+} while (0)
+
+#define	RT_ADDREF(_rt)	do {					\
+	RT_LOCK_ASSERT(_rt);					\
+	KASSERT((_rt)->rt_refcnt >= 0,				\
+		("negative refcnt %d", (_rt)->rt_refcnt));	\
+	(_rt)->rt_refcnt++;					\
+} while (0)
+
+#define	RT_REMREF(_rt)	do {					\
+	RT_LOCK_ASSERT(_rt);					\
+	KASSERT((_rt)->rt_refcnt > 0,				\
+		("bogus refcnt %d", (_rt)->rt_refcnt));	\
+	(_rt)->rt_refcnt--;					\
+} while (0)
+
+#define	RTFREE_LOCKED(_rt) do {					\
+	if ((_rt)->rt_refcnt <= 1)				\
+		rtfree(_rt);					\
+	else {							\
+		RT_REMREF(_rt);					\
+		RT_UNLOCK(_rt);					\
+	}							\
+	/* guard against invalid refs */			\
+	_rt = 0;						\
+} while (0)
+
+#define	RTFREE(_rt) do {					\
+	RT_LOCK(_rt);						\
+	RTFREE_LOCKED(_rt);					\
+} while (0)
+
+/*
+ * With the split between the routing entry and the nexthop,
+ *  rt_flags has to be split between these 2 entries. As rtentry
+ *  mostly contains prefix data and is thought to be generic enough
+ *  so one can transparently change the nexthop pointer w/o requiring
+ *  any other rtentry changes, most of rt_flags shifts to the particular nexthop.
+ * /
+ *
+ * RTF_UP: rtentry, as an indication that it is linked.
+ * RTF_HOST: rtentry, nhop. The latter indication is needed for the datapath
+ * RTF_DYNAMIC: nhop, to make rtentry generic.
+ * RTF_MODIFIED: nhop, to make rtentry generic. (legacy)
+ * -- "native" path (nhop) properties:
+ * RTF_GATEWAY, RTF_STATIC, RTF_PROTO1, RTF_PROTO2, RTF_PROTO3, RTF_FIXEDMTU,
+ *  RTF_PINNED, RTF_REJECT, RTF_BLACKHOLE, RTF_BROADCAST
+ */
+
+/* Nexthop rt flags mask */
+#define	NHOP_RT_FLAG_MASK	(RTF_GATEWAY | RTF_HOST | RTF_REJECT | RTF_DYNAMIC | \
+    RTF_MODIFIED | RTF_STATIC | RTF_BLACKHOLE | RTF_PROTO1 | RTF_PROTO2 | \
+    RTF_PROTO3 | RTF_FIXEDMTU | RTF_PINNED | RTF_BROADCAST)
+
+/* rtentry rt flag mask */
+#define	RTE_RT_FLAG_MASK	(RTF_UP | RTF_HOST)
+
+/* Nexthop selection */
+#define	_NH2MP(_nh)	((struct nhgrp_object *)(_nh))
+#define	_SELECT_NHOP(_nh, _flowid)	\
+	(_NH2MP(_nh))->nhops[(_flowid) % (_NH2MP(_nh))->mp_size]
+#define	_RT_SELECT_NHOP(_nh, _flowid)	\
+	((!NH_IS_MULTIPATH(_nh)) ? (_nh) : _SELECT_NHOP(_nh, _flowid))
+#define	RT_SELECT_NHOP(_rt, _flowid)	_RT_SELECT_NHOP((_rt)->rt_nhop, _flowid)
+ 
+/* rte<>nhop translation */
+static inline uint16_t
+fib_rte_to_nh_flags(int rt_flags)
+{
+	uint16_t res;
+
+	res = (rt_flags & RTF_REJECT) ? NHF_REJECT : 0;
+	res |= (rt_flags & RTF_HOST) ? NHF_HOST : 0;
+	res |= (rt_flags & RTF_BLACKHOLE) ? NHF_BLACKHOLE : 0;
+	res |= (rt_flags & (RTF_DYNAMIC|RTF_MODIFIED)) ? NHF_REDIRECT : 0;
+	res |= (rt_flags & RTF_BROADCAST) ? NHF_BROADCAST : 0;
+	res |= (rt_flags & RTF_GATEWAY) ? NHF_GATEWAY : 0;
+
+	return (res);
+}
+
+void tmproutes_update(struct rib_head *rnh, struct rtentry *rt);
+void tmproutes_init(struct rib_head *rh);
+void tmproutes_destroy(struct rib_head *rh);
+
+#endif

Modified: head/sys/net/rtsock.c
==============================================================================
--- head/sys/net/rtsock.c	Tue Apr 28 18:53:49 2020	(r360448)
+++ head/sys/net/rtsock.c	Tue Apr 28 19:14:09 2020	(r360449)
@@ -67,7 +67,7 @@
 #include <net/netisr.h>
 #include <net/raw_cb.h>
 #include <net/route.h>
-#include <net/route_var.h>
+#include <net/route/route_var.h>
 #include <net/vnet.h>
 
 #include <netinet/in.h>

Modified: head/sys/netinet/in_fib.c
==============================================================================
--- head/sys/netinet/in_fib.c	Tue Apr 28 18:53:49 2020	(r360448)
+++ head/sys/netinet/in_fib.c	Tue Apr 28 19:14:09 2020	(r360449)
@@ -48,7 +48,7 @@ __FBSDID("$FreeBSD$");
 #include <net/if_var.h>
 #include <net/if_dl.h>
 #include <net/route.h>
-#include <net/route_var.h>
+#include <net/route/route_var.h>
 #include <net/route/nhop.h>
 #include <net/route/shared.h>
 #include <net/vnet.h>

Modified: head/sys/netinet/in_rmx.c
==============================================================================
--- head/sys/netinet/in_rmx.c	Tue Apr 28 18:53:49 2020	(r360448)
+++ head/sys/netinet/in_rmx.c	Tue Apr 28 19:14:09 2020	(r360449)
@@ -42,7 +42,7 @@ __FBSDID("$FreeBSD$");
 #include <net/if.h>
 #include <net/if_var.h>
 #include <net/route.h>
-#include <net/route_var.h>
+#include <net/route/route_var.h>
 #include <net/route/nhop.h>
 #include <net/route/shared.h>
 #include <net/vnet.h>

Modified: head/sys/netinet6/in6_fib.c
==============================================================================
--- head/sys/netinet6/in6_fib.c	Tue Apr 28 18:53:49 2020	(r360448)
+++ head/sys/netinet6/in6_fib.c	Tue Apr 28 19:14:09 2020	(r360449)
@@ -49,7 +49,7 @@ __FBSDID("$FreeBSD$");
 #include <net/if_var.h>
 #include <net/if_dl.h>
 #include <net/route.h>
-#include <net/route_var.h>
+#include <net/route/route_var.h>
 #include <net/route/nhop.h>
 #include <net/route/shared.h>
 #include <net/vnet.h>

Modified: head/sys/netinet6/in6_rmx.c
==============================================================================
--- head/sys/netinet6/in6_rmx.c	Tue Apr 28 18:53:49 2020	(r360448)
+++ head/sys/netinet6/in6_rmx.c	Tue Apr 28 19:14:09 2020	(r360449)
@@ -81,7 +81,7 @@ __FBSDID("$FreeBSD$");
 #include <net/if.h>
 #include <net/if_var.h>
 #include <net/route.h>
-#include <net/route_var.h>
+#include <net/route/route_var.h>
 #include <net/route/nhop.h>
 #include <net/route/shared.h>
 

Modified: head/sys/netinet6/nd6.c
==============================================================================
--- head/sys/netinet6/nd6.c	Tue Apr 28 18:53:49 2020	(r360448)
+++ head/sys/netinet6/nd6.c	Tue Apr 28 19:14:09 2020	(r360449)
@@ -62,7 +62,7 @@ __FBSDID("$FreeBSD$");
 #include <net/if_dl.h>
 #include <net/if_types.h>
 #include <net/route.h>
-#include <net/route_var.h>
+#include <net/route/route_var.h>
 #include <net/route/nhop.h>
 #include <net/vnet.h>
 

Modified: head/sys/netinet6/nd6_rtr.c
==============================================================================
--- head/sys/netinet6/nd6_rtr.c	Tue Apr 28 18:53:49 2020	(r360448)
+++ head/sys/netinet6/nd6_rtr.c	Tue Apr 28 19:14:09 2020	(r360449)
@@ -60,7 +60,7 @@ __FBSDID("$FreeBSD$");
 #include <net/if_dl.h>
 #include <net/route.h>
 #include <net/route/nhop.h>
-#include <net/route_var.h>
+#include <net/route/route_var.h>
 #include <net/radix.h>
 #include <net/vnet.h>
 

Modified: head/sys/netpfil/ipfw/ip_fw_table_algo.c
==============================================================================
--- head/sys/netpfil/ipfw/ip_fw_table_algo.c	Tue Apr 28 18:53:49 2020	(r360448)
+++ head/sys/netpfil/ipfw/ip_fw_table_algo.c	Tue Apr 28 19:14:09 2020	(r360449)
@@ -51,7 +51,7 @@ __FBSDID("$FreeBSD$");
 #include <net/if.h>	/* ip_fw.h requires IFNAMSIZ */
 #include <net/radix.h>
 #include <net/route.h>
-#include <net/route_var.h>
+#include <net/route/route_var.h>
 
 #include <netinet/in.h>
 #include <netinet/in_fib.h>


More information about the svn-src-head mailing list