summaryrefslogtreecommitdiffstats
path: root/sys/net
diff options
context:
space:
mode:
Diffstat (limited to 'sys/net')
-rw-r--r--sys/net/if.c23
-rw-r--r--sys/net/if_ethersubr.c2
-rw-r--r--sys/net/if_gif.c32
-rw-r--r--sys/net/if_loop.c5
-rw-r--r--sys/net/raw_cb.c2
-rw-r--r--sys/net/route.c2
6 files changed, 45 insertions, 21 deletions
diff --git a/sys/net/if.c b/sys/net/if.c
index eb428ff..f44262c 100644
--- a/sys/net/if.c
+++ b/sys/net/if.c
@@ -134,22 +134,21 @@ static int if_getgroupmembers(struct ifgroupreq *);
extern void nd6_setmtu(struct ifnet *);
#endif
-int if_index = 0;
-int ifqmaxlen = IFQ_MAXLEN;
+#ifdef VIMAGE_GLOBALS
struct ifnethead ifnet; /* depend on static init XXX */
struct ifgrouphead ifg_head;
+int if_index;
+static int if_indexlim;
+/* Table of ifnet/cdev by index. Locked with ifnet_lock. */
+static struct ifindex_entry *ifindex_table;
+static struct knlist ifklist;
+#endif
+
+int ifqmaxlen = IFQ_MAXLEN;
struct mtx ifnet_lock;
static if_com_alloc_t *if_com_alloc[256];
static if_com_free_t *if_com_free[256];
-static int if_indexlim = 8;
-static struct knlist ifklist;
-
-/*
- * Table of ifnet/cdev by index. Locked with ifnet_lock.
- */
-static struct ifindex_entry *ifindex_table = NULL;
-
static void filt_netdetach(struct knote *kn);
static int filt_netdev(struct knote *kn, long hint);
@@ -357,6 +356,10 @@ if_init(void *dummy __unused)
{
INIT_VNET_NET(curvnet);
+ V_if_index = 0;
+ V_ifindex_table = NULL;
+ V_if_indexlim = 8;
+
IFNET_LOCK_INIT();
TAILQ_INIT(&V_ifnet);
TAILQ_INIT(&V_ifg_head);
diff --git a/sys/net/if_ethersubr.c b/sys/net/if_ethersubr.c
index 0365d1b..70075f6 100644
--- a/sys/net/if_ethersubr.c
+++ b/sys/net/if_ethersubr.c
@@ -142,8 +142,10 @@ MALLOC_DEFINE(M_ARPCOM, "arpcom", "802.* interface internals");
int
ether_ipfw_chk(struct mbuf **m0, struct ifnet *dst,
struct ip_fw **rule, int shared);
+#ifdef VIMAGE_GLOBALS
static int ether_ipfw;
#endif
+#endif
/*
* Ethernet output routine.
diff --git a/sys/net/if_gif.c b/sys/net/if_gif.c
index db8835e..57bfaab 100644
--- a/sys/net/if_gif.c
+++ b/sys/net/if_gif.c
@@ -94,7 +94,18 @@
*/
static struct mtx gif_mtx;
static MALLOC_DEFINE(M_GIF, "gif", "Generic Tunnel Interface");
+
+#ifdef VIMAGE_GLOBALS
static LIST_HEAD(, gif_softc) gif_softc_list;
+static int max_gif_nesting;
+static int parallel_tunnels;
+#ifdef INET
+int ip_gif_ttl;
+#endif
+#ifdef INET6
+int ip6_gif_hlim;
+#endif
+#endif
void (*ng_gif_input_p)(struct ifnet *ifp, struct mbuf **mp, int af);
void (*ng_gif_input_orphan_p)(struct ifnet *ifp, struct mbuf *m, int af);
@@ -123,9 +134,6 @@ SYSCTL_NODE(_net_link, IFT_GIF, gif, CTLFLAG_RW, 0,
*/
#define MAX_GIF_NEST 1
#endif
-#ifndef VIMAGE
-static int max_gif_nesting = MAX_GIF_NEST;
-#endif
SYSCTL_V_INT(V_NET, vnet_gif, _net_link_gif, OID_AUTO, max_nesting,
CTLFLAG_RW, max_gif_nesting, 0, "Max nested tunnels");
@@ -140,11 +148,6 @@ SYSCTL_V_INT(V_NET, vnet_gif, _net_inet6_ip6, IPV6CTL_GIF_HLIM,
* pair of addresses. Some applications require this functionality so
* we allow control over this check here.
*/
-#ifdef XBONEHACK
-static int parallel_tunnels = 1;
-#else
-static int parallel_tunnels = 0;
-#endif
SYSCTL_V_INT(V_NET, vnet_gif, _net_link_gif, OID_AUTO, parallel_tunnels,
CTLFLAG_RW, parallel_tunnels, 0, "Allow parallel tunnels?");
@@ -251,12 +254,21 @@ gifmodevent(mod, type, data)
switch (type) {
case MOD_LOAD:
mtx_init(&gif_mtx, "gif_mtx", NULL, MTX_DEF);
- LIST_INIT(&V_gif_softc_list);
- if_clone_attach(&gif_cloner);
+ LIST_INIT(&V_gif_softc_list);
+ V_max_gif_nesting = MAX_GIF_NEST;
+#ifdef XBONEHACK
+ V_parallel_tunnels = 1;
+#else
+ V_parallel_tunnels = 0;
+#endif
+#ifdef INET
+ V_ip_gif_ttl = GIF_TTL;
+#endif
#ifdef INET6
V_ip6_gif_hlim = GIF_HLIM;
#endif
+ if_clone_attach(&gif_cloner);
break;
case MOD_UNLOAD:
diff --git a/sys/net/if_loop.c b/sys/net/if_loop.c
index 09bbb55..ba49d76 100644
--- a/sys/net/if_loop.c
+++ b/sys/net/if_loop.c
@@ -96,7 +96,9 @@ int looutput(struct ifnet *ifp, struct mbuf *m,
static int lo_clone_create(struct if_clone *, int, caddr_t);
static void lo_clone_destroy(struct ifnet *);
-struct ifnet *loif = NULL; /* Used externally */
+#ifdef VIMAGE_GLOBALS
+struct ifnet *loif; /* Used externally */
+#endif
IFC_SIMPLE_DECLARE(lo, 1);
@@ -142,6 +144,7 @@ loop_modevent(module_t mod, int type, void *data)
switch (type) {
case MOD_LOAD:
+ V_loif = NULL;
if_clone_attach(&lo_cloner);
break;
diff --git a/sys/net/raw_cb.c b/sys/net/raw_cb.c
index 076d2f5..b2a04ca 100644
--- a/sys/net/raw_cb.c
+++ b/sys/net/raw_cb.c
@@ -57,7 +57,9 @@
*/
struct mtx rawcb_mtx;
+#ifdef VIMAGE_GLOBALS
struct rawcb_list_head rawcb_list;
+#endif
SYSCTL_NODE(_net, OID_AUTO, raw, CTLFLAG_RW, 0, "Raw socket infrastructure");
diff --git a/sys/net/route.c b/sys/net/route.c
index 359ac8a..de45ff8 100644
--- a/sys/net/route.c
+++ b/sys/net/route.c
@@ -84,6 +84,7 @@ SYSCTL_INT(_net, OID_AUTO, add_addr_allfibs, CTLFLAG_RW,
&rt_add_addr_allfibs, 0, "");
TUNABLE_INT("net.add_addr_allfibs", &rt_add_addr_allfibs);
+#ifdef VIMAGE_GLOBALS
static struct rtstat rtstat;
/* by default only the first 'row' of tables will be accessed. */
@@ -96,6 +97,7 @@ static struct rtstat rtstat;
struct radix_node_head *rt_tables[RT_MAXFIBS][AF_MAX+1];
static int rttrash; /* routes not in table but not freed */
+#endif
static void rt_maskedcopy(struct sockaddr *,
struct sockaddr *, struct sockaddr *);
OpenPOWER on IntegriCloud