Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet6/in6_proto.c
Show First 20 Lines • Show All 457 Lines • ▼ Show 20 Lines | sysctl_ip6_tempvltime(SYSCTL_HANDLER_ARGS) | ||||
if (error != 0 || !req->newptr) | if (error != 0 || !req->newptr) | ||||
return (error); | return (error); | ||||
if (val < V_ip6_temp_preferred_lifetime) | if (val < V_ip6_temp_preferred_lifetime) | ||||
return (EINVAL); | return (EINVAL); | ||||
V_ip6_temp_valid_lifetime = val; | V_ip6_temp_valid_lifetime = val; | ||||
return (0); | return (0); | ||||
} | } | ||||
static int | |||||
icmp6_copyout_ver(SYSCTL_HANDLER_ARGS, void *new_data, size_t new_datalen) | |||||
{ | |||||
size_t sz = new_datalen; | |||||
#define ICMP6STAT_VER1_DIFF sizeof(uint64_t) * (33 + 4) | |||||
/* Reminder to change the code here when changing version */ | |||||
_Static_assert(ICMP6STAT_VER == 1, "icmp6_copyout_ver() requires fixing"); | |||||
uint32_t version = sysctl_get_oid_version(oidp, arg1, arg2, req); | |||||
switch(version) { | |||||
case ICMP6STAT_VER: | |||||
break; | |||||
case 0: | |||||
sz -= ICMP6STAT_VER1_DIFF; | |||||
break; | |||||
default: | |||||
return (ENOTSUP); | |||||
} | |||||
printf("COPYOUT STRUCT %p len %lu REQUESTED VER %u sz %lu RES: %lu\n", | |||||
new_data, new_datalen, version, req->oldlen, sz); | |||||
return (SYSCTL_OUT(req, new_data, sz)); | |||||
} | |||||
SYSCTL_INT(_net_inet6_ip6, IPV6CTL_FORWARDING, forwarding, | SYSCTL_INT(_net_inet6_ip6, IPV6CTL_FORWARDING, forwarding, | ||||
CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(ip6_forwarding), 0, | CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(ip6_forwarding), 0, | ||||
"Enable forwarding of IPv6 packets between interfaces"); | "Enable forwarding of IPv6 packets between interfaces"); | ||||
SYSCTL_INT(_net_inet6_ip6, IPV6CTL_SENDREDIRECTS, redirect, | SYSCTL_INT(_net_inet6_ip6, IPV6CTL_SENDREDIRECTS, redirect, | ||||
CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(ip6_sendredirects), 0, | CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(ip6_sendredirects), 0, | ||||
"Send ICMPv6 redirects for unforwardable IPv6 packets"); | "Send ICMPv6 redirects for unforwardable IPv6 packets"); | ||||
SYSCTL_INT(_net_inet6_ip6, IPV6CTL_DEFHLIM, hlim, | SYSCTL_INT(_net_inet6_ip6, IPV6CTL_DEFHLIM, hlim, | ||||
CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(ip6_defhlim), 0, | CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(ip6_defhlim), 0, | ||||
▲ Show 20 Lines • Show All 81 Lines • ▼ Show 20 Lines | |||||
/* net.inet6.icmp6 */ | /* net.inet6.icmp6 */ | ||||
SYSCTL_INT(_net_inet6_icmp6, ICMPV6CTL_REDIRACCEPT, rediraccept, | SYSCTL_INT(_net_inet6_icmp6, ICMPV6CTL_REDIRACCEPT, rediraccept, | ||||
CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(icmp6_rediraccept), 0, | CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(icmp6_rediraccept), 0, | ||||
"Accept ICMPv6 redirect messages"); | "Accept ICMPv6 redirect messages"); | ||||
SYSCTL_INT(_net_inet6_icmp6, ICMPV6CTL_REDIRTIMEOUT, redirtimeout, | SYSCTL_INT(_net_inet6_icmp6, ICMPV6CTL_REDIRTIMEOUT, redirtimeout, | ||||
CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(icmp6_redirtimeout), 0, | CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(icmp6_redirtimeout), 0, | ||||
"Delay in seconds before expiring redirect route"); | "Delay in seconds before expiring redirect route"); | ||||
SYSCTL_VNET_PCPUSTAT(_net_inet6_icmp6, ICMPV6CTL_STATS, stats, | SYSCTL_VNET_PCPUSTAT_VER(_net_inet6_icmp6, ICMPV6CTL_STATS, stats, | ||||
struct icmp6stat, icmp6stat, | struct icmp6stat, icmp6stat, 0, ICMP6STAT_VER, icmp6_copyout_ver, | ||||
"ICMPv6 statistics (struct icmp6stat, netinet/icmp6.h)"); | "ICMPv6 statistics (struct icmp6stat, netinet/icmp6.h)"); | ||||
SYSCTL_INT(_net_inet6_icmp6, ICMPV6CTL_ND6_PRUNE, nd6_prune, | SYSCTL_INT(_net_inet6_icmp6, ICMPV6CTL_ND6_PRUNE, nd6_prune, | ||||
CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(nd6_prune), 0, | CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(nd6_prune), 0, | ||||
"Frequency in seconds of checks for expired prefixes and routers"); | "Frequency in seconds of checks for expired prefixes and routers"); | ||||
SYSCTL_INT(_net_inet6_icmp6, ICMPV6CTL_ND6_DELAY, nd6_delay, | SYSCTL_INT(_net_inet6_icmp6, ICMPV6CTL_ND6_DELAY, nd6_delay, | ||||
CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(nd6_delay), 0, | CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(nd6_delay), 0, | ||||
"Delay in seconds before probing for reachability"); | "Delay in seconds before probing for reachability"); | ||||
SYSCTL_INT(_net_inet6_icmp6, ICMPV6CTL_ND6_UMAXTRIES, nd6_umaxtries, | SYSCTL_INT(_net_inet6_icmp6, ICMPV6CTL_ND6_UMAXTRIES, nd6_umaxtries, | ||||
Show All 36 Lines |