net/mptcp/protocol.c | 121 +++++++++++--- net/mptcp/sockopt.c | 125 ++++++++++++++ .../selftests/net/mptcp/mptcp_sockopt.c | 152 ++++++++++++++++++ 3 files changed, 380 insertions(+), 18 deletions(-)
MPTCP already advertises IP_RECVERR/IPV6_RECVERR as supported, but the parent socket does not currently provide usable MSG_ERRQUEUE handling. This series wires the MPTCP socket up to the IPv4/IPv6 error queue paths. It propagates RECVERR-related sockopts to existing and future subflows, makes poll() report pending errqueue activity through the parent socket, and allows recvmsg(MSG_ERRQUEUE) on the MPTCP socket to consume queued errors with the parent socket ABI. The series also handles mixed-family subflows by applying the matching sockopt according to each subflow family, and avoids silently losing an error skb if requeueing to the parent socket fails under rmem pressure. Patch 1 propagates the RECVERR sockopts to subflows. Patch 2 implements parent-socket MSG_ERRQUEUE handling and poll() reporting. Patch 3 adds selftest coverage for RECVERR sockopt round-trips and timestamping-driven MSG_ERRQUEUE delivery on the MPTCP parent socket. Testing: - make -C tools/testing/selftests/net/mptcp mptcp_sockopt - git diff --check David Carlier (3): mptcp: propagate RECVERR sockopts to subflows mptcp: support MSG_ERRQUEUE on the parent socket selftests: mptcp: cover RECVERR and MSG_ERRQUEUE net/mptcp/protocol.c | 121 +++++++++++--- net/mptcp/sockopt.c | 125 ++++++++++++++ .../selftests/net/mptcp/mptcp_sockopt.c | 152 ++++++++++++++++++ 3 files changed, 380 insertions(+), 18 deletions(-) -- 2.53.0
Hi David,
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_mptcp_sockopt ⚠️
- KVM Validation: normal (only selftest_mptcp_join): Unstable: 1 failed test(s): selftest_mptcp_join ⚠️
- KVM Validation: debug (except selftest_mptcp_join): Unstable: 4 failed test(s): packetdrill_dss packetdrill_fastopen packetdrill_mp_join selftest_mptcp_sockopt ⚠️
- 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/24731734242
Initiator: Patchew Applier
Commits: https://github.com/multipath-tcp/mptcp_net-next/commits/5dc9123ab172
Patchwork: https://patchwork.kernel.org/project/mptcp/list/?series=1083918
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)
Hi David, On 21/04/2026 17:22, David Carlier wrote: > MPTCP already advertises IP_RECVERR/IPV6_RECVERR as supported, but the > parent socket does not currently provide usable MSG_ERRQUEUE handling. > > This series wires the MPTCP socket up to the IPv4/IPv6 error queue > paths. It propagates RECVERR-related sockopts to existing and future > subflows, makes poll() report pending errqueue activity through the > parent socket, and allows recvmsg(MSG_ERRQUEUE) on the MPTCP socket to > consume queued errors with the parent socket ABI. > > The series also handles mixed-family subflows by applying the matching > sockopt according to each subflow family, and avoids silently losing an > error skb if requeueing to the parent socket fails under rmem pressure. Thank you for this series! Even if I agree it would be good to have full MSG_ERRQUEUE support, net-next is currently closed, and only bug fixes are accepted, see: https://docs.kernel.org/process/maintainer-netdev.html pw-bot: defer Instead, I suggest switching the discussions only to the MPTCP ML if that's OK. If the CI is happy, someone will try to review it over there, when time permits. If not, please send the new versions only to the MPTCP ML, with the 'PATCH mptcp-next' prefix, and ideally on top of the 'export' (or 'for-review') branch of our tree. For more details: https://www.mptcp.dev/contributing.html#kernel-development Cheers, Matt -- Sponsored by the NGI0 Core fund.
Thanks for the head-up, cheers ! On Tue, 21 Apr 2026 at 17:07, Matthieu Baerts <matttbe@kernel.org> wrote: > > Hi David, > > On 21/04/2026 17:22, David Carlier wrote: > > MPTCP already advertises IP_RECVERR/IPV6_RECVERR as supported, but the > > parent socket does not currently provide usable MSG_ERRQUEUE handling. > > > > This series wires the MPTCP socket up to the IPv4/IPv6 error queue > > paths. It propagates RECVERR-related sockopts to existing and future > > subflows, makes poll() report pending errqueue activity through the > > parent socket, and allows recvmsg(MSG_ERRQUEUE) on the MPTCP socket to > > consume queued errors with the parent socket ABI. > > > > The series also handles mixed-family subflows by applying the matching > > sockopt according to each subflow family, and avoids silently losing an > > error skb if requeueing to the parent socket fails under rmem pressure. > Thank you for this series! > > Even if I agree it would be good to have full MSG_ERRQUEUE support, > net-next is currently closed, and only bug fixes are accepted, see: > > https://docs.kernel.org/process/maintainer-netdev.html > > pw-bot: defer > > Instead, I suggest switching the discussions only to the MPTCP ML if > that's OK. If the CI is happy, someone will try to review it over there, > when time permits. If not, please send the new versions only to the > MPTCP ML, with the 'PATCH mptcp-next' prefix, and ideally on top of the > 'export' (or 'for-review') branch of our tree. For more details: > > https://www.mptcp.dev/contributing.html#kernel-development > > Cheers, > Matt > -- > Sponsored by the NGI0 Core fund. >
Hi David, 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/24731734238 Status: failure Initiator: Patchew Applier Commits: https://github.com/multipath-tcp/mptcp_net-next/commits/5dc9123ab172 Patchwork: https://patchwork.kernel.org/project/mptcp/list/?series=1083918 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)
© 2016 - 2026 Red Hat, Inc.