]> git.ipfire.org Git - thirdparty/linux.git/commit
mptcp: pm: define struct mptcp_pm_ops
authorGeliang Tang <tanggeliang@kylinos.cn>
Thu, 13 Mar 2025 10:20:55 +0000 (11:20 +0100)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 20 Mar 2025 09:14:48 +0000 (10:14 +0100)
commit1305b0c22eca7373910f30ec31912796617b7121
tree14a2d22c79e224c82ba586c41de9f95b12fe4ad8
parenteff5b1578e99c031f8d33e3f2a972504a3933831
mptcp: pm: define struct mptcp_pm_ops

In order to allow users to develop their own BPF-based path manager,
this patch defines a struct ops "mptcp_pm_ops" for an MPTCP path
manager, which contains a set of interfaces. Currently only init()
and release() interfaces are included, subsequent patches will add
others step by step.

Add a set of functions to register, unregister, find and validate a
given path manager struct ops.

"list" is used to add this path manager to mptcp_pm_list list when
it is registered. "name" is used to identify this path manager.
mptcp_pm_find() uses "name" to find a path manager on the list.

mptcp_pm_unregister is not used in this set, but will be invoked in
.unreg of struct bpf_struct_ops. mptcp_pm_validate() will be invoked
in .validate of struct bpf_struct_ops. That's why they are exported.

Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250313-net-next-mptcp-pm-ops-intro-v1-6-f4e4a88efc50@kernel.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
include/net/mptcp.h
net/mptcp/pm.c
net/mptcp/protocol.h