| version 1.94.2.2, 2007/03/12 05:59:57 |
version 1.94.2.3, 2007/03/24 14:56:12 |
|
|
| |
|
| ip6_init2((void *)0); |
ip6_init2((void *)0); |
| #ifdef GATEWAY |
#ifdef GATEWAY |
| ip6flow_init(); |
ip6flow_init(ip6_hashsize); |
| #endif |
#endif |
| |
|
| #ifdef PFIL_HOOKS |
#ifdef PFIL_HOOKS |
|
|
| * we could reduce this value, call ip6flow_reap(); |
* we could reduce this value, call ip6flow_reap(); |
| */ |
*/ |
| static int |
static int |
| sysctl_net_inet_ip6_maxflows(SYSCTLFN_ARGS) |
sysctl_net_inet6_ip6_maxflows(SYSCTLFN_ARGS) |
| { |
{ |
| int s; |
int s; |
| |
|
| s = sysctl_lookup(SYSCTLFN_CALL(rnode)); |
s = sysctl_lookup(SYSCTLFN_CALL(rnode)); |
| if (s) |
if (s || newp == NULL) |
| return (s); |
return (s); |
| |
|
| s = splsoftnet(); |
s = splsoftnet(); |
| Line 1625 sysctl_net_inet_ip6_maxflows(SYSCTLFN_AR |
|
| Line 1625 sysctl_net_inet_ip6_maxflows(SYSCTLFN_AR |
|
| |
|
| return (0); |
return (0); |
| } |
} |
| |
|
| |
static int |
| |
sysctl_net_inet6_ip6_hashsize(SYSCTLFN_ARGS) |
| |
{ |
| |
int error, tmp; |
| |
struct sysctlnode node; |
| |
|
| |
node = *rnode; |
| |
tmp = ip6_hashsize; |
| |
node.sysctl_data = &tmp; |
| |
error = sysctl_lookup(SYSCTLFN_CALL(&node)); |
| |
if (error || newp == NULL) |
| |
return (error); |
| |
|
| |
if ((tmp & (tmp - 1)) == 0 && tmp != 0) { |
| |
/* |
| |
* Can only fail due to malloc() |
| |
*/ |
| |
if (ip6flow_invalidate_all(tmp)) |
| |
return ENOMEM; |
| |
} else { |
| |
/* |
| |
* EINVAL if not a power of 2 |
| |
*/ |
| |
return EINVAL; |
| |
} |
| |
|
| |
return (0); |
| |
} |
| #endif /* GATEWAY */ |
#endif /* GATEWAY */ |
| |
|
| /* |
/* |
| Line 1915 SYSCTL_SETUP(sysctl_net_inet6_ip6_setup, |
|
| Line 1944 SYSCTL_SETUP(sysctl_net_inet6_ip6_setup, |
|
| CTLFLAG_PERMANENT|CTLFLAG_READWRITE, |
CTLFLAG_PERMANENT|CTLFLAG_READWRITE, |
| CTLTYPE_INT, "maxflows", |
CTLTYPE_INT, "maxflows", |
| SYSCTL_DESCR("Number of flows for fast forwarding (IPv6)"), |
SYSCTL_DESCR("Number of flows for fast forwarding (IPv6)"), |
| sysctl_net_inet_ip6_maxflows, 0, &ip6_maxflows, 0, |
sysctl_net_inet6_ip6_maxflows, 0, &ip6_maxflows, 0, |
| |
CTL_NET, PF_INET6, IPPROTO_IPV6, |
| |
CTL_CREATE, CTL_EOL); |
| |
sysctl_createv(clog, 0, NULL, NULL, |
| |
CTLFLAG_PERMANENT|CTLFLAG_READWRITE, |
| |
CTLTYPE_INT, "hashsize", |
| |
SYSCTL_DESCR("Size of hash table for fast forwarding (IPv6)"), |
| |
sysctl_net_inet6_ip6_hashsize, 0, &ip6_hashsize, 0, |
| CTL_NET, PF_INET6, IPPROTO_IPV6, |
CTL_NET, PF_INET6, IPPROTO_IPV6, |
| CTL_CREATE, CTL_EOL); |
CTL_CREATE, CTL_EOL); |
| #endif |
#endif |