[PATCH mptcp-next v3 0/2] mptcp: shrink struct mptcp_options_received

Quanye Yang via B4 Relay posted 2 patches 2 weeks, 3 days ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/multipath-tcp/mptcp_net-next tags/patchew/20260909-mptcp-shrink-opt-rx-v2-v3-0-92bb3009a665@proton.me
net/mptcp/options.c  |  6 +++---
net/mptcp/protocol.h | 44 +++++++++++++++++++++++++++++---------------
2 files changed, 32 insertions(+), 18 deletions(-)
[PATCH mptcp-next v3 0/2] mptcp: shrink struct mptcp_options_received
Posted by Quanye Yang via B4 Relay 2 weeks, 3 days ago
struct mptcp_options_received is the per-packet decode buffer used while
parsing incoming MPTCP options. It is larger than needed because several
suboptions cannot be combined.

This series splits the FASTCLOSE key from rcvr_key, then overlaps the
remaining mutually exclusive payloads in an anonymous union. DSS and
rm_list stay outside the union. On x86_64 the structure shrinks from
136 to 72 bytes.

---
Changes in v3:
- Split the FASTCLOSE key change into its own commit
- Add comments linking union members to their suboptions
- Link to v2: https://patch.msgid.link/20260904-mptcp-shrink-opt-rx-v2-v2-1-d8662bb18ef2@proton.me

Changes in v2:
- Group fields by suboption and move join_id into the MP_JOIN group
- Split rcvr_key into rcvr_key (MP_CAPABLE) and fc_recv_key (MP_FASTCLOSE)
- Overlap MP_JOIN token, thmac and hmac
- Drop the dependency on the invalid-option series
- Link to v1: https://patch.msgid.link/20260904-mptcp-shrink-opt-rx-v1-1-2d87ab9505ff@proton.me

---
Quanye Yang (2):
      mptcp: split FASTCLOSE key from rcvr_key
      mptcp: shrink struct mptcp_options_received

 net/mptcp/options.c  |  6 +++---
 net/mptcp/protocol.h | 44 +++++++++++++++++++++++++++++---------------
 2 files changed, 32 insertions(+), 18 deletions(-)
---
base-commit: d5a4e55ccfb893614646d0f0e5c440daa92b7467
change-id: 20260904-mptcp-shrink-opt-rx-v2-d8e0c6951294

Best regards,
--  
Quanye Yang <quanyeyang@proton.me>
Re: [PATCH mptcp-next v3 0/2] mptcp: shrink struct mptcp_options_received
Posted by Matthieu Baerts 2 weeks, 3 days ago
Hi Quanye,

On 09/09/2026 04:40, Quanye Yang via B4 Relay wrote:
> struct mptcp_options_received is the per-packet decode buffer used while
> parsing incoming MPTCP options. It is larger than needed because several
> suboptions cannot be combined.
> 
> This series splits the FASTCLOSE key from rcvr_key, then overlaps the
> remaining mutually exclusive payloads in an anonymous union. DSS and
> rm_list stay outside the union. On x86_64 the structure shrinks from
> 136 to 72 bytes.
Now in our tree (with small changes to silence checkpatch warnings):

New patches for t/upstream:
- f23ba7b8cca7: mptcp: split FASTCLOSE key from rcvr_key
- 6ae8ca66c6ca: mptcp: shrink struct mptcp_options_received
- Results: c692d107c31c..ca7966735328 (export)

Tests are now in progress:

- export:
https://github.com/multipath-tcp/mptcp_net-next/commit/162cbd03ff40db2152751a2fd401abd33b5ba9dc/checks

Cheers,
Matt
-- 
Sponsored by the NGI0 Core fund.
Re: [PATCH mptcp-next v3 0/2] mptcp: shrink struct mptcp_options_received
Posted by Matthieu Baerts 2 weeks, 3 days ago
Hi Quanye,

On 09/09/2026 04:40, Quanye Yang via B4 Relay wrote:
> struct mptcp_options_received is the per-packet decode buffer used while
> parsing incoming MPTCP options. It is larger than needed because several
> suboptions cannot be combined.
> 
> This series splits the FASTCLOSE key from rcvr_key, then overlaps the
> remaining mutually exclusive payloads in an anonymous union. DSS and
> rm_list stay outside the union. On x86_64 the structure shrinks from
> 136 to 72 bytes.
> 
> ---
> Changes in v3:
> - Split the FASTCLOSE key change into its own commit
> - Add comments linking union members to their suboptions
> - Link to v2: https://patch.msgid.link/20260904-mptcp-shrink-opt-rx-v2-v2-1-d8662bb18ef2@proton.me
Thank you for the v3, it looks good to me:

Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>

Cheers,
Matt
-- 
Sponsored by the NGI0 Core fund.
Re: [PATCH mptcp-next v3 0/2] mptcp: shrink struct mptcp_options_received
Posted by MPTCP CI 2 weeks, 3 days ago
Hi Quanye,

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): Success! ✅
- KVM Validation: normal (only selftest_mptcp_join): Success! ✅
- KVM Validation: debug (except selftest_mptcp_join): Success! ✅
- KVM Validation: debug (only selftest_mptcp_join): Success! ✅
- KVM Validation: btf-normal (only bpftest_all): Success! ✅
- KVM Validation: btf-debug (only bpftest_all): Success! ✅
- Perf: 
- Task: https://github.com/multipath-tcp/mptcp_net-next/actions/runs/34305335821

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


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)