summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2009-08-01 19:26:27 +0000
committerrwatson <rwatson@FreeBSD.org>2009-08-01 19:26:27 +0000
commitfb9ffed6504601ed9da2c6b9a620b133c838964c (patch)
tree6dc533c8b591922258259a32957fdee2632a29ac /sys
parent2d4b24984c5d2ea2556ae2b1ef1df7f0833dc1b5 (diff)
downloadFreeBSD-src-fb9ffed6504601ed9da2c6b9a620b133c838964c.zip
FreeBSD-src-fb9ffed6504601ed9da2c6b9a620b133c838964c.tar.gz
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)
Diffstat (limited to 'sys')
-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
140 files changed, 384 insertions, 520 deletions
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