Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet/tcp_hostcache.c
Show All 12 Lines | |||||
&VNET_NAME(tcp_hostcache.prune), 0, | &VNET_NAME(tcp_hostcache.prune), 0, | ||||
"Time between purge runs"); | "Time between purge runs"); | ||||
SYSCTL_INT(_net_inet_tcp_hostcache, OID_AUTO, purge, CTLFLAG_VNET | CTLFLAG_RW, | SYSCTL_INT(_net_inet_tcp_hostcache, OID_AUTO, purge, CTLFLAG_VNET | CTLFLAG_RW, | ||||
&VNET_NAME(tcp_hostcache.purgeall), 0, | &VNET_NAME(tcp_hostcache.purgeall), 0, | ||||
"Expire all entires on next purge run"); | "Expire all entires on next purge run"); | ||||
SYSCTL_PROC(_net_inet_tcp_hostcache, OID_AUTO, list, | SYSCTL_PROC(_net_inet_tcp_hostcache, OID_AUTO, list, | ||||
CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_SKIP, 0, 0, | CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_SKIP | CTLFLAG_NEEDGIANT, | ||||
sysctl_tcp_hc_list, "A", "List of all hostcache entries"); | 0, 0, sysctl_tcp_hc_list, "A", | ||||
"List of all hostcache entries"); | |||||
SYSCTL_PROC(_net_inet_tcp_hostcache, OID_AUTO, purgenow, | SYSCTL_PROC(_net_inet_tcp_hostcache, OID_AUTO, purgenow, | ||||
CTLTYPE_INT | CTLFLAG_RW, NULL, 0, | CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | ||||
sysctl_tcp_hc_purgenow, "I", "Immediately purge all entries"); | NULL, 0, sysctl_tcp_hc_purgenow, "I", | ||||
"Immediately purge all entries"); | |||||
static MALLOC_DEFINE(M_HOSTCACHE, "hostcache", "TCP hostcache"); | static MALLOC_DEFINE(M_HOSTCACHE, "hostcache", "TCP hostcache"); | ||||
#define HOSTCACHE_HASH(ip) \ | #define HOSTCACHE_HASH(ip) \ | ||||
(((ip)->s_addr ^ ((ip)->s_addr >> 7) ^ ((ip)->s_addr >> 17)) & \ | (((ip)->s_addr ^ ((ip)->s_addr >> 7) ^ ((ip)->s_addr >> 17)) & \ | ||||
V_tcp_hostcache.hashmask) | V_tcp_hostcache.hashmask) | ||||
/* XXX: What is the recommended hash to get good entropy for IPv6 addresses? */ | /* XXX: What is the recommended hash to get good entropy for IPv6 addresses? */ | ||||
Show All 12 Lines |