mptcp.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* [PATCH mptcp-next 0/7] Add MPTCP support to Java Networking API
@ 2025-07-23  5:16 Geliang Tang
  2025-07-23  5:16 ` [PATCH mptcp-next 1/7] Add MPTCP support for socket creation Geliang Tang
                   ` (7 more replies)
  0 siblings, 8 replies; 16+ messages in thread
From: Geliang Tang @ 2025-07-23  5:16 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

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


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2025-07-31  9:33 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-23  5:16 [PATCH mptcp-next 0/7] Add MPTCP support to Java Networking API Geliang Tang
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

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).