[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250307-net-next-mptcp-pm-reorg-v1-0-abef20ada03b@kernel.org>
Date: Fri, 07 Mar 2025 12:21:44 +0100
From: "Matthieu Baerts (NGI0)" <matttbe@...nel.org>
To: mptcp@...ts.linux.dev, Mat Martineau <martineau@...nel.org>,
Geliang Tang <geliang@...nel.org>, "David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>, Simon Horman <horms@...nel.org>
Cc: netdev@...r.kernel.org, linux-kernel@...r.kernel.org,
"Matthieu Baerts (NGI0)" <matttbe@...nel.org>,
Geliang Tang <geliang@...nel.org>
Subject: [PATCH net-next 00/15] mptcp: pm: code reorganisation
Before this series, the PM code was dispersed in different places:
- pm.c had common code for all PMs.
- pm_netlink.c was initially only about the in-kernel PM, but ended up
also getting exported common helpers, callbacks used by the different
PMs, NL events for PM userspace daemon, etc. quite confusing.
- pm_userspace.c had userspace PM only code, but it was using "specific"
in-kernel PM helpers according to their names.
To clarify the code, a reorganisation is suggested here, only by moving
code around, and small helper renaming to avoid confusions:
- pm_netlink.c now only contains common PM generic Netlink code:
- PM events: this code was already there
- shared helpers around Netlink code that were already there as well
- shared Netlink commands code from pm.c
- pm_kernel.c now contains only code that is specific to the in-kernel
PM. Now all functions are either called from:
- pm.c: events coming from the core, when this PM is being used
- pm_netlink.c: for shared Netlink commands
- mptcp_pm_gen.c: for Netlink commands specific to the in-kernel PM
- sockopt.c: for the exported counters per netns
- pm.c got many code from pm_netlink.c:
- helpers used from both PMs and not linked to Netlink
- callbacks used by different PMs, e.g. ADD_ADDR management
- some helpers have been renamed to remove the '_nl' prefix, and some
have been marked as 'static'.
- protocol.h has been updated accordingly:
- some helpers no longer need to be exported
- new ones needed to be exported: they have been prefixed if needed.
The code around the PM is now less confusing, which should help for the
maintenance in the long term, and the introduction of a PM Ops.
This will certainly impact future backports, but because other cleanups
have already done recently, and more are coming to ease the addition of
a new path-manager controlled with BPF (struct_ops), doing that now
seems to be a good time. Also, many issues around the PM have been fixed
a few months ago while increasing the code coverage in the selftests, so
such big reorganisation can be done with more confidence now.
Note that checkpatch, when used with --max-line-length=80, will complain
about lines being over the 80 limits, but these warnings were already
there before moving the code around.
Also, patch 1 is not directly related to the code reorganisation, but it
was a remaining cleanup that we didn't upstream before, because it was
conflicting with another patch that has been sent for inclusion to the
net tree.
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@...nel.org>
---
Geliang Tang (1):
mptcp: pm: use addr entry for get_local_id
Matthieu Baerts (NGI0) (14):
mptcp: pm: remove '_nl' from mptcp_pm_nl_addr_send_ack
mptcp: pm: remove '_nl' from mptcp_pm_nl_mp_prio_send_ack
mptcp: pm: remove '_nl' from mptcp_pm_nl_work
mptcp: pm: remove '_nl' from mptcp_pm_nl_rm_addr_received
mptcp: pm: remove '_nl' from mptcp_pm_nl_subflow_chk_stale()
mptcp: pm: remove '_nl' from mptcp_pm_nl_is_init_remote_addr
mptcp: pm: kernel: add '_pm' to mptcp_nl_set_flags
mptcp: pm: avoid calling PM specific code from core
mptcp: pm: worker: split in-kernel and common tasks
mptcp: pm: export mptcp_remote_address
mptcp: pm: move generic helper at the top
mptcp: pm: move generic PM helpers to pm.c
mptcp: pm: split in-kernel PM specific code
mptcp: pm: move Netlink PM helpers to pm_netlink.c
net/mptcp/Makefile | 2 +-
net/mptcp/pm.c | 653 ++++++++++++----
net/mptcp/pm_kernel.c | 1410 +++++++++++++++++++++++++++++++++
net/mptcp/pm_netlink.c | 1937 ++--------------------------------------------
net/mptcp/pm_userspace.c | 28 +-
net/mptcp/protocol.c | 5 +-
net/mptcp/protocol.h | 42 +-
7 files changed, 2045 insertions(+), 2032 deletions(-)
---
base-commit: 865eddcf0afbcd54f79b81e6327ea40c997714c7
change-id: 20250307-net-next-mptcp-pm-reorg-b789f3d9a3ad
Best regards,
--
Matthieu Baerts (NGI0) <matttbe@...nel.org>
Powered by blists - more mailing lists