Subject: Re: [PATCH net-next 2/2] tcp: add TCP_CC_INFO socket option

From: Daniel Borkmann <[email-masked]>
Date: Wed, 29 Apr 2015 13:15:25 +0200

On 04/29/2015 01:07 PM, Eric Dumazet wrote:
> On Wed, 2015-04-29 at 10:17 +0200, Daniel Borkmann wrote:
>> On 04/29/2015 01:23 AM, Eric Dumazet wrote:
>>> Some Congestion Control modules can provide per flow information,
>>> but current way to get this information is to use netlink.
>>>
>>> Like TCP_INFO, let's add TCP_CC_INFO so that applications can
>>> issue a getsockopt() if they have a socket file descriptor,
>>> instead of playing complex netlink games.
>>>
>>> Sample usage would be :
>>>
>>>     union tcp_cc_info info;
>>>     socklen_t len = sizeof(info);
>>>
>>>     if (getsockopt(fd, SOL_TCP, TCP_CC_INFO, &info, &len) == -1)
>>>
>>> Signed-off-by: Eric Dumazet <[email-masked]>
>>> Cc: Yuchung Cheng <[email-masked]>
>>> Cc: Neal Cardwell <[email-masked]>
>>
>> Presuming other cc algorithms would in future also export
>> internal information through this interface, would it make
>> sense to put tcp_cc_info into a container structure so we
>> don't miss out attr (vegas, dctcp, ...), like:
>>
>>     struct tcp_cc_exp {
>>       u32               kind;
>>       union tcp_cc_info info;
>>     };
>>
>> Otherwise looks good:
>>
>> Acked-by: Daniel Borkmann <[email-masked]>
>
> I thought of this, but I really believe this is not needed, as the
> application can already fetch CC name (if really its does not know yet)
>
> And I also wanted to get same layout for info provided by netlink and
> getsockopt()

Ok, I'm fine with that. Presumably, applications making use of
this facility would most likely set the cc op themselves from
the application, so they know exactly what to expect here. Or,
might have fetched it via the cc name albeit a bit inconvenient,
but not impossible.

Thanks,
Daniel