selftests/bpf: track tcp payload offset as scalar in xdp_synproxy
authorEduard Zingerman <eddyz87@gmail.com>
Tue, 21 Nov 2023 02:06:51 +0000 (04:06 +0200)
committerAlexei Starovoitov <ast@kernel.org>
Tue, 21 Nov 2023 02:33:35 +0000 (18:33 -0800)
commit977bc146d4eb7070118d8a974919b33bb52732b4
tree98441b21f88cf103aa0d88ba0f5c6ae3992b0d5b
parentfcb905d831336ee0a67dd953837a904173cf7390
selftests/bpf: track tcp payload offset as scalar in xdp_synproxy

This change prepares syncookie_{tc,xdp} for update in callbakcs
verification logic. To allow bpf_loop() verification converge when
multiple callback itreations are considered:
- track offset inside TCP payload explicitly, not as a part of the
  pointer;
- make sure that offset does not exceed MAX_PACKET_OFF enforced by
  verifier;
- make sure that offset is tracked as unbound scalar between
  iterations, otherwise verifier won't be able infer that bpf_loop
  callback reaches identical states.

Acked-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Eduard Zingerman <eddyz87@gmail.com>
Link: https://lore.kernel.org/r/20231121020701.26440-2-eddyz87@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/testing/selftests/bpf/progs/xdp_synproxy_kern.c