Re: TCP_CONGESTION documentation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Bother.  CC += Andi again.

On Fri, Nov 21, 2008 at 3:32 PM, Michael Kerrisk
<mtk.manpages@xxxxxxxxxxxxxx> wrote:
> Hi Stephen,
>
> On Fri, Nov 21, 2008 at 2:57 PM, Stephen Hemminger
> <shemminger@xxxxxxxxxxxxxxxxxxxx> wrote:
>> On Fri, 21 Nov 2008 11:06:19 -0500
>> Michael Kerrisk <mtk.manpages@xxxxxxxxxxxxxx> wrote:
>>
>>> Hello Stephen,
>>>
>>> Back in 2.6.13, you added the TCP_CONGESTION sockopt, but
>>> provided no man-page patch...
>>>
>>> Below is my attempt to document this sockopt.  Could you please
>>> review.  Please don't assume I've well understood the code: I
>>> may well have messed up in my reading of it, so review what
>>> I've written with care.
>>>
>>> Also, a question: was the silent truncation of the returned
>>> string on getsockopt() if optlen is too small really intended?
>>> Would it not be/have been better to error on this case?
>
> You added some other stuff below, but I got no response to the review
> request and the question above?
>
>>>    TCP_CONGESTION (since Linux 2.6.13)
>>>       Get  or  set  the  congestion-control algorithm for this
>>>       socket.   The  optval  argument  is  a  pointer   to   a
>>>       character-string buffer.
>>>
>>>       For  getsockopt()  *optlen specifies the amount of space
>>>       available in the buffer  pointed  to  by  optval,  which
>>>       should  be  at  least  16  bytes (defined by the kernel-
>>>       internal  constant  TCP_CA_NAME_MAX).   On  return,  the
>>>       buffer  pointed to by optval is set to a null-terminated
>>>       string containing the  name  of  the  congestion-control
>>>       algorithm  for  this  socket,  and *optlen is set to the
>>>       minimum of its original value and  TCP_CA_NAME_MAX.   If
>>>       the  value  passed  in  *optlen  is  too small, then the
>>>       string returned in *optval is silently truncated, and no
>>>       terminating  null  byte is added.  If an empty string is
>>>       returned, then the socket is using the  default  conges-
>>>       tion-control  algorithm,  determined  as described under
>>>       tcp_congestion_control above.
>>>
>>>       For setsockopt() optlen specifies the length of the con-
>>>       gestion-control  algorithm  name contained in the buffer
>>>       pointed to by optval; this length need not  include  any
>>>       terminating  null  byte.  The algorithm "reno" is always
>>>       permitted; other algorithms may be available,  depending
>>>       on  kernel configuration.  Possible errors from setsock-
>>>       opt() include: algorithm not  found/available  (ENOENT);
>>>       setting  this algorithm requires the CAP_NET_ADMIN capa-
>>>       bility  (EPERM);  and  failure  getting  kernel   module
>>>       (EBUSY).
>
>> The tcp(7) man page is related
>
> (I'm a little confused by that remark: the patch at the end of my mail
> was *for* the tcp(7) man page; maybe you missed that.)
>
>> and seems out of date as well.
>
> Yes, many things on it are out of date.  (I've made occasional
> requests to linux-net for help on this point, but have had little
> response.)
>
>> At least on this sytem (Ubuntu 8.04).it seems to be stuck back in pre 2.6.12
>
> Yes, 2.6.12 sounds about right.
>
>> timewarp (see tcp_bic, tcp_bic_low_window, ...) values that no
>> longer exist.
>
> And when they disappear, no one CCs the man-page maintainer :-(.
>
> Anyway, thanks for the heads up
>
> tcp_bic* is now fixed (disappeared in 2.6.13)
> and
> tcp_westwood is now fixed (disappeared in 2.6.13)
> and
> tcp_vegas_cong_avoid is now fixed (disappeared in 2.6.13)
>
>> Should be updated as well.
>
> I'm working on it.  Many updates to tcp(7) will be in man-pages-3.14.
>
> Cheers,
>
> Michael
>
> --
> Michael Kerrisk
> Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
> git://git.kernel.org/pub/scm/docs/man-pages/man-pages.git
> man-pages online: http://www.kernel.org/doc/man-pages/online_pages.html
> Found a bug? http://www.kernel.org/doc/man-pages/reporting_bugs.html
>



-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
git://git.kernel.org/pub/scm/docs/man-pages/man-pages.git
man-pages online: http://www.kernel.org/doc/man-pages/online_pages.html
Found a bug? 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux