mptcp.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
From: Geliang Tang <geliang@kernel.org>
To: mptcp@lists.linux.dev
Cc: Geliang Tang <geliang@kernel.org>
Subject: [PATCH mptcp-next 0/7] Add MPTCP support to Java Networking API
Date: Wed, 23 Jul 2025 13:16:12 +0800	[thread overview]
Message-ID: <cover.1753247666.git.geliang@kernel.org> (raw)

The Multipath TCP (MPTCP) protocol (v1 / RFC 8684) has been added in
the upstream Linux kernel since v5.6.

This patch series introduces comprehensive Multipath TCP (MPTCP) support
to the Java Networking API, enabling applications to leverage MPTCP's
capabilities for improved reliability and throughput.

The implementation provides:
1. Core infrastructure for MPTCP socket creation (Patch 1)
2. Server and client socket creation APIs (Patches 2-3)
3. Integration with NIO socket implementation (Patch 4)
4. High-level Socket and ServerSocket support (Patches 5-6)
5. Comprehensive test cases (Patch 7)

Key features:
- Backward compatible API extensions
- Platform-independent implementation
- Explicit MPTCP enablement through new constructors
- Full integration with existing socket functionality
- Test coverage for basic MPTCP operations

The changes maintain all existing functionality while adding MPTCP
capabilities. When MPTCP is not enabled or not supported by the system, the
implementation gracefully falls back to regular TCP behavior.

This work enables Java applications to benefit from MPTCP's capabilities:
- Seamless handover between network interfaces
- Aggregated bandwidth from multiple paths
- Improved resilience to network failures

The implementation has been tested on Linux systems with MPTCP kernel
support enabled.

https://github.com/openjdk/jdk

Geliang Tang (7):
  Add MPTCP support for socket creation
  Add MPTCP server socket creation support
  Add MPTCP client socket creation support
  Add MPTCP support to NioSocketImpl
  Add MPTCP support to ServerSocket class
  Add MPTCP support to Socket class
  Add test cases for MPTCP socket functionality

 .../share/classes/java/net/ServerSocket.java  | 66 ++++++++++++++
 .../share/classes/java/net/Socket.java        | 88 +++++++++++++++++++
 .../share/classes/java/net/SocketImpl.java    |  8 ++
 .../share/classes/sun/nio/ch/Net.java         | 26 +++++-
 .../classes/sun/nio/ch/NioSocketImpl.java     | 19 +++-
 src/java.base/unix/native/libnio/ch/Net.c     |  5 +-
 src/java.base/windows/native/libnio/ch/Net.c  |  2 +-
 .../java/net/ServerSocket/MPTCPServer.java    | 58 ++++++++++++
 test/jdk/java/net/Socket/MPTCPClient.java     | 62 +++++++++++++
 9 files changed, 326 insertions(+), 8 deletions(-)
 create mode 100644 test/jdk/java/net/ServerSocket/MPTCPServer.java
 create mode 100644 test/jdk/java/net/Socket/MPTCPClient.java

-- 
2.48.1


             reply	other threads:[~2025-07-23  5:16 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-23  5:16 Geliang Tang [this message]
2025-07-23  5:16 ` [PATCH mptcp-next 1/7] Add MPTCP support for socket creation Geliang Tang
2025-07-30 22:03   ` Matthieu Baerts
2025-07-23  5:16 ` [PATCH mptcp-next 2/7] Add MPTCP server socket creation support Geliang Tang
2025-07-30 22:04   ` Matthieu Baerts
2025-07-23  5:16 ` [PATCH mptcp-next 3/7] Add MPTCP client " Geliang Tang
2025-07-23  5:16 ` [PATCH mptcp-next 4/7] Add MPTCP support to NioSocketImpl Geliang Tang
2025-07-23  5:16 ` [PATCH mptcp-next 5/7] Add MPTCP support to ServerSocket class Geliang Tang
2025-07-30 22:05   ` Matthieu Baerts
2025-07-23  5:16 ` [PATCH mptcp-next 6/7] Add MPTCP support to Socket class Geliang Tang
2025-07-30 22:05   ` Matthieu Baerts
2025-07-23  5:16 ` [PATCH mptcp-next 7/7] Add test cases for MPTCP socket functionality Geliang Tang
2025-07-30 22:08   ` Matthieu Baerts
2025-07-30 22:03 ` [PATCH mptcp-next 0/7] Add MPTCP support to Java Networking API Matthieu Baerts
2025-07-31  7:49   ` Geliang Tang
2025-07-31  9:33     ` Matthieu Baerts

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1753247666.git.geliang@kernel.org \
    --to=geliang@kernel.org \
    --cc=mptcp@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).