mbox series

[mptcp-next,v4,0/9] BPF path manager, part 6

Message ID cover.1742804266.git.tanggeliang@kylinos.cn (mailing list archive)
Headers show
Series BPF path manager, part 6 | expand

Message

Geliang Tang March 24, 2025, 8:19 a.m. UTC
From: Geliang Tang <tanggeliang@kylinos.cn>

v4:
 - address Matt's comments in v3.
 - update pm locks in mptcp_pm_worker.
 - move the lock inside mptcp_pm_create_subflow_or_signal_addr.
 - move the lock inside mptcp_pm_nl_add_addr_received.
 - invoke add_addr_received interface from mptcp_pm_worker.
 - invoke rm_addr_received interface from mptcp_pm_rm_addr_or_subflow.
 - simply call mptcp_pm_close_subflow() in mptcp_pm_subflow_check_next.

v3:
 - merge 'bugfixes for "BPF path manager, part 6, v2"' into this set.
 - https://patchwork.kernel.org/project/mptcp/cover/cover.1742521397.git.tanggeliang@kylinos.cn/

v2:
 - address Matt's comments in v1.
 - add add_addr_received and rm_addr_received interfaces.
 - drop subflow_check_next interface.
 - add a "required" or "optional" comment for a group of interfaces in
   struct mptcp_pm_ops.

v1:
- https://patchwork.kernel.org/project/mptcp/cover/cover.1741685260.git.tanggeliang@kylinos.cn/

New interfaces for struct mptcp_pm_ops.

Geliang Tang (9):
  Squash to "mptcp: pm: add get_local_id() interface"
  mptcp: pm: add established interfaces
  mptcp: pm: drop is_userspace in subflow_check_next
  mptcp: pm: drop redundant MPTCP_MIB_ADDADDRDROP
  mptcp: pm: add add_addr_received() interface
  mptcp: pm: add rm_addr_received() interface
  mptcp: pm: add add_addr_echo() interface
  mptcp: pm: add accept_new_subflow() interface
  mptcp: pm: add allow_new_subflow() interface

 include/net/mptcp.h      |  15 ++++++
 net/mptcp/pm.c           | 114 ++++++++++++++++++---------------------
 net/mptcp/pm_kernel.c    |  91 +++++++++++++++++++++----------
 net/mptcp/pm_userspace.c |  13 +++++
 net/mptcp/protocol.h     |   3 +-
 net/mptcp/subflow.c      |   4 +-
 6 files changed, 148 insertions(+), 92 deletions(-)

Comments

MPTCP CI March 24, 2025, 9:28 a.m. UTC | #1
Hi Geliang,

Thank you for your modifications, that's great!

Our CI did some validations and here is its report:

- KVM Validation: normal: Success! ✅
- KVM Validation: debug: Success! ✅
- 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/14030669230

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


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)
Matthieu Baerts March 24, 2025, 10:59 a.m. UTC | #2
Hi Geliang,

On 24/03/2025 09:19, Geliang Tang wrote:
> From: Geliang Tang <tanggeliang@kylinos.cn>
> 
> v4:
>  - address Matt's comments in v3.
>  - update pm locks in mptcp_pm_worker.
>  - move the lock inside mptcp_pm_create_subflow_or_signal_addr.
>  - move the lock inside mptcp_pm_nl_add_addr_received.
>  - invoke add_addr_received interface from mptcp_pm_worker.
>  - invoke rm_addr_received interface from mptcp_pm_rm_addr_or_subflow.
>  - simply call mptcp_pm_close_subflow() in mptcp_pm_subflow_check_next.

Thank you for the v4. I have some comments, please see my individual
replies.

After this series, do you still have any mptcp_pm_is_userspace() and
mptcp_pm_is_kernel()? Can we eventually get rid of them? Same for
pm_type from "struct mptcp_pm_data" and from "struct mptcp_pernet", no?

Cheers,
Matt