Message ID | ad07af14b07078bf3162924a5c3ab69198fa68c8.1646318613.git.geliang.tang@suse.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | new bpf_mptcp_sock() | expand |
Context | Check | Description |
---|---|---|
matttbe/build | fail | Build error with: -Werror |
matttbe/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 86 lines checked |
Hi Geliang, Thank you for your modifications, that's great! But sadly, our CI spotted some issues with it when trying to build it. You can find more details there: https://patchwork.kernel.org/project/mptcp/patch/ad07af14b07078bf3162924a5c3ab69198fa68c8.1646318613.git.geliang.tang@suse.com/ https://github.com/multipath-tcp/mptcp_net-next/actions/runs/1928674211 Status: failure Initiator: MPTCPimporter Commits: https://github.com/multipath-tcp/mptcp_net-next/commits/e17812e4ee5a Feel free to reply to this email if you cannot access logs, if you need some support to fix the error, if this doesn't seem to be caused by your modifications or if the error is a false positive one. Cheers, MPTCP GH Action bot Bot operated by Matthieu Baerts (Tessares)
Hi Geliang, Thank you for your modifications, that's great! Our CI did some validations and here is its report: - {"code":404,"message": - "HTTP 404 Not Found"}: - Task: https://cirrus-ci.com/task/5346941339959296 - Summary: https://api.cirrus-ci.com/v1/artifact/task/5346941339959296/summary/summary.txt - {"code":404,"message": - "HTTP 404 Not Found"}: - Task: https://cirrus-ci.com/task/5609215354994688 - Summary: https://api.cirrus-ci.com/v1/artifact/task/5609215354994688/summary/summary.txt Initiator: Patchew Applier Commits: https://github.com/multipath-tcp/mptcp_net-next/commits/e17812e4ee5a Please note that despite all the efforts that have been already done to have a stable tests suite when executed on a public CI like here, it is possible some reported issues are not due to your modifications. Still, do not hesitate to help us improve that ;-) Cheers, MPTCP GH Action bot Bot operated by Matthieu Baerts (Tessares)
Hi Geliang, Thank you for your modifications, that's great! Our CI did some validations and here is its report: - {"code":404,"message": - "HTTP 404 Not Found"}: - Task: https://cirrus-ci.com/task/5346941339959296 - Summary: https://api.cirrus-ci.com/v1/artifact/task/5346941339959296/summary/summary.txt - {"code":404,"message": - "HTTP 404 Not Found"}: - Task: https://cirrus-ci.com/task/5609215354994688 - Summary: https://api.cirrus-ci.com/v1/artifact/task/5609215354994688/summary/summary.txt Initiator: Patchew Applier Commits: https://github.com/multipath-tcp/mptcp_net-next/commits/e17812e4ee5a Please note that despite all the efforts that have been already done to have a stable tests suite when executed on a public CI like here, it is possible some reported issues are not due to your modifications. Still, do not hesitate to help us improve that ;-) Cheers, MPTCP GH Action bot Bot operated by Matthieu Baerts (Tessares)
Hello, On 03/03/2022 16:23, MPTCP CI wrote: > Hi Geliang, > > Thank you for your modifications, that's great! > > Our CI did some validations and here is its report: > > - {"code":404,"message": > - "HTTP 404 Not Found"}: It looks like there are some issues with Cirrus-CI today. I tried to re-launch builds a few times but it didn't help: https://cirrus-ci.com/task/5056006051856384 Please ignore this message from MPTCP CI (validation) for the moment then. Cheers, Matt
diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c index 04aef0f147dc..5682afdf468d 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -6,9 +6,11 @@ struct mptcp_storage { __u32 invoked; __u32 is_mptcp; + __u32 token; }; -static int verify_sk(int map_fd, int client_fd, const char *msg, __u32 is_mptcp) +static int verify_sk(int map_fd, int client_fd, const char *msg, + __u32 is_mptcp, __u32 token) { int err = 0, cfd = client_fd; struct mptcp_storage val; @@ -19,8 +21,23 @@ static int verify_sk(int map_fd, int client_fd, const char *msg, __u32 is_mptcp) * does not trigger sockops events. * We silently pass this situation at the moment. */ - if (is_mptcp == 1) + if (is_mptcp == 1) { + if (token <= 0) + return 0; + + if (CHECK_FAIL(bpf_map_lookup_elem(map_fd, &cfd, &val) < 0)) { + perror("Failed to read socket storage"); + return -1; + } + + if (val.token <= 0) { + log_err("%s: unexpected bpf_mptcp_sock.token %d != %d", + msg, val.token, token); + err++; + } + return 0; + } if (CHECK_FAIL(bpf_map_lookup_elem(map_fd, &cfd, &val) < 0)) { perror("Failed to read socket storage"); @@ -76,8 +93,8 @@ static int run_test(int cgroup_fd, int server_fd, bool is_mptcp) goto close_client_fd; } - err += is_mptcp ? verify_sk(map_fd, client_fd, "MPTCP subflow socket", 1) : - verify_sk(map_fd, client_fd, "plain TCP socket", 0); + err += is_mptcp ? verify_sk(map_fd, client_fd, "MPTCP subflow socket", 1, 1) : + verify_sk(map_fd, client_fd, "plain TCP socket", 0, 0); close_client_fd: close(client_fd); diff --git a/tools/testing/selftests/bpf/progs/mptcp.c b/tools/testing/selftests/bpf/progs/mptcp.c index be5ee8dac2b3..faf5cbe49d70 100644 --- a/tools/testing/selftests/bpf/progs/mptcp.c +++ b/tools/testing/selftests/bpf/progs/mptcp.c @@ -8,6 +8,7 @@ __u32 _version SEC("version") = 1; struct mptcp_storage { __u32 invoked; __u32 is_mptcp; + __u32 token; }; struct { @@ -20,6 +21,7 @@ struct { SEC("sockops") int _sockops(struct bpf_sock_ops *ctx) { + char fmt[] = "invoked=%u is_mptcp=%u token=%u\n"; struct mptcp_storage *storage; struct bpf_tcp_sock *tcp_sk; int op = (int)ctx->op; @@ -43,6 +45,26 @@ int _sockops(struct bpf_sock_ops *ctx) storage->invoked++; storage->is_mptcp = tcp_sk->is_mptcp; + storage->token = 0; + + if (tcp_sk->is_mptcp) { + struct bpf_mptcp_sock *msk; + + msk = bpf_mptcp_sock(sk); + if (!msk) + return 1; + storage = bpf_sk_storage_get(&socket_storage_map, msk, 0, + BPF_SK_STORAGE_GET_F_CREATE); + if (!storage) + return 1; + + storage->invoked++; + storage->token = msk->token; + storage->is_mptcp = 1; + } + + bpf_trace_printk(fmt, sizeof(fmt), + storage->invoked, storage->is_mptcp, storage->token); return 1; }
This patch extended the MPTCP test base, to exercise bpf_mptcp_sock() from C test as Alexei suggested in v3. Signed-off-by: Geliang Tang <geliang.tang@suse.com> --- .../testing/selftests/bpf/prog_tests/mptcp.c | 25 ++++++++++++++++--- tools/testing/selftests/bpf/progs/mptcp.c | 22 ++++++++++++++++ 2 files changed, 43 insertions(+), 4 deletions(-)