Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Apr 2012 10:51:27 GMT
From:      Adri Koppes <adrik@salesmanager.nl>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   kern/167357: cc_htcp(4) module sysctl variables overwritten
Message-ID:  <201204271051.q3RApRWE075826@red.freebsd.org>
Resent-Message-ID: <201204271100.q3RB0MHB027854@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         167357
>Category:       kern
>Synopsis:       cc_htcp(4) module sysctl variables overwritten
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Apr 27 11:00:21 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Adri Koppes
>Release:        8.3-RELEASE
>Organization:
SalesManager Software B.V.
>Environment:
FreeBSD mail.salesmanager.nl 8.3-RELEASE FreeBSD 8.3-RELEASE #11: Mon Apr 23 17:07:46 CEST 2012     root@mail.salesmanager.nl:/usr/obj/usr/src/sys/MAIL  amd64

>Description:
When using sysctl to change variables of the cc_htcp(4) module, changing 1 variable will also change the values of other variables.

>How-To-Repeat:
# kldload cc_htcp.ko
# sysctl net.inet.tcp.cc.htcp
net.inet.tcp.cc.htcp.rtt_scaling: 0
net.inet.tcp.cc.htcp.adaptive_backoff: 0
# sysctl net.inet.tcp.cc.htcp.rtt_scaling=1
net.inet.tcp.cc.htcp.rtt_scaling: 0 -> 1
# sysctl net.inet.tcp.cc.htcp
net.inet.tcp.cc.htcp.rtt_scaling: 1
net.inet.tcp.cc.htcp.adaptive_backoff: 0
# sysctl net.inet.tcp.cc.htcp.adaptive_backoff=1
net.inet.tcp.cc.htcp.adaptive_backoff: 0 -> 1
# sysctl net.inet.tcp.cc.htcp
net.inet.tcp.cc.htcp.rtt_scaling: 257
net.inet.tcp.cc.htcp.adaptive_backoff: 1

>Fix:
The problem is probably caused by a mismatch in variable declaration and sysctl definition in /usr/src/sys/netinet/cc/cc_htcp.c.

Line 171:

static VNET_DEFINE(uint8_t, htcp_adaptive_backoff) = 0;
static VNET_DEFINE(uint8_t, htcp_rtt_scaling) = 0;

Line 515:

SYSCTL_VNET_UINT(_net_inet_tcp_cc_htcp, OID_AUTO, adaptive_backoff, CTLFLAG_RW,
    &VNET_NAME(htcp_adaptive_backoff), 0, "enable H-TCP adaptive backoff");
SYSCTL_VNET_UINT(_net_inet_tcp_cc_htcp, OID_AUTO, rtt_scaling, CTLFLAG_RW,
    &VNET_NAME(htcp_rtt_scaling), 0, "enable H-TCP RTT scaling");


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201204271051.q3RApRWE075826>