[PATCH] kernel: add module for tcp-hybla congestion control algorithm

Hauke Mehrtens hauke at hauke-m.de
Wed Dec 23 10:39:22 EST 2020


On 12/23/20 2:56 PM, Henrique de Moraes Holschuh wrote:
> On 23/12/2020 09:08, Hauke Mehrtens wrote:
>> On 12/23/20 8:36 AM, Yousong Zhou wrote:
>>> Just the module and no default sysctl conf file is provided
>>>
>>> Ref: https://forum.openwrt.org/t/20-xx-tcp-hybla/83076
>>> Signed-off-by: Yousong Zhou <yszhou4tech at gmail.com>
>>> ---
>>>   package/kernel/linux/modules/netsupport.mk | 20 ++++++++++++++++++++
>>>   1 file changed, 20 insertions(+)
>>>
>>> diff --git a/package/kernel/linux/modules/netsupport.mk 
>>> b/package/kernel/linux/modules/netsupport.mk
>>> index 0c68b394d1..156892c952 100644
>>> --- a/package/kernel/linux/modules/netsupport.mk
>>> +++ b/package/kernel/linux/modules/netsupport.mk
>>> @@ -949,6 +949,26 @@ endef
>>>   $(eval $(call KernelPackage,tcp-bbr))
>>> +define KernelPackage/tcp-hybla
>>> +  SUBMENU:=$(NETWORK_SUPPORT_MENU)
>>> +  TITLE:=TCP-Hybla congestion control algorithm
>>> +  KCONFIG:= \
>>> +    CONFIG_TCP_CONG_ADVANCED=y \
>>
>> This is already set in the generic configuration for most targets:
>> -----------------
>> :~/openwrt/openwrt/target/linux$ git grep TCP_CONG_ADVANCED
>> generic/config-5.4:CONFIG_TCP_CONG_ADVANCED=y
>> layerscape/armv7/config-5.4:# CONFIG_TCP_CONG_ADVANCED is not set
>> layerscape/armv8_64b/config-5.4:# CONFIG_TCP_CONG_ADVANCED is not set
>> zynq/config-5.4:# CONFIG_TCP_CONG_ADVANCED is not set
>> ---------------
>>
>> I would prefer if we set if for all targets, then it is not needed 
>> here any more.
> 
> Is the size cost worth it?  What would it be?

As far as I understand this only allows to configure the TCP congestion 
control algorithm, but does not add any extra code.

> It is not like Hybla in OpenWRT is going to be helpful at all for most 
> uses for most users: it can only affect openwrt **when it is the TCP 
> endpoint**, on non-tcp-proxied-by-the-CPE high-rtt links, and only when 
> openwrt is *serving* the high-volume content.

If it is added as a module, like it is done here it is optional and the 
user has to selected it to integrate it.

> I've read the linked page and it doesn't make sense *outside of the 
> content servers* of that satellite ISP.  It can only affect anything if 
> you are the TCP ENDPOINT serving contents, middle-boxes have no say in 
> it unless they're L4/L7 *active* proxies -- i.e., they'd need to become 
> the relevant TCP endpoint.
> 
> To me, Hybla seems like something you'd want behind a KConfig option 
> (default N) for specialized uses, only.  Not something to be enabled by 
> default on all targets. >
> NOTE: Hybla on *servers* is a different deal, but since you cannot 
> select it by TCP negotiation, it is still only ever going to be useful 
> on the satellite access provider *content proxies and servers*, since 
> nobody is going to enable it on general-purpose servers that cather for 
> both high and low RTT clients.

Hauke



More information about the openwrt-devel mailing list