Message ID | 73e63af9c3dc74deb1b6aa79a9b7ed57f331ba33.1742804266.git.tanggeliang@kylinos.cn (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Matthieu Baerts |
Headers | show |
Series | BPF path manager, part 6 | expand |
Context | Check | Description |
---|---|---|
matttbe/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 35 lines checked |
matttbe/shellcheck | success | MPTCP selftests files have not been modified |
matttbe/build | success | Build and static analysis OK |
matttbe/KVM_Validation__normal | success | Success! ✅ |
matttbe/KVM_Validation__debug | success | Success! ✅ |
matttbe/KVM_Validation__btf-normal__only_bpftest_all_ | success | Success! ✅ |
matttbe/KVM_Validation__btf-debug__only_bpftest_all_ | success | Success! ✅ |
On Mon, 2025-03-24 at 16:19 +0800, Geliang Tang wrote: > From: Geliang Tang <tanggeliang@kylinos.cn> > > This patch adds an optional .rm_addr_received interface for struct > mptcp_pm_ops and invokes it in mptcp_pm_rm_addr_or_subflow(). > > This interface is only implemented in the in-kernel PM as a wrapper > of mptcp_pm_nl_rm_addr(). > > Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn> > --- > include/net/mptcp.h | 1 + > net/mptcp/pm.c | 4 ++-- > net/mptcp/pm_kernel.c | 6 ++++++ > 3 files changed, 9 insertions(+), 2 deletions(-) > > diff --git a/include/net/mptcp.h b/include/net/mptcp.h > index 5118d11d2ee9..3f06fbd2a908 100644 > --- a/include/net/mptcp.h > +++ b/include/net/mptcp.h > @@ -128,6 +128,7 @@ struct mptcp_pm_ops { > void (*established)(struct mptcp_sock *msk); > void (*subflow_established)(struct mptcp_sock *msk); > void (*add_addr_received)(struct mptcp_sock *msk); > + void (*rm_addr_received)(struct mptcp_sock *msk, u8 id); > > char name[MPTCP_PM_NAME_MAX]; > struct module *owner; > diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c > index 71589cd5dee7..bf3c19defe98 100644 > --- a/net/mptcp/pm.c > +++ b/net/mptcp/pm.c > @@ -703,8 +703,8 @@ static void mptcp_pm_rm_addr_or_subflow(struct > mptcp_sock *msk, > > if (rm_type == MPTCP_MIB_RMADDR) { > __MPTCP_INC_STATS(sock_net(sk), rm_type); > - if (removed && mptcp_pm_is_kernel(msk)) > - mptcp_pm_nl_rm_addr(msk, rm_id); > + if (removed && msk->pm.ops- > >rm_addr_received) > + msk->pm.ops->rm_addr_received(msk, > rm_id); > } > } > } > diff --git a/net/mptcp/pm_kernel.c b/net/mptcp/pm_kernel.c > index 4f4791620072..1a71676bdf43 100644 > --- a/net/mptcp/pm_kernel.c > +++ b/net/mptcp/pm_kernel.c > @@ -1391,6 +1391,11 @@ static void > mptcp_pm_kernel_add_addr_received(struct mptcp_sock *msk) > mptcp_pm_nl_add_addr_received(msk); > } > > +static void mptcp_pm_kernel_rm_addr_received(struct mptcp_sock *msk, > u8 id) > +{ > + mptcp_pm_nl_rm_addr(msk, id); Now we can make mptcp_pm_nl_rm_addr static. Will update this in v5. Thanks, -Geliang > +} > + > static void mptcp_pm_kernel_init(struct mptcp_sock *msk) > { > bool subflows_allowed = !!mptcp_pm_get_subflows_max(msk); > @@ -1417,6 +1422,7 @@ struct mptcp_pm_ops mptcp_pm_kernel = { > .established = mptcp_pm_kernel_established, > .subflow_established = > mptcp_pm_kernel_subflow_established, > .add_addr_received = mptcp_pm_kernel_add_addr_received, > + .rm_addr_received = mptcp_pm_kernel_rm_addr_received, > .init = mptcp_pm_kernel_init, > .name = "kernel", > .owner = THIS_MODULE,
Hi Geliang, On 24/03/2025 09:19, Geliang Tang wrote: > From: Geliang Tang <tanggeliang@kylinos.cn> > > This patch adds an optional .rm_addr_received interface for struct > mptcp_pm_ops and invokes it in mptcp_pm_rm_addr_or_subflow(). > > This interface is only implemented in the in-kernel PM as a wrapper > of mptcp_pm_nl_rm_addr(). (...) > diff --git a/net/mptcp/pm_kernel.c b/net/mptcp/pm_kernel.c > index 4f4791620072..1a71676bdf43 100644 > --- a/net/mptcp/pm_kernel.c > +++ b/net/mptcp/pm_kernel.c > @@ -1391,6 +1391,11 @@ static void mptcp_pm_kernel_add_addr_received(struct mptcp_sock *msk) > mptcp_pm_nl_add_addr_received(msk); > } > > +static void mptcp_pm_kernel_rm_addr_received(struct mptcp_sock *msk, u8 id) > +{ > + mptcp_pm_nl_rm_addr(msk, id); Same here: no need to add a new static function only calling another static function (mptcp_pm_nl_rm_addr() should now be static) with the same arguments. Simply rename mptcp_pm_nl_rm_addr() to mptcp_pm_kernel_rm_addr_received(). Cheers, Matt
diff --git a/include/net/mptcp.h b/include/net/mptcp.h index 5118d11d2ee9..3f06fbd2a908 100644 --- a/include/net/mptcp.h +++ b/include/net/mptcp.h @@ -128,6 +128,7 @@ struct mptcp_pm_ops { void (*established)(struct mptcp_sock *msk); void (*subflow_established)(struct mptcp_sock *msk); void (*add_addr_received)(struct mptcp_sock *msk); + void (*rm_addr_received)(struct mptcp_sock *msk, u8 id); char name[MPTCP_PM_NAME_MAX]; struct module *owner; diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index 71589cd5dee7..bf3c19defe98 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -703,8 +703,8 @@ static void mptcp_pm_rm_addr_or_subflow(struct mptcp_sock *msk, if (rm_type == MPTCP_MIB_RMADDR) { __MPTCP_INC_STATS(sock_net(sk), rm_type); - if (removed && mptcp_pm_is_kernel(msk)) - mptcp_pm_nl_rm_addr(msk, rm_id); + if (removed && msk->pm.ops->rm_addr_received) + msk->pm.ops->rm_addr_received(msk, rm_id); } } } diff --git a/net/mptcp/pm_kernel.c b/net/mptcp/pm_kernel.c index 4f4791620072..1a71676bdf43 100644 --- a/net/mptcp/pm_kernel.c +++ b/net/mptcp/pm_kernel.c @@ -1391,6 +1391,11 @@ static void mptcp_pm_kernel_add_addr_received(struct mptcp_sock *msk) mptcp_pm_nl_add_addr_received(msk); } +static void mptcp_pm_kernel_rm_addr_received(struct mptcp_sock *msk, u8 id) +{ + mptcp_pm_nl_rm_addr(msk, id); +} + static void mptcp_pm_kernel_init(struct mptcp_sock *msk) { bool subflows_allowed = !!mptcp_pm_get_subflows_max(msk); @@ -1417,6 +1422,7 @@ struct mptcp_pm_ops mptcp_pm_kernel = { .established = mptcp_pm_kernel_established, .subflow_established = mptcp_pm_kernel_subflow_established, .add_addr_received = mptcp_pm_kernel_add_addr_received, + .rm_addr_received = mptcp_pm_kernel_rm_addr_received, .init = mptcp_pm_kernel_init, .name = "kernel", .owner = THIS_MODULE,