From: Ming Lei <ming.lei@redhat.com>
To: Geliang Tang <geliang@kernel.org>
Cc: lsf-pc@lists.linux-foundation.org,
linux-nvme@lists.infradead.org, mptcp@lists.linux.dev,
Matthieu Baerts <matttbe@kernel.org>,
Mat Martineau <martineau@kernel.org>,
Paolo Abeni <pabeni@redhat.com>, Hannes Reinecke <hare@suse.de>
Subject: Re: [LSF/MM/BPF TOPIC] NVMe over MPTCP: Multi-Fold Acceleration for NVMe over TCP in Multi-NIC Environments
Date: Wed, 25 Feb 2026 13:57:54 +0800 [thread overview]
Message-ID: <aZ6PYgJ0ZWeSc_GS@fedora> (raw)
In-Reply-To: <a9f115aa5719e1088702a3fdeee766a3166611b1.camel@kernel.org>
Hi Geliang,
Looks one interesting topic!
On Thu, Jan 29, 2026 at 12:13:25PM +0800, Geliang Tang wrote:
> As one of the MPTCP upstream developers, I'm recently working on adding
> MPTCP support to 'NVMe over TCP'. This approach achieves a multi-fold
> performance improvement over using standard TCP. The implementation and
> testing phases are largely complete. The code is currently in the RFC
> stage and has undergone several rounds of discussion and iteration on
> the MPTCP mailing list [1]. It will be sent to the NVMe mailing list
> shortly.
>
> 1. Introduction to MPTCP
>
> Multipath TCP (MPTCP), standardized in RFC 8684, represents a major
> evolution of the TCP protocol. It enables a single transport connection
> to utilize multiple network paths simultaneously, providing benefits in
> redundancy, resilience, and bandwidth aggregation. Since its
> introduction in Linux kernel v5.6, it has become a key technology for
> modern networking, particularly in multi-NIC environments.
>
> On a supported system such as Linux, an MPTCP socket is created by
> specifying the IPPROTO_MPTCP protocol in the socket() system call:
>
> int fd = socket(AF_INET, SOCK_STREAM, IPPROTO_MPTCP);
>
> This creates a socket that appears as a standard TCP socket to the
> application but uses the MPTCP protocol stack underneath.
>
> For more details, please visit the project website: https://mptcp.dev.
>
> 2. Implementation
>
> 'NVMe over TCP' establishes multiple TCP connections between the target
> and host for data transfer. This includes one admin queue connection
> for management traffic and multiple I/O queue connections for data
> traffic, with the number typically scaling with available CPU cores.
> While these multiple TCP connections (using the same IP address but
> different ports) help distribute computational load across CPUs, all
> data traffic still flows through a single network interface card (NIC),
> even in multi-NIC environments.
>
> The 'NVMe over MPTCP' solution enhances 'NVMe over TCP' by replacing
> the multiple TCP connections with multiple MPTCP connections, leaving
> other mechanisms unchanged. Internally, each MPTCP connection can
> establish multiple subflows based on the number of configured NICs.
> This distributes data traffic across all available NICs, thereby
> increasing aggregate transmission speed.
NVMe supports multipath, which can apply load balance or sort of algorithm
to maximize network link/bandwidth too.
Maybe you can compare mptcp with multipath in this viewpoint.
Thanks,
Ming
next prev parent reply other threads:[~2026-02-25 5:58 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-29 4:13 [LSF/MM/BPF TOPIC] NVMe over MPTCP: Multi-Fold Acceleration for NVMe over TCP in Multi-NIC Environments Geliang Tang
2026-02-25 5:57 ` Ming Lei [this message]
2026-02-26 9:44 ` Geliang Tang
2026-02-25 15:07 ` Nilay Shroff
2026-02-26 9:54 ` Geliang Tang
2026-03-05 4:30 ` Geliang Tang
2026-05-13 10:04 ` Geliang Tang
2026-05-19 7:31 ` Geliang Tang
2026-05-26 10:16 ` Geliang Tang
2026-05-28 15:59 ` Randy Jennings
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=aZ6PYgJ0ZWeSc_GS@fedora \
--to=ming.lei@redhat.com \
--cc=geliang@kernel.org \
--cc=hare@suse.de \
--cc=linux-nvme@lists.infradead.org \
--cc=lsf-pc@lists.linux-foundation.org \
--cc=martineau@kernel.org \
--cc=matttbe@kernel.org \
--cc=mptcp@lists.linux.dev \
--cc=pabeni@redhat.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.