tcp: add sysctls for TCP PLB parameters
authorMubashir Adnan Qureshi <mubashirq@google.com>
Wed, 26 Oct 2022 13:51:11 +0000 (13:51 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 28 Oct 2022 09:47:42 +0000 (10:47 +0100)
commitbd456f283b66704920fae8e655ebc769cb743420
treeded9029b5d1ae5f6baae1725988ac644567b4df6
parent7f86cf50cfa62d8028ba1fa9383c9645b3665e64
tcp: add sysctls for TCP PLB parameters

PLB (Protective Load Balancing) is a host based mechanism for load
balancing across switch links. It leverages congestion signals(e.g. ECN)
from transport layer to randomly change the path of the connection
experiencing congestion. PLB changes the path of the connection by
changing the outgoing IPv6 flow label for IPv6 connections (implemented
in Linux by calling sk_rethink_txhash()). Because of this implementation
mechanism, PLB can currently only work for IPv6 traffic. For more
information, see the SIGCOMM 2022 paper:
  https://doi.org/10.1145/3544216.3544226

This commit adds new sysctl knobs and sets their default values for
TCP PLB.

Signed-off-by: Mubashir Adnan Qureshi <mubashirq@google.com>
Signed-off-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: Neal Cardwell <ncardwell@google.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Documentation/networking/ip-sysctl.rst
include/net/netns/ipv4.h
net/ipv4/sysctl_net_ipv4.c
net/ipv4/tcp_ipv4.c