91134d849a
This patch add tests for the new BPF_PROG_TYPE_SK_REUSEPORT.
The tests cover:
- IPv4/IPv6 + TCP/UDP
- TCP syncookie
- TCP fastopen
- Cases when the bpf_sk_select_reuseport() returning errors
- Cases when the bpf prog returns SK_DROP
- Values from sk_reuseport_md
- outer_map => reuseport_array
The test depends on
commit 3eee1f75f2
("bpf: fix bpf_skb_load_bytes_relative pkt length check")
Signed-off-by: Martin KaFai Lau <kafai@fb.com>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
37 lines
587 B
C
37 lines
587 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/* Copyright (c) 2018 Facebook */
|
|
|
|
#ifndef __TEST_SELECT_REUSEPORT_COMMON_H
|
|
#define __TEST_SELECT_REUSEPORT_COMMON_H
|
|
|
|
#include <linux/types.h>
|
|
|
|
enum result {
|
|
DROP_ERR_INNER_MAP,
|
|
DROP_ERR_SKB_DATA,
|
|
DROP_ERR_SK_SELECT_REUSEPORT,
|
|
DROP_MISC,
|
|
PASS,
|
|
PASS_ERR_SK_SELECT_REUSEPORT,
|
|
NR_RESULTS,
|
|
};
|
|
|
|
struct cmd {
|
|
__u32 reuseport_index;
|
|
__u32 pass_on_failure;
|
|
};
|
|
|
|
struct data_check {
|
|
__u32 ip_protocol;
|
|
__u32 skb_addrs[8];
|
|
__u16 skb_ports[2];
|
|
__u16 eth_protocol;
|
|
__u8 bind_inany;
|
|
__u8 equal_check_end[0];
|
|
|
|
__u32 len;
|
|
__u32 hash;
|
|
};
|
|
|
|
#endif
|