MPTCP Linux Development
 help / color / mirror / Atom feed
From: Geliang Tang <geliang@kernel.org>
To: Alan Bateman <alan.bateman@oracle.com>,
	net-dev@openjdk.org,  "nio-dev@openjdk.org" <nio-dev@openjdk.org>
Cc: Matthieu Baerts <matttbe@kernel.org>,
	Mat Martineau <martineau@kernel.org>,
		mptcp@lists.linux.dev, Gang Yan <yangang@kylinos.cn>,
	Xiang Gao	 <gaoxiang@kylinos.cn>,
	core-libs-dev@openjdk.org
Subject: Re: Add Multipath TCP (MPTCP) Support to the Java Networking API
Date: Fri, 05 Sep 2025 18:11:22 +0800	[thread overview]
Message-ID: <c01f7f30efd2f9fb3185f9ad82579eca8a613ac3.camel@kernel.org> (raw)
In-Reply-To: <7403952e-14c1-4ba2-871e-0e2174fd5167@oracle.com>

Hi Alan,

Thanks for your reply.

On Fri, 2025-09-05 at 10:28 +0100, Alan Bateman wrote:
>  
> On 05/09/2025 09:43, Geliang Tang wrote:
>  
>  
> >  
> > :
> > 
> > 3. Proposed Java API Changes
> > 
> > The goal is to allow Java applications to opt-in to using MPTCP
> > when
> > creating sockets, without breaking existing code. The proposed
> > changes
> > are additive and backward-compatible.
> > 
> > The core idea is to add a boolean mptcp parameter through the API
> > layers, from the public Socket class down to the native system
> > call.
> >  
>  
>  (moving the discussion to nio-dev and net-dev).
>  
>  Adding new constructors to legacy Socket/ServerSocket may work for
> your initial prototype but would be problematic to propose as it
> would bake non-standard features into the standard API. Also many
> high performance servers use SocketChannel rather than Socket.
>  
>  One suggestion for a next prototype is to model the enablement of
> MultiPath TCP as as a JDK-specific socket option (see
> jdk.net.ExtendingSocketOptions). All of the standard APIs for
> networking sockets define a setOption method for setting socket

I was initially concerned that calling setOption() after Socket()
creation to convert TCP to MPTCP was too late. Creating an MPTCP socket
must be done during the socket() system call.

> options. If modeled as a socket option then enabling can create a new
> AF_INET6/SOCK_STREAM/IPPROTO_MPTCP socket and then dup2 it into place

Until I saw here, it should be feasible if the socket can be created
again and dup when calling setOption().

I will try to reimplement MPTCP support using
jdk.net.ExtendingSocketOptions soon and give you feedback.

Thanks,
-Geliang

> so that the original AF_INET6/SOCK_STREAM/0 socket is closed.
> Enabling can be made to fail if the socket is already bound. It could
> copy over existing socket options if needed. Look at the built-in
> (and no longer used) SDP support for an example that does similar
> with AF_INET_SDP/SOCK_STREAM/0. The only API surface would be a
> socket option defined in jdk.net.ExtendingSocketOptions.
>  
>  -Alan
>  
>  

  parent reply	other threads:[~2025-09-05 10:11 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-05  8:43 Add Multipath TCP (MPTCP) Support to the Java Networking API Geliang Tang
     [not found] ` <7403952e-14c1-4ba2-871e-0e2174fd5167@oracle.com>
2025-09-05 10:05   ` Geliang Tang
2025-09-05 10:11   ` Geliang Tang [this message]
2025-09-18  7:36     ` Geliang Tang
     [not found]       ` <2b699d6c-d05b-4445-9448-99348eebdf4a@oracle.com>
2025-09-23  9:55         ` Geliang Tang
  -- strict thread matches above, loose matches on Subject: below --
2025-09-05  1:43 Geliang Tang
2025-09-05  9:00 ` Geliang Tang

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=c01f7f30efd2f9fb3185f9ad82579eca8a613ac3.camel@kernel.org \
    --to=geliang@kernel.org \
    --cc=alan.bateman@oracle.com \
    --cc=core-libs-dev@openjdk.org \
    --cc=gaoxiang@kylinos.cn \
    --cc=martineau@kernel.org \
    --cc=matttbe@kernel.org \
    --cc=mptcp@lists.linux.dev \
    --cc=net-dev@openjdk.org \
    --cc=nio-dev@openjdk.org \
    --cc=yangang@kylinos.cn \
    /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