aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeliang Tang <tanggeliang@kylinos.cn>2024-04-20 09:25:11 +0000
committerMatthieu Baerts (NGI0) <matttbe@kernel.org>2024-04-20 09:25:11 +0000
commit07557b1a252901c403a2878d006e2bc47426331e (patch)
tree6f365936c4e7aae2bda9335c48b83c48a9a70ddc
parent66bd3925a057119da0b22f0a0290960367c08b51 (diff)
downloadmptcp_net-next-07557b1a252901c403a2878d006e2bc47426331e.tar.gz
selftests/bpf: Add mptcp sched structs
This patch adds three MPTCP scheduler structures: struct mptcp_sched_ops, struct mptcp_sched_data and struct mptcp_subflow_context; and exports mptcp_subflow_set_scheduled() and mptcp_sched_data_set_contexts() helpers for bpf selftests. Reviewed-by: Mat Martineau <martineau@kernel.org> Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
-rw-r--r--tools/testing/selftests/bpf/bpf_tcp_helpers.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/tools/testing/selftests/bpf/bpf_tcp_helpers.h b/tools/testing/selftests/bpf/bpf_tcp_helpers.h
index 82a7c9de95f909..f698f249686aea 100644
--- a/tools/testing/selftests/bpf/bpf_tcp_helpers.h
+++ b/tools/testing/selftests/bpf/bpf_tcp_helpers.h
@@ -230,6 +230,30 @@ static __always_inline bool tcp_cc_eq(const char *a, const char *b)
extern __u32 tcp_slow_start(struct tcp_sock *tp, __u32 acked) __ksym;
extern void tcp_cong_avoid_ai(struct tcp_sock *tp, __u32 w, __u32 acked) __ksym;
+#define MPTCP_SCHED_NAME_MAX 16
+#define MPTCP_SUBFLOWS_MAX 8
+
+struct mptcp_subflow_context {
+ __u32 backup : 1;
+ struct sock *tcp_sock; /* tcp sk backpointer */
+} __attribute__((preserve_access_index));
+
+struct mptcp_sched_data {
+ bool reinject;
+ __u8 subflows;
+} __attribute__((preserve_access_index));
+
+struct mptcp_sched_ops {
+ char name[MPTCP_SCHED_NAME_MAX];
+
+ void (*init)(struct mptcp_sock *msk);
+ void (*release)(struct mptcp_sock *msk);
+
+ int (*get_subflow)(struct mptcp_sock *msk,
+ struct mptcp_sched_data *data);
+ void *owner;
+};
+
struct mptcp_sock {
struct inet_connection_sock sk;
@@ -238,4 +262,9 @@ struct mptcp_sock {
char ca_name[TCP_CA_NAME_MAX];
} __attribute__((preserve_access_index));
+extern void mptcp_subflow_set_scheduled(struct mptcp_subflow_context *subflow,
+ bool scheduled) __ksym;
+extern struct mptcp_subflow_context *
+bpf_mptcp_subflow_ctx_by_pos(const struct mptcp_sched_data *data, unsigned int pos) __ksym;
+
#endif