From: Matthieu Baerts <matttbe@kernel.org>
To: Li Xiasong <lixiasong1@huawei.com>, mptcp@lists.linux.dev
Cc: weiyongjun1@huawei.com, yuehaibing@huawei.com,
zhangchangzhong@huawei.com
Subject: Re: [PATCH mptcp-net v3 0/2] mptcp: pm: fix ADD_ADDR timer infinite retry on option space shortage
Date: Fri, 8 May 2026 13:37:38 +0200 [thread overview]
Message-ID: <6dd57952-26c9-4f72-bb58-48e3f8b84caf@kernel.org> (raw)
In-Reply-To: <20260507125224.3536507-1-lixiasong1@huawei.com>
Hi Li,
On 07/05/2026 14:52, Li Xiasong wrote:
> This series fixes a bug where the ADD_ADDR timer can keep rescheduling
> indefinitely when TCP option space is insufficient, blocking subsequent
> addresses in the endpoint list from being announced.
>
> The issue is reproducible when sending an IPv6 ADD_ADDR with port while
> tcp_timestamps is enabled. In that case, option space may be exhausted on
> pure ACKs, and ADD_ADDR retransmission can stall PM forward progress.
>
> Patch 1 clears the signal in this path, skips the matching ADD_ADDR
> retransmission entry, and preserves PM state-machine progression.
>
> Note on concurrency: timer cancellation in this path is best-effort.
> A concurrent add_timer callback that acquires pm.lock first may still
> perform one final ADD_ADDR send attempt before cancel state is applied.
> After cancel sets entry->retrans_times to ADD_ADDR_RETRANS_MAX, the
> callback-side check prevents further ADD_ADDR retransmissions.
>
> Patch 2 adds a selftest to cover this behavior and prevent regressions.
>
> Patch summary:
> - patch 1: mptcp: pm: fix ADD_ADDR timer infinite retry on option space
> insufficient
> - patch 2: selftests: mptcp: join: cover ADD_ADDR tx drop and list
> progress
>
> Changes since v2:
> - document the possible timer-cancel race window in the commit message
> and code comments
> - keep best-effort cancellation semantics (possible one extra send
> attempt under lock-order race), while preventing further retries via
> retrans_times gating
> - selftests: remove the redundant ADD_ADDR tx-drop subtest that
> duplicated existing coverage for list progression behavior
> - link to v2:
> https://lore.kernel.org/mptcp/20260430112026.343691-1-lixiasong1@huawei.com/
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.
next prev parent reply other threads:[~2026-05-08 11:37 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-07 12:52 [PATCH mptcp-net v3 0/2] mptcp: pm: fix ADD_ADDR timer infinite retry on option space shortage Li Xiasong
2026-05-07 12:52 ` [PATCH mptcp-net v3 1/2] mptcp: pm: fix ADD_ADDR timer infinite retry on option space insufficient Li Xiasong
2026-05-07 12:52 ` [PATCH mptcp-net v3 2/2] selftests: mptcp: join: cover ADD_ADDR tx drop and list progress Li Xiasong
2026-05-08 11:37 ` Matthieu Baerts
2026-05-07 13:40 ` [PATCH mptcp-net v3 0/2] mptcp: pm: fix ADD_ADDR timer infinite retry on option space shortage MPTCP CI
2026-05-08 11:37 ` Matthieu Baerts [this message]
2026-05-08 11:47 ` Matthieu Baerts
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=6dd57952-26c9-4f72-bb58-48e3f8b84caf@kernel.org \
--to=matttbe@kernel.org \
--cc=lixiasong1@huawei.com \
--cc=mptcp@lists.linux.dev \
--cc=weiyongjun1@huawei.com \
--cc=yuehaibing@huawei.com \
--cc=zhangchangzhong@huawei.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.