svn commit: r232921 - in head/sys: modules/netgraph/netflow
netgraph/netflow
Alexander V. Chernikov
melifaro at FreeBSD.org
Tue Mar 13 11:08:41 UTC 2012
Author: melifaro
Date: Tue Mar 13 11:08:40 2012
New Revision: 232921
URL: http://svn.freebsd.org/changeset/base/232921
Log:
Use rt_numfibs variable instead of compile-time RT_NUMFIBS.
Reviewed by: glebius (previous version)
Approved by: kib(mentor), ae(mentor)
Modified:
head/sys/modules/netgraph/netflow/Makefile
head/sys/netgraph/netflow/netflow.c
head/sys/netgraph/netflow/ng_netflow.c
head/sys/netgraph/netflow/ng_netflow.h
Modified: head/sys/modules/netgraph/netflow/Makefile
==============================================================================
--- head/sys/modules/netgraph/netflow/Makefile Tue Mar 13 10:54:14 2012 (r232920)
+++ head/sys/modules/netgraph/netflow/Makefile Tue Mar 13 11:08:40 2012 (r232921)
@@ -17,8 +17,6 @@ opt_inet6.h:
echo "#define INET6 1" > ${.TARGET}
.endif
-opt_route.h:
- echo "#define ROUTETABLES RT_MAXFIBS" > ${.TARGET}
.endif
.include <bsd.kmod.mk>
Modified: head/sys/netgraph/netflow/netflow.c
==============================================================================
--- head/sys/netgraph/netflow/netflow.c Tue Mar 13 10:54:14 2012 (r232920)
+++ head/sys/netgraph/netflow/netflow.c Tue Mar 13 11:08:40 2012 (r232921)
@@ -630,7 +630,7 @@ ng_netflow_cache_flush(priv_p priv)
free(priv->hash6, M_NETFLOW_HASH);
#endif
- for (i = 0; i < RT_NUMFIBS; i++) {
+ for (i = 0; i < priv->maxfibs; i++) {
if ((fe = priv_to_fib(priv, i)) == NULL)
continue;
Modified: head/sys/netgraph/netflow/ng_netflow.c
==============================================================================
--- head/sys/netgraph/netflow/ng_netflow.c Tue Mar 13 10:54:14 2012 (r232920)
+++ head/sys/netgraph/netflow/ng_netflow.c Tue Mar 13 11:08:40 2012 (r232921)
@@ -225,6 +225,11 @@ ng_netflow_constructor(node_p node)
/* Initialize private data */
priv = malloc(sizeof(*priv), M_NETGRAPH, M_WAITOK | M_ZERO);
+ /* Initialize fib data */
+ priv->maxfibs = rt_numfibs;
+ priv->fib_data = malloc(sizeof(fib_export_p) * priv->maxfibs,
+ M_NETGRAPH, M_WAITOK | M_ZERO);
+
/* Make node and its data point at each other */
NG_NODE_SET_PRIVATE(node, priv);
priv->node = node;
@@ -901,8 +906,10 @@ loopend:
/* Check packet FIB */
fib = M_GETFIB(m);
- if (fib >= RT_NUMFIBS) {
- CTR2(KTR_NET, "ng_netflow_rcvdata(): packet fib %d is out of range of available fibs: 0 .. %d", fib, RT_NUMFIBS);
+ if (fib >= priv->maxfibs) {
+ CTR2(KTR_NET, "ng_netflow_rcvdata(): packet fib %d is out of "
+ "range of available fibs: 0 .. %d",
+ fib, priv->maxfibs);
goto bypass;
}
@@ -973,6 +980,7 @@ ng_netflow_rmnode(node_p node)
NG_NODE_SET_PRIVATE(node, NULL);
NG_NODE_UNREF(priv->node);
+ free(priv->fib_data, M_NETGRAPH);
free(priv, M_NETGRAPH);
return (0);
Modified: head/sys/netgraph/netflow/ng_netflow.h
==============================================================================
--- head/sys/netgraph/netflow/ng_netflow.h Tue Mar 13 10:54:14 2012 (r232920)
+++ head/sys/netgraph/netflow/ng_netflow.h Tue Mar 13 11:08:40 2012 (r232921)
@@ -413,7 +413,8 @@ struct netflow {
struct flow_hash_entry *hash6;
#endif
/* Multiple FIB support */
- fib_export_p fib_data[RT_NUMFIBS]; /* array of pointers to fib-specific data */
+ fib_export_p *fib_data; /* array of pointers to per-fib data */
+ uint16_t maxfibs; /* number of allocated fibs */
/*
* RFC 3954 clause 7.3
More information about the svn-src-head
mailing list