Commit 3745ee18 authored by Petar Penkov's avatar Petar Penkov Committed by Alexei Starovoitov
Browse files

bpf: sync bpf.h to tools/



Sync updated documentation for bpf_redirect_map.

Sync the bpf_tcp_gen_syncookie helper function definition with the one
in tools/uapi.

Signed-off-by: default avatarPetar Penkov <ppenkov@google.com>
Reviewed-by: default avatarLorenz Bauer <lmb@cloudflare.com>
Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent 70d66244
Loading
Loading
Loading
Loading
+34 −3
Original line number Diff line number Diff line
@@ -1572,8 +1572,11 @@ union bpf_attr {
 * 		but this is only implemented for native XDP (with driver
 * 		support) as of this writing).
 *
 * 		All values for *flags* are reserved for future usage, and must
 * 		be left at zero.
 * 		The lower two bits of *flags* are used as the return code if
 * 		the map lookup fails. This is so that the return value can be
 * 		one of the XDP program return codes up to XDP_TX, as chosen by
 * 		the caller. Any higher bits in the *flags* argument must be
 * 		unset.
 *
 * 		When used to redirect packets to net devices, this helper
 * 		provides a high performance increase over **bpf_redirect**\ ().
@@ -2711,6 +2714,33 @@ union bpf_attr {
 *		**-EPERM** if no permission to send the *sig*.
 *
 *		**-EAGAIN** if bpf program can try again.
 *
 * s64 bpf_tcp_gen_syncookie(struct bpf_sock *sk, void *iph, u32 iph_len, struct tcphdr *th, u32 th_len)
 *	Description
 *		Try to issue a SYN cookie for the packet with corresponding
 *		IP/TCP headers, *iph* and *th*, on the listening socket in *sk*.
 *
 *		*iph* points to the start of the IPv4 or IPv6 header, while
 *		*iph_len* contains **sizeof**\ (**struct iphdr**) or
 *		**sizeof**\ (**struct ip6hdr**).
 *
 *		*th* points to the start of the TCP header, while *th_len*
 *		contains the length of the TCP header.
 *
 *	Return
 *		On success, lower 32 bits hold the generated SYN cookie in
 *		followed by 16 bits which hold the MSS value for that cookie,
 *		and the top 16 bits are unused.
 *
 *		On failure, the returned value is one of the following:
 *
 *		**-EINVAL** SYN cookie cannot be issued due to error
 *
 *		**-ENOENT** SYN cookie should not be issued (no SYN flood)
 *
 *		**-EOPNOTSUPP** kernel configuration does not enable SYN cookies
 *
 *		**-EPROTONOSUPPORT** IP packet version is not 4 or 6
 */
#define __BPF_FUNC_MAPPER(FN)		\
	FN(unspec),			\
@@ -2822,7 +2852,8 @@ union bpf_attr {
	FN(strtoul),			\
	FN(sk_storage_get),		\
	FN(sk_storage_delete),		\
	FN(send_signal),
	FN(send_signal),		\
	FN(tcp_gen_syncookie),

/* integer value in 'imm' field of BPF_CALL instruction selects which helper
 * function eBPF program intends to call