aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Watson <rwatson@FreeBSD.org>2009-08-01 19:26:27 +0000
committerRobert Watson <rwatson@FreeBSD.org>2009-08-01 19:26:27 +0000
commit530c006014fae95c670f4b699fef8bb93034bc6d (patch)
tree6dc533c8b591922258259a32957fdee2632a29ac
parent2df76c160ba5c04ece8efeff418362c9a1adc9f5 (diff)
downloadsrc-530c006014fae95c670f4b699fef8bb93034bc6d.tar.gz
src-530c006014fae95c670f4b699fef8bb93034bc6d.zip
Merge the remainder of kern_vimage.c and vimage.h into vnet.c and
vnet.h, we now use jails (rather than vimages) as the abstraction for virtualization management, and what remained was specific to virtual network stacks. Minor cleanups are done in the process, and comments updated to reflect these changes. Reviewed by: bz Approved by: re (vimage blanket)
Notes
Notes: svn path=/head/; revision=196019
-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 e27064e65bf8..9bed51f280be 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 13f7cf4c664f..1a02cad68d30 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 927a856f0df9..c21b183ae599 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 5bca38137c0c..dfa80d5ab619 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 a8b09451f1e5..11dc6d5041b1 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 0c48b917fb23..d3860b0b2b21 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 ec62f718ef03..afb3cfe776c9 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 170fe02292cc..0769151a1c51 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 348128f4daf0..32107e57d369 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 3cd09d155ffb..ea192543fdb7 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 1480ed0c370f..cac56efcec46 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 d59930f2db9d..79cef36cdae9 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 70566404699c..a78a5452532e 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 36331f365a29..514b7c3db149 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 9314bf170f4b..07f529578735 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 1bf2d086140c..535249751d4f 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 1a95c11902a8..99209a89c83c 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 8fd1e970d7a0..cf42ea0c94ae 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 1cbaaff79e43..d528b304f839 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 f05c84e6e22e..f320316be7db 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 03612d7ab46f..cf5dfd8b856e 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 73cee6c15b00..9387ba8ea97b 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 53962402f453..5df26bbf0895 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 535ea810aead..bb5b6a0f3ad6 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 cd88538f7e38..e7e41239f956 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 9c86b75e6f35..000000000000
--- 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 c29ecc6445f6..717ef3e8ccf1 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 dd0602ee889f..257e9fae775e 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 29b400ccad03..2f4dd92736a3 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 21ee53da5dde..9717679eb433 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 cfaf47fab409..e002b2a90d25 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 5a2ab19160ee..08c9a5eee26b 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 9349be44b767..3e65113c2d56 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 1fe2bbe69b8d..4078ae9138e1 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 02796cbcf6c0..3ac7db05c14b 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 945bc5f2e661..ced953a52f0f 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 95c07b731d0c..0dd20fb36108 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 c0b2d671759a..7a5fca916d7f 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 7b62734d14c7..a49c5dc5b236 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 e299d972bb2d..00f99fdfa5c0 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 545d9ee1a481..bac204449230 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 cbca740ed5db..ca8088362a96 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 3d75dd46e42e..6abc8071e021 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 4ed2a9ef13f5..2b283d69e3d7 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 b5da1ea44360..a1b574f9f371 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 043c808f7f0c..056b2f93a353 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 c0018efae9ba..c334ac7f1a44 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 2c325eea9bdd..3f0faafa3d6c 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 ddc56629b2aa..5c082c4926a6 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 a9a1c62d0810..37b5e70302c1 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 ac7287006d12..04c2c0dc6448 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 b2db8c153aec..c8da579834e3 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 30a526fbbeab..c430d973d84a 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 0759e427483a..2de3d692163a 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 544c3b643629..fc76c924c66e 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 88c980703065..645cf7e54eb8 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 eed353e644b6..a34270a3eea6 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 08ee21a8d871..47dc7ac03b46 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 1386409f2d8c..a38f12ac2e09 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 51a86fdda5dd..22800fb6c768 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 7296aa153f14..4b7d7c0a651b 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 b618bb48dc93..65707b20914c 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 d998f1eb70cd..e42b5a547f03 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 ad9668e95569..ce23683c59b7 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 85fc7fc5ab9f..fab06226610a 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 de2ded3e2946..ccff05a92d04 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 49cba258080d..209ac77fbd35 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 b12318a1a4c9..5f5e41096ec1 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 91a7585bdc5e..2f834fc6c156 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 e64b21fd08c8..9d1c13afe867 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 44796def2bb4..f9f6381f3fc6 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 63a712bde8f0..15d38b191b5c 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 fe2c9ee3bca4..3872ddefe13b 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 6efa7d852b1c..d0e139751e9a 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 5d080ba867ef..525afefe1de8 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 bf3c7132e4a8..f1f5adef3abf 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 d3f9563d3ce5..6516277d0c40 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 00c1ea895b8b..18e446f8fc0f 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 6abf76f3f67f..691031014846 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 1c83706dc324..f53f787ed875 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 57a12921598c..b7906e32b82d 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 f95cf0da04d6..05de6d8a00f9 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 f0d4a5fc6137..0eb4673a0387 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 b8957f42e421..39c71b06c060 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 5c4b441f546e..f95b3a04d35f 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 220bf234b498..bf2a5f8bb53c 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 9274ccdc153e..da6593c46ceb 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 ac7cc44fee21..cd6a1cfd7406 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 a763855d5396..e28d5ca64030 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 517ac8e58bc8..3df2ec3562df 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 46a73bf94cb9..f3ccb634d7b2 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 2d3d92290f2f..acbc860a26ed 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 2a14d14ae9c0..22ee3d7bd72e 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 94cf5706bd88..899a37c7fa34 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 c74107e74a6a..ee33ea2de738 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 fa844b69364a..8115b2b8e16a 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 985eee81bdba..06fb50269faa 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 e29283bad3cf..622c508f381a 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 23e2570fa78a..16c4f676ebbb 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 3050324a2e7b..7f5d159ead23 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 a6ac5c6c0d20..96626fb3fa6c 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 dfd05dcff486..1e58cd7b134d 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 54fb9960dc20..520fc949ed38 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 20b5e9d7a1fa..54d3a58c5090 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 ee1f4a2a3931..8900f7d08b63 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 4a81b4dfde67..bdf7786c9c53 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 2a1f8d91efd0..c099da70e89e 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 e51506b3c159..a481706f53dc 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 5d34b409eb09..1fc54c62793a 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 67686a43524a..eedebb91b485 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 924e15d14d1c..d40a9e351019 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 8c4094d9d25b..c31743f0f66c 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 dd7c19b85719..1ae04c3f1128 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 f51c3bf85368..f087faef5390 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 896d67c707af..7ba4977d919c 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 af790424c8cf..019d57fea6b5 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 23d6f7f52285..48d91628c29b 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 09e4bd6f75fa..54960620d284 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 c208ca77b6b8..c48ac7b1594a 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 e23dea3cc1cb..172a8d6eb8a0 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 3584b17e39ae..48635c5b5485 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 37cea51ab71e..a74bea5a0cbb 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 5ebe3079e8e6..9d1f0d6e8cbb 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 01d578455dde..108742d55b65 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 9628960cfb76..1311437cbc6d 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 a1e69211dad3..cced5e304acd 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 ab173a89c042..552e4883b22b 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 07ae90edeb36..4b552c8139c6 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 78f023a67f2b..e449e8514929 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 1b92881e25fb..97f97142d6b2 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 f689fb2c0f61..8e8a1e394fd4 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 e90396b1f7a2..99dce21b2f25 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 a8fbd5e9ebb5..143b600bb4f7 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 658c92cf377a..d77f2463d079 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 e45a0370d1f5..135be9d1ffe7 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 3536e53e7bc2..4049154ac3ee 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 891e16ce8505..c9669b16bc2a 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 1fad954681ad..a5edb15dcf2c 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 ea6c02b4cf94..e1096bed2a01 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 e3e758bef66f..2f91b9d17994 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 c37eb340cabc..165849b399fa 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 32084b7cef29..000000000000
--- 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_ */