summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbz <bz@FreeBSD.org>2011-04-17 16:35:16 +0000
committerbz <bz@FreeBSD.org>2011-04-17 16:35:16 +0000
commit0082d50ef6e83de5022497c14421f2dcefb71537 (patch)
tree0a36c8f3da83ba53cfb29f958f8c857f45a00fb5
parent92630a5a271c45d151f4a01f2653027de2dffe1c (diff)
downloadFreeBSD-src-0082d50ef6e83de5022497c14421f2dcefb71537.zip
FreeBSD-src-0082d50ef6e83de5022497c14421f2dcefb71537.tar.gz
Make in_proto.c dependent on either inet or inet6.
While it does not provide any functionality for IPv6, it provides the sysctl nodes for net.inet.* that a lot of functionality shared between IPv4 and IPv6 depends on. We cannot change these anymore without breaking a lot of management and tuning. In case of IPv6 only, we compile out everything but the sysctl node declarations. Reviewed by: gnn Sponsored by: The FreeBSD Foundation Sponsored by: iXsystems MFC After: 5 days
-rw-r--r--sys/conf/files2
-rw-r--r--sys/netinet/in_proto.c9
2 files changed, 10 insertions, 1 deletions
diff --git a/sys/conf/files b/sys/conf/files
index b772c78..ee9d597 100644
--- a/sys/conf/files
+++ b/sys/conf/files
@@ -2653,7 +2653,7 @@ netinet/ip_gre.c optional gre inet
netinet/ip_id.c optional inet
netinet/in_mcast.c optional inet
netinet/in_pcb.c optional inet | inet6
-netinet/in_proto.c optional inet \
+netinet/in_proto.c optional inet | inet6 \
compile-with "${NORMAL_C} -I$S/contrib/pf"
netinet/in_rmx.c optional inet
netinet/ip_divert.c optional inet ipdivert ipfirewall
diff --git a/sys/netinet/in_proto.c b/sys/netinet/in_proto.c
index 110301a..a5907ec 100644
--- a/sys/netinet/in_proto.c
+++ b/sys/netinet/in_proto.c
@@ -35,6 +35,7 @@ __FBSDID("$FreeBSD$");
#include "opt_ipx.h"
#include "opt_mrouting.h"
#include "opt_ipsec.h"
+#include "opt_inet.h"
#include "opt_inet6.h"
#include "opt_pf.h"
#include "opt_sctp.h"
@@ -50,6 +51,13 @@ __FBSDID("$FreeBSD$");
#include <sys/queue.h>
#include <sys/sysctl.h>
+/*
+ * While this file provides the domain and protocol switch tables for IPv4, it
+ * also provides the sysctl node declarations for net.inet.* often shared with
+ * IPv6 for common features or by upper layer protocols. In case of no IPv4
+ * support compile out everything but these sysctl nodes.
+ */
+#ifdef INET
#include <net/if.h>
#include <net/route.h>
#ifdef RADIX_MPATH
@@ -372,6 +380,7 @@ struct domain inetdomain = {
};
VNET_DOMAIN_SET(inet);
+#endif /* INET */
SYSCTL_NODE(_net, PF_INET, inet, CTLFLAG_RW, 0,
"Internet Family");
OpenPOWER on IntegriCloud