Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet/ip_input.c
Show All 12 Lines | |||||
error = sysctl_handle_int(oidp, &qlimit, 0, req); | error = sysctl_handle_int(oidp, &qlimit, 0, req); | ||||
if (error || !req->newptr) | if (error || !req->newptr) | ||||
return (error); | return (error); | ||||
if (qlimit < 1) | if (qlimit < 1) | ||||
return (EINVAL); | return (EINVAL); | ||||
return (netisr_setqlimit(&ip_nh, qlimit)); | return (netisr_setqlimit(&ip_nh, qlimit)); | ||||
} | } | ||||
SYSCTL_PROC(_net_inet_ip, IPCTL_INTRQMAXLEN, intr_queue_maxlen, | SYSCTL_PROC(_net_inet_ip, IPCTL_INTRQMAXLEN, intr_queue_maxlen, | ||||
CTLTYPE_INT|CTLFLAG_RW, 0, 0, sysctl_netinet_intr_queue_maxlen, "I", | CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | ||||
0, 0, sysctl_netinet_intr_queue_maxlen, "I", | |||||
"Maximum size of the IP input queue"); | "Maximum size of the IP input queue"); | ||||
static int | static int | ||||
sysctl_netinet_intr_queue_drops(SYSCTL_HANDLER_ARGS) | sysctl_netinet_intr_queue_drops(SYSCTL_HANDLER_ARGS) | ||||
{ | { | ||||
u_int64_t qdrops_long; | u_int64_t qdrops_long; | ||||
int error, qdrops; | int error, qdrops; | ||||
netisr_getqdrops(&ip_nh, &qdrops_long); | netisr_getqdrops(&ip_nh, &qdrops_long); | ||||
qdrops = qdrops_long; | qdrops = qdrops_long; | ||||
error = sysctl_handle_int(oidp, &qdrops, 0, req); | error = sysctl_handle_int(oidp, &qdrops, 0, req); | ||||
if (error || !req->newptr) | if (error || !req->newptr) | ||||
return (error); | return (error); | ||||
if (qdrops != 0) | if (qdrops != 0) | ||||
return (EINVAL); | return (EINVAL); | ||||
netisr_clearqdrops(&ip_nh); | netisr_clearqdrops(&ip_nh); | ||||
return (0); | return (0); | ||||
} | } | ||||
SYSCTL_PROC(_net_inet_ip, IPCTL_INTRQDROPS, intr_queue_drops, | SYSCTL_PROC(_net_inet_ip, IPCTL_INTRQDROPS, intr_queue_drops, | ||||
CTLTYPE_INT|CTLFLAG_RD, 0, 0, sysctl_netinet_intr_queue_drops, "I", | CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, | ||||
0, 0, sysctl_netinet_intr_queue_drops, "I", | |||||
"Number of packets dropped from the IP input queue"); | "Number of packets dropped from the IP input queue"); | ||||
#ifdef RSS | #ifdef RSS | ||||
static int | static int | ||||
sysctl_netinet_intr_direct_queue_maxlen(SYSCTL_HANDLER_ARGS) | sysctl_netinet_intr_direct_queue_maxlen(SYSCTL_HANDLER_ARGS) | ||||
{ | { | ||||
int error, qlimit; | int error, qlimit; | ||||
netisr_getqlimit(&ip_direct_nh, &qlimit); | netisr_getqlimit(&ip_direct_nh, &qlimit); | ||||
error = sysctl_handle_int(oidp, &qlimit, 0, req); | error = sysctl_handle_int(oidp, &qlimit, 0, req); | ||||
if (error || !req->newptr) | if (error || !req->newptr) | ||||
return (error); | return (error); | ||||
if (qlimit < 1) | if (qlimit < 1) | ||||
return (EINVAL); | return (EINVAL); | ||||
return (netisr_setqlimit(&ip_direct_nh, qlimit)); | return (netisr_setqlimit(&ip_direct_nh, qlimit)); | ||||
} | } | ||||
SYSCTL_PROC(_net_inet_ip, IPCTL_INTRDQMAXLEN, intr_direct_queue_maxlen, | SYSCTL_PROC(_net_inet_ip, IPCTL_INTRDQMAXLEN, intr_direct_queue_maxlen, | ||||
CTLTYPE_INT|CTLFLAG_RW, 0, 0, sysctl_netinet_intr_direct_queue_maxlen, | CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | ||||
0, 0, sysctl_netinet_intr_direct_queue_maxlen, | |||||
"I", "Maximum size of the IP direct input queue"); | "I", "Maximum size of the IP direct input queue"); | ||||
static int | static int | ||||
sysctl_netinet_intr_direct_queue_drops(SYSCTL_HANDLER_ARGS) | sysctl_netinet_intr_direct_queue_drops(SYSCTL_HANDLER_ARGS) | ||||
{ | { | ||||
u_int64_t qdrops_long; | u_int64_t qdrops_long; | ||||
int error, qdrops; | int error, qdrops; | ||||
netisr_getqdrops(&ip_direct_nh, &qdrops_long); | netisr_getqdrops(&ip_direct_nh, &qdrops_long); | ||||
qdrops = qdrops_long; | qdrops = qdrops_long; | ||||
error = sysctl_handle_int(oidp, &qdrops, 0, req); | error = sysctl_handle_int(oidp, &qdrops, 0, req); | ||||
if (error || !req->newptr) | if (error || !req->newptr) | ||||
return (error); | return (error); | ||||
if (qdrops != 0) | if (qdrops != 0) | ||||
return (EINVAL); | return (EINVAL); | ||||
netisr_clearqdrops(&ip_direct_nh); | netisr_clearqdrops(&ip_direct_nh); | ||||
return (0); | return (0); | ||||
} | } | ||||
SYSCTL_PROC(_net_inet_ip, IPCTL_INTRDQDROPS, intr_direct_queue_drops, | SYSCTL_PROC(_net_inet_ip, IPCTL_INTRDQDROPS, intr_direct_queue_drops, | ||||
CTLTYPE_INT|CTLFLAG_RD, 0, 0, sysctl_netinet_intr_direct_queue_drops, "I", | CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, | ||||
0, 0, sysctl_netinet_intr_direct_queue_drops, "I", | |||||
"Number of packets dropped from the IP direct input queue"); | "Number of packets dropped from the IP direct input queue"); | ||||
#endif /* RSS */ | #endif /* RSS */ | ||||
/* | /* | ||||
* IP initialization: fill in IP protocol switch table. | * IP initialization: fill in IP protocol switch table. | ||||
* All protocols not implemented in kernel go to raw IP protocol handler. | * All protocols not implemented in kernel go to raw IP protocol handler. | ||||
*/ | */ | ||||
void | void | ||||
Show All 12 Lines |