Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 5 Sep 2003 09:54:13 -0700 (PDT)
From:      Sam Leffler <sam@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 37579 for review
Message-ID:  <200309051654.h85GsDX9041665@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=37579

Change 37579 by sam@sam_ebb on 2003/09/05 09:53:24

	o add compatibility sysctl's under !BURN_BRIDGES
	o change version string to use RCS keywords and to be
	  visible in the mib
	o update comments to reflect revised mib naming

Affected files ...

.. //depot/projects/netperf/sys/net/bridge.c#5 edit

Differences ...

==== //depot/projects/netperf/sys/net/bridge.c#5 (text+ko) ====

@@ -35,16 +35,16 @@
  * identified by a "cluster-id" which is a number in the range 1..2^16-1.
  *
  * Bridging is enabled by the sysctl variable
- *	net.link.ether.bridge
+ *	net.link.ether.bridge.enable
  * the grouping of interfaces into clusters is done with
- *	net.link.ether.bridge_cfg
+ *	net.link.ether.bridge.config
  * containing a list of interfaces each optionally followed by
  * a colon and the cluster it belongs to (1 is the default).
  * Separators can be * spaces, commas or tabs, e.g.
- *	net.link.ether.bridge_cfg="fxp0:2 fxp1:2 dc0 dc1:1"
+ *	net.link.ether.bridge.config="fxp0:2 fxp1:2 dc0 dc1:1"
  * Optionally bridged packets can be passed through the firewall,
  * this is controlled by the variable
- *	net.link.ether.bridge_ipfw
+ *	net.link.ether.bridge.ipfw
  *
  * For each cluster there is a descriptor (cluster_softc) storing
  * the following data structures:
@@ -193,6 +193,9 @@
 SYSCTL_DECL(_net_link_ether);
 SYSCTL_NODE(_net_link_ether, OID_AUTO, bridge, CTLFLAG_RD, 0,
 	"Bridge parameters");
+static char bridge_version[] = "$Revision$ $Date$";
+SYSCTL_STRING(_net_link_ether_bridge, OID_AUTO, version, CTLFLAG_RD,
+	bridge_version, 0, "software version");
 
 #define BRIDGE_DEBUG
 #ifdef BRIDGE_DEBUG
@@ -279,8 +282,7 @@
  * System initialization
  */
 static struct bdg_stats bdg_stats ;
-/* NB: leave at net.link.ether so netstat continues to work */
-SYSCTL_STRUCT(_net_link_ether, PF_BDG, bdgstats, CTLFLAG_RD,
+SYSCTL_STRUCT(_net_link_ether_bridge, OID_AUTO, stats, CTLFLAG_RD,
 	&bdg_stats, bdg_stats, "bridge statistics");
 
 static struct callout bdg_callout;
@@ -609,6 +611,38 @@
 SYSCTL_PROC(_net_link_ether_bridge, OID_AUTO, refresh, CTLTYPE_INT|CTLFLAG_WR,
 	    NULL, 0, &sysctl_refresh, "I", "iface refresh");
 
+#ifndef BURN_BRIDGES
+#define SYSCTL_OID_COMPAT(parent, nbr, name, kind, a1, a2, handler, fmt, descr)\
+	static struct sysctl_oid sysctl__##parent##_##name##_compat = {	 \
+		&sysctl_##parent##_children, { 0 },			 \
+		nbr, kind, a1, a2, #name, handler, fmt, 0, descr };	 \
+	DATA_SET(sysctl_set, sysctl__##parent##_##name##_compat)
+#define SYSCTL_INT_COMPAT(parent, nbr, name, access, ptr, val, descr)	 \
+	SYSCTL_OID_COMPAT(parent, nbr, name, CTLTYPE_INT|(access),	 \
+		ptr, val, sysctl_handle_int, "I", descr)
+#define SYSCTL_STRUCT_COMPAT(parent, nbr, name, access, ptr, type, descr)\
+	SYSCTL_OID_COMPAT(parent, nbr, name, CTLTYPE_OPAQUE|(access),	 \
+		ptr, sizeof(struct type), sysctl_handle_opaque,		 \
+		"S," #type, descr)
+#define SYSCTL_PROC_COMPAT(parent, nbr, name, access, ptr, arg, handler, fmt, descr) \
+	SYSCTL_OID_COMPAT(parent, nbr, name, (access),			 \
+		ptr, arg, handler, fmt, descr)
+
+SYSCTL_INT_COMPAT(_net_link_ether, OID_AUTO, bridge_ipf, CTLFLAG_RW,
+	    &bdg_ipf, 0,"Pass bridged pkts through IPFilter");
+SYSCTL_INT_COMPAT(_net_link_ether, OID_AUTO, bridge_ipfw, CTLFLAG_RW,
+	    &bdg_ipfw,0,"Pass bridged pkts through firewall");
+SYSCTL_STRUCT_COMPAT(_net_link_ether, PF_BDG, bdgstats, CTLFLAG_RD,
+	&bdg_stats, bdg_stats, "bridge statistics");
+SYSCTL_PROC_COMPAT(_net_link_ether, OID_AUTO, bridge_cfg, 
+	    CTLTYPE_STRING|CTLFLAG_RW,
+	    &bridge_cfg, sizeof(bridge_cfg), &sysctl_bdg_cfg, "A",
+	    "Bridge configuration");
+SYSCTL_PROC_COMPAT(_net_link_ether, OID_AUTO, bridge_refresh,
+	    CTLTYPE_INT|CTLFLAG_WR,
+	    NULL, 0, &sysctl_refresh, "I", "iface refresh");
+#endif
+
 static int bdg_loops;
 static int bdg_slowtimer = 0;
 static int bdg_age_index = 0;	/* index of table position to age */
@@ -1151,7 +1185,7 @@
 bdginit(void)
 {
     if (bootverbose)
-	    printf("BRIDGE 020214 loaded\n");
+	    printf("BRIDGE %s loaded\n", bridge_version);
 
     ifp2sc = malloc(BDG_MAX_PORTS * sizeof(struct bdg_softc),
 		M_IFADDR, M_WAITOK | M_ZERO );



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