Move the kernel option FLOWTABLE chacking from the header file to the

actual implementation.
Remove the accessor functions for the compiled out case, just returning
"unavail" values. Remove the kernel conditional from the header file as
it is no longer needed, only leaving the externs.
Hide the improperly virtualized SYSCTL/TUNABLE for the flowtable size
under the kernel option as well.

Reviewed by:	rwatson
This commit is contained in:
Bjoern A. Zeeb 2009-06-12 20:46:36 +00:00
parent 4650ad4cc0
commit 53be8fca00
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=194076
3 changed files with 8 additions and 18 deletions

View File

@ -41,7 +41,6 @@ struct flowtable;
extern struct flowtable *ip_ft;
extern struct flowtable *ip_forward_ft;
#ifdef FLOWTABLE
struct flowtable *flowtable_alloc(int nentry, int flags);
/*
@ -52,22 +51,6 @@ struct flowtable *flowtable_alloc(int nentry, int flags);
int flowtable_lookup(struct flowtable *ft, struct mbuf *m,
struct route *ro);
#else
static __inline struct flowtable *
flowtable_alloc(int nentry, int flags)
{
return (NULL);
}
static __inline int
flowtable_lookup(struct flowtable *ft, struct mbuf *m,
struct route *ro)
{
return (ENOTSUP);
}
#endif
#endif
#endif

View File

@ -206,16 +206,19 @@ SYSCTL_INT(_net_inet_ip, IPCTL_DEFMTU, mtu, CTLFLAG_RW,
SYSCTL_V_INT(V_NET, vnet_inet, _net_inet_ip, OID_AUTO, stealth, CTLFLAG_RW,
ipstealth, 0, "IP stealth mode, no TTL decrementation on forwarding");
#endif
#ifdef FLOWTABLE
static int ip_output_flowtable_size = 2048;
TUNABLE_INT("net.inet.ip.output_flowtable_size", &ip_output_flowtable_size);
SYSCTL_V_INT(V_NET, vnet_inet, _net_inet_ip, OID_AUTO, output_flowtable_size,
CTLFLAG_RDTUN, ip_output_flowtable_size, 2048,
"number of entries in the per-cpu output flow caches");
struct flowtable *ip_ft;
#endif
#ifdef VIMAGE_GLOBALS
int fw_one_pass;
#endif
struct flowtable *ip_ft;
static void ip_freef(struct ipqhead *, struct ipq *);
@ -374,7 +377,9 @@ ip_init(void)
/* Initialize various other remaining things. */
IPQ_LOCK_INIT();
netisr_register(&ip_nh);
#ifdef FLOWTABLE
ip_ft = flowtable_alloc(ip_output_flowtable_size, FL_PCPU);
#endif
}
void

View File

@ -155,6 +155,7 @@ ip_output(struct mbuf *m, struct mbuf *opt, struct route *ro, int flags,
ro = &iproute;
bzero(ro, sizeof (*ro));
#ifdef FLOWTABLE
/*
* The flow table returns route entries valid for up to 30
* seconds; we rely on the remainder of ip_output() taking no
@ -163,6 +164,7 @@ ip_output(struct mbuf *m, struct mbuf *opt, struct route *ro, int flags,
*/
if (flowtable_lookup(ip_ft, m, ro) == 0)
nortfree = 1;
#endif
}
if (opt) {