diff options
author | Geliang Tang <tanggeliang@kylinos.cn> | 2024-04-20 09:25:11 +0000 |
---|---|---|
committer | Matthieu Baerts (NGI0) <matttbe@kernel.org> | 2024-04-20 09:25:11 +0000 |
commit | 07557b1a252901c403a2878d006e2bc47426331e (patch) | |
tree | 6f365936c4e7aae2bda9335c48b83c48a9a70ddc | |
parent | 66bd3925a057119da0b22f0a0290960367c08b51 (diff) | |
download | mptcp_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.h | 29 |
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 |