From patchwork Thu Mar 6 02:15:33 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 14003753 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DE4122907 for ; Thu, 6 Mar 2025 02:15:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741227348; cv=none; b=KANa7ekfMcf7KO9SOyShA1NdW9gbcxZu/3RnVuLJjmyBzNB83Hmr1fjA1EyqaN8TqhA3trAqFw9XUVxSTr34f+/8ZNeKfn8pgDOvmlBK+78gl3/nJsGYVa8NDuqJOHlW9nCr/RZTWIsowMUi0CheY9PE4Iy/l2rq6j5B5YFALys= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741227348; c=relaxed/simple; bh=sy2ykk4CvM/BCsT+KNpg+wIKvtZmG+owjA7SYmfT4hs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HG+ofpNBTndRORL+Kzyh5hJw6btL5BIKif4WDNTKrJ2HIHopJtZhQozxM7nWq7waK89clwkP4eClzO05uDVbgS5OhGXQTEb+xK75YsBsjXAtmEvvLVA7CVGEWU9EJh2LoUPd/q3uy4IYwk5k1wm9q0kgn6caJFtnaFPfk685bO0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nAqA52US; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nAqA52US" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 55B4DC4CEE2; Thu, 6 Mar 2025 02:15:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741227347; bh=sy2ykk4CvM/BCsT+KNpg+wIKvtZmG+owjA7SYmfT4hs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nAqA52USouHrMwem453x5Inl5+q/jqaytrHpmwLty0x5na33iqLHAlodyuaBejF5z QPnx96Y+fUYvCGJALrIbfH5Wflc0P7gHggx3vFKtkZvyTdAOHgVyFtNIM1jlU1iGWK 9kpf5XuIwc0ul0hRVOVEzbJuj93fijAl3XS8MEMqtvEYwE+bigACgVQCRJaI8KTFrJ RcA2tazQectiKrCcIioUft5Eifjl7KIsUUZ9cnnlye3QSDmVWVSW0sY7CY7g72SxQt VZUEsMN6eZk82Cz9ED4EQ8Awktp/b1Qyt+OjQ/H2BrLzcq+TtAQStoKVpYmOwRJjAz 7yKbgXwznSdWQ== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v1 1/8] mptcp: add mptcp_validate_scheduler helper Date: Thu, 6 Mar 2025 10:15:33 +0800 Message-ID: <01f14f2e6c9ba32887af1d52e29753dd6b85e544.1741226722.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Geliang Tang New interface .validate is added in struct bpf_struct_ops recently, this patch implements it as a new helper mptcp_validate_scheduler() for struct mptcp_sched_ops. In this helper, check whether the required ops "get_subflow" of struct mptcp_sched_ops has been implemented. Signed-off-by: Geliang Tang --- net/mptcp/protocol.h | 1 + net/mptcp/sched.c | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 3492b256ecba..77b4ec0b0dd8 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -740,6 +740,7 @@ void mptcp_info2sockaddr(const struct mptcp_addr_info *info, struct sockaddr_storage *addr, unsigned short family); struct mptcp_sched_ops *mptcp_sched_find(const char *name); +int mptcp_validate_scheduler(struct mptcp_sched_ops *sched); int mptcp_register_scheduler(struct mptcp_sched_ops *sched); void mptcp_unregister_scheduler(struct mptcp_sched_ops *sched); void mptcp_sched_init(void); diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c index f09f7eb1d63f..1e59072d478c 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -82,10 +82,23 @@ void mptcp_get_available_schedulers(char *buf, size_t maxlen) rcu_read_unlock(); } -int mptcp_register_scheduler(struct mptcp_sched_ops *sched) +int mptcp_validate_scheduler(struct mptcp_sched_ops *sched) { - if (!sched->get_send) + if (!sched->get_send) { + pr_err("%s does not implement required ops\n", sched->name); return -EINVAL; + } + + return 0; +} + +int mptcp_register_scheduler(struct mptcp_sched_ops *sched) +{ + int ret; + + ret = mptcp_validate_scheduler(sched); + if (ret) + return ret; spin_lock(&mptcp_sched_list_lock); if (mptcp_sched_find(sched->name)) { From patchwork Thu Mar 6 02:15:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 14003754 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A7B282907 for ; Thu, 6 Mar 2025 02:15:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741227349; cv=none; b=KADGRKjzJzFOSgFvHAiPHF/mZc/rhfSiZJ9JHY84kIjMEPK1rovBpXeOixCusBchhpazFHBgLTPZ9w5Op1EsISGk7vBzUYwRkMKk0UkHVOfMeyRA3j9pftN/h3jknAz4R7yLuw3WM8i8J/TgRcojZlyzVlcbwGe8BStSrxaetTM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741227349; c=relaxed/simple; bh=IF97BrkMdqIdzqcF0hZf7lBR8CNdxW4nEkpFPFUYqm0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lA0aw7VLbtun6PvRV7pQbuY4lkW33AtKSyIZb3HO6DkR+D9n2mSp8aOoavjbJZ+u7b3b7KsnrQQmYoHDht0kwkVZ+A+iDdrdJAMiWKoCAE/Ohd451CZz5QeyGBqq2gHPiYaqRP3TaXLO0n34rdbFMGFhnvc0wnVBvPotv58xd+M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Cu1+HWYC; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Cu1+HWYC" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1637AC4CED1; Thu, 6 Mar 2025 02:15:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741227349; bh=IF97BrkMdqIdzqcF0hZf7lBR8CNdxW4nEkpFPFUYqm0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Cu1+HWYCRJAGAYijKc0hq+FXZqGLXW860C4wcXt1X4MowMPveH34UMVucqBZMTZHY SXrqUbBhJY5np1Tzjug2LWLi0O4OAnwbDHUDUMNqLEcBqbATE8fW6Dyrx30npYp9eq E9fpCUPYa/Jw+FNO36UFX8OMBmtYnxCy8wwJ5oApOw//h7/meUAQfIYATmGGLXgtnC NyBYlx903n/42e7ZYuxpgp6M24g9pG9vHn3/6o4SaYx58JFQjikrr0hynncpu0VIDA hQjvv6alom9EScgQAdVjxux9Jkgm0wdgTApf3xs/AFuHIjMgLaLMN3LgaKxftJj4An XKx1Df+XIAMKA== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v1 2/8] Squash to "bpf: Add bpf_mptcp_sched_ops" Date: Thu, 6 Mar 2025 10:15:34 +0800 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Geliang Tang Please update the subject to bpf: Add mptcp packet scheduler struct_ops 1. validate interface is added in bpf_struct_ops by commit 68b04864ca42 ("bpf: Create links for BPF struct_ops maps."), implement it in mptcp_sched_ops. 2. Drop mptcp_sched_find. This part of mptcp_sched_find() code comes from bpf_tcp_ca_init_member, but it was recently deleted by commit 68b04864ca42. 3. Drop mptcp_sock_type and mptcp_subflow_type. Signed-off-by: Geliang Tang --- net/mptcp/bpf.c | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/net/mptcp/bpf.c b/net/mptcp/bpf.c index c0da9ac077e4..2b0cfb57df8c 100644 --- a/net/mptcp/bpf.c +++ b/net/mptcp/bpf.c @@ -18,8 +18,10 @@ #ifdef CONFIG_BPF_JIT static struct bpf_struct_ops bpf_mptcp_sched_ops; -static const struct btf_type *mptcp_sock_type, *mptcp_subflow_type __read_mostly; -static u32 mptcp_sock_id, mptcp_subflow_id; +static u32 mptcp_sock_id, + mptcp_subflow_id; + +/* MPTCP BPF packet scheduler */ static const struct bpf_func_proto * bpf_mptcp_sched_get_func_proto(enum bpf_func_id func_id, @@ -43,12 +45,10 @@ static int bpf_mptcp_sched_btf_struct_access(struct bpf_verifier_log *log, const struct bpf_reg_state *reg, int off, int size) { - const struct btf_type *t; + u32 id = reg->btf_id; size_t end; - t = btf_type_by_id(reg->btf, reg->btf_id); - - if (t == mptcp_sock_type) { + if (id == mptcp_sock_id) { switch (off) { case offsetof(struct mptcp_sock, snd_burst): end = offsetofend(struct mptcp_sock, snd_burst); @@ -58,7 +58,7 @@ static int bpf_mptcp_sched_btf_struct_access(struct bpf_verifier_log *log, off); return -EACCES; } - } else if (t == mptcp_subflow_type) { + } else if (id == mptcp_subflow_id) { switch (off) { case offsetof(struct mptcp_subflow_context, avg_pacing_rate): end = offsetofend(struct mptcp_subflow_context, avg_pacing_rate); @@ -75,7 +75,7 @@ static int bpf_mptcp_sched_btf_struct_access(struct bpf_verifier_log *log, if (off + size > end) { bpf_log(log, "access beyond %s at off %u size %u ended at %zu", - t == mptcp_sock_type ? "mptcp_sock" : "mptcp_subflow_context", + id == mptcp_sock_id ? "mptcp_sock" : "mptcp_subflow_context", off, size, end); return -EACCES; } @@ -113,7 +113,6 @@ static int bpf_mptcp_sched_init_member(const struct btf_type *t, const struct mptcp_sched_ops *usched; struct mptcp_sched_ops *sched; u32 moff; - int ret; usched = (const struct mptcp_sched_ops *)udata; sched = (struct mptcp_sched_ops *)kdata; @@ -124,12 +123,7 @@ static int bpf_mptcp_sched_init_member(const struct btf_type *t, if (bpf_obj_name_cpy(sched->name, usched->name, sizeof(sched->name)) <= 0) return -EINVAL; - - rcu_read_lock(); - ret = mptcp_sched_find(usched->name) ? -EEXIST : 1; - rcu_read_unlock(); - - return ret; + return 1; } return 0; @@ -144,18 +138,21 @@ static int bpf_mptcp_sched_init(struct btf *btf) if (type_id < 0) return -EINVAL; mptcp_sock_id = type_id; - mptcp_sock_type = btf_type_by_id(btf, mptcp_sock_id); type_id = btf_find_by_name_kind(btf, "mptcp_subflow_context", BTF_KIND_STRUCT); if (type_id < 0) return -EINVAL; mptcp_subflow_id = type_id; - mptcp_subflow_type = btf_type_by_id(btf, mptcp_subflow_id); return 0; } +static int bpf_mptcp_sched_validate(void *kdata) +{ + return mptcp_validate_scheduler(kdata); +} + static int __bpf_mptcp_sched_get_send(struct mptcp_sock *msk) { return 0; @@ -188,6 +185,7 @@ static struct bpf_struct_ops bpf_mptcp_sched_ops = { .check_member = bpf_mptcp_sched_check_member, .init_member = bpf_mptcp_sched_init_member, .init = bpf_mptcp_sched_init, + .validate = bpf_mptcp_sched_validate, .name = "mptcp_sched_ops", .cfi_stubs = &__bpf_mptcp_sched_ops, }; From patchwork Thu Mar 6 02:15:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 14003755 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6AC9C2907 for ; Thu, 6 Mar 2025 02:15:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741227351; cv=none; b=lktpKD8wCizLMPFc2vtMJ+iRqGr7mYyS6PfwFvsd+wmC1TTiE9NbH2DT1O+qgz+l6qJR3n4lYLkj4cx3puSp1UfAtrayzqiFP2+f+jEBBWufpKoGpl6EObg/NNvh6eqEP+w3aa7eU0+Brm2BWJ16Yu4wn0AZeINHun5tYOClQAQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741227351; c=relaxed/simple; bh=k9Yv+OUULCMOXeLDcvFQ005iVZVLREREivHBkQB2hUU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SYuoIvpVghA0HBvGSl/MwE7752efBHymLED1IdbKva4YUriKM+u6+kZI90Z6o+Q3oyeWTWpOpi/H0ZzHruZewA5sfvDCVWqhmyuIGwJyZ7Z34BnXNVaMoegRs+lpTz8Yyu5Gec/ZxNoWAqoqkytTcjOmFe6Xq0iyMlioSZSjuCw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=l1zsbExd; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="l1zsbExd" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B1CECC4CEE2; Thu, 6 Mar 2025 02:15:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741227350; bh=k9Yv+OUULCMOXeLDcvFQ005iVZVLREREivHBkQB2hUU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=l1zsbExdiep2FOzXwxRsrExXywXmh4Ls2bT2G2tA4sA7fnGv2t1RSdhoUB71CQN66 hK5FOerO+g/3ssz6jXEJLUi33qnns/PlYlvoX/J/Qc7CbIehe1JjVj3DnCm9a8bKC3 BbFjLMFIY2ZqcXnHKpLW3cOzCBLwOBAjwvPG9IXeLPxFtHpBk6M11t10Jpg8+9ntFB Qqt6sT3vT9oqLTjbyLphcGNgdvJRpR+o1Ri+73FSchfTIYa1isK3+Y6GImyNyGhTTY Wt8lXosN9qxh5TUp88uoaUtvHfX5SgwN08nHavJ24Hv6+FzWEVHiPNfdPZ52bUl/MV drjHdqtP+sZeQ== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v1 3/8] Squash to "selftests/bpf: Add bpf scheduler test" Date: Thu, 6 Mar 2025 10:15:35 +0800 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Geliang Tang A cleanup, move netns_new() out of sched_init(). Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c index ac6f6a6f7700..bd824b19ee13 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -562,23 +562,16 @@ static void test_iters_subflow(void) close(cgroup_fd); } -static struct netns_obj *sched_init(char *flags, char *sched) +static int sched_init(char *flags, char *sched) { - struct netns_obj *netns; - - netns = netns_new(NS_TEST, true); - if (!ASSERT_OK_PTR(netns, "netns_new")) - return NULL; - - if (endpoint_init("subflow", 2) < 0) + if (endpoint_init(flags, 2) < 0) goto fail; SYS(fail, "ip netns exec %s sysctl -qw net.mptcp.scheduler=%s", NS_TEST, sched); - return netns; + return 0; fail: - netns_free(netns); - return NULL; + return -1; } static int ss_search(char *src, char *dst, char *port, char *keyword) @@ -636,11 +629,16 @@ static void send_data_and_verify(char *sched, bool addr1, bool addr2) static void test_default(void) { struct netns_obj *netns; + int err; - netns = sched_init("subflow", "default"); + netns = netns_new(NS_TEST, true); if (!netns) goto fail; + err = sched_init("subflow", "default"); + if (!ASSERT_OK(err, "sched_init")) + goto fail; + send_data_and_verify("default", WITH_DATA, WITH_DATA); fail: From patchwork Thu Mar 6 02:15:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 14003756 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 446002907 for ; Thu, 6 Mar 2025 02:15:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741227354; cv=none; b=aAAKY12+eHwwYZoT5YrfBqElicfHNMGcWwzpcO+IZO46nMXHtDbr8Xx1XuKT7a1WRfW1zuTWH/DAp8s2jjAL0yLPtSEXy9oQRPtnhnxWbvJAovqMUzZneao1gVeRO4Oyrj5S3ZYAeGQfRJ1NpIPWfWFrnbhvNTJv/Svo4s/JAW0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741227354; c=relaxed/simple; bh=STl/bMC/yqtnUXVsb2kGsqXDjXtQnj9zAT98NBMwt+Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PEGL221PwDIndEWDuaaEnhjZJk2txVlzdrJWlUzjXLABzYf/463+Ix3SD8JJthgwkJgRmxR8/X/HoM2mh43mXAZN7tWve2lvxfSp3RhBCvqGJKbJlNsKjHs/+dw302zJObySNa2LdqpveOqozCL7fuB77ajU9xu/inOGbSzKbC0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dvrGk1nv; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="dvrGk1nv" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8BC86C4CED1; Thu, 6 Mar 2025 02:15:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741227352; bh=STl/bMC/yqtnUXVsb2kGsqXDjXtQnj9zAT98NBMwt+Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dvrGk1nvkY0JPsYq8Q42h8of7Tk5JVhKUgtSR/TASD4qodolp6C+cXaU9D0JR9XXm 27EXFvGnqoEDUU7kQEgKCabkYtGSFYsFeJB/ycFm0aFrB39akOjSTGEPM0xZr47Dbx /0//sKuv/+Kj3dxMaSv/ghH+7GhDv+AIB4Bs2zj5xwZveV3iHT28gLcEcCI9hdk3Ua OKTvHjWBaVo4zGdsuuXIdilIg5NBgh/tlKJMvsJ0DfGCjM03ZPW7fuAZejQZjz733Z Oy8AfuTppZkeFJWYE7nPfTXhy5gm3KTOgFFmNH7BFlJx5bnn4fpzDtDqvQ5sCuWkWI Ij6aogSTO47MQ== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v1 4/8] Squash to "selftests/bpf: Add bpf_first scheduler & test" Date: Thu, 6 Mar 2025 10:15:36 +0800 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Geliang Tang 1. Update sched_init. 2. For drop bpf_object__find_map_by_name in test_bpf_sched(), change the first parameter of it as bpf_map. 3. Use .struct_ops.link instead of .struct_ops. Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/prog_tests/mptcp.c | 15 +++++++++------ .../testing/selftests/bpf/progs/mptcp_bpf_first.c | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c index bd824b19ee13..15f7a2b97623 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -645,27 +645,30 @@ static void test_default(void) netns_free(netns); } -static void test_bpf_sched(struct bpf_object *obj, char *sched, +static void test_bpf_sched(struct bpf_map *map, char *sched, bool addr1, bool addr2) { char bpf_sched[MPTCP_SCHED_NAME_MAX] = "bpf_"; struct netns_obj *netns; struct bpf_link *link; - struct bpf_map *map; + int err; if (!ASSERT_LT(strlen(bpf_sched) + strlen(sched), MPTCP_SCHED_NAME_MAX, "Scheduler name too long")) return; - map = bpf_object__find_map_by_name(obj, sched); link = bpf_map__attach_struct_ops(map); - if (CHECK(!link, sched, "attach_struct_ops: %d\n", errno)) + if (!ASSERT_OK_PTR(link, "attach_struct_ops")) return; - netns = sched_init("subflow", strcat(bpf_sched, sched)); + netns = netns_new(NS_TEST, true); if (!netns) goto fail; + err = sched_init("subflow", strcat(bpf_sched, sched)); + if (!ASSERT_OK(err, "sched_init")) + goto fail; + send_data_and_verify(sched, addr1, addr2); fail: @@ -681,7 +684,7 @@ static void test_first(void) if (!ASSERT_OK_PTR(skel, "open_and_load: first")) return; - test_bpf_sched(skel->obj, "first", WITH_DATA, WITHOUT_DATA); + test_bpf_sched(skel->maps.first, "first", WITH_DATA, WITHOUT_DATA); mptcp_bpf_first__destroy(skel); } diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_first.c b/tools/testing/selftests/bpf/progs/mptcp_bpf_first.c index d71c50c7f441..96b002808ce7 100644 --- a/tools/testing/selftests/bpf/progs/mptcp_bpf_first.c +++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_first.c @@ -29,7 +29,7 @@ int BPF_PROG(bpf_first_get_send, struct mptcp_sock *msk) return 0; } -SEC(".struct_ops") +SEC(".struct_ops.link") struct mptcp_sched_ops first = { .init = (void *)mptcp_sched_first_init, .release = (void *)mptcp_sched_first_release, From patchwork Thu Mar 6 02:15:37 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 14003757 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2B7772907 for ; Thu, 6 Mar 2025 02:15:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741227355; cv=none; b=KSI8ksHbOKlodQ+au5oIoZ79PQ1ajlQANrb3YQV7SzXLQHD/nRhGVC0bWoNp9G4/fbYUl/N1zC0EcfePw+asN0qu3LUq9IwD9EDaOAz1V28qaYXehUf4PVe5w6T34lbkzkqxe+7s3p6vgLiqisASGCrxru+53ECrZGAsg2nniCM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741227355; c=relaxed/simple; bh=mKWBtLvwsTxYg1mZ2L/eCW4k/1resBBBaTvCpp89Lqw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SXYZM9xedFyXFvrs8dGwpKRczeTfIb12pAOvknNoeFoCzB0tNE3/J0SvpXw8178280spQoL08hfjYLwMgyC5swS1JIVZxTW3lS6LEFQsEJcS9npp/m2Pq0W5YmRpbgFhZ6DA6fHKeGnrgWauqOFBwPJlb3WZyxUrePPvjWk2NEs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SOyE7sIo; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SOyE7sIo" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 657DCC4CEE8; Thu, 6 Mar 2025 02:15:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741227354; bh=mKWBtLvwsTxYg1mZ2L/eCW4k/1resBBBaTvCpp89Lqw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SOyE7sIov90HPOnZkd2j3RPoVN1CCbacmHBU9/b/dzYWCWLkLHBL0iTdueN87EkCX qZ2CiMHxVtD7LR2CT9FgSeSG8L0BiPQ9afmfFSGMj9FZYGjYBME6+WfvdCP273Sa4w BXiRWFVZmtsSL4itX++/I7dsXZ12M7nc6c7moI6RHAy6uCLZu8gu0srgGLdzsgUN1D 4LFxxYBytdSlplhRtMLOcO4Q08MLJiFPFlDg0Uyh/ptYB7ZUdj7TDNkQ17wvIj4jHM YaAYnQ9ZvoKmZoXh9K+qnPZxsSSHhxRXxHFsnN61DCqnEM2aN6FRxVVlLcPEYdXWI0 X5xFSx4NBZeTQ== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v1 5/8] Squash to "selftests/bpf: Add bpf_bkup scheduler & test" Date: Thu, 6 Mar 2025 10:15:37 +0800 Message-ID: <5334ee7eccc419c9b79c55834e78af0b047b1ebe.1741226722.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Geliang Tang Update test_bpf_sched(). Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/prog_tests/mptcp.c | 2 +- tools/testing/selftests/bpf/progs/mptcp_bpf.h | 3 --- tools/testing/selftests/bpf/progs/mptcp_bpf_bkup.c | 2 +- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c index 15f7a2b97623..ea31b3b28367 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -696,7 +696,7 @@ static void test_bkup(void) if (!ASSERT_OK_PTR(skel, "open_and_load: bkup")) return; - test_bpf_sched(skel->obj, "bkup", WITH_DATA, WITHOUT_DATA); + test_bpf_sched(skel->maps.bkup, "bkup", WITH_DATA, WITHOUT_DATA); mptcp_bpf_bkup__destroy(skel); } diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf.h b/tools/testing/selftests/bpf/progs/mptcp_bpf.h index badcffe0942c..4e901941d5dd 100644 --- a/tools/testing/selftests/bpf/progs/mptcp_bpf.h +++ b/tools/testing/selftests/bpf/progs/mptcp_bpf.h @@ -4,9 +4,6 @@ #include "bpf_experimental.h" -/* mptcp helpers from include/net/mptcp.h */ -#define MPTCP_SUBFLOWS_MAX 8 - /* list helpers from include/linux/list.h */ static inline int list_is_head(const struct list_head *list, const struct list_head *head) diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_bkup.c b/tools/testing/selftests/bpf/progs/mptcp_bpf_bkup.c index 284cca708de0..b62ffdb7e2dd 100644 --- a/tools/testing/selftests/bpf/progs/mptcp_bpf_bkup.c +++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_bkup.c @@ -32,7 +32,7 @@ int BPF_PROG(bpf_bkup_get_send, struct mptcp_sock *msk) return 0; } -SEC(".struct_ops") +SEC(".struct_ops.link") struct mptcp_sched_ops bkup = { .init = (void *)mptcp_sched_bkup_init, .release = (void *)mptcp_sched_bkup_release, From patchwork Thu Mar 6 02:15:38 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 14003758 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E6BF12907 for ; Thu, 6 Mar 2025 02:15:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741227357; cv=none; b=E2WvHd8SN1ym6WK6nDv1tQWyREBq0KIDYjj9Kc629PnUdXhM5FsVmwksB2b8v/DsdFGPKmkPZB3jc3/1awK/KwLBzETd0efDJqv35C/rBM/iSnbrSJ2ZFs5FO+Q2L8CbjEnyFjzdKceUlOJSeNNhJ+mXso/Hdfj1oXWuP4LVXgk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741227357; c=relaxed/simple; bh=pO9cCmvUuDRD2KP7viIxLy2Yejho7yIcGttVzJar1sk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oqTDO7bmlciEdN/c5v5F8mxdx5JIFzeo0aflaGP2SiVcbckgBFN+uh6mcY8ANy8epewQl2f1jBJE40Q6xMFxt1pUchy6zKdciP89oowhEf7p+8AKL7bpCjoPySbKG5eob1+Icq9Ryf0tzGr69kc4+ouKa0bPgj+WSZymoizCu7I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qH8nUlwM; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qH8nUlwM" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 325C4C4CED1; Thu, 6 Mar 2025 02:15:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741227356; bh=pO9cCmvUuDRD2KP7viIxLy2Yejho7yIcGttVzJar1sk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qH8nUlwMjUgs9cGeJRSmv5JUJFUgoXSrzMP/X7qXnDeWIWTdPIMDHcwUHop5aEGH0 ej5X7jBlNrFG6GjM0/N/fmetKjRlxTXbaAWKfwd2DpESmNMuFnl6vu8H8GrFMn0qK6 ATQAb3Kd54tx7yMQ2uiNMzXQOAmicCPCLxohIOXdF+FortlLyDxV3FNueaHni2uiOH xvNRGlwGmRJXHkK4oaHgThn0UvwHd43s4cA9Vx5gmhah15wHMlZcCSU7DGYULtKJGh WrkzI+PdiSKBTI/uCbUzr5k04/aUV/a/Xbgiw4rkbSSOqeC3FpqLx6GzN8+tPCh7Sc drwnTx1VqCzmA== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v1 6/8] Squash to "selftests/bpf: Add bpf_rr scheduler & test" Date: Thu, 6 Mar 2025 10:15:38 +0800 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Geliang Tang Update test_bpf_sched(). Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/prog_tests/mptcp.c | 2 +- tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c index ea31b3b28367..ddbf69145d22 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -708,7 +708,7 @@ static void test_rr(void) if (!ASSERT_OK_PTR(skel, "open_and_load: rr")) return; - test_bpf_sched(skel->obj, "rr", WITH_DATA, WITH_DATA); + test_bpf_sched(skel->maps.rr, "rr", WITH_DATA, WITH_DATA); mptcp_bpf_rr__destroy(skel); } diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c b/tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c index 5128a886119d..3c685c77f67f 100644 --- a/tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c +++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c @@ -65,7 +65,7 @@ int BPF_PROG(bpf_rr_get_send, struct mptcp_sock *msk) return 0; } -SEC(".struct_ops") +SEC(".struct_ops.link") struct mptcp_sched_ops rr = { .init = (void *)mptcp_sched_rr_init, .release = (void *)mptcp_sched_rr_release, From patchwork Thu Mar 6 02:15:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 14003759 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 66C002907 for ; Thu, 6 Mar 2025 02:15:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741227358; cv=none; b=Crh47kkblG2qo1zq1TRLMnkzdG4xoHPPCvpD8iSXU8a88ElNmhLXWfVp8U9XhwADavPRqnmXjDPD2XyxWEcej+VszJmWpHDXg1gmXHM5XG+csPmAY+tODs3kLhw6pqqLjIBYLc9ROfL6xR1727kqbbRk4EamkT+08VA/tS+dsZo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741227358; c=relaxed/simple; bh=dmGcCMVB4j/AQQ79VZSAx4YqFpRFVduNDofgSm8MeQA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EuQ0zkShrFXWJKXMclo0kqjv2eeT7XSxlqlNiL5miomk5k48o4kAEBQXhHqoMtE7rB/fMSBk+B4BCZMfPCiHC0bs+pM9th43diGvgejVcx5tLGt+d1qxFrTqlzJgyjzmGA468TyPeKaL9nCkDooEglc9zmyEOrxcQnaxOY4skbY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=UYkxyDN+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="UYkxyDN+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1945EC4CED1; Thu, 6 Mar 2025 02:15:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741227358; bh=dmGcCMVB4j/AQQ79VZSAx4YqFpRFVduNDofgSm8MeQA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UYkxyDN+PWKONw8QWXFabN0feoza6NCFg32OFqad++zduhlAgd7vijPdaBwAyfK9j /Bzr+YaRZB2dqz5InFTGf5S6XPJGKtwfJYFPQtotV7GF/5Vpz8o0oHoIxTL/u2zDD4 zgDL426N03CVUZEJHayGUbvTSqiIc2TWuqi0Ezo5IcqnWonvlRjibtGy3UD/DNAR0m HT/0j368mzVE6oPD1sb4Dx0dbsZrdSGaG2Q0Vv6sKOf7bo2/u/b/4fi/VNP6rN/OAv N337iziAjZgL4R+atVrsOupojwE/L2dlWtpgJH4N5Me0xdNUTFkPmuK+eMlwzo+bYM stItjHIf0EdHw== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v1 7/8] Squash to "selftests/bpf: Add bpf_red scheduler & test" Date: Thu, 6 Mar 2025 10:15:39 +0800 Message-ID: <84d7729d9ae1660501673772c75a92c32b4c3ee1.1741226722.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Geliang Tang Update test_bpf_sched(). Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/prog_tests/mptcp.c | 2 +- tools/testing/selftests/bpf/progs/mptcp_bpf_red.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c index ddbf69145d22..c069c08371e4 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -720,7 +720,7 @@ static void test_red(void) if (!ASSERT_OK_PTR(skel, "open_and_load: red")) return; - test_bpf_sched(skel->obj, "red", WITH_DATA, WITH_DATA); + test_bpf_sched(skel->maps.red, "red", WITH_DATA, WITH_DATA); mptcp_bpf_red__destroy(skel); } diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_red.c b/tools/testing/selftests/bpf/progs/mptcp_bpf_red.c index b2efd6db7f8b..cbee97a6e7fc 100644 --- a/tools/testing/selftests/bpf/progs/mptcp_bpf_red.c +++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_red.c @@ -27,7 +27,7 @@ int BPF_PROG(bpf_red_get_send, struct mptcp_sock *msk) return 0; } -SEC(".struct_ops") +SEC(".struct_ops.link") struct mptcp_sched_ops red = { .init = (void *)mptcp_sched_red_init, .release = (void *)mptcp_sched_red_release, From patchwork Thu Mar 6 02:15:40 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 14003760 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5AC902907 for ; Thu, 6 Mar 2025 02:15:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741227360; cv=none; b=GnMHFKnKSCEzBnMzdOs8HU3/r6ajhNfDgv6sRoq2xdvj5WlxdKEwfExuGb2D0A0o5G17VSMCLQWKLIyIjK9MdCRWUtzJE5A6tYUBeFPwxcNOMZ6zUODvgSMx84kFMpDJ0cN+do8CR60JQKyuFDf4Dy62YtLuhAv7zT5TWNrWJ4o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741227360; c=relaxed/simple; bh=SkTUxwHD8Pnmu0TpOT9jbEOh5UD7Z+zF5T829AC7qiA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=N22pRZW7kZA9WeU4xmXmu1tB9fMMZqyBmoYm0qJyZ33STbyMXrFyNTi+ciZhWrpajQeQtciGTwTxgfDO6S2im+iZgHLDFWT217GyqTtQa9/hydhbCNGUXGXSbxvadd2GmcrSo750tYIr66iLgdiswMOj3KTh3xF4MbivHI019dU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WthztUOd; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WthztUOd" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EA434C4CEE2; Thu, 6 Mar 2025 02:15:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741227359; bh=SkTUxwHD8Pnmu0TpOT9jbEOh5UD7Z+zF5T829AC7qiA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WthztUOd/8vK+XU273VbHsDhzbW+v5LVX/8KTDhE9kR+7f3mgAE9NnkMlB/+B+6rM yTyItJnfkM4YjcftotH8vkD+mjt6SrcTfWgTGama8VcScqz2QzzHy5grS4gmmhy36K fz62dM7uU4heX7ES/usZMRqzbCw/64K39WjXd77x4l+AMUg5WztDG44PVJyRPxGler mW0qj1WkPfwJ5q/MYbM9nARO2Ik5jXE05SsQMR0V2QTbDLDwylKIiJvkhOopDAXorv eMAf690aVQlbMbkTksAYni3q5P3pXFjv6WIa6+2KQM0TYLNKkRphqIxgD770tsVyPz fqmZ9fP6FpieQ== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v1 8/8] Squash to "selftests/bpf: Add bpf_burst scheduler & test" Date: Thu, 6 Mar 2025 10:15:40 +0800 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Geliang Tang Update test_bpf_sched(). Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/prog_tests/mptcp.c | 2 +- tools/testing/selftests/bpf/progs/mptcp_bpf_burst.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c index c069c08371e4..0951313b1189 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -741,7 +741,7 @@ static void test_burst(void) if (!ASSERT_OK(mptcp_bpf_burst__load(skel), "load: burst")) goto skel_destroy; - test_bpf_sched(skel->obj, "burst", WITH_DATA, WITH_DATA); + test_bpf_sched(skel->maps.burst, "burst", WITH_DATA, WITH_DATA); skel_destroy: mptcp_bpf_burst__destroy(skel); } diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_burst.c b/tools/testing/selftests/bpf/progs/mptcp_bpf_burst.c index 6d930ff0f09f..693fab55f7be 100644 --- a/tools/testing/selftests/bpf/progs/mptcp_bpf_burst.c +++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_burst.c @@ -9,6 +9,10 @@ char _license[] SEC("license") = "GPL"; #define MPTCP_SEND_BURST_SIZE 65428 +#define SSK_MODE_ACTIVE 0 +#define SSK_MODE_BACKUP 1 +#define SSK_MODE_MAX 2 + #define min(a, b) ((a) < (b) ? (a) : (b)) extern bool mptcp_subflow_active(struct mptcp_subflow_context *subflow) __ksym; @@ -18,10 +22,6 @@ extern bool bpf_sk_stream_memory_free(const struct sock *sk) __ksym; extern bool bpf_mptcp_subflow_queues_empty(struct sock *sk) __ksym; extern void mptcp_pm_subflow_chk_stale(const struct mptcp_sock *msk, struct sock *ssk) __ksym; -#define SSK_MODE_ACTIVE 0 -#define SSK_MODE_BACKUP 1 -#define SSK_MODE_MAX 2 - static __always_inline __u64 div_u64(__u64 dividend, __u32 divisor) { return dividend / divisor; @@ -163,7 +163,7 @@ int BPF_PROG(bpf_burst_get_retrans, struct mptcp_sock *msk) return 0; } -SEC(".struct_ops") +SEC(".struct_ops.link") struct mptcp_sched_ops burst = { .init = (void *)mptcp_sched_burst_init, .release = (void *)mptcp_sched_burst_release,