From: Geliang Tang <geliang.tang@suse.com>
To: mptcp@lists.linux.dev
Cc: Geliang Tang <geliang.tang@suse.com>
Subject: [PATCH mptcp-next v7 05/13] Squash to "mptcp: add bpf_mptcp_sched_ops"
Date: Thu, 2 Jun 2022 12:53:42 +0800 [thread overview]
Message-ID: <77b282be5d838080861e2d4d0b64192f23bb6594.1654143895.git.geliang.tang@suse.com> (raw)
In-Reply-To: <cover.1654143895.git.geliang.tang@suse.com>
Please update the subject and commit log:
'''
bpf: Add bpf_mptcp_sched_ops
This patch implements a new struct bpf_struct_ops, bpf_mptcp_sched_ops.
Register and unregister the bpf scheduler in .reg and .unreg.
Add write access for the scheduled flag of struct mptcp_subflow_context
in .btf_struct_access.
This MPTCP BPF scheduler implementation is similar to BPF TCP CC. And
net/ipv4/bpf_tcp_ca.c is a frame of reference for this patch.
'''
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
net/mptcp/bpf.c | 18 ++++++++----------
1 file changed, 8 insertions(+), 10 deletions(-)
diff --git a/net/mptcp/bpf.c b/net/mptcp/bpf.c
index 338146d173f4..0529e70d53b1 100644
--- a/net/mptcp/bpf.c
+++ b/net/mptcp/bpf.c
@@ -42,29 +42,27 @@ static int bpf_mptcp_sched_btf_struct_access(struct bpf_verifier_log *log,
{
size_t end;
- if (atype == BPF_READ)
+ if (atype == BPF_READ) {
return btf_struct_access(log, btf, t, off, size, atype,
next_btf_id, flag);
+ }
if (t != mptcp_sched_type) {
- bpf_log(log, "only access to mptcp_sched_data is supported\n");
+ bpf_log(log, "only access to mptcp_subflow_context is supported\n");
return -EACCES;
}
switch (off) {
- case offsetof(struct mptcp_sched_data, sock):
- end = offsetofend(struct mptcp_sched_data, sock);
- break;
- case offsetof(struct mptcp_sched_data, call_again):
- end = offsetofend(struct mptcp_sched_data, call_again);
+ case offsetof(struct mptcp_subflow_context, scheduled):
+ end = offsetofend(struct mptcp_subflow_context, scheduled);
break;
default:
- bpf_log(log, "no write support to mptcp_sched_data at off %d\n", off);
+ bpf_log(log, "no write support to mptcp_subflow_context at off %d\n", off);
return -EACCES;
}
if (off + size > end) {
- bpf_log(log, "access beyond mptcp_sched_data at off %u size %u ended at %zu",
+ bpf_log(log, "access beyond mptcp_subflow_context at off %u size %u ended at %zu",
off, size, end);
return -EACCES;
}
@@ -144,7 +142,7 @@ static int bpf_mptcp_sched_init(struct btf *btf)
{
s32 type_id;
- type_id = btf_find_by_name_kind(btf, "mptcp_sched_data",
+ type_id = btf_find_by_name_kind(btf, "mptcp_subflow_context",
BTF_KIND_STRUCT);
if (type_id < 0)
return -EINVAL;
--
2.34.1
next prev parent reply other threads:[~2022-06-02 4:54 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-02 4:53 [PATCH mptcp-next v7 00/13] BPF packet scheduler Geliang Tang
2022-06-02 4:53 ` [PATCH mptcp-next v7 01/13] Squash to "mptcp: add struct mptcp_sched_ops" Geliang Tang
2022-06-02 4:53 ` [PATCH mptcp-next v7 02/13] Squash to "mptcp: add sched in mptcp_sock" Geliang Tang
2022-06-02 4:53 ` [PATCH mptcp-next v7 03/13] mptcp: add scheduled in mptcp_subflow_context Geliang Tang
2022-06-02 4:53 ` [PATCH mptcp-next v7 04/13] Squash to "mptcp: add get_subflow wrappers" Geliang Tang
2022-06-02 4:53 ` Geliang Tang [this message]
2022-06-02 4:53 ` [PATCH mptcp-next v7 06/13] bpf: Add bpf_mptcp_sched_kfunc_set Geliang Tang
2022-07-25 7:56 ` Matthieu Baerts
2022-07-26 3:33 ` Geliang Tang
2022-06-02 4:53 ` [PATCH mptcp-next v7 07/13] selftests/bpf: Add mptcp sched structs Geliang Tang
2022-06-02 4:53 ` [PATCH mptcp-next v7 08/13] Squash to "selftests/bpf: add bpf_first scheduler" Geliang Tang
2022-06-02 4:53 ` [PATCH mptcp-next v7 09/13] Squash to "selftests/bpf: add bpf_first test" Geliang Tang
2022-06-02 4:53 ` [PATCH mptcp-next v7 10/13] selftests/bpf: Add bpf_bkup scheduler Geliang Tang
2022-06-02 4:53 ` [PATCH mptcp-next v7 11/13] selftests/bpf: Add bpf_bkup test Geliang Tang
2022-06-02 4:53 ` [PATCH mptcp-next v7 12/13] selftests/bpf: Add bpf_rr scheduler Geliang Tang
2022-06-02 4:53 ` [PATCH mptcp-next v7 13/13] selftests/bpf: Add bpf_rr test Geliang Tang
2022-06-02 5:20 ` selftests/bpf: Add bpf_rr test: Build Failure MPTCP CI
2022-06-02 6:36 ` selftests/bpf: Add bpf_rr test: Tests Results MPTCP CI
2022-06-04 10:39 ` [PATCH mptcp-next v7 00/13] BPF packet scheduler Matthieu Baerts
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=77b282be5d838080861e2d4d0b64192f23bb6594.1654143895.git.geliang.tang@suse.com \
--to=geliang.tang@suse.com \
--cc=mptcp@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).