PERFORCE change 141631 for review
Julian Elischer
julian at FreeBSD.org
Thu May 15 06:34:26 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=141631
Change 141631 by julian at julian_trafmon1 on 2008/05/15 06:34:23
work towards compiling
Affected files ...
.. //depot/projects/vimage/src/sys/net/route.c#16 edit
Differences ...
==== //depot/projects/vimage/src/sys/net/route.c#16 (text+ko) ====
@@ -126,6 +126,8 @@
*/
#define RNTORT(p) ((struct rtentry *)(p))
+static uma_zone_t rtzone; /* Routing table UMA zone. */
+
#if 0
/* default fib for tunnels to use */
u_int tunnel_fib = 0;
@@ -146,32 +148,73 @@
return (error);
}
+SYSCTL_PROC(_net, OID_AUTO, my_fibnum, CTLTYPE_INT|CTLFLAG_RD,
+ NULL, 0, &sysctl_my_fibnum, "I", "default FIB of caller");
+
#ifdef VIMAGE
static int
-rtable_idetach(unused)
- const void *unused;
+rtable_init(const void *unused)
{
- INIT_VNET_NET(curvnet);
+ int table;
+ int fam;
+ struct domain *dom;
+ INIT_VNET_NET(curvnet);
- struct domain *dom;
- for (dom = domains; dom; dom = dom->dom_next)
- if (dom->dom_rtdetach)
- dom->dom_rtdetach((void *)&V_rt_tables[dom->dom_family],
- dom->dom_rtoffset);
- return 0;
+ for (dom = domains; dom; dom = dom->dom_next) {
+ if (dom->dom_rtattach) {
+ for (table = 0; table < rt_numfibs; table++) {
+ if ( (fam = dom->dom_family) == AF_INET ||
+ table == 0) {
+ /* for now only AF_INET has > 1 table */
+ /* XXX MRT
+ * rtattach will be also called
+ * from vfs_export.c but the
+ * offset will be 0
+ * (only for AF_INET and AF_INET6
+ * which don't need it anyhow)
+ */
+ dom->dom_rtattach(
+ (void **)&V_rt_tables[table][fam],
+ dom->dom_rtoffset);
+ } else {
+ break;
+ }
+ }
+ }
+ }
+ return 0;
}
-#endif
-
-SYSCTL_PROC(_net, OID_AUTO, my_fibnum, CTLTYPE_INT|CTLFLAG_RD,
- NULL, 0, &sysctl_my_fibnum, "I", "default FIB of caller");
-
-VNET_MOD_DECLARE_STATELESS(RTABLE, rtable, rtable_init, rtable_idetach, NET)
static int
-rtable_init(const void *unused)
+rtable_idetach(const void *unused);
{
+ int table;
+ int fam;
+ struct domain *dom;
+ INIT_VNET_NET(curvnet);
+
+ struct domain *dom;
+ for (dom = domains; dom; dom = dom->dom_next) {
+ if (dom->dom_rtdetach) {
+ for (table = 0; table < rt_numfibs; table++) {
+ if ( (fam = dom->dom_family) == AF_INET ||
+ table == 0) {
+ /* for now only AF_INET has > 1 table */
+ dom->dom_rtdetach(
+ (void **)&V_rt_tables[table][fam],
+ dom->dom_rtoffset);
+ } else {
+ break;
+ }
+ }
+ }
+ }
+ return 0;
}
+VNET_MOD_DECLARE_STATELESS(RTABLE, rtable, rtable_init, rtable_idetach, NET);
+#endif
+
static void
route_init(void)
{
More information about the p4-projects
mailing list