summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ObsoleteFiles.inc2
-rw-r--r--lib/libkvm/kvm_vnet.c1
-rw-r--r--sys/arm/arm/minidump_machdep.c1
-rw-r--r--sys/compat/linprocfs/linprocfs.c1
-rw-r--r--sys/compat/linux/linux_ioctl.c1
-rw-r--r--sys/compat/linux/linux_socket.c1
-rw-r--r--sys/compat/svr4/svr4_sockio.c1
-rw-r--r--sys/conf/files1
-rw-r--r--sys/contrib/altq/altq/altq_subr.c3
-rw-r--r--sys/contrib/ipfilter/netinet/fil.c3
-rw-r--r--sys/contrib/ipfilter/netinet/ip_fil_freebsd.c1
-rw-r--r--sys/contrib/pf/net/pf.c1
-rw-r--r--sys/contrib/pf/net/pf_if.c3
-rw-r--r--sys/contrib/pf/net/pf_ioctl.c1
-rw-r--r--sys/contrib/pf/net/pf_subr.c1
-rw-r--r--sys/contrib/rdma/rdma_cma.c1
-rw-r--r--sys/ddb/db_sym.c2
-rw-r--r--sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c4
-rw-r--r--sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c4
-rw-r--r--sys/fs/nfs/nfsport.h1
-rw-r--r--sys/kern/kern_jail.c5
-rw-r--r--sys/kern/kern_linker.c3
-rw-r--r--sys/kern/kern_poll.c1
-rw-r--r--sys/kern/kern_sysctl.c1
-rw-r--r--sys/kern/kern_uuid.c1
-rw-r--r--sys/kern/kern_vimage.c186
-rw-r--r--sys/kern/sys_socket.c2
-rw-r--r--sys/kern/uipc_domain.c4
-rw-r--r--sys/kern/uipc_socket.c3
-rw-r--r--sys/kern/uipc_syscalls.c3
-rw-r--r--sys/kern/uipc_usrreq.c3
-rw-r--r--sys/net/bpf.c2
-rw-r--r--sys/net/bridgestp.c1
-rw-r--r--sys/net/flowtable.c1
-rw-r--r--sys/net/if.c1
-rw-r--r--sys/net/if_bridge.c1
-rw-r--r--sys/net/if_clone.c1
-rw-r--r--sys/net/if_ef.c1
-rw-r--r--sys/net/if_enc.c1
-rw-r--r--sys/net/if_epair.c4
-rw-r--r--sys/net/if_ethersubr.c1
-rw-r--r--sys/net/if_faith.c2
-rw-r--r--sys/net/if_gif.c2
-rw-r--r--sys/net/if_gre.c2
-rw-r--r--sys/net/if_llatbl.c2
-rw-r--r--sys/net/if_loop.c1
-rw-r--r--sys/net/if_mib.c1
-rw-r--r--sys/net/if_spppsubr.c2
-rw-r--r--sys/net/if_stf.c2
-rw-r--r--sys/net/if_tun.c2
-rw-r--r--sys/net/if_vlan.c1
-rw-r--r--sys/net/netisr.c2
-rw-r--r--sys/net/raw_cb.c1
-rw-r--r--sys/net/raw_usrreq.c1
-rw-r--r--sys/net/route.c2
-rw-r--r--sys/net/rtsock.c1
-rw-r--r--sys/net/vnet.c174
-rw-r--r--sys/net/vnet.h153
-rw-r--r--sys/net80211/ieee80211_ddb.c1
-rw-r--r--sys/net80211/ieee80211_freebsd.c2
-rw-r--r--sys/netgraph/atm/ng_atm.c1
-rw-r--r--sys/netgraph/ng_base.c1
-rw-r--r--sys/netgraph/ng_bridge.c2
-rw-r--r--sys/netgraph/ng_eiface.c2
-rw-r--r--sys/netgraph/ng_ether.c2
-rw-r--r--sys/netgraph/ng_gif.c1
-rw-r--r--sys/netgraph/ng_iface.c2
-rw-r--r--sys/netgraph/ng_pipe.c3
-rw-r--r--sys/netgraph/ng_source.c2
-rw-r--r--sys/netinet/if_ether.c2
-rw-r--r--sys/netinet/igmp.c1
-rw-r--r--sys/netinet/in.c1
-rw-r--r--sys/netinet/in_gif.c2
-rw-r--r--sys/netinet/in_mcast.c1
-rw-r--r--sys/netinet/in_pcb.c2
-rw-r--r--sys/netinet/in_proto.c2
-rw-r--r--sys/netinet/in_rmx.c2
-rw-r--r--sys/netinet/ip_carp.c2
-rw-r--r--sys/netinet/ip_divert.c2
-rw-r--r--sys/netinet/ip_fastfwd.c2
-rw-r--r--sys/netinet/ip_icmp.c1
-rw-r--r--sys/netinet/ip_input.c1
-rw-r--r--sys/netinet/ip_ipsec.c1
-rw-r--r--sys/netinet/ip_mroute.c2
-rw-r--r--sys/netinet/ip_options.c2
-rw-r--r--sys/netinet/ip_output.c1
-rw-r--r--sys/netinet/ipfw/ip_fw2.c1
-rw-r--r--sys/netinet/ipfw/ip_fw_nat.c1
-rw-r--r--sys/netinet/ipfw/ip_fw_pfil.c1
-rw-r--r--sys/netinet/raw_ip.c1
-rw-r--r--sys/netinet/sctp_os_bsd.h1
-rw-r--r--sys/netinet/tcp_hostcache.c2
-rw-r--r--sys/netinet/tcp_input.c2
-rw-r--r--sys/netinet/tcp_offload.c2
-rw-r--r--sys/netinet/tcp_output.c2
-rw-r--r--sys/netinet/tcp_reass.c2
-rw-r--r--sys/netinet/tcp_sack.c2
-rw-r--r--sys/netinet/tcp_subr.c2
-rw-r--r--sys/netinet/tcp_syncache.c1
-rw-r--r--sys/netinet/tcp_timer.c2
-rw-r--r--sys/netinet/tcp_timewait.c2
-rw-r--r--sys/netinet/tcp_usrreq.c2
-rw-r--r--sys/netinet/udp_usrreq.c1
-rw-r--r--sys/netinet6/dest6.c1
-rw-r--r--sys/netinet6/frag6.c1
-rw-r--r--sys/netinet6/icmp6.c2
-rw-r--r--sys/netinet6/in6.c1
-rw-r--r--sys/netinet6/in6_gif.c1
-rw-r--r--sys/netinet6/in6_ifattach.c2
-rw-r--r--sys/netinet6/in6_mcast.c1
-rw-r--r--sys/netinet6/in6_pcb.c1
-rw-r--r--sys/netinet6/in6_proto.c1
-rw-r--r--sys/netinet6/in6_rmx.c1
-rw-r--r--sys/netinet6/in6_src.c1
-rw-r--r--sys/netinet6/ip6_forward.c1
-rw-r--r--sys/netinet6/ip6_input.c1
-rw-r--r--sys/netinet6/ip6_ipsec.c1
-rw-r--r--sys/netinet6/ip6_mroute.c1
-rw-r--r--sys/netinet6/ip6_output.c1
-rw-r--r--sys/netinet6/mld6.c1
-rw-r--r--sys/netinet6/nd6.c1
-rw-r--r--sys/netinet6/nd6_nbr.c1
-rw-r--r--sys/netinet6/nd6_rtr.c1
-rw-r--r--sys/netinet6/raw_ip6.c1
-rw-r--r--sys/netinet6/route6.c1
-rw-r--r--sys/netinet6/scope6.c1
-rw-r--r--sys/netinet6/udp6_usrreq.c1
-rw-r--r--sys/netipsec/ipsec.c1
-rw-r--r--sys/netipsec/ipsec_input.c1
-rw-r--r--sys/netipsec/ipsec_mbuf.c1
-rw-r--r--sys/netipsec/ipsec_output.c1
-rw-r--r--sys/netipsec/key.c1
-rw-r--r--sys/netipsec/keysock.c1
-rw-r--r--sys/netipsec/xform_ah.c1
-rw-r--r--sys/netipsec/xform_esp.c1
-rw-r--r--sys/netipsec/xform_ipcomp.c1
-rw-r--r--sys/netipsec/xform_ipip.c1
-rw-r--r--sys/netipsec/xform_tcp.c1
-rw-r--r--sys/nfsclient/bootp_subr.c1
-rw-r--r--sys/nfsclient/nfs_diskless.c1
-rw-r--r--sys/nfsclient/nfs_vnops.c1
-rw-r--r--sys/sys/vimage.h183
142 files changed, 386 insertions, 521 deletions
diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc
index e27064e..9bed51f 100644
--- a/ObsoleteFiles.inc
+++ b/ObsoleteFiles.inc
@@ -14,6 +14,8 @@
# The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last.
#
+# 20090801: vimage.h removed in favour of vnet.h
+OLD_FILES+=usr/include/sys/vimage.h
# 20090719: library version bump for 8.0
OLD_LIBS+=lib/libalias.so.6
OLD_LIBS+=lib/libavl.so.1
diff --git a/lib/libkvm/kvm_vnet.c b/lib/libkvm/kvm_vnet.c
index 13f7cf4..1a02cad 100644
--- a/lib/libkvm/kvm_vnet.c
+++ b/lib/libkvm/kvm_vnet.c
@@ -40,7 +40,6 @@ __FBSDID("$FreeBSD$");
#include <sys/jail.h>
#include <sys/proc.h>
#include <sys/types.h>
-#include <sys/vimage.h>
#include <net/vnet.h>
diff --git a/sys/arm/arm/minidump_machdep.c b/sys/arm/arm/minidump_machdep.c
index 927a856..c21b183 100644
--- a/sys/arm/arm/minidump_machdep.c
+++ b/sys/arm/arm/minidump_machdep.c
@@ -36,7 +36,6 @@ __FBSDID("$FreeBSD$");
#include <sys/kernel.h>
#include <sys/kerneldump.h>
#include <sys/msgbuf.h>
-#include <sys/vimage.h>
#include <vm/vm.h>
#include <vm/pmap.h>
#include <machine/pmap.h>
diff --git a/sys/compat/linprocfs/linprocfs.c b/sys/compat/linprocfs/linprocfs.c
index 5bca381..dfa80d5 100644
--- a/sys/compat/linprocfs/linprocfs.c
+++ b/sys/compat/linprocfs/linprocfs.c
@@ -73,7 +73,6 @@ __FBSDID("$FreeBSD$");
#include <sys/user.h>
#include <sys/vmmeter.h>
#include <sys/vnode.h>
-#include <sys/vimage.h>
#include <sys/bus.h>
#include <net/if.h>
diff --git a/sys/compat/linux/linux_ioctl.c b/sys/compat/linux/linux_ioctl.c
index a8b0945..11dc6d5 100644
--- a/sys/compat/linux/linux_ioctl.c
+++ b/sys/compat/linux/linux_ioctl.c
@@ -59,7 +59,6 @@ __FBSDID("$FreeBSD$");
#include <sys/sx.h>
#include <sys/tty.h>
#include <sys/uio.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_dl.h>
diff --git a/sys/compat/linux/linux_socket.c b/sys/compat/linux/linux_socket.c
index 0c48b91..d3860b0 100644
--- a/sys/compat/linux/linux_socket.c
+++ b/sys/compat/linux/linux_socket.c
@@ -50,7 +50,6 @@ __FBSDID("$FreeBSD$");
#include <sys/uio.h>
#include <sys/syslog.h>
#include <sys/un.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <netinet/in.h>
diff --git a/sys/compat/svr4/svr4_sockio.c b/sys/compat/svr4/svr4_sockio.c
index ec62f71..afb3cfe 100644
--- a/sys/compat/svr4/svr4_sockio.c
+++ b/sys/compat/svr4/svr4_sockio.c
@@ -36,7 +36,6 @@ __FBSDID("$FreeBSD$");
#include <sys/filedesc.h>
#include <sys/sockio.h>
#include <sys/socket.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/vnet.h>
diff --git a/sys/conf/files b/sys/conf/files
index 170fe02..0769151 100644
--- a/sys/conf/files
+++ b/sys/conf/files
@@ -1992,7 +1992,6 @@ kern/kern_time.c standard
kern/kern_timeout.c standard
kern/kern_umtx.c standard
kern/kern_uuid.c standard
-kern/kern_vimage.c optional vimage
kern/kern_xxx.c standard
kern/link_elf.c standard
kern/linker_if.m standard
diff --git a/sys/contrib/altq/altq/altq_subr.c b/sys/contrib/altq/altq/altq_subr.c
index 348128f..32107e5 100644
--- a/sys/contrib/altq/altq/altq_subr.c
+++ b/sys/contrib/altq/altq/altq_subr.c
@@ -47,9 +47,6 @@
#include <sys/syslog.h>
#include <sys/sysctl.h>
#include <sys/queue.h>
-#ifdef __FreeBSD__
-#include <sys/vimage.h>
-#endif
#include <net/if.h>
#include <net/if_dl.h>
diff --git a/sys/contrib/ipfilter/netinet/fil.c b/sys/contrib/ipfilter/netinet/fil.c
index 3cd09d1..ea19254 100644
--- a/sys/contrib/ipfilter/netinet/fil.c
+++ b/sys/contrib/ipfilter/netinet/fil.c
@@ -33,9 +33,6 @@
# if (__FreeBSD_version == 400019)
# define CSUM_DELAY_DATA
# endif
-# if (__FreeBSD_version >= 800044)
-# include <sys/vimage.h>
-# endif
# endif
# include <sys/filio.h>
#else
diff --git a/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c b/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c
index 1480ed0..cac56ef 100644
--- a/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c
+++ b/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c
@@ -63,7 +63,6 @@ static const char rcsid[] = "@(#)$Id: ip_fil_freebsd.c,v 2.53.2.50 2007/09/20 12
# include <sys/select.h>
#endif
#if __FreeBSD_version >= 800044
-# include <sys/vimage.h>
# include <netinet/tcp_var.h>
#else
#define V_path_mtu_discovery path_mtu_discovery
diff --git a/sys/contrib/pf/net/pf.c b/sys/contrib/pf/net/pf.c
index d59930f..79cef36 100644
--- a/sys/contrib/pf/net/pf.c
+++ b/sys/contrib/pf/net/pf.c
@@ -91,7 +91,6 @@ __FBSDID("$FreeBSD$");
#include <sys/kthread.h>
#include <sys/lock.h>
#include <sys/sx.h>
-#include <sys/vimage.h>
#else
#include <sys/rwlock.h>
#endif
diff --git a/sys/contrib/pf/net/pf_if.c b/sys/contrib/pf/net/pf_if.c
index 7056640..a78a545 100644
--- a/sys/contrib/pf/net/pf_if.c
+++ b/sys/contrib/pf/net/pf_if.c
@@ -54,9 +54,6 @@ __FBSDID("$FreeBSD$");
#include <sys/device.h>
#endif
#include <sys/time.h>
-#ifdef __FreeBSD__
-#include <sys/vimage.h>
-#endif
#include <net/if.h>
#include <net/if_types.h>
diff --git a/sys/contrib/pf/net/pf_ioctl.c b/sys/contrib/pf/net/pf_ioctl.c
index 36331f3..514b7c3 100644
--- a/sys/contrib/pf/net/pf_ioctl.c
+++ b/sys/contrib/pf/net/pf_ioctl.c
@@ -83,7 +83,6 @@ __FBSDID("$FreeBSD$");
#include <sys/conf.h>
#include <sys/proc.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
#else
#include <sys/timeout.h>
#include <sys/pool.h>
diff --git a/sys/contrib/pf/net/pf_subr.c b/sys/contrib/pf/net/pf_subr.c
index 9314bf1..07f5295 100644
--- a/sys/contrib/pf/net/pf_subr.c
+++ b/sys/contrib/pf/net/pf_subr.c
@@ -45,7 +45,6 @@ __FBSDID("$FreeBSD$");
#include <sys/socketvar.h>
#include <sys/systm.h>
#include <sys/time.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_types.h>
diff --git a/sys/contrib/rdma/rdma_cma.c b/sys/contrib/rdma/rdma_cma.c
index 1bf2d08..5352497 100644
--- a/sys/contrib/rdma/rdma_cma.c
+++ b/sys/contrib/rdma/rdma_cma.c
@@ -46,7 +46,6 @@ __FBSDID("$FreeBSD$");
#include <sys/taskqueue.h>
#include <sys/priv.h>
#include <sys/syslog.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <netinet/in.h>
diff --git a/sys/ddb/db_sym.c b/sys/ddb/db_sym.c
index 1a95c11..99209a8 100644
--- a/sys/ddb/db_sym.c
+++ b/sys/ddb/db_sym.c
@@ -32,9 +32,9 @@
__FBSDID("$FreeBSD$");
#include <sys/param.h>
+#include <sys/pcpu.h>
#include <sys/smp.h>
#include <sys/systm.h>
-#include <sys/vimage.h>
#include <net/vnet.h>
diff --git a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c
index 8fd1e97..cf42ea0 100644
--- a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c
+++ b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c
@@ -54,9 +54,7 @@ __FBSDID("$FreeBSD$");
#include <sys/proc.h>
#include <sys/eventhandler.h>
-#if __FreeBSD_version >= 800044
-#include <sys/vimage.h>
-#else
+#if __FreeBSD_version < 800044
#define V_ifnet ifnet
#endif
diff --git a/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c b/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c
index 1cbaaff..d528b30 100644
--- a/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c
+++ b/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c
@@ -48,9 +48,7 @@ __FBSDID("$FreeBSD$");
#include <sys/protosw.h>
#include <sys/priv.h>
-#if __FreeBSD_version >= 800044
-#include <sys/vimage.h>
-#else
+#if __FreeBSD_version < 800044
#define V_tcp_do_autosndbuf tcp_do_autosndbuf
#define V_tcp_autosndbuf_max tcp_autosndbuf_max
#define V_tcp_do_rfc1323 tcp_do_rfc1323
diff --git a/sys/fs/nfs/nfsport.h b/sys/fs/nfs/nfsport.h
index f05c84e..f320316 100644
--- a/sys/fs/nfs/nfsport.h
+++ b/sys/fs/nfs/nfsport.h
@@ -78,7 +78,6 @@
#include <sys/priv.h>
#include <sys/kthread.h>
#include <sys/syscallsubr.h>
-#include <sys/vimage.h>
#include <fs/fifofs/fifo.h>
#include <net/if.h>
#include <net/radix.h>
diff --git a/sys/kern/kern_jail.c b/sys/kern/kern_jail.c
index 03612d7..cf5dfd8 100644
--- a/sys/kern/kern_jail.c
+++ b/sys/kern/kern_jail.c
@@ -58,9 +58,12 @@ __FBSDID("$FreeBSD$");
#include <sys/syscallsubr.h>
#include <sys/sysctl.h>
#include <sys/vnode.h>
-#include <sys/vimage.h>
+
#include <net/if.h>
+#include <net/vnet.h>
+
#include <netinet/in.h>
+
#ifdef DDB
#include <ddb/ddb.h>
#ifdef INET6
diff --git a/sys/kern/kern_linker.c b/sys/kern/kern_linker.c
index 73cee6c..9387ba8 100644
--- a/sys/kern/kern_linker.c
+++ b/sys/kern/kern_linker.c
@@ -51,7 +51,8 @@ __FBSDID("$FreeBSD$");
#include <sys/vnode.h>
#include <sys/syscallsubr.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
+
+#include <net/vnet.h>
#include <security/mac/mac_framework.h>
diff --git a/sys/kern/kern_poll.c b/sys/kern/kern_poll.c
index 5396240..5df26bb 100644
--- a/sys/kern/kern_poll.c
+++ b/sys/kern/kern_poll.c
@@ -41,7 +41,6 @@ __FBSDID("$FreeBSD$");
#include <sys/sockio.h>
#include <sys/sysctl.h>
#include <sys/syslog.h>
-#include <sys/vimage.h>
#include <net/if.h> /* for IFF_* flags */
#include <net/netisr.h> /* for NETISR_POLL */
diff --git a/sys/kern/kern_sysctl.c b/sys/kern/kern_sysctl.c
index 535ea81..bb5b6a0 100644
--- a/sys/kern/kern_sysctl.c
+++ b/sys/kern/kern_sysctl.c
@@ -54,7 +54,6 @@ __FBSDID("$FreeBSD$");
#include <sys/sx.h>
#include <sys/sysproto.h>
#include <sys/uio.h>
-#include <sys/vimage.h>
#ifdef KTRACE
#include <sys/ktrace.h>
#endif
diff --git a/sys/kern/kern_uuid.c b/sys/kern/kern_uuid.c
index cd88538..e7e4123 100644
--- a/sys/kern/kern_uuid.c
+++ b/sys/kern/kern_uuid.c
@@ -37,7 +37,6 @@ __FBSDID("$FreeBSD$");
#include <sys/sysproto.h>
#include <sys/systm.h>
#include <sys/uuid.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_dl.h>
diff --git a/sys/kern/kern_vimage.c b/sys/kern/kern_vimage.c
deleted file mode 100644
index 9c86b75..0000000
--- a/sys/kern/kern_vimage.c
+++ /dev/null
@@ -1,186 +0,0 @@
-/*-
- * Copyright (c) 2004-2009 University of Zagreb
- * Copyright (c) 2006-2009 FreeBSD Foundation
- *
- * This software was developed by the University of Zagreb and the
- * FreeBSD Foundation under sponsorship by the Stichting NLnet and the
- * FreeBSD Foundation.
- *
- * 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.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include "opt_ddb.h"
-
-#include <sys/param.h>
-#include <sys/jail.h>
-#include <sys/kernel.h>
-#include <sys/lock.h>
-#include <sys/malloc.h>
-#include <sys/socket.h>
-#include <sys/sockio.h>
-#include <sys/sx.h>
-#include <sys/vimage.h>
-#ifdef DDB
-#include <ddb/ddb.h>
-#endif
-
-#include <net/if.h>
-#include <net/route.h>
-#include <net/vnet.h>
-
-MALLOC_DEFINE(M_VNET, "vnet", "network stack control block");
-
-struct rwlock vnet_rwlock;
-struct sx vnet_sxlock;
-
-#define VNET_LIST_WLOCK() do { \
- sx_xlock(&vnet_sxlock); \
- rw_wlock(&vnet_rwlock); \
-} while (0)
-
-#define VNET_LIST_WUNLOCK() do { \
- rw_wunlock(&vnet_rwlock); \
- sx_xunlock(&vnet_sxlock); \
-} while (0)
-
-struct vnet_list_head vnet_head;
-struct vnet *vnet0;
-
-
-struct vnet *
-vnet_alloc(void)
-{
- struct vnet *vnet;
-
- vnet = malloc(sizeof(struct vnet), M_VNET, M_WAITOK | M_ZERO);
- vnet->vnet_magic_n = VNET_MAGIC_N;
- vnet_data_init(vnet);
-
- /* Initialize / attach vnet module instances. */
- CURVNET_SET_QUIET(vnet);
-
- sx_xlock(&vnet_sxlock);
- vnet_sysinit();
- CURVNET_RESTORE();
-
- rw_wlock(&vnet_rwlock);
- LIST_INSERT_HEAD(&vnet_head, vnet, vnet_le);
- VNET_LIST_WUNLOCK();
-
- return (vnet);
-}
-
-void
-vnet_destroy(struct vnet *vnet)
-{
- struct ifnet *ifp, *nifp;
-
- KASSERT(vnet->vnet_sockcnt == 0,
- ("%s: vnet still has sockets", __func__));
-
- VNET_LIST_WLOCK();
- LIST_REMOVE(vnet, vnet_le);
- rw_wunlock(&vnet_rwlock);
-
- CURVNET_SET_QUIET(vnet);
-
- /* Return all inherited interfaces to their parent vnets. */
- TAILQ_FOREACH_SAFE(ifp, &V_ifnet, if_link, nifp) {
- if (ifp->if_home_vnet != ifp->if_vnet)
- if_vmove(ifp, ifp->if_home_vnet);
- }
-
- vnet_sysuninit();
- sx_xunlock(&vnet_sxlock);
-
- CURVNET_RESTORE();
-
- /* Hopefully, we are OK to free the vnet container itself. */
- vnet_data_destroy(vnet);
- vnet->vnet_magic_n = 0xdeadbeef;
- free(vnet, M_VNET);
-}
-
-void
-vnet_foreach(void (*vnet_foreach_fn)(struct vnet *, void *), void *arg)
-{
- struct vnet *vnet;
-
- VNET_LIST_RLOCK();
- LIST_FOREACH(vnet, &vnet_head, vnet_le)
- vnet_foreach_fn(vnet, arg);
- VNET_LIST_RUNLOCK();
-}
-
-static void
-vnet_init_prelink(void *arg)
-{
-
- rw_init(&vnet_rwlock, "vnet_rwlock");
- sx_init(&vnet_sxlock, "vnet_sxlock");
- LIST_INIT(&vnet_head);
-}
-SYSINIT(vnet_init_prelink, SI_SUB_VNET_PRELINK, SI_ORDER_FIRST,
- vnet_init_prelink, NULL);
-
-static void
-vnet0_init(void *arg)
-{
-
- /*
- * We MUST clear curvnet in vi_init_done() before going SMP,
- * otherwise CURVNET_SET() macros would scream about unnecessary
- * curvnet recursions.
- */
- curvnet = prison0.pr_vnet = vnet0 = vnet_alloc();
-}
-SYSINIT(vnet0_init, SI_SUB_VNET, SI_ORDER_FIRST, vnet0_init, NULL);
-
-static void
-vnet_init_done(void *unused)
-{
-
- curvnet = NULL;
-}
-
-SYSINIT(vnet_init_done, SI_SUB_VNET_DONE, SI_ORDER_FIRST, vnet_init_done,
- NULL);
-
-#ifdef DDB
-DB_SHOW_COMMAND(vnets, db_show_vnets)
-{
- VNET_ITERATOR_DECL(vnet_iter);
-
-#if SIZE_MAX == UINT32_MAX /* 32-bit arch */
- db_printf(" vnet ifs socks\n");
-#else /* 64-bit arch, most probaly... */
- db_printf(" vnet ifs socks\n");
-#endif
- VNET_FOREACH(vnet_iter) {
- db_printf("%p %3d %5d\n", vnet_iter, vnet_iter->vnet_ifcnt,
- vnet_iter->vnet_sockcnt);
- }
-}
-#endif
diff --git a/sys/kern/sys_socket.c b/sys/kern/sys_socket.c
index c29ecc6..717ef3e 100644
--- a/sys/kern/sys_socket.c
+++ b/sys/kern/sys_socket.c
@@ -48,10 +48,10 @@ __FBSDID("$FreeBSD$");
#include <sys/stat.h>
#include <sys/uio.h>
#include <sys/ucred.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/route.h>
+#include <net/vnet.h>
#include <security/mac/mac_framework.h>
diff --git a/sys/kern/uipc_domain.c b/sys/kern/uipc_domain.c
index dd0602e..257e9fa 100644
--- a/sys/kern/uipc_domain.c
+++ b/sys/kern/uipc_domain.c
@@ -43,7 +43,9 @@ __FBSDID("$FreeBSD$");
#include <sys/mutex.h>
#include <sys/socketvar.h>
#include <sys/systm.h>
-#include <sys/vimage.h>
+
+#include <net/vnet.h>
+
#include <vm/uma.h>
/*
diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c
index 29b400c..2f4dd92 100644
--- a/sys/kern/uipc_socket.c
+++ b/sys/kern/uipc_socket.c
@@ -129,7 +129,8 @@ __FBSDID("$FreeBSD$");
#include <sys/sysctl.h>
#include <sys/uio.h>
#include <sys/jail.h>
-#include <sys/vimage.h>
+
+#include <net/vnet.h>
#include <security/mac/mac_framework.h>
diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c
index 21ee53d..9717679 100644
--- a/sys/kern/uipc_syscalls.c
+++ b/sys/kern/uipc_syscalls.c
@@ -64,12 +64,13 @@ __FBSDID("$FreeBSD$");
#include <sys/syscallsubr.h>
#include <sys/sysctl.h>
#include <sys/uio.h>
-#include <sys/vimage.h>
#include <sys/vnode.h>
#ifdef KTRACE
#include <sys/ktrace.h>
#endif
+#include <net/vnet.h>
+
#include <security/audit/audit.h>
#include <security/mac/mac_framework.h>
diff --git a/sys/kern/uipc_usrreq.c b/sys/kern/uipc_usrreq.c
index cfaf47f..e002b2a 100644
--- a/sys/kern/uipc_usrreq.c
+++ b/sys/kern/uipc_usrreq.c
@@ -88,7 +88,8 @@ __FBSDID("$FreeBSD$");
#include <sys/un.h>
#include <sys/unpcb.h>
#include <sys/vnode.h>
-#include <sys/vimage.h>
+
+#include <net/vnet.h>
#ifdef DDB
#include <ddb/ddb.h>
diff --git a/sys/net/bpf.c b/sys/net/bpf.c
index 5a2ab19..08c9a5e 100644
--- a/sys/net/bpf.c
+++ b/sys/net/bpf.c
@@ -56,7 +56,6 @@ __FBSDID("$FreeBSD$");
#include <sys/sockio.h>
#include <sys/ttycom.h>
#include <sys/uio.h>
-#include <sys/vimage.h>
#include <sys/event.h>
#include <sys/file.h>
@@ -73,6 +72,7 @@ __FBSDID("$FreeBSD$");
#endif
#include <net/bpf_zerocopy.h>
#include <net/bpfdesc.h>
+#include <net/vnet.h>
#include <netinet/in.h>
#include <netinet/if_ether.h>
diff --git a/sys/net/bridgestp.c b/sys/net/bridgestp.c
index 9349be4..3e65113 100644
--- a/sys/net/bridgestp.c
+++ b/sys/net/bridgestp.c
@@ -49,7 +49,6 @@ __FBSDID("$FreeBSD$");
#include <sys/lock.h>
#include <sys/mutex.h>
#include <sys/taskqueue.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_dl.h>
diff --git a/sys/net/flowtable.c b/sys/net/flowtable.c
index 1fe2bbe..4078ae9 100644
--- a/sys/net/flowtable.c
+++ b/sys/net/flowtable.c
@@ -48,7 +48,6 @@ __FBSDID("$FreeBSD$");
#include <sys/socket.h>
#include <sys/syslog.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_llatbl.h>
diff --git a/sys/net/if.c b/sys/net/if.c
index 02796cb..3ac7db0 100644
--- a/sys/net/if.c
+++ b/sys/net/if.c
@@ -59,7 +59,6 @@
#include <sys/taskqueue.h>
#include <sys/domain.h>
#include <sys/jail.h>
-#include <sys/vimage.h>
#include <machine/stdarg.h>
#include <vm/uma.h>
diff --git a/sys/net/if_bridge.c b/sys/net/if_bridge.c
index 945bc5f..ced953a 100644
--- a/sys/net/if_bridge.c
+++ b/sys/net/if_bridge.c
@@ -101,7 +101,6 @@ __FBSDID("$FreeBSD$");
#include <sys/lock.h>
#include <sys/mutex.h>
#include <sys/rwlock.h>
-#include <sys/vimage.h>
#include <net/bpf.h>
#include <net/if.h>
diff --git a/sys/net/if_clone.c b/sys/net/if_clone.c
index 95c07b7..0dd20fb 100644
--- a/sys/net/if_clone.c
+++ b/sys/net/if_clone.c
@@ -39,7 +39,6 @@
#include <sys/systm.h>
#include <sys/types.h>
#include <sys/socket.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_clone.h>
diff --git a/sys/net/if_ef.c b/sys/net/if_ef.c
index c0b2d67..7a5fca9 100644
--- a/sys/net/if_ef.c
+++ b/sys/net/if_ef.c
@@ -39,7 +39,6 @@
#include <sys/syslog.h>
#include <sys/kernel.h>
#include <sys/module.h>
-#include <sys/vimage.h>
#include <net/ethernet.h>
#include <net/if_llc.h>
diff --git a/sys/net/if_enc.c b/sys/net/if_enc.c
index 7b62734..a49c5dc 100644
--- a/sys/net/if_enc.c
+++ b/sys/net/if_enc.c
@@ -38,7 +38,6 @@
#include <sys/socket.h>
#include <sys/sockio.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_clone.h>
diff --git a/sys/net/if_epair.c b/sys/net/if_epair.c
index e299d97..00f99fd 100644
--- a/sys/net/if_epair.c
+++ b/sys/net/if_epair.c
@@ -38,7 +38,7 @@
/*
* Things to re-think once we have more experience:
* - ifp->if_reassign function once we can test with vimage. Depending on
- * how if_vomve() is going to be improved.
+ * how if_vmove() is going to be improved.
* - Real random etheraddrs that are checked to be uniquish; we would need
* to re-do them in case we move the interface between network stacks
* in a private if_reassign function.
@@ -61,7 +61,6 @@ __FBSDID("$FreeBSD$");
#include <sys/sockio.h>
#include <sys/sysctl.h>
#include <sys/types.h>
-#include <sys/vimage.h>
#include <net/bpf.h>
#include <net/ethernet.h>
@@ -70,6 +69,7 @@ __FBSDID("$FreeBSD$");
#include <net/if_var.h>
#include <net/if_types.h>
#include <net/netisr.h>
+#include <net/vnet.h>
#define EPAIRNAME "epair"
diff --git a/sys/net/if_ethersubr.c b/sys/net/if_ethersubr.c
index 545d9ee..bac2044 100644
--- a/sys/net/if_ethersubr.c
+++ b/sys/net/if_ethersubr.c
@@ -50,7 +50,6 @@
#include <sys/socket.h>
#include <sys/sockio.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_arp.h>
diff --git a/sys/net/if_faith.c b/sys/net/if_faith.c
index cbca740..ca80883 100644
--- a/sys/net/if_faith.c
+++ b/sys/net/if_faith.c
@@ -54,7 +54,6 @@
#include <sys/queue.h>
#include <sys/types.h>
#include <sys/malloc.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_clone.h>
@@ -62,6 +61,7 @@
#include <net/netisr.h>
#include <net/route.h>
#include <net/bpf.h>
+#include <net/vnet.h>
#ifdef INET
#include <netinet/in.h>
diff --git a/sys/net/if_gif.c b/sys/net/if_gif.c
index 3d75dd4..6abc807 100644
--- a/sys/net/if_gif.c
+++ b/sys/net/if_gif.c
@@ -49,7 +49,6 @@
#include <sys/proc.h>
#include <sys/protosw.h>
#include <sys/conf.h>
-#include <sys/vimage.h>
#include <machine/cpu.h>
#include <net/if.h>
@@ -58,6 +57,7 @@
#include <net/netisr.h>
#include <net/route.h>
#include <net/bpf.h>
+#include <net/vnet.h>
#include <netinet/in.h>
#include <netinet/in_systm.h>
diff --git a/sys/net/if_gre.c b/sys/net/if_gre.c
index 4ed2a9e..2b283d6 100644
--- a/sys/net/if_gre.c
+++ b/sys/net/if_gre.c
@@ -64,13 +64,13 @@
#include <sys/sockio.h>
#include <sys/sysctl.h>
#include <sys/systm.h>
-#include <sys/vimage.h>
#include <net/ethernet.h>
#include <net/if.h>
#include <net/if_clone.h>
#include <net/if_types.h>
#include <net/route.h>
+#include <net/vnet.h>
#ifdef INET
#include <netinet/in.h>
diff --git a/sys/net/if_llatbl.c b/sys/net/if_llatbl.c
index b5da1ea..a1b574f 100644
--- a/sys/net/if_llatbl.c
+++ b/sys/net/if_llatbl.c
@@ -41,7 +41,6 @@ __FBSDID("$FreeBSD$");
#include <sys/lock.h>
#include <sys/mutex.h>
#include <sys/rwlock.h>
-#include <sys/vimage.h>
#include <vm/uma.h>
@@ -51,6 +50,7 @@ __FBSDID("$FreeBSD$");
#include <net/if_dl.h>
#include <net/if_var.h>
#include <net/route.h>
+#include <net/vnet.h>
#include <netinet/if_ether.h>
#include <netinet6/in6_var.h>
#include <netinet6/nd6.h>
diff --git a/sys/net/if_loop.c b/sys/net/if_loop.c
index 043c808..056b2f9 100644
--- a/sys/net/if_loop.c
+++ b/sys/net/if_loop.c
@@ -49,7 +49,6 @@
#include <sys/socket.h>
#include <sys/sockio.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_clone.h>
diff --git a/sys/net/if_mib.c b/sys/net/if_mib.c
index c0018ef..c334ac7 100644
--- a/sys/net/if_mib.c
+++ b/sys/net/if_mib.c
@@ -34,7 +34,6 @@
#include <sys/kernel.h>
#include <sys/socket.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_mib.h>
diff --git a/sys/net/if_spppsubr.c b/sys/net/if_spppsubr.c
index 2c325ee..3f0faaf 100644
--- a/sys/net/if_spppsubr.c
+++ b/sys/net/if_spppsubr.c
@@ -36,7 +36,6 @@
#include <sys/random.h>
#include <sys/malloc.h>
#include <sys/mbuf.h>
-#include <sys/vimage.h>
#include <sys/md5.h>
@@ -44,6 +43,7 @@
#include <net/netisr.h>
#include <net/if_types.h>
#include <net/route.h>
+#include <net/vnet.h>
#include <netinet/in.h>
#include <netinet/in_systm.h>
#include <netinet/ip.h>
diff --git a/sys/net/if_stf.c b/sys/net/if_stf.c
index ddc5662..5c082c4 100644
--- a/sys/net/if_stf.c
+++ b/sys/net/if_stf.c
@@ -92,7 +92,6 @@
#include <machine/cpu.h>
#include <sys/malloc.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_clone.h>
@@ -100,6 +99,7 @@
#include <net/netisr.h>
#include <net/if_types.h>
#include <net/if_stf.h>
+#include <net/vnet.h>
#include <netinet/in.h>
#include <netinet/in_systm.h>
diff --git a/sys/net/if_tun.c b/sys/net/if_tun.c
index a9a1c62..37b5e70 100644
--- a/sys/net/if_tun.c
+++ b/sys/net/if_tun.c
@@ -43,13 +43,13 @@
#include <sys/uio.h>
#include <sys/malloc.h>
#include <sys/random.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_clone.h>
#include <net/if_types.h>
#include <net/netisr.h>
#include <net/route.h>
+#include <net/vnet.h>
#ifdef INET
#include <netinet/in.h>
#endif
diff --git a/sys/net/if_vlan.c b/sys/net/if_vlan.c
index ac72870..04c2c0d 100644
--- a/sys/net/if_vlan.c
+++ b/sys/net/if_vlan.c
@@ -55,7 +55,6 @@
#include <sys/sockio.h>
#include <sys/sysctl.h>
#include <sys/systm.h>
-#include <sys/vimage.h>
#include <net/bpf.h>
#include <net/ethernet.h>
diff --git a/sys/net/netisr.c b/sys/net/netisr.c
index b2db8c1..c8da579 100644
--- a/sys/net/netisr.c
+++ b/sys/net/netisr.c
@@ -78,7 +78,6 @@ __FBSDID("$FreeBSD$");
#include <sys/socket.h>
#include <sys/sysctl.h>
#include <sys/systm.h>
-#include <sys/vimage.h>
#ifdef DDB
#include <ddb/ddb.h>
@@ -87,6 +86,7 @@ __FBSDID("$FreeBSD$");
#include <net/if.h>
#include <net/if_var.h>
#include <net/netisr.h>
+#include <net/vnet.h>
/*-
* Synchronize use and modification of the registered netisr data structures;
diff --git a/sys/net/raw_cb.c b/sys/net/raw_cb.c
index 30a526f..c430d97 100644
--- a/sys/net/raw_cb.c
+++ b/sys/net/raw_cb.c
@@ -42,7 +42,6 @@
#include <sys/socketvar.h>
#include <sys/sysctl.h>
#include <sys/systm.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/raw_cb.h>
diff --git a/sys/net/raw_usrreq.c b/sys/net/raw_usrreq.c
index 0759e42..2de3d69 100644
--- a/sys/net/raw_usrreq.c
+++ b/sys/net/raw_usrreq.c
@@ -44,7 +44,6 @@
#include <sys/socketvar.h>
#include <sys/sx.h>
#include <sys/systm.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/raw_cb.h>
diff --git a/sys/net/route.c b/sys/net/route.c
index 544c3b6..fc76c92 100644
--- a/sys/net/route.c
+++ b/sys/net/route.c
@@ -51,11 +51,11 @@
#include <sys/proc.h>
#include <sys/domain.h>
#include <sys/kernel.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_dl.h>
#include <net/route.h>
+#include <net/vnet.h>
#ifdef RADIX_MPATH
#include <net/radix_mpath.h>
diff --git a/sys/net/rtsock.c b/sys/net/rtsock.c
index 88c9807..645cf7e 100644
--- a/sys/net/rtsock.c
+++ b/sys/net/rtsock.c
@@ -50,7 +50,6 @@
#include <sys/socketvar.h>
#include <sys/sysctl.h>
#include <sys/systm.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_dl.h>
diff --git a/sys/net/vnet.c b/sys/net/vnet.c
index eed353e..a34270a 100644
--- a/sys/net/vnet.c
+++ b/sys/net/vnet.c
@@ -1,4 +1,12 @@
/*-
+ * Copyright (c) 2004-2009 University of Zagreb
+ * Copyright (c) 2006-2009 FreeBSD Foundation
+ * All rights reserved.
+ *
+ * This software was developed by the University of Zagreb and the
+ * FreeBSD Foundation under sponsorship by the Stichting NLnet and the
+ * FreeBSD Foundation.
+ *
* Copyright (c) 2009 Jeffrey Roberson <jeff@freebsd.org>
* Copyright (c) 2009 Robert N. M. Watson
* All rights reserved.
@@ -28,30 +36,67 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
+#include "opt_ddb.h"
+
#include <sys/param.h>
#include <sys/kernel.h>
+#include <sys/jail.h>
#include <sys/systm.h>
#include <sys/sysctl.h>
#include <sys/linker_set.h>
#include <sys/lock.h>
#include <sys/malloc.h>
#include <sys/proc.h>
+#include <sys/socket.h>
#include <sys/sx.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
+#ifdef DDB
+#include <ddb/ddb.h>
+#endif
+
+#include <net/if.h>
+#include <net/if_var.h>
#include <net/vnet.h>
/*-
* This file implements core functions for virtual network stacks:
*
+ * - Core virtual network stack management functions.
+ *
* - Virtual network stack memory allocator, which virtualized global
* variables in the network stack
*
* - Virtualized SYSINIT's/SYSUNINIT's, which allow network stack subsystems
* to register startup/shutdown events to be run for each virtual network
* stack instance.
- *
+ */
+
+MALLOC_DEFINE(M_VNET, "vnet", "network stack control block");
+
+/*
+ * The virtual network stack list has two read-write locks, one sleepable and
+ * the other not, so that the list can be stablized and walked in a variety
+ * of network stack contexts. Both must be acquired exclusively to modify
+ * the list.
+ */
+struct rwlock vnet_rwlock;
+struct sx vnet_sxlock;
+
+#define VNET_LIST_WLOCK() do { \
+ sx_xlock(&vnet_sxlock); \
+ rw_wlock(&vnet_rwlock); \
+} while (0)
+
+#define VNET_LIST_WUNLOCK() do { \
+ rw_wunlock(&vnet_rwlock); \
+ sx_xunlock(&vnet_sxlock); \
+} while (0)
+
+struct vnet_list_head vnet_head;
+struct vnet *vnet0;
+
+/*
* The virtual network stack allocator provides storage for virtualized
* global variables. These variables are defined/declared using the
* VNET_DEFINE()/VNET_DECLARE() macros, which place them in the 'set_vnet'
@@ -157,6 +202,114 @@ static TAILQ_HEAD(, vnet_data_free) vnet_data_free_head =
static struct sx vnet_data_free_lock;
/*
+ * Allocate a virtual network stack.
+ */
+struct vnet *
+vnet_alloc(void)
+{
+ struct vnet *vnet;
+
+ vnet = malloc(sizeof(struct vnet), M_VNET, M_WAITOK | M_ZERO);
+ vnet->vnet_magic_n = VNET_MAGIC_N;
+ vnet_data_init(vnet);
+
+ /* Initialize / attach vnet module instances. */
+ CURVNET_SET_QUIET(vnet);
+
+ sx_xlock(&vnet_sxlock);
+ vnet_sysinit();
+ CURVNET_RESTORE();
+
+ rw_wlock(&vnet_rwlock);
+ LIST_INSERT_HEAD(&vnet_head, vnet, vnet_le);
+ VNET_LIST_WUNLOCK();
+
+ return (vnet);
+}
+
+/*
+ * Destroy a virtual network stack.
+ */
+void
+vnet_destroy(struct vnet *vnet)
+{
+ struct ifnet *ifp, *nifp;
+
+ KASSERT(vnet->vnet_sockcnt == 0,
+ ("%s: vnet still has sockets", __func__));
+
+ VNET_LIST_WLOCK();
+ LIST_REMOVE(vnet, vnet_le);
+ rw_wunlock(&vnet_rwlock);
+
+ CURVNET_SET_QUIET(vnet);
+
+ /* Return all inherited interfaces to their parent vnets. */
+ TAILQ_FOREACH_SAFE(ifp, &V_ifnet, if_link, nifp) {
+ if (ifp->if_home_vnet != ifp->if_vnet)
+ if_vmove(ifp, ifp->if_home_vnet);
+ }
+
+ vnet_sysuninit();
+ sx_xunlock(&vnet_sxlock);
+
+ CURVNET_RESTORE();
+
+ /* Hopefully, we are OK to free the vnet container itself. */
+ vnet_data_destroy(vnet);
+ vnet->vnet_magic_n = 0xdeadbeef;
+ free(vnet, M_VNET);
+}
+
+static void
+vnet_foreach(void (*vnet_foreach_fn)(struct vnet *, void *), void *arg)
+{
+ struct vnet *vnet;
+
+ VNET_LIST_RLOCK();
+ LIST_FOREACH(vnet, &vnet_head, vnet_le)
+ vnet_foreach_fn(vnet, arg);
+ VNET_LIST_RUNLOCK();
+}
+
+/*
+ * Boot time initialization and allocation of virtual network stacks.
+ */
+static void
+vnet_init_prelink(void *arg)
+{
+
+ rw_init(&vnet_rwlock, "vnet_rwlock");
+ sx_init(&vnet_sxlock, "vnet_sxlock");
+ LIST_INIT(&vnet_head);
+}
+SYSINIT(vnet_init_prelink, SI_SUB_VNET_PRELINK, SI_ORDER_FIRST,
+ vnet_init_prelink, NULL);
+
+static void
+vnet0_init(void *arg)
+{
+
+ /*
+ * We MUST clear curvnet in vi_init_done() before going SMP,
+ * otherwise CURVNET_SET() macros would scream about unnecessary
+ * curvnet recursions.
+ */
+ curvnet = prison0.pr_vnet = vnet0 = vnet_alloc();
+}
+SYSINIT(vnet0_init, SI_SUB_VNET, SI_ORDER_FIRST, vnet0_init, NULL);
+
+static void
+vnet_init_done(void *unused)
+{
+
+ curvnet = NULL;
+}
+
+SYSINIT(vnet_init_done, SI_SUB_VNET_DONE, SI_ORDER_FIRST, vnet_init_done,
+ NULL);
+
+/*
* Allocate storage for virtualized global variables in a new virtual network
* stack instance, and copy in initial values from our 'master' copy.
*/
@@ -490,3 +643,20 @@ vnet_sysuninit(void)
vs->func(vs->arg);
}
}
+
+#ifdef DDB
+DB_SHOW_COMMAND(vnets, db_show_vnets)
+{
+ VNET_ITERATOR_DECL(vnet_iter);
+
+#if SIZE_MAX == UINT32_MAX /* 32-bit arch */
+ db_printf(" vnet ifs socks\n");
+#else /* 64-bit arch, most probaly... */
+ db_printf(" vnet ifs socks\n");
+#endif
+ VNET_FOREACH(vnet_iter) {
+ db_printf("%p %3d %5d\n", vnet_iter, vnet_iter->vnet_ifcnt,
+ vnet_iter->vnet_sockcnt);
+ }
+}
+#endif
diff --git a/sys/net/vnet.h b/sys/net/vnet.h
index 08ee21a..47dc7ac 100644
--- a/sys/net/vnet.h
+++ b/sys/net/vnet.h
@@ -1,4 +1,12 @@
/*-
+ * Copyright (c) 2006-2009 University of Zagreb
+ * Copyright (c) 2006-2009 FreeBSD Foundation
+ * All rights reserved.
+ *
+ * This software was developed by the University of Zagreb and the
+ * FreeBSD Foundation under sponsorship by the Stichting NLnet and the
+ * FreeBSD Foundation.
+ *
* Copyright (c) 2009 Jeffrey Roberson <jeff@freebsd.org>
* Copyright (c) 2009 Robert N. M. Watson
* All rights reserved.
@@ -31,6 +39,9 @@
* This header file defines several sets of interfaces supporting virtualized
* network stacks:
*
+ * - Definition of 'struct vnet' and functions and macros to allocate/free/
+ * manipulate it.
+ *
* - A virtual network stack memory allocator, which provides support for
* virtualized global variables via a special linker set, set_vnet.
*
@@ -47,17 +58,133 @@
#define _NET_VNET_H_
/*
- * Virtual network stack memory allocator, which allows global variables to
- * be automatically instantiated for each network stack instance.
+ * struct vnet describes a virtualized network stack, and is primarily a
+ * pointer to storage for virtualized global variables. Expose to userspace
+ * as required for libkvm.
*/
#if defined(_KERNEL) || defined(_WANT_VNET)
+#include <sys/queue.h>
+
+struct vnet {
+ LIST_ENTRY(vnet) vnet_le; /* all vnets list */
+ u_int vnet_magic_n;
+ u_int vnet_ifcnt;
+ u_int vnet_sockcnt;
+ void *vnet_data_mem;
+ uintptr_t vnet_data_base;
+};
+#define VNET_MAGIC_N 0x3e0d8f29
+
+/*
+ * These two virtual network stack allocator definitions are also required
+ * for libkvm so that it can evaluate virtualized global variables.
+ */
#define VNET_SETNAME "set_vnet"
#define VNET_SYMPREFIX "vnet_entry_"
#endif
#ifdef _KERNEL
+
#ifdef VIMAGE
+#include <sys/lock.h>
+#include <sys/proc.h> /* for struct thread */
+#include <sys/rwlock.h>
+#include <sys/sx.h>
+
+/*
+ * Functions to allocate and destroy virtual network stacks.
+ */
+struct vnet *vnet_alloc(void);
+void vnet_destroy(struct vnet *vnet);
+
+/*
+ * The current virtual network stack -- we may wish to move this to struct
+ * pcpu in the future.
+ */
+#define curvnet curthread->td_vnet
+
+/*
+ * Various macros -- get and set the current network stack, but also
+ * assertions.
+ */
+#ifdef INVARIANTS
+#define VNET_DEBUG
+#endif
+#ifdef VNET_DEBUG
+#define VNET_ASSERT(condition) \
+ if (!(condition)) { \
+ printf("VNET_ASSERT @ %s:%d %s():\n", \
+ __FILE__, __LINE__, __FUNCTION__); \
+ panic(#condition); \
+ }
+#define CURVNET_SET_QUIET(arg) \
+ VNET_ASSERT((arg)->vnet_magic_n == VNET_MAGIC_N); \
+ struct vnet *saved_vnet = curvnet; \
+ const char *saved_vnet_lpush = curthread->td_vnet_lpush; \
+ curvnet = arg; \
+ curthread->td_vnet_lpush = __FUNCTION__;
+
+#define CURVNET_SET_VERBOSE(arg) \
+ CURVNET_SET_QUIET(arg) \
+ if (saved_vnet) \
+ printf("CURVNET_SET(%p) in %s() on cpu %d, prev %p in %s()\n", \
+ curvnet, curthread->td_vnet_lpush, curcpu, \
+ saved_vnet, saved_vnet_lpush);
+
+#define CURVNET_SET(arg) CURVNET_SET_VERBOSE(arg)
+
+#define CURVNET_RESTORE() \
+ VNET_ASSERT(saved_vnet == NULL || \
+ saved_vnet->vnet_magic_n == VNET_MAGIC_N); \
+ curvnet = saved_vnet; \
+ curthread->td_vnet_lpush = saved_vnet_lpush;
+#else /* !VNET_DEBUG */
+#define VNET_ASSERT(condition)
+
+#define CURVNET_SET(arg) \
+ struct vnet *saved_vnet = curvnet; \
+ curvnet = arg;
+
+#define CURVNET_SET_VERBOSE(arg) CURVNET_SET(arg)
+#define CURVNET_SET_QUIET(arg) CURVNET_SET(arg)
+
+#define CURVNET_RESTORE() \
+ curvnet = saved_vnet;
+#endif /* VNET_DEBUG */
+
+extern struct vnet *vnet0;
+#define IS_DEFAULT_VNET(arg) ((arg) == vnet0)
+
+#define CRED_TO_VNET(cr) (cr)->cr_prison->pr_vnet
+#define TD_TO_VNET(td) CRED_TO_VNET((td)->td_ucred)
+#define P_TO_VNET(p) CRED_TO_VNET((p)->p_ucred)
+
+/*
+ * Global linked list of all virtual network stacks, along with read locks to
+ * access it. If a caller may sleep while accessing the list, it must use
+ * the sleepable lock macros.
+ */
+LIST_HEAD(vnet_list_head, vnet);
+extern struct vnet_list_head vnet_head;
+extern struct rwlock vnet_rwlock;
+extern struct sx vnet_sxlock;
+
+#define VNET_LIST_RLOCK() sx_slock(&vnet_sxlock)
+#define VNET_LIST_RLOCK_NOSLEEP() rw_rlock(&vnet_rwlock)
+#define VNET_LIST_RUNLOCK() sx_sunlock(&vnet_sxlock)
+#define VNET_LIST_RUNLOCK_NOSLEEP() rw_runlock(&vnet_rwlock)
+
+/*
+ * Iteration macros to walk the global list of virtual network stacks.
+ */
+#define VNET_ITERATOR_DECL(arg) struct vnet *arg
+#define VNET_FOREACH(arg) LIST_FOREACH((arg), &vnet_head, vnet_le)
+
+/*
+ * Virtual network stack memory allocator, which allows global variables to
+ * be automatically instantiated for each network stack instance.
+ */
#if defined(__arm__)
__asm__(".section " VNET_SETNAME ", \"aw\", %progbits");
#else
@@ -193,6 +320,28 @@ void vnet_deregister_sysuninit(void *arg);
#else /* !VIMAGE */
/*
+ * Various virtual network stack macros compile to no-ops without VIMAGE.
+ */
+#define curvnet NULL
+
+#define VNET_ASSERT(condition)
+#define CURVNET_SET(arg)
+#define CURVNET_SET_QUIET(arg)
+#define CURVNET_RESTORE()
+
+#define VNET_LIST_RLOCK()
+#define VNET_LIST_RLOCK_NOSLEEP()
+#define VNET_LIST_RUNLOCK()
+#define VNET_LIST_RUNLOCK_NOSLEEP()
+#define VNET_ITERATOR_DECL(arg)
+#define VNET_FOREACH(arg)
+
+#define IS_DEFAULT_VNET(arg) 1
+#define CRED_TO_VNET(cr) NULL
+#define TD_TO_VNET(td) NULL
+#define P_TO_VNET(p) NULL
+
+/*
* Versions of the VNET macros that compile to normal global variables and
* standard sysctl definitions.
*/
diff --git a/sys/net80211/ieee80211_ddb.c b/sys/net80211/ieee80211_ddb.c
index 1386409..a38f12a 100644
--- a/sys/net80211/ieee80211_ddb.c
+++ b/sys/net80211/ieee80211_ddb.c
@@ -37,7 +37,6 @@ __FBSDID("$FreeBSD$");
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/socket.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_dl.h>
diff --git a/sys/net80211/ieee80211_freebsd.c b/sys/net80211/ieee80211_freebsd.c
index 51a86fd..22800fb 100644
--- a/sys/net80211/ieee80211_freebsd.c
+++ b/sys/net80211/ieee80211_freebsd.c
@@ -41,7 +41,6 @@ __FBSDID("$FreeBSD$");
#include <sys/sysctl.h>
#include <sys/socket.h>
-#include <sys/vimage.h>
#include <net/bpf.h>
#include <net/if.h>
@@ -51,6 +50,7 @@ __FBSDID("$FreeBSD$");
#include <net/if_types.h>
#include <net/ethernet.h>
#include <net/route.h>
+#include <net/vnet.h>
#include <net80211/ieee80211_var.h>
#include <net80211/ieee80211_input.h>
diff --git a/sys/netgraph/atm/ng_atm.c b/sys/netgraph/atm/ng_atm.c
index 7296aa1..4b7d7c0 100644
--- a/sys/netgraph/atm/ng_atm.c
+++ b/sys/netgraph/atm/ng_atm.c
@@ -46,7 +46,6 @@ __FBSDID("$FreeBSD$");
#include <sys/sbuf.h>
#include <sys/ioccom.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_types.h>
diff --git a/sys/netgraph/ng_base.c b/sys/netgraph/ng_base.c
index b618bb4..65707b2 100644
--- a/sys/netgraph/ng_base.c
+++ b/sys/netgraph/ng_base.c
@@ -61,7 +61,6 @@
#include <sys/syslog.h>
#include <sys/refcount.h>
#include <sys/proc.h>
-#include <sys/vimage.h>
#include <sys/unistd.h>
#include <sys/kthread.h>
#include <sys/smp.h>
diff --git a/sys/netgraph/ng_bridge.c b/sys/netgraph/ng_bridge.c
index d998f1e..e42b5a5 100644
--- a/sys/netgraph/ng_bridge.c
+++ b/sys/netgraph/ng_bridge.c
@@ -69,10 +69,10 @@
#include <sys/syslog.h>
#include <sys/socket.h>
#include <sys/ctype.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/ethernet.h>
+#include <net/vnet.h>
#include <netinet/in.h>
#include <netinet/ip_fw.h>
diff --git a/sys/netgraph/ng_eiface.c b/sys/netgraph/ng_eiface.c
index ad9668e..ce23683 100644
--- a/sys/netgraph/ng_eiface.c
+++ b/sys/netgraph/ng_eiface.c
@@ -35,10 +35,10 @@
#include <sys/malloc.h>
#include <sys/mbuf.h>
#include <sys/errno.h>
+#include <sys/proc.h>
#include <sys/sockio.h>
#include <sys/socket.h>
#include <sys/syslog.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_types.h>
diff --git a/sys/netgraph/ng_ether.c b/sys/netgraph/ng_ether.c
index 85fc7fc..fab0622 100644
--- a/sys/netgraph/ng_ether.c
+++ b/sys/netgraph/ng_ether.c
@@ -52,9 +52,9 @@
#include <sys/malloc.h>
#include <sys/mbuf.h>
#include <sys/errno.h>
+#include <sys/proc.h>
#include <sys/syslog.h>
#include <sys/socket.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_dl.h>
diff --git a/sys/netgraph/ng_gif.c b/sys/netgraph/ng_gif.c
index de2ded3..ccff05a 100644
--- a/sys/netgraph/ng_gif.c
+++ b/sys/netgraph/ng_gif.c
@@ -76,7 +76,6 @@
#include <sys/errno.h>
#include <sys/syslog.h>
#include <sys/socket.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/route.h>
diff --git a/sys/netgraph/ng_iface.c b/sys/netgraph/ng_iface.c
index 49cba25..209ac77 100644
--- a/sys/netgraph/ng_iface.c
+++ b/sys/netgraph/ng_iface.c
@@ -64,12 +64,12 @@
#include <sys/malloc.h>
#include <sys/mbuf.h>
#include <sys/errno.h>
+#include <sys/proc.h>
#include <sys/random.h>
#include <sys/sockio.h>
#include <sys/socket.h>
#include <sys/syslog.h>
#include <sys/libkern.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_types.h>
diff --git a/sys/netgraph/ng_pipe.c b/sys/netgraph/ng_pipe.c
index b12318a..5f5e410 100644
--- a/sys/netgraph/ng_pipe.c
+++ b/sys/netgraph/ng_pipe.c
@@ -46,10 +46,11 @@
#include <sys/malloc.h>
#include <sys/mbuf.h>
#include <sys/time.h>
-#include <sys/vimage.h>
#include <vm/uma.h>
+#include <net/vnet.h>
+
#include <netinet/in.h>
#include <netinet/in_systm.h>
#include <netinet/ip.h>
diff --git a/sys/netgraph/ng_source.c b/sys/netgraph/ng_source.c
index 91a7585..2f834fc 100644
--- a/sys/netgraph/ng_source.c
+++ b/sys/netgraph/ng_source.c
@@ -66,9 +66,9 @@ __FBSDID("$FreeBSD$");
#include <sys/mbuf.h>
#include <sys/socket.h>
#include <sys/syslog.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_var.h>
+#include <net/vnet.h>
#include <netgraph/ng_message.h>
#include <netgraph/netgraph.h>
#include <netgraph/ng_parse.h>
diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c
index e64b21f..9d1c13a 100644
--- a/sys/netinet/if_ether.c
+++ b/sys/netinet/if_ether.c
@@ -51,7 +51,6 @@ __FBSDID("$FreeBSD$");
#include <sys/proc.h>
#include <sys/socket.h>
#include <sys/syslog.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_dl.h>
@@ -60,6 +59,7 @@ __FBSDID("$FreeBSD$");
#include <net/if_llc.h>
#include <net/ethernet.h>
#include <net/route.h>
+#include <net/vnet.h>
#include <netinet/in.h>
#include <netinet/in_var.h>
diff --git a/sys/netinet/igmp.c b/sys/netinet/igmp.c
index 44796de..f9f6381 100644
--- a/sys/netinet/igmp.c
+++ b/sys/netinet/igmp.c
@@ -59,7 +59,6 @@ __FBSDID("$FreeBSD$");
#include <sys/protosw.h>
#include <sys/kernel.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
#include <sys/ktr.h>
#include <sys/condvar.h>
diff --git a/sys/netinet/in.c b/sys/netinet/in.c
index 63a712b..15d38b1 100644
--- a/sys/netinet/in.c
+++ b/sys/netinet/in.c
@@ -46,7 +46,6 @@ __FBSDID("$FreeBSD$");
#include <sys/proc.h>
#include <sys/sysctl.h>
#include <sys/syslog.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_var.h>
diff --git a/sys/netinet/in_gif.c b/sys/netinet/in_gif.c
index fe2c9ee..3872dde 100644
--- a/sys/netinet/in_gif.c
+++ b/sys/netinet/in_gif.c
@@ -46,10 +46,10 @@ __FBSDID("$FreeBSD$");
#include <sys/sysctl.h>
#include <sys/protosw.h>
#include <sys/malloc.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/route.h>
+#include <net/vnet.h>
#include <netinet/in.h>
#include <netinet/in_systm.h>
diff --git a/sys/netinet/in_mcast.c b/sys/netinet/in_mcast.c
index 6efa7d8..d0e1397 100644
--- a/sys/netinet/in_mcast.c
+++ b/sys/netinet/in_mcast.c
@@ -45,7 +45,6 @@ __FBSDID("$FreeBSD$");
#include <sys/socketvar.h>
#include <sys/protosw.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
#include <sys/ktr.h>
#include <sys/tree.h>
diff --git a/sys/netinet/in_pcb.c b/sys/netinet/in_pcb.c
index 5d080ba..525afef 100644
--- a/sys/netinet/in_pcb.c
+++ b/sys/netinet/in_pcb.c
@@ -51,7 +51,6 @@ __FBSDID("$FreeBSD$");
#include <sys/jail.h>
#include <sys/kernel.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
#ifdef DDB
#include <ddb/ddb.h>
@@ -62,6 +61,7 @@ __FBSDID("$FreeBSD$");
#include <net/if.h>
#include <net/if_types.h>
#include <net/route.h>
+#include <net/vnet.h>
#include <netinet/in.h>
#include <netinet/in_pcb.h>
diff --git a/sys/netinet/in_proto.c b/sys/netinet/in_proto.c
index bf3c713..f1f5ade 100644
--- a/sys/netinet/in_proto.c
+++ b/sys/netinet/in_proto.c
@@ -50,13 +50,13 @@ __FBSDID("$FreeBSD$");
#include <sys/protosw.h>
#include <sys/queue.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/route.h>
#ifdef RADIX_MPATH
#include <net/radix_mpath.h>
#endif
+#include <net/vnet.h>
#include <netinet/in.h>
#include <netinet/in_systm.h>
diff --git a/sys/netinet/in_rmx.c b/sys/netinet/in_rmx.c
index d3f9563..6516277 100644
--- a/sys/netinet/in_rmx.c
+++ b/sys/netinet/in_rmx.c
@@ -51,10 +51,10 @@ __FBSDID("$FreeBSD$");
#include <sys/mbuf.h>
#include <sys/syslog.h>
#include <sys/callout.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/route.h>
+#include <net/vnet.h>
#include <netinet/in.h>
#include <netinet/in_var.h>
diff --git a/sys/netinet/ip_carp.c b/sys/netinet/ip_carp.c
index 00c1ea8..18e446f 100644
--- a/sys/netinet/ip_carp.c
+++ b/sys/netinet/ip_carp.c
@@ -52,7 +52,6 @@ __FBSDID("$FreeBSD$");
#include <sys/socket.h>
#include <sys/vnode.h>
-#include <sys/vimage.h>
#include <machine/stdarg.h>
@@ -65,6 +64,7 @@ __FBSDID("$FreeBSD$");
#include <net/if_dl.h>
#include <net/if_types.h>
#include <net/route.h>
+#include <net/vnet.h>
#ifdef INET
#include <netinet/in.h>
diff --git a/sys/netinet/ip_divert.c b/sys/netinet/ip_divert.c
index 6abf76f..6910310 100644
--- a/sys/netinet/ip_divert.c
+++ b/sys/netinet/ip_divert.c
@@ -59,13 +59,13 @@ __FBSDID("$FreeBSD$");
#include <sys/sx.h>
#include <sys/sysctl.h>
#include <sys/systm.h>
-#include <sys/vimage.h>
#include <vm/uma.h>
#include <net/if.h>
#include <net/netisr.h>
#include <net/route.h>
+#include <net/vnet.h>
#include <netinet/in.h>
#include <netinet/in_pcb.h>
diff --git a/sys/netinet/ip_fastfwd.c b/sys/netinet/ip_fastfwd.c
index 1c83706..f53f787 100644
--- a/sys/netinet/ip_fastfwd.c
+++ b/sys/netinet/ip_fastfwd.c
@@ -87,7 +87,6 @@ __FBSDID("$FreeBSD$");
#include <sys/protosw.h>
#include <sys/socket.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
#include <net/pfil.h>
#include <net/if.h>
@@ -95,6 +94,7 @@ __FBSDID("$FreeBSD$");
#include <net/if_var.h>
#include <net/if_dl.h>
#include <net/route.h>
+#include <net/vnet.h>
#include <netinet/in.h>
#include <netinet/in_systm.h>
diff --git a/sys/netinet/ip_icmp.c b/sys/netinet/ip_icmp.c
index 57a1292..b7906e3 100644
--- a/sys/netinet/ip_icmp.c
+++ b/sys/netinet/ip_icmp.c
@@ -42,7 +42,6 @@ __FBSDID("$FreeBSD$");
#include <sys/time.h>
#include <sys/kernel.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_types.h>
diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c
index f95cf0d..05de6d8 100644
--- a/sys/netinet/ip_input.c
+++ b/sys/netinet/ip_input.c
@@ -53,7 +53,6 @@ __FBSDID("$FreeBSD$");
#include <sys/rwlock.h>
#include <sys/syslog.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
#include <net/pfil.h>
#include <net/if.h>
diff --git a/sys/netinet/ip_ipsec.c b/sys/netinet/ip_ipsec.c
index f0d4a5f..0eb4673 100644
--- a/sys/netinet/ip_ipsec.c
+++ b/sys/netinet/ip_ipsec.c
@@ -43,7 +43,6 @@ __FBSDID("$FreeBSD$");
#include <sys/socket.h>
#include <sys/socketvar.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/route.h>
diff --git a/sys/netinet/ip_mroute.c b/sys/netinet/ip_mroute.c
index b8957f4..39c71b0 100644
--- a/sys/netinet/ip_mroute.c
+++ b/sys/netinet/ip_mroute.c
@@ -93,11 +93,11 @@ __FBSDID("$FreeBSD$");
#include <sys/syslog.h>
#include <sys/systm.h>
#include <sys/time.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/netisr.h>
#include <net/route.h>
+#include <net/vnet.h>
#include <netinet/in.h>
#include <netinet/igmp.h>
diff --git a/sys/netinet/ip_options.c b/sys/netinet/ip_options.c
index 5c4b441..f95b3a0 100644
--- a/sys/netinet/ip_options.c
+++ b/sys/netinet/ip_options.c
@@ -44,7 +44,6 @@ __FBSDID("$FreeBSD$");
#include <sys/kernel.h>
#include <sys/syslog.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_types.h>
@@ -52,6 +51,7 @@ __FBSDID("$FreeBSD$");
#include <net/if_dl.h>
#include <net/route.h>
#include <net/netisr.h>
+#include <net/vnet.h>
#include <netinet/in.h>
#include <netinet/in_systm.h>
diff --git a/sys/netinet/ip_output.c b/sys/netinet/ip_output.c
index 220bf23..bf2a5f8 100644
--- a/sys/netinet/ip_output.c
+++ b/sys/netinet/ip_output.c
@@ -51,7 +51,6 @@ __FBSDID("$FreeBSD$");
#include <sys/socketvar.h>
#include <sys/sysctl.h>
#include <sys/ucred.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/netisr.h>
diff --git a/sys/netinet/ipfw/ip_fw2.c b/sys/netinet/ipfw/ip_fw2.c
index 9274ccd..da6593c 100644
--- a/sys/netinet/ipfw/ip_fw2.c
+++ b/sys/netinet/ipfw/ip_fw2.c
@@ -63,7 +63,6 @@ __FBSDID("$FreeBSD$");
#include <sys/sysctl.h>
#include <sys/syslog.h>
#include <sys/ucred.h>
-#include <sys/vimage.h>
#include <net/ethernet.h> /* for ETHERTYPE_IP */
#include <net/if.h>
#include <net/radix.h>
diff --git a/sys/netinet/ipfw/ip_fw_nat.c b/sys/netinet/ipfw/ip_fw_nat.c
index ac7cc44..cd6a1cf 100644
--- a/sys/netinet/ipfw/ip_fw_nat.c
+++ b/sys/netinet/ipfw/ip_fw_nat.c
@@ -45,7 +45,6 @@ __FBSDID("$FreeBSD$");
#include <sys/sysctl.h>
#include <sys/syslog.h>
#include <sys/ucred.h>
-#include <sys/vimage.h>
#include <netinet/libalias/alias.h>
#include <netinet/libalias/alias_local.h>
diff --git a/sys/netinet/ipfw/ip_fw_pfil.c b/sys/netinet/ipfw/ip_fw_pfil.c
index a763855..e28d5ca 100644
--- a/sys/netinet/ipfw/ip_fw_pfil.c
+++ b/sys/netinet/ipfw/ip_fw_pfil.c
@@ -49,7 +49,6 @@ __FBSDID("$FreeBSD$");
#include <sys/socketvar.h>
#include <sys/sysctl.h>
#include <sys/ucred.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/route.h>
diff --git a/sys/netinet/raw_ip.c b/sys/netinet/raw_ip.c
index 517ac8e..3df2ec3 100644
--- a/sys/netinet/raw_ip.c
+++ b/sys/netinet/raw_ip.c
@@ -52,7 +52,6 @@ __FBSDID("$FreeBSD$");
#include <sys/sx.h>
#include <sys/sysctl.h>
#include <sys/systm.h>
-#include <sys/vimage.h>
#include <vm/uma.h>
diff --git a/sys/netinet/sctp_os_bsd.h b/sys/netinet/sctp_os_bsd.h
index 46a73bf..f3ccb63 100644
--- a/sys/netinet/sctp_os_bsd.h
+++ b/sys/netinet/sctp_os_bsd.h
@@ -61,7 +61,6 @@ __FBSDID("$FreeBSD$");
#include <sys/random.h>
#include <sys/limits.h>
#include <sys/queue.h>
-#include <sys/vimage.h>
#include <machine/cpu.h>
#include <net/if.h>
diff --git a/sys/netinet/tcp_hostcache.c b/sys/netinet/tcp_hostcache.c
index 2d3d922..acbc860 100644
--- a/sys/netinet/tcp_hostcache.c
+++ b/sys/netinet/tcp_hostcache.c
@@ -76,10 +76,10 @@ __FBSDID("$FreeBSD$");
#include <sys/socket.h>
#include <sys/socketvar.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/route.h>
+#include <net/vnet.h>
#include <netinet/in.h>
#include <netinet/in_systm.h>
diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c
index 2a14d14..22ee3d7 100644
--- a/sys/netinet/tcp_input.c
+++ b/sys/netinet/tcp_input.c
@@ -50,7 +50,6 @@ __FBSDID("$FreeBSD$");
#include <sys/sysctl.h>
#include <sys/syslog.h>
#include <sys/systm.h>
-#include <sys/vimage.h>
#include <machine/cpu.h> /* before tcp_seq.h, for tcp_random18() */
@@ -58,6 +57,7 @@ __FBSDID("$FreeBSD$");
#include <net/if.h>
#include <net/route.h>
+#include <net/vnet.h>
#define TCPSTATES /* for logging */
diff --git a/sys/netinet/tcp_offload.c b/sys/netinet/tcp_offload.c
index 94cf570..899a37c 100644
--- a/sys/netinet/tcp_offload.c
+++ b/sys/netinet/tcp_offload.c
@@ -37,12 +37,12 @@ __FBSDID("$FreeBSD$");
#include <sys/mbuf.h>
#include <sys/socket.h>
#include <sys/socketvar.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_types.h>
#include <net/if_var.h>
#include <net/route.h>
+#include <net/vnet.h>
#include <netinet/in.h>
#include <netinet/in_systm.h>
diff --git a/sys/netinet/tcp_output.c b/sys/netinet/tcp_output.c
index c74107e..ee33ea2 100644
--- a/sys/netinet/tcp_output.c
+++ b/sys/netinet/tcp_output.c
@@ -48,10 +48,10 @@ __FBSDID("$FreeBSD$");
#include <sys/socket.h>
#include <sys/socketvar.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/route.h>
+#include <net/vnet.h>
#include <netinet/in.h>
#include <netinet/in_systm.h>
diff --git a/sys/netinet/tcp_reass.c b/sys/netinet/tcp_reass.c
index fa844b6..8115b2b 100644
--- a/sys/netinet/tcp_reass.c
+++ b/sys/netinet/tcp_reass.c
@@ -45,12 +45,12 @@ __FBSDID("$FreeBSD$");
#include <sys/sysctl.h>
#include <sys/syslog.h>
#include <sys/systm.h>
-#include <sys/vimage.h>
#include <vm/uma.h>
#include <net/if.h>
#include <net/route.h>
+#include <net/vnet.h>
#include <netinet/in.h>
#include <netinet/in_pcb.h>
diff --git a/sys/netinet/tcp_sack.c b/sys/netinet/tcp_sack.c
index 985eee8..06fb502 100644
--- a/sys/netinet/tcp_sack.c
+++ b/sys/netinet/tcp_sack.c
@@ -89,7 +89,6 @@ __FBSDID("$FreeBSD$");
#include <sys/socketvar.h>
#include <sys/syslog.h>
#include <sys/systm.h>
-#include <sys/vimage.h>
#include <machine/cpu.h> /* before tcp_seq.h, for tcp_random18() */
@@ -97,6 +96,7 @@ __FBSDID("$FreeBSD$");
#include <net/if.h>
#include <net/route.h>
+#include <net/vnet.h>
#include <netinet/in.h>
#include <netinet/in_systm.h>
diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c
index e29283b..622c508 100644
--- a/sys/netinet/tcp_subr.c
+++ b/sys/netinet/tcp_subr.c
@@ -55,12 +55,12 @@ __FBSDID("$FreeBSD$");
#include <sys/socketvar.h>
#include <sys/protosw.h>
#include <sys/random.h>
-#include <sys/vimage.h>
#include <vm/uma.h>
#include <net/route.h>
#include <net/if.h>
+#include <net/vnet.h>
#include <netinet/in.h>
#include <netinet/in_systm.h>
diff --git a/sys/netinet/tcp_syncache.c b/sys/netinet/tcp_syncache.c
index 23e2570..16c4f67 100644
--- a/sys/netinet/tcp_syncache.c
+++ b/sys/netinet/tcp_syncache.c
@@ -53,7 +53,6 @@ __FBSDID("$FreeBSD$");
#include <sys/socketvar.h>
#include <sys/syslog.h>
#include <sys/ucred.h>
-#include <sys/vimage.h>
#include <vm/uma.h>
diff --git a/sys/netinet/tcp_timer.c b/sys/netinet/tcp_timer.c
index 3050324..7f5d159 100644
--- a/sys/netinet/tcp_timer.c
+++ b/sys/netinet/tcp_timer.c
@@ -45,10 +45,10 @@ __FBSDID("$FreeBSD$");
#include <sys/socketvar.h>
#include <sys/sysctl.h>
#include <sys/systm.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/route.h>
+#include <net/vnet.h>
#include <netinet/in.h>
#include <netinet/in_pcb.h>
diff --git a/sys/netinet/tcp_timewait.c b/sys/netinet/tcp_timewait.c
index a6ac5c6..96626fb 100644
--- a/sys/netinet/tcp_timewait.c
+++ b/sys/netinet/tcp_timewait.c
@@ -49,12 +49,12 @@ __FBSDID("$FreeBSD$");
#include <sys/socketvar.h>
#include <sys/protosw.h>
#include <sys/random.h>
-#include <sys/vimage.h>
#include <vm/uma.h>
#include <net/route.h>
#include <net/if.h>
+#include <net/vnet.h>
#include <netinet/in.h>
#include <netinet/in_systm.h>
diff --git a/sys/netinet/tcp_usrreq.c b/sys/netinet/tcp_usrreq.c
index dfd05dc..1e58cd7 100644
--- a/sys/netinet/tcp_usrreq.c
+++ b/sys/netinet/tcp_usrreq.c
@@ -53,7 +53,6 @@ __FBSDID("$FreeBSD$");
#include <sys/protosw.h>
#include <sys/proc.h>
#include <sys/jail.h>
-#include <sys/vimage.h>
#ifdef DDB
#include <ddb/ddb.h>
@@ -61,6 +60,7 @@ __FBSDID("$FreeBSD$");
#include <net/if.h>
#include <net/route.h>
+#include <net/vnet.h>
#include <netinet/in.h>
#include <netinet/in_systm.h>
diff --git a/sys/netinet/udp_usrreq.c b/sys/netinet/udp_usrreq.c
index 54fb996..520fc94 100644
--- a/sys/netinet/udp_usrreq.c
+++ b/sys/netinet/udp_usrreq.c
@@ -56,7 +56,6 @@ __FBSDID("$FreeBSD$");
#include <sys/sysctl.h>
#include <sys/syslog.h>
#include <sys/systm.h>
-#include <sys/vimage.h>
#include <vm/uma.h>
diff --git a/sys/netinet6/dest6.c b/sys/netinet6/dest6.c
index 20b5e9d..54d3a58 100644
--- a/sys/netinet6/dest6.c
+++ b/sys/netinet6/dest6.c
@@ -45,7 +45,6 @@ __FBSDID("$FreeBSD$");
#include <sys/errno.h>
#include <sys/time.h>
#include <sys/kernel.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/route.h>
diff --git a/sys/netinet6/frag6.c b/sys/netinet6/frag6.c
index ee1f4a2..8900f7d 100644
--- a/sys/netinet6/frag6.c
+++ b/sys/netinet6/frag6.c
@@ -43,7 +43,6 @@ __FBSDID("$FreeBSD$");
#include <sys/time.h>
#include <sys/kernel.h>
#include <sys/syslog.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/route.h>
diff --git a/sys/netinet6/icmp6.c b/sys/netinet6/icmp6.c
index 4a81b4d..bdf7786 100644
--- a/sys/netinet6/icmp6.c
+++ b/sys/netinet6/icmp6.c
@@ -74,6 +74,7 @@ __FBSDID("$FreeBSD$");
#include <sys/lock.h>
#include <sys/malloc.h>
#include <sys/mbuf.h>
+#include <sys/proc.h>
#include <sys/protosw.h>
#include <sys/signalvar.h>
#include <sys/socket.h>
@@ -82,7 +83,6 @@ __FBSDID("$FreeBSD$");
#include <sys/syslog.h>
#include <sys/systm.h>
#include <sys/time.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_dl.h>
diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c
index 2a1f8d9..c099da7 100644
--- a/sys/netinet6/in6.c
+++ b/sys/netinet6/in6.c
@@ -79,7 +79,6 @@ __FBSDID("$FreeBSD$");
#include <sys/time.h>
#include <sys/kernel.h>
#include <sys/syslog.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_types.h>
diff --git a/sys/netinet6/in6_gif.c b/sys/netinet6/in6_gif.c
index e51506b..a481706 100644
--- a/sys/netinet6/in6_gif.c
+++ b/sys/netinet6/in6_gif.c
@@ -45,7 +45,6 @@ __FBSDID("$FreeBSD$");
#include <sys/syslog.h>
#include <sys/protosw.h>
#include <sys/malloc.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/route.h>
diff --git a/sys/netinet6/in6_ifattach.c b/sys/netinet6/in6_ifattach.c
index 5d34b40..1fc54c6 100644
--- a/sys/netinet6/in6_ifattach.c
+++ b/sys/netinet6/in6_ifattach.c
@@ -39,9 +39,9 @@ __FBSDID("$FreeBSD$");
#include <sys/sockio.h>
#include <sys/jail.h>
#include <sys/kernel.h>
+#include <sys/proc.h>
#include <sys/syslog.h>
#include <sys/md5.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_dl.h>
diff --git a/sys/netinet6/in6_mcast.c b/sys/netinet6/in6_mcast.c
index 67686a4..eedebb9 100644
--- a/sys/netinet6/in6_mcast.c
+++ b/sys/netinet6/in6_mcast.c
@@ -50,7 +50,6 @@ __FBSDID("$FreeBSD$");
#include <sys/priv.h>
#include <sys/ktr.h>
#include <sys/tree.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_dl.h>
diff --git a/sys/netinet6/in6_pcb.c b/sys/netinet6/in6_pcb.c
index 924e15d..d40a9e3 100644
--- a/sys/netinet6/in6_pcb.c
+++ b/sys/netinet6/in6_pcb.c
@@ -81,7 +81,6 @@ __FBSDID("$FreeBSD$");
#include <sys/priv.h>
#include <sys/proc.h>
#include <sys/jail.h>
-#include <sys/vimage.h>
#include <vm/uma.h>
diff --git a/sys/netinet6/in6_proto.c b/sys/netinet6/in6_proto.c
index 8c4094d..c31743f 100644
--- a/sys/netinet6/in6_proto.c
+++ b/sys/netinet6/in6_proto.c
@@ -82,7 +82,6 @@ __FBSDID("$FreeBSD$");
#include <sys/mbuf.h>
#include <sys/systm.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/radix.h>
diff --git a/sys/netinet6/in6_rmx.c b/sys/netinet6/in6_rmx.c
index dd7c19b..1ae04c3 100644
--- a/sys/netinet6/in6_rmx.c
+++ b/sys/netinet6/in6_rmx.c
@@ -87,7 +87,6 @@ __FBSDID("$FreeBSD$");
#include <sys/rwlock.h>
#include <sys/syslog.h>
#include <sys/callout.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/route.h>
diff --git a/sys/netinet6/in6_src.c b/sys/netinet6/in6_src.c
index f51c3bf..f087fae 100644
--- a/sys/netinet6/in6_src.c
+++ b/sys/netinet6/in6_src.c
@@ -83,7 +83,6 @@ __FBSDID("$FreeBSD$");
#include <sys/jail.h>
#include <sys/kernel.h>
#include <sys/sx.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/route.h>
diff --git a/sys/netinet6/ip6_forward.c b/sys/netinet6/ip6_forward.c
index 896d67c..7ba4977 100644
--- a/sys/netinet6/ip6_forward.c
+++ b/sys/netinet6/ip6_forward.c
@@ -48,7 +48,6 @@ __FBSDID("$FreeBSD$");
#include <sys/time.h>
#include <sys/kernel.h>
#include <sys/syslog.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/route.h>
diff --git a/sys/netinet6/ip6_input.c b/sys/netinet6/ip6_input.c
index af79042..019d57f 100644
--- a/sys/netinet6/ip6_input.c
+++ b/sys/netinet6/ip6_input.c
@@ -80,7 +80,6 @@ __FBSDID("$FreeBSD$");
#include <sys/time.h>
#include <sys/kernel.h>
#include <sys/syslog.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_types.h>
diff --git a/sys/netinet6/ip6_ipsec.c b/sys/netinet6/ip6_ipsec.c
index 23d6f7f..48d9162 100644
--- a/sys/netinet6/ip6_ipsec.c
+++ b/sys/netinet6/ip6_ipsec.c
@@ -43,7 +43,6 @@ __FBSDID("$FreeBSD$");
#include <sys/socket.h>
#include <sys/socketvar.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/route.h>
diff --git a/sys/netinet6/ip6_mroute.c b/sys/netinet6/ip6_mroute.c
index 09e4bd6..5496062 100644
--- a/sys/netinet6/ip6_mroute.c
+++ b/sys/netinet6/ip6_mroute.c
@@ -103,7 +103,6 @@ __FBSDID("$FreeBSD$");
#include <sys/syslog.h>
#include <sys/systm.h>
#include <sys/time.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_types.h>
diff --git a/sys/netinet6/ip6_output.c b/sys/netinet6/ip6_output.c
index c208ca7..c48ac7b 100644
--- a/sys/netinet6/ip6_output.c
+++ b/sys/netinet6/ip6_output.c
@@ -79,7 +79,6 @@ __FBSDID("$FreeBSD$");
#include <sys/socketvar.h>
#include <sys/syslog.h>
#include <sys/ucred.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/netisr.h>
diff --git a/sys/netinet6/mld6.c b/sys/netinet6/mld6.c
index e23dea3..172a8d6 100644
--- a/sys/netinet6/mld6.c
+++ b/sys/netinet6/mld6.c
@@ -79,7 +79,6 @@ __FBSDID("$FreeBSD$");
#include <sys/callout.h>
#include <sys/malloc.h>
#include <sys/module.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/route.h>
diff --git a/sys/netinet6/nd6.c b/sys/netinet6/nd6.c
index 3584b17..48635c5 100644
--- a/sys/netinet6/nd6.c
+++ b/sys/netinet6/nd6.c
@@ -51,7 +51,6 @@ __FBSDID("$FreeBSD$");
#include <sys/rwlock.h>
#include <sys/queue.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_arc.h>
diff --git a/sys/netinet6/nd6_nbr.c b/sys/netinet6/nd6_nbr.c
index 37cea51..a74bea5 100644
--- a/sys/netinet6/nd6_nbr.c
+++ b/sys/netinet6/nd6_nbr.c
@@ -52,7 +52,6 @@ __FBSDID("$FreeBSD$");
#include <sys/syslog.h>
#include <sys/queue.h>
#include <sys/callout.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_types.h>
diff --git a/sys/netinet6/nd6_rtr.c b/sys/netinet6/nd6_rtr.c
index 5ebe307..9d1f0d6 100644
--- a/sys/netinet6/nd6_rtr.c
+++ b/sys/netinet6/nd6_rtr.c
@@ -48,7 +48,6 @@ __FBSDID("$FreeBSD$");
#include <sys/rwlock.h>
#include <sys/syslog.h>
#include <sys/queue.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_types.h>
diff --git a/sys/netinet6/raw_ip6.c b/sys/netinet6/raw_ip6.c
index 01d5784..108742d 100644
--- a/sys/netinet6/raw_ip6.c
+++ b/sys/netinet6/raw_ip6.c
@@ -79,7 +79,6 @@ __FBSDID("$FreeBSD$");
#include <sys/socketvar.h>
#include <sys/sx.h>
#include <sys/syslog.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_types.h>
diff --git a/sys/netinet6/route6.c b/sys/netinet6/route6.c
index 9628960..1311437 100644
--- a/sys/netinet6/route6.c
+++ b/sys/netinet6/route6.c
@@ -40,7 +40,6 @@ __FBSDID("$FreeBSD$");
#include <sys/socket.h>
#include <sys/systm.h>
#include <sys/queue.h>
-#include <sys/vimage.h>
#include <net/if.h>
diff --git a/sys/netinet6/scope6.c b/sys/netinet6/scope6.c
index a1e6921..cced5e30 100644
--- a/sys/netinet6/scope6.c
+++ b/sys/netinet6/scope6.c
@@ -39,7 +39,6 @@ __FBSDID("$FreeBSD$");
#include <sys/systm.h>
#include <sys/queue.h>
#include <sys/syslog.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/vnet.h>
diff --git a/sys/netinet6/udp6_usrreq.c b/sys/netinet6/udp6_usrreq.c
index ab173a8..552e488 100644
--- a/sys/netinet6/udp6_usrreq.c
+++ b/sys/netinet6/udp6_usrreq.c
@@ -84,7 +84,6 @@ __FBSDID("$FreeBSD$");
#include <sys/sysctl.h>
#include <sys/syslog.h>
#include <sys/systm.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_types.h>
diff --git a/sys/netipsec/ipsec.c b/sys/netipsec/ipsec.c
index 07ae90e..4b552c8 100644
--- a/sys/netipsec/ipsec.c
+++ b/sys/netipsec/ipsec.c
@@ -53,7 +53,6 @@
#include <sys/syslog.h>
#include <sys/sysctl.h>
#include <sys/proc.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/route.h>
diff --git a/sys/netipsec/ipsec_input.c b/sys/netipsec/ipsec_input.c
index 78f023a..e449e85 100644
--- a/sys/netipsec/ipsec_input.c
+++ b/sys/netipsec/ipsec_input.c
@@ -54,7 +54,6 @@
#include <sys/socket.h>
#include <sys/errno.h>
#include <sys/syslog.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/pfil.h>
diff --git a/sys/netipsec/ipsec_mbuf.c b/sys/netipsec/ipsec_mbuf.c
index 1b92881..97f9714 100644
--- a/sys/netipsec/ipsec_mbuf.c
+++ b/sys/netipsec/ipsec_mbuf.c
@@ -36,7 +36,6 @@
#include <sys/systm.h>
#include <sys/mbuf.h>
#include <sys/socket.h>
-#include <sys/vimage.h>
#include <net/route.h>
#include <net/vnet.h>
diff --git a/sys/netipsec/ipsec_output.c b/sys/netipsec/ipsec_output.c
index f689fb2..8e8a1e3 100644
--- a/sys/netipsec/ipsec_output.c
+++ b/sys/netipsec/ipsec_output.c
@@ -42,7 +42,6 @@
#include <sys/socket.h>
#include <sys/errno.h>
#include <sys/syslog.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/pfil.h>
diff --git a/sys/netipsec/key.c b/sys/netipsec/key.c
index e90396b..99dce21 100644
--- a/sys/netipsec/key.c
+++ b/sys/netipsec/key.c
@@ -56,7 +56,6 @@
#include <sys/queue.h>
#include <sys/refcount.h>
#include <sys/syslog.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/route.h>
diff --git a/sys/netipsec/keysock.c b/sys/netipsec/keysock.c
index a8fbd5e..143b600 100644
--- a/sys/netipsec/keysock.c
+++ b/sys/netipsec/keysock.c
@@ -50,7 +50,6 @@
#include <sys/socketvar.h>
#include <sys/sysctl.h>
#include <sys/systm.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/raw_cb.h>
diff --git a/sys/netipsec/xform_ah.c b/sys/netipsec/xform_ah.c
index 658c92c..d77f246 100644
--- a/sys/netipsec/xform_ah.c
+++ b/sys/netipsec/xform_ah.c
@@ -46,7 +46,6 @@
#include <sys/syslog.h>
#include <sys/kernel.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/vnet.h>
diff --git a/sys/netipsec/xform_esp.c b/sys/netipsec/xform_esp.c
index e45a037..135be9d 100644
--- a/sys/netipsec/xform_esp.c
+++ b/sys/netipsec/xform_esp.c
@@ -46,7 +46,6 @@
#include <sys/kernel.h>
#include <sys/random.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/vnet.h>
diff --git a/sys/netipsec/xform_ipcomp.c b/sys/netipsec/xform_ipcomp.c
index 3536e53..4049154 100644
--- a/sys/netipsec/xform_ipcomp.c
+++ b/sys/netipsec/xform_ipcomp.c
@@ -41,7 +41,6 @@
#include <sys/kernel.h>
#include <sys/protosw.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
#include <netinet/in.h>
#include <netinet/in_systm.h>
diff --git a/sys/netipsec/xform_ipip.c b/sys/netipsec/xform_ipip.c
index 891e16c..c9669b1 100644
--- a/sys/netipsec/xform_ipip.c
+++ b/sys/netipsec/xform_ipip.c
@@ -50,7 +50,6 @@
#include <sys/kernel.h>
#include <sys/protosw.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/pfil.h>
diff --git a/sys/netipsec/xform_tcp.c b/sys/netipsec/xform_tcp.c
index 1fad954..a5edb15 100644
--- a/sys/netipsec/xform_tcp.c
+++ b/sys/netipsec/xform_tcp.c
@@ -39,7 +39,6 @@
#include <sys/kernel.h>
#include <sys/protosw.h>
#include <sys/sysctl.h>
-#include <sys/vimage.h>
#include <netinet/in.h>
#include <netinet/in_systm.h>
diff --git a/sys/nfsclient/bootp_subr.c b/sys/nfsclient/bootp_subr.c
index ea6c02b..e1096be 100644
--- a/sys/nfsclient/bootp_subr.c
+++ b/sys/nfsclient/bootp_subr.c
@@ -58,7 +58,6 @@ __FBSDID("$FreeBSD$");
#include <sys/socketvar.h>
#include <sys/sysctl.h>
#include <sys/uio.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/route.h>
diff --git a/sys/nfsclient/nfs_diskless.c b/sys/nfsclient/nfs_diskless.c
index e3e758b..2f91b9d 100644
--- a/sys/nfsclient/nfs_diskless.c
+++ b/sys/nfsclient/nfs_diskless.c
@@ -43,7 +43,6 @@ __FBSDID("$FreeBSD$");
#include <sys/malloc.h>
#include <sys/mount.h>
#include <sys/socket.h>
-#include <sys/vimage.h>
#include <net/if.h>
#include <net/if_dl.h>
diff --git a/sys/nfsclient/nfs_vnops.c b/sys/nfsclient/nfs_vnops.c
index c37eb34..165849b 100644
--- a/sys/nfsclient/nfs_vnops.c
+++ b/sys/nfsclient/nfs_vnops.c
@@ -61,7 +61,6 @@ __FBSDID("$FreeBSD$");
#include <sys/stat.h>
#include <sys/sysctl.h>
#include <sys/signalvar.h>
-#include <sys/vimage.h>
#include <vm/vm.h>
#include <vm/vm_object.h>
diff --git a/sys/sys/vimage.h b/sys/sys/vimage.h
deleted file mode 100644
index 32084b7..0000000
--- a/sys/sys/vimage.h
+++ /dev/null
@@ -1,183 +0,0 @@
-/*-
- * Copyright (c) 2006-2009 University of Zagreb
- * Copyright (c) 2006-2009 FreeBSD Foundation
- *
- * This software was developed by the University of Zagreb and the
- * FreeBSD Foundation under sponsorship by the Stichting NLnet and the
- * FreeBSD Foundation.
- *
- * 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$
- */
-
-#ifndef _SYS_VIMAGE_H_
-#define _SYS_VIMAGE_H_
-
-/*
- * struct vnet describes a virtualized network stack, and is primarily a
- * pointer to storage for virtualized global variables. Expose to userspace
- * as required for libkvm.
- */
-#if defined(_KERNEL) || defined(_WANT_VNET)
-#include <sys/queue.h>
-
-struct vnet {
- LIST_ENTRY(vnet) vnet_le; /* all vnets list */
- u_int vnet_magic_n;
- u_int vnet_ifcnt;
- u_int vnet_sockcnt;
- void *vnet_data_mem;
- uintptr_t vnet_data_base;
-};
-
-#define VNET_MAGIC_N 0x3e0d8f29
-#endif
-
-#ifdef _KERNEL
-
-#include <sys/lock.h>
-#include <sys/sx.h>
-#include <sys/proc.h>
-
-#ifdef INVARIANTS
-#define VNET_DEBUG
-#endif
-
-#ifdef VIMAGE
-
-struct vnet;
-struct ifnet;
-struct vnet *vnet_alloc(void);
-void vnet_destroy(struct vnet *);
-void vnet_foreach(void (*vnet_foreach_fn)(struct vnet *, void *),
- void *arg);
-
-#endif /* VIMAGE */
-
-#define curvnet curthread->td_vnet
-
-#ifdef VIMAGE
-#ifdef VNET_DEBUG
-#define VNET_ASSERT(condition) \
- if (!(condition)) { \
- printf("VNET_ASSERT @ %s:%d %s():\n", \
- __FILE__, __LINE__, __FUNCTION__); \
- panic(#condition); \
- }
-
-#define CURVNET_SET_QUIET(arg) \
- VNET_ASSERT((arg)->vnet_magic_n == VNET_MAGIC_N); \
- struct vnet *saved_vnet = curvnet; \
- const char *saved_vnet_lpush = curthread->td_vnet_lpush; \
- curvnet = arg; \
- curthread->td_vnet_lpush = __FUNCTION__;
-
-#define CURVNET_SET_VERBOSE(arg) \
- CURVNET_SET_QUIET(arg) \
- if (saved_vnet) \
- printf("CURVNET_SET(%p) in %s() on cpu %d, prev %p in %s()\n", \
- curvnet, curthread->td_vnet_lpush, curcpu, \
- saved_vnet, saved_vnet_lpush);
-
-#define CURVNET_SET(arg) CURVNET_SET_VERBOSE(arg)
-
-#define CURVNET_RESTORE() \
- VNET_ASSERT(saved_vnet == NULL || \
- saved_vnet->vnet_magic_n == VNET_MAGIC_N); \
- curvnet = saved_vnet; \
- curthread->td_vnet_lpush = saved_vnet_lpush;
-#else /* !VNET_DEBUG */
-#define VNET_ASSERT(condition)
-
-#define CURVNET_SET(arg) \
- struct vnet *saved_vnet = curvnet; \
- curvnet = arg;
-
-#define CURVNET_SET_VERBOSE(arg) CURVNET_SET(arg)
-#define CURVNET_SET_QUIET(arg) CURVNET_SET(arg)
-
-#define CURVNET_RESTORE() \
- curvnet = saved_vnet;
-#endif /* VNET_DEBUG */
-#else /* !VIMAGE */
-#define VNET_ASSERT(condition)
-#define CURVNET_SET(arg)
-#define CURVNET_SET_QUIET(arg)
-#define CURVNET_RESTORE()
-#endif /* !VIMAGE */
-
-#ifdef VIMAGE
-/*
- * Global linked list of all virtual network stacks, along with read locks to
- * access it. If a caller may sleep while accessing the list, it must use
- * the sleepable lock macros.
- */
-LIST_HEAD(vnet_list_head, vnet);
-extern struct vnet_list_head vnet_head;
-extern struct rwlock vnet_rwlock;
-extern struct sx vnet_sxlock;
-
-#define VNET_LIST_RLOCK() sx_slock(&vnet_sxlock)
-#define VNET_LIST_RLOCK_NOSLEEP() rw_rlock(&vnet_rwlock)
-#define VNET_LIST_RUNLOCK() sx_sunlock(&vnet_sxlock)
-#define VNET_LIST_RUNLOCK_NOSLEEP() rw_runlock(&vnet_rwlock)
-
-/*
- * Iteration macros to walk the global list of virtual network stacks.
- */
-#define VNET_ITERATOR_DECL(arg) struct vnet *arg
-#define VNET_FOREACH(arg) LIST_FOREACH((arg), &vnet_head, vnet_le)
-
-#else /* !VIMAGE */
-/*
- * No-op macros for the !VIMAGE case.
- */
-#define VNET_LIST_RLOCK()
-#define VNET_LIST_RLOCK_NOSLEEP()
-#define VNET_LIST_RUNLOCK()
-#define VNET_LIST_RUNLOCK_NOSLEEP()
-#define VNET_ITERATOR_DECL(arg)
-#define VNET_FOREACH(arg)
-
-#endif /* VIMAGE */
-
-#ifdef VIMAGE
-extern struct vnet *vnet0;
-#define IS_DEFAULT_VNET(arg) ((arg) == vnet0)
-#else
-#define IS_DEFAULT_VNET(arg) 1
-#endif
-
-#ifdef VIMAGE
-#define CRED_TO_VNET(cr) (cr)->cr_prison->pr_vnet
-#define TD_TO_VNET(td) CRED_TO_VNET((td)->td_ucred)
-#define P_TO_VNET(p) CRED_TO_VNET((p)->p_ucred)
-#else /* !VIMAGE */
-#define CRED_TO_VNET(cr) NULL
-#define TD_TO_VNET(td) NULL
-#define P_TO_VNET(p) NULL
-#endif /* VIMAGE */
-
-#endif /* _KERNEL */
-
-#endif /* !_SYS_VIMAGE_H_ */
OpenPOWER on IntegriCloud