News: 0001540742

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Linux 6.16 Expected To Remove Datagram Congestion Control Protocol "DCCP" Networking

([Linux Networking] 6 Hours Ago Linux 6.16 To Drop DCCP)


The Datagram Congestion Control Protocol (DCCP) intended for online gaming, IP telephony, multimedia streaming, and other online real-time purposes for this transport layer protocol is expected to be stripped out of the Linux kernel with the upcoming v6.16 cycle.

DCCP aimed to address challenges in TCP and UDP but adoption ultimately never took off. The DCCP code within the Linux networking subsystem has fallen into disrepair and was deprecated back in Linux 6.4. With no one stepping up to maintain and improve upon this Datagram Congestion Control Protocol code within the Linux kernel, the Linux 6.16 cycle in a few months is expected to strip away the support.

[1]This merge last week to the networking subsystem's "net-next" repository drops the DCCP socket code and lightens the tree by some 14k lines of code. The argument for the removal of DCCP comes down to:

"DCCP was orphaned in 2021 by commit 054c4610bd05 ("MAINTAINERS: dccp: move Gerrit Renker to CREDITS"), which noted that the last maintainer had been inactive for five years.

In recent years, it has become a playground for syzbot, and most changes to DCCP have been odd bug fixes triggered by syzbot. Apart from that, the only changes have been driven by treewide or networking API updates or adjustments related to TCP.

Thus, in 2023, we announced we would remove DCCP in 2025 via commit b144fcaf46d4 ("dccp: Print deprecation notice.").

Since then, only one individual has contacted the netdev mailing list.

There is ongoing research for Multipath DCCP. The repository is hosted on GitHub, and development is not taking place through the upstream community. While the repository is published under the GPLv2 license, the scheduling part remains proprietary, with a LICENSE file stating:

"This is not Open Source software."

The researcher mentioned a plan to address the licensing issue, upstream the patches, and step up as a maintainer, but there has been no further communication since then.

Maintaining DCCP for a decade without any real users has become a burden.

Therefore, it's time to remove it.

Removing DCCP will also provide significant benefits to TCP. It allows us to freely reorganize the layout of struct inet_connection_sock, which is currently shared with DCCP, and optimize it to reduce the number of cachelines accessed in the TCP fast path.

Note that we keep DCCP netfilter modules as requested."

So the DCCP socket code is being removed and we'll see if Multi-Path DCCP ever materializes in a meaningful manner for the mainline Linux kernel. In the meantime as mentioned the Linux TCP networking code can now be better optimized in its fast path.

Barring any last minute change of heart, now that this DCCP removal is queued to net-next, it's expected to be submitted for the Linux 6.16 merge window in late May or early June.



[1] https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit/?id=2a63dd0edf388802074f1d4d6b588a3b4c380688



phoronix

It's clever, but is it art?