Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 6 May 2012 20:26:22 +0000 (UTC)
From:      "Bjoern A. Zeeb" <bz@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org
Subject:   svn commit: r235103 - stable/9/sys/net
Message-ID:  <201205062026.q46KQMEu030383@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bz
Date: Sun May  6 20:26:22 2012
New Revision: 235103
URL: http://svn.freebsd.org/changeset/base/235103

Log:
  MFC r233113:
  
   Hide kernel option ROUTETABLES evaluations in the implementation
   rather than the header file.  With this also move RT_MAXFIBS and
   RT_NUMFIBS into the implemantion to avoid further usage in other
   code. rt_numfibs is all that should be needed.
  
   This allows users to change the number of FIBs from 1..RT_MAXFIBS(16)
   dynamically using the tunable without the need to change the kernel
   config for the maximum anymore.  This means that the multi-FIB
   feature is now fully available with GENERIC kernels.
   The kernel option ROUTETABLES can still be used to set the default
   numbers of FIBs in absence of the tunable.

Modified:
  stable/9/sys/net/route.c
  stable/9/sys/net/route.h
Directory Properties:
  stable/9/sys/   (props changed)

Modified: stable/9/sys/net/route.c
==============================================================================
--- stable/9/sys/net/route.c	Sun May  6 19:34:55 2012	(r235102)
+++ stable/9/sys/net/route.c	Sun May  6 20:26:22 2012	(r235103)
@@ -68,6 +68,24 @@
 
 #include <vm/uma.h>
 
+/* We use 4 bits in the mbuf flags, thus we are limited to 16 FIBS. */
+#define	RT_MAXFIBS	16
+
+/* Kernel config default option. */
+#ifdef ROUTETABLES
+#if ROUTETABLES <= 0
+#error "ROUTETABLES defined too low"
+#endif
+#if ROUTETABLES > RT_MAXFIBS
+#error "ROUTETABLES defined too big"
+#endif
+#define	RT_NUMFIBS	ROUTETABLES
+#endif /* ROUTETABLES */
+/* Initialize to default if not otherwise set. */
+#ifndef	RT_NUMFIBS
+#define	RT_NUMFIBS	1
+#endif
+
 u_int rt_numfibs = RT_NUMFIBS;
 SYSCTL_UINT(_net, OID_AUTO, fibs, CTLFLAG_RD, &rt_numfibs, 0, "");
 /*

Modified: stable/9/sys/net/route.h
==============================================================================
--- stable/9/sys/net/route.h	Sun May  6 19:34:55 2012	(r235102)
+++ stable/9/sys/net/route.h	Sun May  6 20:26:22 2012	(r235103)
@@ -90,27 +90,6 @@ struct rt_metrics {
 #define	RTM_RTTUNIT	1000000	/* units for rtt, rttvar, as units per sec */
 #define	RTTTOPRHZ(r)	((r) / (RTM_RTTUNIT / PR_SLOWHZ))
 
-/* MRT compile-time constants */
-#ifdef _KERNEL
- #ifndef ROUTETABLES
-  #define RT_NUMFIBS 1
-  #define RT_MAXFIBS 1
- #else
-  /* while we use 4 bits in the mbuf flags, we are limited to 16 */
-  #define RT_MAXFIBS 16
-  #if ROUTETABLES > RT_MAXFIBS
-   #define RT_NUMFIBS RT_MAXFIBS
-   #error "ROUTETABLES defined too big"
-  #else
-   #if ROUTETABLES == 0
-    #define RT_NUMFIBS 1
-   #else
-    #define RT_NUMFIBS ROUTETABLES
-   #endif
-  #endif
- #endif
-#endif
-
 #define	RT_DEFAULT_FIB	0	/* Explicitly mark fib=0 restricted cases */
 extern u_int rt_numfibs;	/* number fo usable routing tables */
 /*



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201205062026.q46KQMEu030383>