From owner-svn-src-projects@FreeBSD.ORG Thu Jan 22 04:24:15 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 88FAD106564A; Thu, 22 Jan 2009 04:24:15 +0000 (UTC) (envelope-from lstewart@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 75F9B8FC17; Thu, 22 Jan 2009 04:24:15 +0000 (UTC) (envelope-from lstewart@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0M4OFg5000522; Thu, 22 Jan 2009 04:24:15 GMT (envelope-from lstewart@svn.freebsd.org) Received: (from lstewart@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0M4OFpN000521; Thu, 22 Jan 2009 04:24:15 GMT (envelope-from lstewart@svn.freebsd.org) Message-Id: <200901220424.n0M4OFpN000521@svn.freebsd.org> From: Lawrence Stewart Date: Thu, 22 Jan 2009 04:24:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187578 - in projects/tcp_cc_8.x/share/man: man4 man9 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Jan 2009 04:24:15 -0000 Author: lstewart Date: Thu Jan 22 04:24:15 2009 New Revision: 187578 URL: http://svn.freebsd.org/changeset/base/187578 Log: WIP man pages. Added: projects/tcp_cc_8.x/share/man/man4/cc_htcp.4 (contents, props changed) projects/tcp_cc_8.x/share/man/man9/cc.9 (contents, props changed) Added: projects/tcp_cc_8.x/share/man/man4/cc_htcp.4 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/tcp_cc_8.x/share/man/man4/cc_htcp.4 Thu Jan 22 04:24:15 2009 (r187578) @@ -0,0 +1,78 @@ +.\" +.\" Copyright (c) 2008 Lawrence Stewart +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions, and the following disclaimer, +.\" without modification, immediately at the beginning of the file. +.\" 2. The name of the author may not be used to endorse or promote products +.\" derived from this software without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR +.\" ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd Nov 17, 2008 +.Dt CC_HTCP 4 +.Os +.Sh NAME +.Nm cc_htcp +.Nd HTCP Congestion Control Algorithm +.Sh DESCRIPTION +The +.N +congestion control algorithm +.Ss Runtime Configuration +The following +.Xr sysctl 8 +variables are available for tuning: +.Bl -tag -width ".Va net.inet.tcp.cc.htcp.adaptive_backoff" -offset indent +.It Va net.inet.tcp.cc.htcp.adaptive_backoff +Controls use of the adaptive backoff algorithm, which is designed to keep +network queues non-empty during periods of recovery from congestion. +Default is 0 (disabled). +.El +.Bl -tag -width ".Va net.inet.tcp.cc.htcp.rtt_scaling" -offset indent +.It Va net.inet.tcp.cc.htcp.rtt_scaling +Controls use of the RTT scaling algorithm, which is designed to make congestion +window increase invariant with respect to RTT during the connection's regular +mode of operation (congestion avoidance). +Default is 0 (disabled). +.El +.Sh SEE ALSO +.Xr cc 9 +.Sh HISTORY +The +.Nm +congestion control module first appeared in +.Fx 8.0 . +.Sh AUTHORS +.An -nosplit +The +.Nm +congestion control module was written by +.An James Healy Aq jimmy@deefa.com +and +.An Lawrence Stewart Aq lstewart@FreeBSD.org +while working at the Centre for Advanced Internet Architectures, +Swinburne University (http://caia.swin.edu.au/). +.Pp +This manual page was written by +.An Lawrence Stewart Aq lstewart@FreeBSD.org . +.Sh ACKNOWLEDGMENTS +Development of this software was made possible in part by a grant from the +Cisco University Research Program Fund at Community Foundation Silicon Valley. + Added: projects/tcp_cc_8.x/share/man/man9/cc.9 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/tcp_cc_8.x/share/man/man9/cc.9 Thu Jan 22 04:24:15 2009 (r187578) @@ -0,0 +1,122 @@ +.\" +.\" Copyright (c) 2008 Lawrence Stewart +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions, and the following disclaimer, +.\" without modification, immediately at the beginning of the file. +.\" 2. The name of the author may not be used to endorse or promote products +.\" derived from this software without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR +.\" ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd Nov 17, 2008 +.Dt CC 9 +.Os +.Sh NAME +.Nm cc , +.Nm cc_register_algorithm , +.Nm cc_deregister_algorithm +.Nd Modular Congestion Control +.Sh SYNOPSIS +.In netinet/cc.h +.Ft int +.Fn cc_register_algorithm "struct cc_algo *add_cc" +.Ft int +.Fn cc_deregister_algorithm "struct cc_algo *remove_cc" +.Sh DESCRIPTION +The +.Nm +framework provides an interface to dynamically add/remove transport protocol +related congestion control algorithms to/from the running kernel. +.Pp +Congestion control algorithms are identified by an ASCII name and set of +hook function implementations encapsulated in a +.Vt "struct cc_algo" , +which has the following members: +.Bd -literal -offset indent +struct cc_algo { + char name[TCP_CA_NAME_MAX]; + int (*init) (struct tcpcb *tp); + void (*deinit) (struct tcpcb *tp); + void (*cwnd_init) (struct tcpcb *tp); + void (*ack_received) (struct tcpcb *tp, struct tcphdr *th); + void (*pre_fr) (struct tcpcb *tp, struct tcphdr *th); + void (*post_fr) (struct tcpcb *tp, struct tcphdr *th); + void (*after_idle) (struct tcpcb *tp); + void (*after_timeout) (struct tcpcb *tp); +}; +.Ed +.Pp +The +.Va name +field identifies the unique name of the algorithm. +.Ss Runtime Configuration +The following +.Xr sysctl 8 +variables are available for tuning: +.Bl -tag -width ".Va net.inet.tcp.cc.available" -offset indent +.It Va net.inet.tcp.cc.available +Identifies the list of currently available congestion control algorithms by +name. +.El +.Bl -tag -width ".Va net.inet.tcp.cc.algorithm" -offset indent +.It Va net.inet.tcp.cc.algorithm +Specifies which congestion control algorithm will be used by default for new TCP +connections. Setting this variable to one of the names in the +.Va net.inet.tcp.cc.available +list will change the system default for all new connections. +.Sh FUNCTIONS +The +.Fn cc_register_algorithm +function registers the algorithm pointed to by +.Fa add_cc +with the framework. +.Sh IMPLEMENTATION NOTES +.Sh RETURN VALUES +The +.Fn cc_register_algorithm +function returns non-zero on failure. +.Sh SEE ALSO +.Xr cc_htcp 4 , +.Xr cc_cubic 4 , +.Xr tcp 4 , +.Xr sctp 4 +.Sh HISTORY +The modular Congestion Control (CC) framework first appeared in +.Fx 8.0 . +.Sh FUTURE WORK +Integrate with +.Xr sctp 4 . +.Sh AUTHORS +.An -nosplit +The +.Nm +framework was written by +.An James Healy Aq jimmy@deefa.com +and +.An Lawrence Stewart Aq lstewart@FreeBSD.org +while working at the Centre for Advanced Internet Architectures, +Swinburne University (http://caia.swin.edu.au/). +.Pp +This manual page was written by +.An Lawrence Stewart Aq lstewart@FreeBSD.org . +.Sh ACKNOWLEDGMENTS +Development of this software was made possible in part by a grant from the +Cisco University Research Program Fund at Community Foundation Silicon Valley. +