This patch syncs the uapi bpf.h to tools/ and also updates bpf_herlpers.h in tools/
Signed-off-by: Lawrence Brakmo <bra...@fb.com> --- tools/include/uapi/linux/bpf.h | 27 ++++++++++++++++++++++- tools/testing/selftests/bpf/bpf_helpers.h | 6 +++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/tools/include/uapi/linux/bpf.h b/tools/include/uapi/linux/bpf.h index bcdd2474eee7..5d0bed852800 100644 --- a/tools/include/uapi/linux/bpf.h +++ b/tools/include/uapi/linux/bpf.h @@ -2359,6 +2359,28 @@ union bpf_attr { * Return * A **struct bpf_tcp_sock** pointer on success, or NULL in * case of failure. + * + * int bpf_tcp_enter_cwr(struct bpf_tcp_sock *tp) + * Description + * Make a tcp_sock enter CWR state. + * Return + * 0 on success, or a negative error in case of failure. + * + * int bpf_skb_ecn_set_ce(struct sk_buf *skb) + * Description + * Sets ECN of IP header to ce (congestion encountered) if + * current value is ect (ECN capable). Works with IPv6 and IPv4. + * Return + * 1 if set, 0 if not set. + * + * int bpf_tcp_check_probe_timer(struct bpf_tcp_sock *tp, int when_us) + * Description + * Checks that there are no packets out and there is no pending + * timer. If both of these are true, it bounds when_us by + * TCP_TIMEOUT_MIN (2 jiffies) or TCP_RTO_MIN (200ms) and + * sets the probe timer. + * Return + * 0 */ #define __BPF_FUNC_MAPPER(FN) \ FN(unspec), \ @@ -2457,7 +2479,10 @@ union bpf_attr { FN(spin_lock), \ FN(spin_unlock), \ FN(sk_fullsock), \ - FN(tcp_sock), + FN(tcp_sock), \ + FN(tcp_enter_cwr), \ + FN(skb_ecn_set_ce), \ + FN(tcp_check_probe_timer), /* integer value in 'imm' field of BPF_CALL instruction selects which helper * function eBPF program intends to call diff --git a/tools/testing/selftests/bpf/bpf_helpers.h b/tools/testing/selftests/bpf/bpf_helpers.h index d9999f1ed1d2..8aec59624ebc 100644 --- a/tools/testing/selftests/bpf/bpf_helpers.h +++ b/tools/testing/selftests/bpf/bpf_helpers.h @@ -180,6 +180,12 @@ static struct bpf_sock *(*bpf_sk_fullsock)(struct bpf_sock *sk) = (void *) BPF_FUNC_sk_fullsock; static struct bpf_tcp_sock *(*bpf_tcp_sock)(struct bpf_sock *sk) = (void *) BPF_FUNC_tcp_sock; +static int (*bpf_tcp_enter_cwr)(struct bpf_tcp_sock *tp) = + (void *) BPF_FUNC_tcp_enter_cwr; +static int (*bpf_skb_ecn_set_ce)(void *ctx) = + (void *) BPF_FUNC_skb_ecn_set_ce; +static int (*bpf_tcp_check_probe_timer)(struct bpf_tcp_sock *tp, int when_us) = + (void *) BPF_FUNC_tcp_check_probe_timer; /* llvm builtin functions that eBPF C program may use to * emit BPF_LD_ABS and BPF_LD_IND instructions -- 2.17.1