[PATCH 09/11] nvme-tcp: implement host mptcp proto

Nilay Shroff nilay at linux.ibm.com
Sun May 31 08:08:21 PDT 2026


On 5/28/26 8:40 AM, Geliang Tang wrote:
> From: Geliang Tang<tanggeliang at kylinos.cn>
> 
> An MPTCP-specific version of struct nvme_tcp_proto is implemented,
> and it is assigned to ctrl->proto when the transport string is "mptcp".
> 
> The socket option setting logic is similar to the target side, except that
> mptcp_sock_set_syncnt is newly defined for the host side.
> 
> These helpers set the values on all existing subflows of an MPTCP
> connection, except for set_reuseaddr which only applies to the first
> subflow. The values are then synchronized to other newly created
> subflows in sync_socket_options().
> 
> A separate nvme_mptcp_ctrl_ops structure with .name = "mptcp" is defined
> and used for MPTCP controllers.
> 
> "mptcp" is planned to be introduced as a new NVMe transport type into the
> NVMe Base Specification in the future.
> 
> Currently, the Discovery Log does not yet recognize trtype=4 (MPTCP), and
> will show "trtype: unrecognized" for such entries:
> 
>   =====Discovery Log Entry 0======
>   trtype:  unrecognized
>   adrfam:  ipv4
>   subtype: current discovery subsystem
>   treq:    not specified, sq flow control disable supported
>   portid:  23106
>   trsvcid: 23601
>   subnqn:  nqn.2014-08.org.nvmexpress.discovery
>   traddr:  10.1.1.1
>   eflags:  none
> 
> Cc: Hannes Reinecke<hare at suse.de>
> Cc: John Meneghini<jmeneghi at redhat.com>
> Cc: Randy Jennings<randyj at purestorage.com>
> Cc: Nilay Shroff<nilay at linux.ibm.com>
> Co-developed-by: zhenwei pi<zhenwei.pi at linux.dev>
> Signed-off-by: zhenwei pi<zhenwei.pi at linux.dev>
> Co-developed-by: Hui Zhu<zhuhui at kylinos.cn>
> Signed-off-by: Hui Zhu<zhuhui at kylinos.cn>
> Co-developed-by: Gang Yan<yangang at kylinos.cn>
> Signed-off-by: Gang Yan<yangang at kylinos.cn>
> Signed-off-by: Geliang Tang<tanggeliang at kylinos.cn>
> ---
>   drivers/nvme/host/tcp.c | 34 ++++++++++++++++++++++++++++++++++
>   include/net/mptcp.h     | 11 +++++++++++
>   net/mptcp/sockopt.c     | 30 +++++++++++++++++++++++++++++-
>   3 files changed, 74 insertions(+), 1 deletion(-)

Agian the same comment as earlier to split this into two patches.
BTW, it seems another approach would be to club all mptcp helpers
in one patch (may be the first patch in the series) as prep and then
use those helpers in the subsequent patches.

Thanks,
--Nilay







More information about the Linux-nvme mailing list