selftests/bpf: Extend verifier and bpf_sock tests for dst_port loads
authorJakub Sitnicki <jakub@cloudflare.com>
Sun, 30 Jan 2022 11:55:18 +0000 (12:55 +0100)
committerAlexei Starovoitov <ast@kernel.org>
Mon, 31 Jan 2022 20:39:12 +0000 (12:39 -0800)
commit8f50f16ff39dd4e2d43d1548ca66925652f8aff7
tree7dd90826ccc6a7f26688e8f790140ff96e6b43ea
parent4421a582718ab81608d8486734c18083b822390d
selftests/bpf: Extend verifier and bpf_sock tests for dst_port loads

Add coverage to the verifier tests and tests for reading bpf_sock fields to
ensure that 32-bit, 16-bit, and 8-bit loads from dst_port field are allowed
only at intended offsets and produce expected values.

While 16-bit and 8-bit access to dst_port field is straight-forward, 32-bit
wide loads need be allowed and produce a zero-padded 16-bit value for
backward compatibility.

Signed-off-by: Jakub Sitnicki <jakub@cloudflare.com>
Link: https://lore.kernel.org/r/20220130115518.213259-3-jakub@cloudflare.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/include/uapi/linux/bpf.h
tools/testing/selftests/bpf/prog_tests/sock_fields.c
tools/testing/selftests/bpf/progs/test_sock_fields.c
tools/testing/selftests/bpf/verifier/sock.c