Message ID | 20221026135115.3539398-1-mubashirmaq@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | Add PLB functionality to TCP | expand |
Hello: This series was applied to netdev/net-next.git (master) by David S. Miller <davem@davemloft.net>: On Wed, 26 Oct 2022 13:51:10 +0000 you wrote: > From: Mubashir Adnan Qureshi <mubashirq@google.com> > > This patch series adds PLB (Protective Load Balancing) to TCP and hooks > it up to DCTCP. PLB is disabled by default and can be enabled using > relevant sysctls and support from underlying CC. > > 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 > > [...] Here is the summary with links: - [net-next,1/5] tcp: add sysctls for TCP PLB parameters https://git.kernel.org/netdev/net-next/c/bd456f283b66 - [net-next,2/5] tcp: add PLB functionality for TCP https://git.kernel.org/netdev/net-next/c/1a91bb7c3ebf - [net-next,3/5] tcp: add support for PLB in DCTCP https://git.kernel.org/netdev/net-next/c/c30f8e0b0480 - [net-next,4/5] tcp: add u32 counter in tcp_sock and an SNMP counter for PLB https://git.kernel.org/netdev/net-next/c/29c1c44646ae - [net-next,5/5] tcp: add rcv_wnd and plb_rehash to TCP_INFO https://git.kernel.org/netdev/net-next/c/71fc704768f6 You are awesome, thank you!
From: Mubashir Adnan Qureshi <mubashirq@google.com> This patch series adds PLB (Protective Load Balancing) to TCP and hooks it up to DCTCP. PLB is disabled by default and can be enabled using relevant sysctls and support from underlying CC. 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 Mubashir Adnan Qureshi (5): tcp: add sysctls for TCP PLB parameters tcp: add PLB functionality for TCP tcp: add support for PLB in DCTCP tcp: add u32 counter in tcp_sock and an SNMP counter for PLB tcp: add rcv_wnd and plb_rehash to TCP_INFO Documentation/networking/ip-sysctl.rst | 75 +++++++++++++++++ include/linux/tcp.h | 1 + include/net/netns/ipv4.h | 5 ++ include/net/tcp.h | 28 +++++++ include/uapi/linux/snmp.h | 1 + include/uapi/linux/tcp.h | 6 ++ net/ipv4/Makefile | 2 +- net/ipv4/proc.c | 1 + net/ipv4/sysctl_net_ipv4.c | 43 ++++++++++ net/ipv4/tcp.c | 5 ++ net/ipv4/tcp_dctcp.c | 23 +++++- net/ipv4/tcp_ipv4.c | 8 ++ net/ipv4/tcp_plb.c | 109 +++++++++++++++++++++++++ 13 files changed, 305 insertions(+), 2 deletions(-) create mode 100644 net/ipv4/tcp_plb.c