bpf: Fix documentation of th_len in bpf_tcp_{gen,check}_syncookie
authorMaxim Mikityanskiy <maximmi@nvidia.com>
Wed, 15 Jun 2022 13:48:42 +0000 (16:48 +0300)
committerAlexei Starovoitov <ast@kernel.org>
Fri, 17 Jun 2022 04:20:29 +0000 (21:20 -0700)
bpf_tcp_gen_syncookie expects the full length of the TCP header (with
all options), and bpf_tcp_check_syncookie accepts lengths bigger than
sizeof(struct tcphdr). Fix the documentation that says these lengths
should be exactly sizeof(struct tcphdr).

While at it, fix a typo in the name of struct ipv6hdr.

Signed-off-by: Maxim Mikityanskiy <maximmi@nvidia.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Link: https://lore.kernel.org/r/20220615134847.3753567-2-maximmi@nvidia.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
include/uapi/linux/bpf.h
tools/include/uapi/linux/bpf.h

index f4009db..f545e39 100644 (file)
@@ -3597,10 +3597,11 @@ union bpf_attr {
  *
  *             *iph* points to the start of the IPv4 or IPv6 header, while
  *             *iph_len* contains **sizeof**\ (**struct iphdr**) or
- *             **sizeof**\ (**struct ip6hdr**).
+ *             **sizeof**\ (**struct ipv6hdr**).
  *
  *             *th* points to the start of the TCP header, while *th_len*
- *             contains **sizeof**\ (**struct tcphdr**).
+ *             contains the length of the TCP header (at least
+ *             **sizeof**\ (**struct tcphdr**)).
  *     Return
  *             0 if *iph* and *th* are a valid SYN cookie ACK, or a negative
  *             error otherwise.
@@ -3783,10 +3784,11 @@ union bpf_attr {
  *
  *             *iph* points to the start of the IPv4 or IPv6 header, while
  *             *iph_len* contains **sizeof**\ (**struct iphdr**) or
- *             **sizeof**\ (**struct ip6hdr**).
+ *             **sizeof**\ (**struct ipv6hdr**).
  *
  *             *th* points to the start of the TCP header, while *th_len*
- *             contains the length of the TCP header.
+ *             contains the length of the TCP header with options (at least
+ *             **sizeof**\ (**struct tcphdr**)).
  *     Return
  *             On success, lower 32 bits hold the generated SYN cookie in
  *             followed by 16 bits which hold the MSS value for that cookie,
index f4009db..f545e39 100644 (file)
@@ -3597,10 +3597,11 @@ union bpf_attr {
  *
  *             *iph* points to the start of the IPv4 or IPv6 header, while
  *             *iph_len* contains **sizeof**\ (**struct iphdr**) or
- *             **sizeof**\ (**struct ip6hdr**).
+ *             **sizeof**\ (**struct ipv6hdr**).
  *
  *             *th* points to the start of the TCP header, while *th_len*
- *             contains **sizeof**\ (**struct tcphdr**).
+ *             contains the length of the TCP header (at least
+ *             **sizeof**\ (**struct tcphdr**)).
  *     Return
  *             0 if *iph* and *th* are a valid SYN cookie ACK, or a negative
  *             error otherwise.
@@ -3783,10 +3784,11 @@ union bpf_attr {
  *
  *             *iph* points to the start of the IPv4 or IPv6 header, while
  *             *iph_len* contains **sizeof**\ (**struct iphdr**) or
- *             **sizeof**\ (**struct ip6hdr**).
+ *             **sizeof**\ (**struct ipv6hdr**).
  *
  *             *th* points to the start of the TCP header, while *th_len*
- *             contains the length of the TCP header.
+ *             contains the length of the TCP header with options (at least
+ *             **sizeof**\ (**struct tcphdr**)).
  *     Return
  *             On success, lower 32 bits hold the generated SYN cookie in
  *             followed by 16 bits which hold the MSS value for that cookie,