bpf_verifier_envRegular
4.4: Absent ⚠️
4.8: Absent ⚠️
4.10: ✅struct bpf_verifier_env {
struct bpf_prog *prog;
struct bpf_verifier_stack_elem *head;
int stack_size;
struct bpf_verifier_state cur_state;
struct bpf_verifier_state_list **explored_states;
const struct bpf_ext_analyzer_ops *analyzer_ops;
void *analyzer_priv;
struct bpf_map * used_maps[64];
u32 used_map_cnt;
u32 id_gen;
bool allow_ptr_leaks;
bool seen_direct_write;
bool varlen_map_value_access;
struct bpf_insn_aux_data *insn_aux_data;
};
4.13: ✅struct bpf_verifier_env {
struct bpf_prog *prog;
struct bpf_verifier_stack_elem *head;
int stack_size;
bool strict_alignment;
struct bpf_verifier_state cur_state;
struct bpf_verifier_state_list **explored_states;
const struct bpf_ext_analyzer_ops *analyzer_ops;
void *analyzer_priv;
struct bpf_map * used_maps[64];
u32 used_map_cnt;
u32 id_gen;
bool allow_ptr_leaks;
bool seen_direct_write;
bool varlen_map_value_access;
struct bpf_insn_aux_data *insn_aux_data;
};
4.15: ✅struct bpf_verifier_env {
struct bpf_prog *prog;
const struct bpf_verifier_ops *ops;
struct bpf_verifier_stack_elem *head;
int stack_size;
bool strict_alignment;
struct bpf_verifier_state *cur_state;
struct bpf_verifier_state_list **explored_states;
const struct bpf_ext_analyzer_ops *dev_ops;
struct bpf_map * used_maps[64];
u32 used_map_cnt;
u32 id_gen;
bool allow_ptr_leaks;
bool seen_direct_write;
struct bpf_insn_aux_data *insn_aux_data;
struct bpf_verifer_log log;
};
4.18: ✅struct bpf_verifier_env {
struct bpf_prog *prog;
const struct bpf_verifier_ops *ops;
struct bpf_verifier_stack_elem *head;
int stack_size;
bool strict_alignment;
struct bpf_verifier_state *cur_state;
struct bpf_verifier_state_list **explored_states;
struct bpf_map * used_maps[64];
u32 used_map_cnt;
u32 id_gen;
bool allow_ptr_leaks;
bool seen_direct_write;
struct bpf_insn_aux_data *insn_aux_data;
struct bpf_verifier_log log;
struct bpf_subprog_info subprog_info[257];
u32 subprog_cnt;
};
5.0: ✅struct bpf_verifier_env {
u32 insn_idx;
u32 prev_insn_idx;
struct bpf_prog *prog;
const struct bpf_verifier_ops *ops;
struct bpf_verifier_stack_elem *head;
int stack_size;
bool strict_alignment;
struct bpf_verifier_state *cur_state;
struct bpf_verifier_state_list **explored_states;
struct bpf_map * used_maps[64];
u32 used_map_cnt;
u32 id_gen;
bool allow_ptr_leaks;
bool seen_direct_write;
struct bpf_insn_aux_data *insn_aux_data;
const struct bpf_line_info *prev_linfo;
struct bpf_verifier_log log;
struct bpf_subprog_info subprog_info[257];
u32 subprog_cnt;
};
5.3: ✅struct bpf_verifier_env {
u32 insn_idx;
u32 prev_insn_idx;
struct bpf_prog *prog;
const struct bpf_verifier_ops *ops;
struct bpf_verifier_stack_elem *head;
int stack_size;
bool strict_alignment;
struct bpf_verifier_state *cur_state;
struct bpf_verifier_state_list **explored_states;
struct bpf_verifier_state_list *free_list;
struct bpf_map * used_maps[64];
u32 used_map_cnt;
u32 id_gen;
bool allow_ptr_leaks;
bool seen_direct_write;
struct bpf_insn_aux_data *insn_aux_data;
const struct bpf_line_info *prev_linfo;
struct bpf_verifier_log log;
struct bpf_subprog_info subprog_info[257];
struct (anon) cfg;
u32 subprog_cnt;
u32 prev_insn_processed;
u32 insn_processed;
u32 prev_jmps_processed;
u32 jmps_processed;
u64 verification_time;
u32 max_states_per_insn;
u32 total_states;
u32 peak_states;
u32 longest_mark_read_walk;
};
5.4: ✅struct bpf_verifier_env {
u32 insn_idx;
u32 prev_insn_idx;
struct bpf_prog *prog;
const struct bpf_verifier_ops *ops;
struct bpf_verifier_stack_elem *head;
int stack_size;
bool strict_alignment;
bool test_state_freq;
struct bpf_verifier_state *cur_state;
struct bpf_verifier_state_list **explored_states;
struct bpf_verifier_state_list *free_list;
struct bpf_map * used_maps[64];
u32 used_map_cnt;
u32 id_gen;
bool allow_ptr_leaks;
bool seen_direct_write;
struct bpf_insn_aux_data *insn_aux_data;
const struct bpf_line_info *prev_linfo;
struct bpf_verifier_log log;
struct bpf_subprog_info subprog_info[257];
struct (anon) cfg;
u32 subprog_cnt;
u32 prev_insn_processed;
u32 insn_processed;
u32 prev_jmps_processed;
u32 jmps_processed;
u64 verification_time;
u32 max_states_per_insn;
u32 total_states;
u32 peak_states;
u32 longest_mark_read_walk;
};
5.8: ✅struct bpf_verifier_env {
u32 insn_idx;
u32 prev_insn_idx;
struct bpf_prog *prog;
const struct bpf_verifier_ops *ops;
struct bpf_verifier_stack_elem *head;
int stack_size;
bool strict_alignment;
bool test_state_freq;
struct bpf_verifier_state *cur_state;
struct bpf_verifier_state_list **explored_states;
struct bpf_verifier_state_list *free_list;
struct bpf_map * used_maps[64];
u32 used_map_cnt;
u32 id_gen;
bool allow_ptr_leaks;
bool bpf_capable;
bool bypass_spec_v1;
bool bypass_spec_v4;
bool seen_direct_write;
struct bpf_insn_aux_data *insn_aux_data;
const struct bpf_line_info *prev_linfo;
struct bpf_verifier_log log;
struct bpf_subprog_info subprog_info[257];
struct (anon) cfg;
u32 pass_cnt;
u32 subprog_cnt;
u32 prev_insn_processed;
u32 insn_processed;
u32 prev_jmps_processed;
u32 jmps_processed;
u64 verification_time;
u32 max_states_per_insn;
u32 total_states;
u32 peak_states;
u32 longest_mark_read_walk;
};
5.11: ✅struct bpf_verifier_env {
u32 insn_idx;
u32 prev_insn_idx;
struct bpf_prog *prog;
const struct bpf_verifier_ops *ops;
struct bpf_verifier_stack_elem *head;
int stack_size;
bool strict_alignment;
bool test_state_freq;
struct bpf_verifier_state *cur_state;
struct bpf_verifier_state_list **explored_states;
struct bpf_verifier_state_list *free_list;
struct bpf_map * used_maps[64];
u32 used_map_cnt;
u32 id_gen;
bool allow_ptr_leaks;
bool allow_ptr_to_map_access;
bool bpf_capable;
bool bypass_spec_v1;
bool bypass_spec_v4;
bool seen_direct_write;
struct bpf_insn_aux_data *insn_aux_data;
const struct bpf_line_info *prev_linfo;
struct bpf_verifier_log log;
struct bpf_subprog_info subprog_info[257];
struct (anon) cfg;
u32 pass_cnt;
u32 subprog_cnt;
u32 prev_insn_processed;
u32 insn_processed;
u32 prev_jmps_processed;
u32 jmps_processed;
u64 verification_time;
u32 max_states_per_insn;
u32 total_states;
u32 peak_states;
u32 longest_mark_read_walk;
};
5.13: ✅struct bpf_verifier_env {
u32 insn_idx;
u32 prev_insn_idx;
struct bpf_prog *prog;
const struct bpf_verifier_ops *ops;
struct bpf_verifier_stack_elem *head;
int stack_size;
bool strict_alignment;
bool test_state_freq;
struct bpf_verifier_state *cur_state;
struct bpf_verifier_state_list **explored_states;
struct bpf_verifier_state_list *free_list;
struct bpf_map * used_maps[64];
struct btf_mod_pair used_btfs[64];
u32 used_map_cnt;
u32 used_btf_cnt;
u32 id_gen;
bool explore_alu_limits;
bool allow_ptr_leaks;
bool allow_uninit_stack;
bool allow_ptr_to_map_access;
bool bpf_capable;
bool bypass_spec_v1;
bool bypass_spec_v4;
bool seen_direct_write;
struct bpf_insn_aux_data *insn_aux_data;
const struct bpf_line_info *prev_linfo;
struct bpf_verifier_log log;
struct bpf_subprog_info subprog_info[257];
struct bpf_id_pair idmap_scratch[75];
struct (anon) cfg;
u32 pass_cnt;
u32 subprog_cnt;
u32 prev_insn_processed;
u32 insn_processed;
u32 prev_jmps_processed;
u32 jmps_processed;
u64 verification_time;
u32 max_states_per_insn;
u32 total_states;
u32 peak_states;
u32 longest_mark_read_walk;
};
5.15: ✅struct bpf_verifier_env {
u32 insn_idx;
u32 prev_insn_idx;
struct bpf_prog *prog;
const struct bpf_verifier_ops *ops;
struct bpf_verifier_stack_elem *head;
int stack_size;
bool strict_alignment;
bool test_state_freq;
struct bpf_verifier_state *cur_state;
struct bpf_verifier_state_list **explored_states;
struct bpf_verifier_state_list *free_list;
struct bpf_map * used_maps[64];
struct btf_mod_pair used_btfs[64];
u32 used_map_cnt;
u32 used_btf_cnt;
u32 id_gen;
bool explore_alu_limits;
bool allow_ptr_leaks;
bool allow_uninit_stack;
bool allow_ptr_to_map_access;
bool bpf_capable;
bool bypass_spec_v1;
bool bypass_spec_v4;
bool seen_direct_write;
struct bpf_insn_aux_data *insn_aux_data;
const struct bpf_line_info *prev_linfo;
struct bpf_verifier_log log;
struct bpf_subprog_info subprog_info[257];
struct bpf_id_pair idmap_scratch[75];
struct (anon) cfg;
u32 pass_cnt;
u32 subprog_cnt;
u32 prev_insn_processed;
u32 insn_processed;
u32 prev_jmps_processed;
u32 jmps_processed;
u64 verification_time;
u32 max_states_per_insn;
u32 total_states;
u32 peak_states;
u32 longest_mark_read_walk;
bpfptr_t fd_array;
};
5.19: ✅struct bpf_verifier_env {
u32 insn_idx;
u32 prev_insn_idx;
struct bpf_prog *prog;
const struct bpf_verifier_ops *ops;
struct bpf_verifier_stack_elem *head;
int stack_size;
bool strict_alignment;
bool test_state_freq;
struct bpf_verifier_state *cur_state;
struct bpf_verifier_state_list **explored_states;
struct bpf_verifier_state_list *free_list;
struct bpf_map * used_maps[64];
struct btf_mod_pair used_btfs[64];
u32 used_map_cnt;
u32 used_btf_cnt;
u32 id_gen;
bool explore_alu_limits;
bool allow_ptr_leaks;
bool allow_uninit_stack;
bool allow_ptr_to_map_access;
bool bpf_capable;
bool bypass_spec_v1;
bool bypass_spec_v4;
bool seen_direct_write;
struct bpf_insn_aux_data *insn_aux_data;
const struct bpf_line_info *prev_linfo;
struct bpf_verifier_log log;
struct bpf_subprog_info subprog_info[257];
struct bpf_id_pair idmap_scratch[75];
struct (anon) cfg;
u32 pass_cnt;
u32 subprog_cnt;
u32 prev_insn_processed;
u32 insn_processed;
u32 prev_jmps_processed;
u32 jmps_processed;
u64 verification_time;
u32 max_states_per_insn;
u32 total_states;
u32 peak_states;
u32 longest_mark_read_walk;
bpfptr_t fd_array;
u32 scratched_regs;
u64 scratched_stack_slots;
u32 prev_log_len;
u32 prev_insn_print_len;
char type_str_buf[64];
};
6.2: ✅struct bpf_verifier_env {
u32 insn_idx;
u32 prev_insn_idx;
struct bpf_prog *prog;
const struct bpf_verifier_ops *ops;
struct bpf_verifier_stack_elem *head;
int stack_size;
bool strict_alignment;
bool test_state_freq;
struct bpf_verifier_state *cur_state;
struct bpf_verifier_state_list **explored_states;
struct bpf_verifier_state_list *free_list;
struct bpf_map * used_maps[64];
struct btf_mod_pair used_btfs[64];
u32 used_map_cnt;
u32 used_btf_cnt;
u32 id_gen;
bool explore_alu_limits;
bool allow_ptr_leaks;
bool allow_uninit_stack;
bool bpf_capable;
bool bypass_spec_v1;
bool bypass_spec_v4;
bool seen_direct_write;
bool rcu_tag_supported;
struct bpf_insn_aux_data *insn_aux_data;
const struct bpf_line_info *prev_linfo;
struct bpf_verifier_log log;
struct bpf_subprog_info subprog_info[257];
struct bpf_id_pair idmap_scratch[600];
struct (anon) cfg;
u32 pass_cnt;
u32 subprog_cnt;
u32 prev_insn_processed;
u32 insn_processed;
u32 prev_jmps_processed;
u32 jmps_processed;
u64 verification_time;
u32 max_states_per_insn;
u32 total_states;
u32 peak_states;
u32 longest_mark_read_walk;
bpfptr_t fd_array;
u32 scratched_regs;
u64 scratched_stack_slots;
u32 prev_log_len;
u32 prev_insn_print_len;
char type_str_buf[128];
};
6.5: ✅struct bpf_verifier_env {
u32 insn_idx;
u32 prev_insn_idx;
struct bpf_prog *prog;
const struct bpf_verifier_ops *ops;
struct bpf_verifier_stack_elem *head;
int stack_size;
bool strict_alignment;
bool test_state_freq;
struct bpf_verifier_state *cur_state;
struct bpf_verifier_state_list **explored_states;
struct bpf_verifier_state_list *free_list;
struct bpf_map * used_maps[64];
struct btf_mod_pair used_btfs[64];
u32 used_map_cnt;
u32 used_btf_cnt;
u32 id_gen;
bool explore_alu_limits;
bool allow_ptr_leaks;
bool allow_uninit_stack;
bool bpf_capable;
bool bypass_spec_v1;
bool bypass_spec_v4;
bool seen_direct_write;
struct bpf_insn_aux_data *insn_aux_data;
const struct bpf_line_info *prev_linfo;
struct bpf_verifier_log log;
struct bpf_subprog_info subprog_info[257];
struct bpf_idmap idmap_scratch;
struct bpf_idset idset_scratch;
struct (anon) cfg;
struct backtrack_state bt;
u32 pass_cnt;
u32 subprog_cnt;
u32 prev_insn_processed;
u32 insn_processed;
u32 prev_jmps_processed;
u32 jmps_processed;
u64 verification_time;
u32 max_states_per_insn;
u32 total_states;
u32 peak_states;
u32 longest_mark_read_walk;
bpfptr_t fd_array;
u32 scratched_regs;
u64 scratched_stack_slots;
u64 prev_log_pos;
u64 prev_insn_print_pos;
char tmp_str_buf[320];
};
6.8: ✅struct bpf_verifier_env {
u32 insn_idx;
u32 prev_insn_idx;
struct bpf_prog *prog;
const struct bpf_verifier_ops *ops;
struct bpf_verifier_stack_elem *head;
int stack_size;
bool strict_alignment;
bool test_state_freq;
bool test_reg_invariants;
struct bpf_verifier_state *cur_state;
struct bpf_verifier_state_list **explored_states;
struct bpf_verifier_state_list *free_list;
struct bpf_map * used_maps[64];
struct btf_mod_pair used_btfs[64];
u32 used_map_cnt;
u32 used_btf_cnt;
u32 id_gen;
u32 hidden_subprog_cnt;
int exception_callback_subprog;
bool explore_alu_limits;
bool allow_ptr_leaks;
bool allow_uninit_stack;
bool bpf_capable;
bool bypass_spec_v1;
bool bypass_spec_v4;
bool seen_direct_write;
bool seen_exception;
struct bpf_insn_aux_data *insn_aux_data;
const struct bpf_line_info *prev_linfo;
struct bpf_verifier_log log;
struct bpf_subprog_info subprog_info[258];
struct bpf_idmap idmap_scratch;
struct bpf_idset idset_scratch;
struct (anon) cfg;
struct backtrack_state bt;
struct bpf_jmp_history_entry *cur_hist_ent;
u32 pass_cnt;
u32 subprog_cnt;
u32 prev_insn_processed;
u32 insn_processed;
u32 prev_jmps_processed;
u32 jmps_processed;
u64 verification_time;
u32 max_states_per_insn;
u32 total_states;
u32 peak_states;
u32 longest_mark_read_walk;
bpfptr_t fd_array;
u32 scratched_regs;
u64 scratched_stack_slots;
u64 prev_log_pos;
u64 prev_insn_print_pos;
char tmp_str_buf[320];
};
arm64: ✅struct bpf_verifier_env {
u32 insn_idx;
u32 prev_insn_idx;
struct bpf_prog *prog;
const struct bpf_verifier_ops *ops;
struct bpf_verifier_stack_elem *head;
int stack_size;
bool strict_alignment;
bool test_state_freq;
struct bpf_verifier_state *cur_state;
struct bpf_verifier_state_list **explored_states;
struct bpf_verifier_state_list *free_list;
struct bpf_map * used_maps[64];
u32 used_map_cnt;
u32 id_gen;
bool allow_ptr_leaks;
bool seen_direct_write;
struct bpf_insn_aux_data *insn_aux_data;
const struct bpf_line_info *prev_linfo;
struct bpf_verifier_log log;
struct bpf_subprog_info subprog_info[257];
struct (anon) cfg;
u32 subprog_cnt;
u32 prev_insn_processed;
u32 insn_processed;
u32 prev_jmps_processed;
u32 jmps_processed;
u64 verification_time;
u32 max_states_per_insn;
u32 total_states;
u32 peak_states;
u32 longest_mark_read_walk;
};
armhf: ✅struct bpf_verifier_env {
u32 insn_idx;
u32 prev_insn_idx;
struct bpf_prog *prog;
const struct bpf_verifier_ops *ops;
struct bpf_verifier_stack_elem *head;
int stack_size;
bool strict_alignment;
bool test_state_freq;
struct bpf_verifier_state *cur_state;
struct bpf_verifier_state_list **explored_states;
struct bpf_verifier_state_list *free_list;
struct bpf_map * used_maps[64];
u32 used_map_cnt;
u32 id_gen;
bool allow_ptr_leaks;
bool seen_direct_write;
struct bpf_insn_aux_data *insn_aux_data;
const struct bpf_line_info *prev_linfo;
struct bpf_verifier_log log;
struct bpf_subprog_info subprog_info[257];
struct (anon) cfg;
u32 subprog_cnt;
u32 prev_insn_processed;
u32 insn_processed;
u32 prev_jmps_processed;
u32 jmps_processed;
u64 verification_time;
u32 max_states_per_insn;
u32 total_states;
u32 peak_states;
u32 longest_mark_read_walk;
};
ppc64el: ✅struct bpf_verifier_env {
u32 insn_idx;
u32 prev_insn_idx;
struct bpf_prog *prog;
const struct bpf_verifier_ops *ops;
struct bpf_verifier_stack_elem *head;
int stack_size;
bool strict_alignment;
bool test_state_freq;
struct bpf_verifier_state *cur_state;
struct bpf_verifier_state_list **explored_states;
struct bpf_verifier_state_list *free_list;
struct bpf_map * used_maps[64];
u32 used_map_cnt;
u32 id_gen;
bool allow_ptr_leaks;
bool seen_direct_write;
struct bpf_insn_aux_data *insn_aux_data;
const struct bpf_line_info *prev_linfo;
struct bpf_verifier_log log;
struct bpf_subprog_info subprog_info[257];
struct (anon) cfg;
u32 subprog_cnt;
u32 prev_insn_processed;
u32 insn_processed;
u32 prev_jmps_processed;
u32 jmps_processed;
u64 verification_time;
u32 max_states_per_insn;
u32 total_states;
u32 peak_states;
u32 longest_mark_read_walk;
};
riscv64: ✅struct bpf_verifier_env {
u32 insn_idx;
u32 prev_insn_idx;
struct bpf_prog *prog;
const struct bpf_verifier_ops *ops;
struct bpf_verifier_stack_elem *head;
int stack_size;
bool strict_alignment;
bool test_state_freq;
struct bpf_verifier_state *cur_state;
struct bpf_verifier_state_list **explored_states;
struct bpf_verifier_state_list *free_list;
struct bpf_map * used_maps[64];
u32 used_map_cnt;
u32 id_gen;
bool allow_ptr_leaks;
bool seen_direct_write;
struct bpf_insn_aux_data *insn_aux_data;
const struct bpf_line_info *prev_linfo;
struct bpf_verifier_log log;
struct bpf_subprog_info subprog_info[257];
struct (anon) cfg;
u32 subprog_cnt;
u32 prev_insn_processed;
u32 insn_processed;
u32 prev_jmps_processed;
u32 jmps_processed;
u64 verification_time;
u32 max_states_per_insn;
u32 total_states;
u32 peak_states;
u32 longest_mark_read_walk;
};
aws: ✅struct bpf_verifier_env {
u32 insn_idx;
u32 prev_insn_idx;
struct bpf_prog *prog;
const struct bpf_verifier_ops *ops;
struct bpf_verifier_stack_elem *head;
int stack_size;
bool strict_alignment;
bool test_state_freq;
struct bpf_verifier_state *cur_state;
struct bpf_verifier_state_list **explored_states;
struct bpf_verifier_state_list *free_list;
struct bpf_map * used_maps[64];
u32 used_map_cnt;
u32 id_gen;
bool allow_ptr_leaks;
bool seen_direct_write;
struct bpf_insn_aux_data *insn_aux_data;
const struct bpf_line_info *prev_linfo;
struct bpf_verifier_log log;
struct bpf_subprog_info subprog_info[257];
struct (anon) cfg;
u32 subprog_cnt;
u32 prev_insn_processed;
u32 insn_processed;
u32 prev_jmps_processed;
u32 jmps_processed;
u64 verification_time;
u32 max_states_per_insn;
u32 total_states;
u32 peak_states;
u32 longest_mark_read_walk;
};
azure: ✅struct bpf_verifier_env {
u32 insn_idx;
u32 prev_insn_idx;
struct bpf_prog *prog;
const struct bpf_verifier_ops *ops;
struct bpf_verifier_stack_elem *head;
int stack_size;
bool strict_alignment;
bool test_state_freq;
struct bpf_verifier_state *cur_state;
struct bpf_verifier_state_list **explored_states;
struct bpf_verifier_state_list *free_list;
struct bpf_map * used_maps[64];
u32 used_map_cnt;
u32 id_gen;
bool allow_ptr_leaks;
bool seen_direct_write;
struct bpf_insn_aux_data *insn_aux_data;
const struct bpf_line_info *prev_linfo;
struct bpf_verifier_log log;
struct bpf_subprog_info subprog_info[257];
struct (anon) cfg;
u32 subprog_cnt;
u32 prev_insn_processed;
u32 insn_processed;
u32 prev_jmps_processed;
u32 jmps_processed;
u64 verification_time;
u32 max_states_per_insn;
u32 total_states;
u32 peak_states;
u32 longest_mark_read_walk;
};
gcp: ✅struct bpf_verifier_env {
u32 insn_idx;
u32 prev_insn_idx;
struct bpf_prog *prog;
const struct bpf_verifier_ops *ops;
struct bpf_verifier_stack_elem *head;
int stack_size;
bool strict_alignment;
bool test_state_freq;
struct bpf_verifier_state *cur_state;
struct bpf_verifier_state_list **explored_states;
struct bpf_verifier_state_list *free_list;
struct bpf_map * used_maps[64];
u32 used_map_cnt;
u32 id_gen;
bool allow_ptr_leaks;
bool seen_direct_write;
struct bpf_insn_aux_data *insn_aux_data;
const struct bpf_line_info *prev_linfo;
struct bpf_verifier_log log;
struct bpf_subprog_info subprog_info[257];
struct (anon) cfg;
u32 subprog_cnt;
u32 prev_insn_processed;
u32 insn_processed;
u32 prev_jmps_processed;
u32 jmps_processed;
u64 verification_time;
u32 max_states_per_insn;
u32 total_states;
u32 peak_states;
u32 longest_mark_read_walk;
};
lowlatency: ✅struct bpf_verifier_env {
u32 insn_idx;
u32 prev_insn_idx;
struct bpf_prog *prog;
const struct bpf_verifier_ops *ops;
struct bpf_verifier_stack_elem *head;
int stack_size;
bool strict_alignment;
bool test_state_freq;
struct bpf_verifier_state *cur_state;
struct bpf_verifier_state_list **explored_states;
struct bpf_verifier_state_list *free_list;
struct bpf_map * used_maps[64];
u32 used_map_cnt;
u32 id_gen;
bool allow_ptr_leaks;
bool seen_direct_write;
struct bpf_insn_aux_data *insn_aux_data;
const struct bpf_line_info *prev_linfo;
struct bpf_verifier_log log;
struct bpf_subprog_info subprog_info[257];
struct (anon) cfg;
u32 subprog_cnt;
u32 prev_insn_processed;
u32 insn_processed;
u32 prev_jmps_processed;
u32 jmps_processed;
u64 verification_time;
u32 max_states_per_insn;
u32 total_states;
u32 peak_states;
u32 longest_mark_read_walk;
};
Regular
4.10 and 4.13 ⚠️bool strict_alignment
4.13 and 4.15 ⚠️const struct bpf_verifier_ops *ops
const struct bpf_ext_analyzer_ops *dev_ops
struct bpf_verifer_log log
const struct bpf_ext_analyzer_ops *analyzer_ops
void *analyzer_priv
bool varlen_map_value_access
struct bpf_verifier_state cur_state ➡️ struct bpf_verifier_state *cur_state
4.15 and 4.18 ⚠️struct bpf_subprog_info subprog_info[257]
u32 subprog_cnt
const struct bpf_ext_analyzer_ops *dev_ops
struct bpf_verifer_log log ➡️ struct bpf_verifier_log log
4.18 and 5.0 ⚠️u32 insn_idx
u32 prev_insn_idx
const struct bpf_line_info *prev_linfo
5.0 and 5.3 ⚠️struct bpf_verifier_state_list *free_list
struct (anon) cfg
u32 prev_insn_processed
u32 insn_processed
u32 prev_jmps_processed
u32 jmps_processed
u64 verification_time
u32 max_states_per_insn
u32 total_states
u32 peak_states
u32 longest_mark_read_walk
5.3 and 5.4 ⚠️bool test_state_freq
5.4 and 5.8 ⚠️bool bpf_capable
bool bypass_spec_v1
bool bypass_spec_v4
u32 pass_cnt
5.8 and 5.11 ⚠️bool allow_ptr_to_map_access
5.11 and 5.13 ⚠️struct btf_mod_pair used_btfs[64]
u32 used_btf_cnt
bool explore_alu_limits
bool allow_uninit_stack
struct bpf_id_pair idmap_scratch[75]
5.13 and 5.15 ⚠️bpfptr_t fd_array
5.15 and 5.19 ⚠️u32 scratched_regs
u64 scratched_stack_slots
u32 prev_log_len
u32 prev_insn_print_len
char type_str_buf[64]
5.19 and 6.2 ⚠️bool rcu_tag_supported
bool allow_ptr_to_map_access
struct bpf_id_pair idmap_scratch[75] ➡️ struct bpf_id_pair idmap_scratch[600]
char type_str_buf[64] ➡️ char type_str_buf[128]
6.2 and 6.5 ⚠️struct bpf_idset idset_scratch
struct backtrack_state bt
u64 prev_log_pos
u64 prev_insn_print_pos
char tmp_str_buf[320]
bool rcu_tag_supported
u32 prev_log_len
u32 prev_insn_print_len
char type_str_buf[128]
struct bpf_id_pair idmap_scratch[600] ➡️ struct bpf_idmap idmap_scratch
6.5 and 6.8 ⚠️bool test_reg_invariants
u32 hidden_subprog_cnt
int exception_callback_subprog
bool seen_exception
struct bpf_jmp_history_entry *cur_hist_ent
struct bpf_subprog_info subprog_info[257] ➡️ struct bpf_subprog_info subprog_info[258]
amd64 and arm64 ✅
amd64 and armhf ✅
amd64 and ppc64el ✅
amd64 and riscv64 ✅
generic and aws ✅
generic and azure ✅
generic and gcp ✅
generic and lowlatency ✅