[RFC mptcp-next v6 00/10] MPTCP KTLS support

Geliang Tang posted 10 patches 2 days, 21 hours ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/multipath-tcp/mptcp_net-next tags/patchew/cover.1767518836.git.tanggeliang@kylinos.cn
include/linux/tcp.h                           |   2 +
include/net/tls.h                             |  18 ++++
net/ipv4/tcp.c                                |  78 ++++++++------
net/mptcp/protocol.c                          | 100 ++++++++++++++++--
net/mptcp/sockopt.c                           |  36 ++++++-
net/tls/tls_device.c                          |   4 +-
net/tls/tls_main.c                            |  88 ++++++++++++++-
net/tls/tls_strp.c                            |  28 +++--
net/tls/tls_sw.c                              |   5 +-
tools/testing/selftests/net/mptcp/config      |   1 +
.../selftests/net/mptcp/mptcp_connect.c       |  65 +++++++++++-
.../testing/selftests/net/mptcp/mptcp_join.sh |  32 ++++++
12 files changed, 398 insertions(+), 59 deletions(-)
[RFC mptcp-next v6 00/10] MPTCP KTLS support
Posted by Geliang Tang 2 days, 21 hours ago
From: Geliang Tang <tanggeliang@kylinos.cn>

v6:
 - register each ops as Matt suggested.
 - drop sk_is_msk().
 - add tcp_sock_get_ulp/tcp_sock_set_ulp helpers.
 - set another ULP in sock_test_tcpulp as Matt suggested.
 - add tls tests using multiple subflows in mptcp_join.sh.

v5:
 - As suggested by Mat and Matt, this set introduces struct tls_prot_ops
   for TLS.
 - Includes Gang Yan's patches to add MPTCP support to the TLS selftests.
 - Link: https://patchwork.kernel.org/project/mptcp/cover/cover.1766372799.git.tanggeliang@kylinos.cn/

v4:
 - split "tls: add MPTCP protocol support" into smaller, more
   focused patches.
 - a new mptcp_inq helper has been implemented instead of directly
   using mptcp_inq_hint to fix the issue mentioned in [1].
 - add sk_is_msk helper.
 - the 'expect' parameter will no longer be added to sock_test_tcpulp.
   Instead, SOCK_TEST_TCPULP items causing the tests failure will be
   directly removed.
 - remove the "TCP KTLS" tests, keeping only the MPTCP-related ones.
 - Link: https://patchwork.kernel.org/project/mptcp/cover/cover.1765505775.git.tanggeliang@kylinos.cn/

[1]
https://patchwork.kernel.org/project/mptcp/patch/ce74452f4c095a1761ef493b767b4bd9f9c14359.1764333805.git.tanggeliang@kylinos.cn/

v3:
 - mptcp_read_sock() and mptcp_poll() are not exported, as mptcp_sockopt
   test does not use read_sock/poll interfaces. They will be exported when
   new tests are added in the future.
 - call mptcp_inq_hint in tls_device_rx_resync_new_rec(),
   tls_device_core_ctrl_rx_resync() and tls_read_flush_backlog() too.
 - update selftests.
 - Link: https://patchwork.kernel.org/project/mptcp/cover/cover.1763800601.git.tanggeliang@kylinos.cn/

v2:
 - fix disconnect.
 - update selftests.

This series adds KTLS support for MPTCP. Since the ULP of msk is not being
used, ULP KTLS can be directly configured onto msk without affecting its
communication.

Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/480

Geliang Tang (10):
  tls: introduce struct tls_prot_ops
  tls: add ops in tls_context
  mptcp: implement tls_mptcp_ops
  tcp: extract sock_get_ulp helper
  mptcp: update ULP getsockopt
  tcp: extract sock_set_ulp helper
  mptcp: enable TLS setsockopt
  selftests: mptcp: connect: update sock_test_tcpulp
  selftests: mptcp: connect: add tls sockopt type
  selftests: mptcp: join: add mptcp tls tests

 include/linux/tcp.h                           |   2 +
 include/net/tls.h                             |  18 ++++
 net/ipv4/tcp.c                                |  78 ++++++++------
 net/mptcp/protocol.c                          | 100 ++++++++++++++++--
 net/mptcp/sockopt.c                           |  36 ++++++-
 net/tls/tls_device.c                          |   4 +-
 net/tls/tls_main.c                            |  88 ++++++++++++++-
 net/tls/tls_strp.c                            |  28 +++--
 net/tls/tls_sw.c                              |   5 +-
 tools/testing/selftests/net/mptcp/config      |   1 +
 .../selftests/net/mptcp/mptcp_connect.c       |  65 +++++++++++-
 .../testing/selftests/net/mptcp/mptcp_join.sh |  32 ++++++
 12 files changed, 398 insertions(+), 59 deletions(-)

-- 
2.51.0
Re: [RFC mptcp-next v6 00/10] MPTCP KTLS support
Posted by MPTCP CI 2 days, 18 hours ago
Hi Geliang,

Thank you for your modifications, that's great!

Our CI did some validations and here is its report:

- KVM Validation: normal (except selftest_mptcp_join): Unstable: 1 failed test(s): selftest_userspace_pm 🔴
- KVM Validation: normal (only selftest_mptcp_join): Unstable: 1 failed test(s): selftest_mptcp_join 🔴
- KVM Validation: debug (except selftest_mptcp_join): Success! ✅
- KVM Validation: debug (only selftest_mptcp_join): Unstable: 1 failed test(s): selftest_mptcp_join 🔴
- KVM Validation: btf-normal (only bpftest_all): Success! ✅
- KVM Validation: btf-debug (only bpftest_all): Success! ✅
- Task: https://github.com/multipath-tcp/mptcp_net-next/actions/runs/20691127354

Initiator: Patchew Applier
Commits: https://github.com/multipath-tcp/mptcp_net-next/commits/a5cdb3d625cd
Patchwork: https://patchwork.kernel.org/project/mptcp/list/?series=1038175


If there are some issues, you can reproduce them using the same environment as
the one used by the CI thanks to a docker image, e.g.:

    $ cd [kernel source code]
    $ docker run -v "${PWD}:${PWD}:rw" -w "${PWD}" --privileged --rm -it \
        --pull always mptcp/mptcp-upstream-virtme-docker:latest \
        auto-normal

For more details:

    https://github.com/multipath-tcp/mptcp-upstream-virtme-docker


Please note that despite all the efforts that have been already done to have a
stable tests suite when executed on a public CI like here, it is possible some
reported issues are not due to your modifications. Still, do not hesitate to
help us improve that ;-)

Cheers,
MPTCP GH Action bot
Bot operated by Matthieu Baerts (NGI0 Core)
Re: [RFC mptcp-next v6 00/10] MPTCP KTLS support
Posted by MPTCP CI 2 days, 21 hours ago
Hi Geliang,

Thank you for your modifications, that's great!

But sadly, our CI spotted some issues with it when trying to build it.

You can find more details there:

  https://github.com/multipath-tcp/mptcp_net-next/actions/runs/20691127358

Status: failure
Initiator: Patchew Applier
Commits: https://github.com/multipath-tcp/mptcp_net-next/commits/a5cdb3d625cd
Patchwork: https://patchwork.kernel.org/project/mptcp/list/?series=1038175

Feel free to reply to this email if you cannot access logs, if you need
some support to fix the error, if this doesn't seem to be caused by your
modifications or if the error is a false positive one.

Cheers,
MPTCP GH Action bot
Bot operated by Matthieu Baerts (NGI0 Core)