tcp: Add saw_unknown to struct tcp_options_received
authorMartin KaFai Lau <kafai@fb.com>
Thu, 20 Aug 2020 19:00:33 +0000 (12:00 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Mon, 24 Aug 2020 21:35:00 +0000 (14:35 -0700)
commit7656d68455891f7fc6689f95415fd59e7a1d629b
tree256a095608155286f836b9019ee268225b404224
parentca584ba070864c606f3a54faaafe774726d5b4a1
tcp: Add saw_unknown to struct tcp_options_received

In a later patch, the bpf prog only wants to be called to handle
a header option if that particular header option cannot be handled by
the kernel.  This unknown option could be written by the peer's bpf-prog.
It could also be a new standard option that the running kernel does not
support it while a bpf-prog can handle it.

This patch adds a "saw_unknown" bit to "struct tcp_options_received"
and it uses an existing one byte hole to do that.  "saw_unknown" will
be set in tcp_parse_options() if it sees an option that the kernel
cannot handle.

Signed-off-by: Martin KaFai Lau <kafai@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Acked-by: John Fastabend <john.fastabend@gmail.com>
Link: https://lore.kernel.org/bpf/20200820190033.2884430-1-kafai@fb.com
include/linux/tcp.h
net/ipv4/tcp_input.c