Skip to content

Commit

Permalink
Squash to "selftests/bpf: Add mptcp_subflow bpf_iter subtest"
Browse files Browse the repository at this point in the history
Use bpf_core_cast() instead of bpf_skc_to_mptcp_sock().
Change the 2nd parameter type of bpf_for_each() as 'struct sock'.
Drop bpf_mptcp_sock_acquire/release.

Signed-off-by: Geliang Tang <[email protected]>
Message-Id: <b5fee152138c047d02911d31e12d7f5616ae56f2.1738470660.git.tanggeliang@kylinos.cn>
  • Loading branch information
Geliang Tang authored and Patchew Applier committed Feb 2, 2025
1 parent 5e7fa39 commit 36253da
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 10 deletions.
2 changes: 1 addition & 1 deletion tools/testing/selftests/bpf/bpf_experimental.h
Original file line number Diff line number Diff line change
Expand Up @@ -577,7 +577,7 @@ extern void bpf_iter_css_destroy(struct bpf_iter_css *it) __weak __ksym;

struct bpf_iter_mptcp_subflow;
extern int bpf_iter_mptcp_subflow_new(struct bpf_iter_mptcp_subflow *it,
struct mptcp_sock *msk) __weak __ksym;
struct sock *sk) __weak __ksym;
extern struct mptcp_subflow_context *
bpf_iter_mptcp_subflow_next(struct bpf_iter_mptcp_subflow *it) __weak __ksym;
extern void
Expand Down
3 changes: 0 additions & 3 deletions tools/testing/selftests/bpf/progs/mptcp_bpf.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,6 @@ mptcp_subflow_tcp_sock(const struct mptcp_subflow_context *subflow)
}

/* ksym */
extern struct mptcp_sock *bpf_mptcp_sock_acquire(struct mptcp_sock *msk) __ksym;
extern void bpf_mptcp_sock_release(struct mptcp_sock *msk) __ksym;

extern struct mptcp_subflow_context *
bpf_mptcp_subflow_ctx(const struct sock *sk) __ksym;
extern struct sock *
Expand Down
8 changes: 2 additions & 6 deletions tools/testing/selftests/bpf/progs/mptcp_bpf_iters.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,11 @@ int iters_subflow(struct bpf_sockopt *ctx)
if (ctx->level != SOL_TCP || ctx->optname != TCP_IS_MPTCP)
return 1;

msk = bpf_skc_to_mptcp_sock(sk);
msk = bpf_core_cast(sk, struct mptcp_sock);
if (!msk || msk->pm.server_side || !msk->pm.subflows)
return 1;

msk = bpf_mptcp_sock_acquire(msk);
if (!msk)
return 1;
bpf_for_each(mptcp_subflow, subflow, msk) {
bpf_for_each(mptcp_subflow, subflow, (struct sock *)sk) {
/* Here MPTCP-specific packet scheduler kfunc can be called:
* this test is not doing anything really useful, only to
* verify the iteration works.
Expand All @@ -58,6 +55,5 @@ int iters_subflow(struct bpf_sockopt *ctx)
ids = local_ids;

out:
bpf_mptcp_sock_release(msk);
return 1;
}

0 comments on commit 36253da

Please sign in to comment.