Re: [patch] add tcp congestion control relevant parts
Stephen Hemminger wrote: On Fri, 14 Dec 2007 09:48:32 +0100 Michael Kerrisk [EMAIL PROTECTED] wrote: Hello Linux networking folk, I received the patch below for the tcp.7 man page. Would anybody here be prepared to review the new material / double check the details? Cheers, Michael Original Message Subject: [patch] add tcp congestion control relevant parts Date: Wed, 12 Dec 2007 16:40:23 +0100 From: Thomas Egerer [EMAIL PROTECTED] To: [EMAIL PROTECTED] CC: [EMAIL PROTECTED] Hello *, man-pages version : 2.70 from http://www.kernel.org/pub/linux/docs/man-pages/ All required information were obtained by reading the kernel code/documentation. I'm not sure, whether it is completely bullet proof on when the sysctl variables/socket option first appeared in the kernel, so you might as well drop this information, but I'm pretty sure about how it works. Here we go with my patch: diff -ru man-pages-2.70/man7/tcp.7 man-pages-2.70.new/man7/tcp.7 --- man-pages-2.70/man7/tcp.7 2007-11-24 14:33:34.0 +0100 +++ man-pages-2.70.new/man7/tcp.7 2007-12-12 16:34:52.0 +0100 @@ -177,8 +177,6 @@ .\ FIXME As at Sept 2006, kernel 2.6.18-rc5, the following are .\not yet documented (shown with default values): .\ -.\ /proc/sys/net/ipv4/tcp_congestion_control (since 2.6.13) -.\ bic .\ /proc/sys/net/ipv4/tcp_moderate_rcvbuf .\ 1 .\ /proc/sys/net/ipv4/tcp_no_metrics_save @@ -224,6 +222,20 @@ are reserved for the application buffer. A value of 0 implies that no amount is reserved. +.TP +.BR tcp_allowed_congestion_control \ + (String; default: cubic reno) (since 2.6.13) +Show/set the congestion control choices available to non-privileged +processes. The list is a subset of those listed in +.IR tcp_available_congestion_control . +Default is cubic reno and the default setting +.RI ( tcp_congestion_control ). +.TP +.BR tcp_available_congestion_control \ + (String; default: cubic reno) (since 2.6.13) +Lists the TCP congestion control algorithms available on the system. This value +can only be changed by loading/unloading modules responsible for congestion +control. .\ .\ The following is from 2.6.12: Documentation/networking/ip-sysctl.txt .TP @@ -257,6 +269,17 @@ Allows two flows sharing the same connection to converge more rapidly. .TP +.BR tcp_congestion_control (String; default: cubic reno) (since 2.6.13) +Determines the congestion control algorithm used for newly created TCP +sockets. By default Linux uses cubic with reno as fallback. If you want +to have more control over the algorithm used, you must enable the symbol +CONFIG_TCP_CONG_ADVANCED in your kernel config. You can choose the default congestion control as well as part of the kernel configuration. Hi Stephen, Other than this, did the doc patch look okay? (I'm not sure whether there was an implied ACK in your message for the rest of the patch.) Cheers, Michael -- Michael Kerrisk Maintainer of the Linux man-pages project http://www.kernel.org/doc/man-pages/ Want to report a man-pages bug? Look here: http://www.kernel.org/doc/man-pages/reporting_bugs.html - To unsubscribe from this list: send the line unsubscribe linux-net in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [patch] add tcp congestion control relevant parts
On Wed, 02 Jan 2008 10:55:21 +0100 Michael Kerrisk [EMAIL PROTECTED] wrote: Stephen Hemminger wrote: On Fri, 14 Dec 2007 09:48:32 +0100 Michael Kerrisk [EMAIL PROTECTED] wrote: Hello Linux networking folk, I received the patch below for the tcp.7 man page. Would anybody here be prepared to review the new material / double check the details? Cheers, Michael Original Message Subject: [patch] add tcp congestion control relevant parts Date: Wed, 12 Dec 2007 16:40:23 +0100 From: Thomas Egerer [EMAIL PROTECTED] To: [EMAIL PROTECTED] CC: [EMAIL PROTECTED] Hello *, man-pages version : 2.70 from http://www.kernel.org/pub/linux/docs/man-pages/ All required information were obtained by reading the kernel code/documentation. I'm not sure, whether it is completely bullet proof on when the sysctl variables/socket option first appeared in the kernel, so you might as well drop this information, but I'm pretty sure about how it works. Here we go with my patch: diff -ru man-pages-2.70/man7/tcp.7 man-pages-2.70.new/man7/tcp.7 --- man-pages-2.70/man7/tcp.7 2007-11-24 14:33:34.0 +0100 +++ man-pages-2.70.new/man7/tcp.7 2007-12-12 16:34:52.0 +0100 @@ -177,8 +177,6 @@ .\ FIXME As at Sept 2006, kernel 2.6.18-rc5, the following are .\not yet documented (shown with default values): .\ -.\ /proc/sys/net/ipv4/tcp_congestion_control (since 2.6.13) -.\ bic .\ /proc/sys/net/ipv4/tcp_moderate_rcvbuf .\ 1 .\ /proc/sys/net/ipv4/tcp_no_metrics_save @@ -224,6 +222,20 @@ are reserved for the application buffer. A value of 0 implies that no amount is reserved. +.TP +.BR tcp_allowed_congestion_control \ + (String; default: cubic reno) (since 2.6.13) +Show/set the congestion control choices available to non-privileged +processes. The list is a subset of those listed in +.IR tcp_available_congestion_control . +Default is cubic reno and the default setting +.RI ( tcp_congestion_control ). +.TP +.BR tcp_available_congestion_control \ + (String; default: cubic reno) (since 2.6.13) +Lists the TCP congestion control algorithms available on the system. This value +can only be changed by loading/unloading modules responsible for congestion +control. .\ .\ The following is from 2.6.12: Documentation/networking/ip-sysctl.txt .TP @@ -257,6 +269,17 @@ Allows two flows sharing the same connection to converge more rapidly. .TP +.BR tcp_congestion_control (String; default: cubic reno) (since 2.6.13) +Determines the congestion control algorithm used for newly created TCP +sockets. By default Linux uses cubic with reno as fallback. If you want +to have more control over the algorithm used, you must enable the symbol +CONFIG_TCP_CONG_ADVANCED in your kernel config. You can choose the default congestion control as well as part of the kernel configuration. Hi Stephen, Other than this, did the doc patch look okay? (I'm not sure whether there was an implied ACK in your message for the rest of the patch.) Cheers, Michael Yes, and having this documented will hopefully help answer people's questions. -- Stephen Hemminger [EMAIL PROTECTED] - To unsubscribe from this list: send the line unsubscribe linux-net in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [patch] add tcp congestion control relevant parts
Hello Linux networking folk, I received the patch below for the tcp.7 man page. Would anybody here be prepared to review the new material / double check the details? Cheers, Michael Original Message Subject: [patch] add tcp congestion control relevant parts Date: Wed, 12 Dec 2007 16:40:23 +0100 From: Thomas Egerer [EMAIL PROTECTED] To: [EMAIL PROTECTED] CC: [EMAIL PROTECTED] Hello *, man-pages version : 2.70 from http://www.kernel.org/pub/linux/docs/man-pages/ All required information were obtained by reading the kernel code/documentation. I'm not sure, whether it is completely bullet proof on when the sysctl variables/socket option first appeared in the kernel, so you might as well drop this information, but I'm pretty sure about how it works. Here we go with my patch: diff -ru man-pages-2.70/man7/tcp.7 man-pages-2.70.new/man7/tcp.7 --- man-pages-2.70/man7/tcp.7 2007-11-24 14:33:34.0 +0100 +++ man-pages-2.70.new/man7/tcp.7 2007-12-12 16:34:52.0 +0100 @@ -177,8 +177,6 @@ .\ FIXME As at Sept 2006, kernel 2.6.18-rc5, the following are .\not yet documented (shown with default values): .\ -.\ /proc/sys/net/ipv4/tcp_congestion_control (since 2.6.13) -.\ bic .\ /proc/sys/net/ipv4/tcp_moderate_rcvbuf .\ 1 .\ /proc/sys/net/ipv4/tcp_no_metrics_save @@ -224,6 +222,20 @@ are reserved for the application buffer. A value of 0 implies that no amount is reserved. +.TP +.BR tcp_allowed_congestion_control \ + (String; default: cubic reno) (since 2.6.13) +Show/set the congestion control choices available to non-privileged +processes. The list is a subset of those listed in +.IR tcp_available_congestion_control . +Default is cubic reno and the default setting +.RI ( tcp_congestion_control ). +.TP +.BR tcp_available_congestion_control \ + (String; default: cubic reno) (since 2.6.13) +Lists the TCP congestion control algorithms available on the system. This value +can only be changed by loading/unloading modules responsible for congestion +control. .\ .\ The following is from 2.6.12: Documentation/networking/ip-sysctl.txt .TP @@ -257,6 +269,17 @@ Allows two flows sharing the same connection to converge more rapidly. .TP +.BR tcp_congestion_control (String; default: cubic reno) (since 2.6.13) +Determines the congestion control algorithm used for newly created TCP +sockets. By default Linux uses cubic with reno as fallback. If you want +to have more control over the algorithm used, you must enable the symbol +CONFIG_TCP_CONG_ADVANCED in your kernel config. +You can use +.BR setsockopt (2) +to individually change the algorithm on a single socket. +Requires CAP_NET_ADMIN or congestion algorithm to be listed in +.IR tcp_allowed_congestion_control . +.TP .BR tcp_dsack (Boolean; default: enabled) Enable RFC\ 2883 TCP Duplicate SACK support. .TP @@ -649,7 +672,21 @@ socket options are valid on TCP sockets. For more information see .BR ip (7). -.\ FIXME Document TCP_CONGESTION (new in 2.6.13) +.TP +.BR TCP_CONGESTION (new since kernel version 2.6.13) +If set to the name of an available congestion control algorithm, +it will henceforth be used for the socket. To get a list of +available congestion control algorithms, consult the sysctl variable +.IR net.ipv4.tcp_available_congestion_control . +The algorithm that is used by default for all newly created +TCP sockets can be viewed/changed via the sysctl variable +.IR net.ipv4.tcp_congestion_control . +If you feel, you are missing an algorithm in the list, +you may try to load the corresponding module using +.BR modprobe (8), +or if your kernel is built with module autoloading support +.RI ( CONFIG_KMOD ) +and the algorithm has been compiled as a module, it will be autoloaded. .TP .B TCP_CORK If set, don't send out partial frames. -- Michael Kerrisk Maintainer of the Linux man-pages project http://www.kernel.org/doc/man-pages/ Want to report a man-pages bug? Look here: http://www.kernel.org/doc/man-pages/reporting_bugs.html - To unsubscribe from this list: send the line unsubscribe linux-net in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [patch] add tcp congestion control relevant parts
On Fri, 14 Dec 2007 09:48:32 +0100 Michael Kerrisk [EMAIL PROTECTED] wrote: Hello Linux networking folk, I received the patch below for the tcp.7 man page. Would anybody here be prepared to review the new material / double check the details? Cheers, Michael Original Message Subject: [patch] add tcp congestion control relevant parts Date: Wed, 12 Dec 2007 16:40:23 +0100 From: Thomas Egerer [EMAIL PROTECTED] To: [EMAIL PROTECTED] CC: [EMAIL PROTECTED] Hello *, man-pages version : 2.70 from http://www.kernel.org/pub/linux/docs/man-pages/ All required information were obtained by reading the kernel code/documentation. I'm not sure, whether it is completely bullet proof on when the sysctl variables/socket option first appeared in the kernel, so you might as well drop this information, but I'm pretty sure about how it works. Here we go with my patch: diff -ru man-pages-2.70/man7/tcp.7 man-pages-2.70.new/man7/tcp.7 --- man-pages-2.70/man7/tcp.7 2007-11-24 14:33:34.0 +0100 +++ man-pages-2.70.new/man7/tcp.7 2007-12-12 16:34:52.0 +0100 @@ -177,8 +177,6 @@ .\ FIXME As at Sept 2006, kernel 2.6.18-rc5, the following are .\not yet documented (shown with default values): .\ -.\ /proc/sys/net/ipv4/tcp_congestion_control (since 2.6.13) -.\ bic .\ /proc/sys/net/ipv4/tcp_moderate_rcvbuf .\ 1 .\ /proc/sys/net/ipv4/tcp_no_metrics_save @@ -224,6 +222,20 @@ are reserved for the application buffer. A value of 0 implies that no amount is reserved. +.TP +.BR tcp_allowed_congestion_control \ + (String; default: cubic reno) (since 2.6.13) +Show/set the congestion control choices available to non-privileged +processes. The list is a subset of those listed in +.IR tcp_available_congestion_control . +Default is cubic reno and the default setting +.RI ( tcp_congestion_control ). +.TP +.BR tcp_available_congestion_control \ + (String; default: cubic reno) (since 2.6.13) +Lists the TCP congestion control algorithms available on the system. This value +can only be changed by loading/unloading modules responsible for congestion +control. .\ .\ The following is from 2.6.12: Documentation/networking/ip-sysctl.txt .TP @@ -257,6 +269,17 @@ Allows two flows sharing the same connection to converge more rapidly. .TP +.BR tcp_congestion_control (String; default: cubic reno) (since 2.6.13) +Determines the congestion control algorithm used for newly created TCP +sockets. By default Linux uses cubic with reno as fallback. If you want +to have more control over the algorithm used, you must enable the symbol +CONFIG_TCP_CONG_ADVANCED in your kernel config. You can choose the default congestion control as well as part of the kernel configuration. -- Stephen Hemminger [EMAIL PROTECTED] - To unsubscribe from this list: send the line unsubscribe linux-net in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html