bpf_prog_aux
Regular
4.4
: ✅struct bpf_prog_aux {
atomic_t refcnt;
u32 used_map_cnt;
const struct bpf_verifier_ops *ops;
struct bpf_map **used_maps;
struct bpf_prog *prog;
struct user_struct *user;
struct work_struct work;
struct callback_head rcu;
};
4.8
: ✅struct bpf_prog_aux {
atomic_t refcnt;
u32 used_map_cnt;
u32 max_ctx_offset;
const struct bpf_verifier_ops *ops;
struct bpf_map **used_maps;
struct bpf_prog *prog;
struct user_struct *user;
struct work_struct work;
struct callback_head rcu;
};
4.10
: ✅struct bpf_prog_aux {
atomic_t refcnt;
u32 used_map_cnt;
u32 max_ctx_offset;
const struct bpf_verifier_ops *ops;
struct bpf_map **used_maps;
struct bpf_prog *prog;
struct user_struct *user;
struct work_struct work;
struct callback_head rcu;
};
4.13
: ✅struct bpf_prog_aux {
atomic_t refcnt;
u32 used_map_cnt;
u32 max_ctx_offset;
u32 stack_depth;
u32 id;
struct latch_tree_node ksym_tnode;
struct list_head ksym_lnode;
const struct bpf_verifier_ops *ops;
struct bpf_map **used_maps;
struct bpf_prog *prog;
struct user_struct *user;
struct work_struct work;
struct callback_head rcu;
};
4.15
: ✅struct bpf_prog_aux {
atomic_t refcnt;
u32 used_map_cnt;
u32 max_ctx_offset;
u32 stack_depth;
u32 id;
struct latch_tree_node ksym_tnode;
struct list_head ksym_lnode;
const struct bpf_prog_ops *ops;
struct bpf_map **used_maps;
struct bpf_prog *prog;
struct user_struct *user;
u64 load_time;
char name[16];
void *security;
struct bpf_dev_offload *offload;
struct work_struct work;
struct callback_head rcu;
};
4.18
: ✅struct bpf_prog_aux {
atomic_t refcnt;
u32 used_map_cnt;
u32 max_ctx_offset;
u32 stack_depth;
u32 id;
u32 func_cnt;
bool offload_requested;
struct bpf_prog **func;
void *jit_data;
struct latch_tree_node ksym_tnode;
struct list_head ksym_lnode;
const struct bpf_prog_ops *ops;
struct bpf_map **used_maps;
struct bpf_prog *prog;
struct user_struct *user;
u64 load_time;
char name[16];
void *security;
struct bpf_prog_offload *offload;
struct work_struct work;
struct callback_head rcu;
};
5.0
: ✅struct bpf_prog_aux {
atomic_t refcnt;
u32 used_map_cnt;
u32 max_ctx_offset;
u32 max_pkt_offset;
u32 stack_depth;
u32 id;
u32 func_cnt;
u32 func_idx;
bool offload_requested;
struct bpf_prog **func;
void *jit_data;
struct latch_tree_node ksym_tnode;
struct list_head ksym_lnode;
const struct bpf_prog_ops *ops;
struct bpf_map **used_maps;
struct bpf_prog *prog;
struct user_struct *user;
u64 load_time;
struct bpf_map * cgroup_storage[2];
char name[16];
void *security;
struct bpf_prog_offload *offload;
struct btf *btf;
struct bpf_func_info *func_info;
struct bpf_line_info *linfo;
void **jited_linfo;
u32 func_info_cnt;
u32 nr_linfo;
u32 linfo_idx;
struct work_struct work;
struct callback_head rcu;
};
5.3
: ✅struct bpf_prog_aux {
atomic_t refcnt;
u32 used_map_cnt;
u32 max_ctx_offset;
u32 max_pkt_offset;
u32 max_tp_access;
u32 stack_depth;
u32 id;
u32 func_cnt;
u32 func_idx;
bool verifier_zext;
bool offload_requested;
struct bpf_prog **func;
void *jit_data;
struct latch_tree_node ksym_tnode;
struct list_head ksym_lnode;
const struct bpf_prog_ops *ops;
struct bpf_map **used_maps;
struct bpf_prog *prog;
struct user_struct *user;
u64 load_time;
struct bpf_map * cgroup_storage[2];
char name[16];
void *security;
struct bpf_prog_offload *offload;
struct btf *btf;
struct bpf_func_info *func_info;
struct bpf_line_info *linfo;
void **jited_linfo;
u32 func_info_cnt;
u32 nr_linfo;
u32 linfo_idx;
struct bpf_prog_stats *stats;
struct work_struct work;
struct callback_head rcu;
};
5.4
: ✅struct bpf_prog_aux {
atomic_t refcnt;
u32 used_map_cnt;
u32 max_ctx_offset;
u32 max_pkt_offset;
u32 max_tp_access;
u32 stack_depth;
u32 id;
u32 func_cnt;
u32 func_idx;
bool verifier_zext;
bool offload_requested;
struct bpf_prog **func;
void *jit_data;
struct latch_tree_node ksym_tnode;
struct list_head ksym_lnode;
const struct bpf_prog_ops *ops;
struct bpf_map **used_maps;
struct bpf_prog *prog;
struct user_struct *user;
u64 load_time;
struct bpf_map * cgroup_storage[2];
char name[16];
void *security;
struct bpf_prog_offload *offload;
struct btf *btf;
struct bpf_func_info *func_info;
struct bpf_line_info *linfo;
void **jited_linfo;
u32 func_info_cnt;
u32 nr_linfo;
u32 linfo_idx;
struct bpf_prog_stats *stats;
struct work_struct work;
struct callback_head rcu;
};
5.8
: ✅struct bpf_prog_aux {
atomic64_t refcnt;
u32 used_map_cnt;
u32 max_ctx_offset;
u32 max_pkt_offset;
u32 max_tp_access;
u32 stack_depth;
u32 id;
u32 func_cnt;
u32 func_idx;
u32 attach_btf_id;
u32 ctx_arg_info_size;
const struct bpf_ctx_arg_aux *ctx_arg_info;
struct bpf_prog *linked_prog;
bool verifier_zext;
bool offload_requested;
bool attach_btf_trace;
bool func_proto_unreliable;
enum bpf_tramp_prog_type trampoline_prog_type;
struct bpf_trampoline *trampoline;
struct hlist_node tramp_hlist;
const struct btf_type *attach_func_proto;
const char *attach_func_name;
struct bpf_prog **func;
void *jit_data;
struct bpf_jit_poke_descriptor *poke_tab;
u32 size_poke_tab;
struct bpf_ksym ksym;
const struct bpf_prog_ops *ops;
struct bpf_map **used_maps;
struct bpf_prog *prog;
struct user_struct *user;
u64 load_time;
struct bpf_map * cgroup_storage[2];
char name[16];
void *security;
struct bpf_prog_offload *offload;
struct btf *btf;
struct bpf_func_info *func_info;
struct bpf_func_info_aux *func_info_aux;
struct bpf_line_info *linfo;
void **jited_linfo;
u32 func_info_cnt;
u32 nr_linfo;
u32 linfo_idx;
u32 num_exentries;
struct exception_table_entry *extable;
struct bpf_prog_stats *stats;
struct work_struct work;
struct callback_head rcu;
};
5.11
: ✅struct bpf_prog_aux {
atomic64_t refcnt;
u32 used_map_cnt;
u32 max_ctx_offset;
u32 max_pkt_offset;
u32 max_tp_access;
u32 stack_depth;
u32 id;
u32 func_cnt;
u32 func_idx;
u32 attach_btf_id;
u32 ctx_arg_info_size;
u32 max_rdonly_access;
u32 max_rdwr_access;
struct btf *attach_btf;
const struct bpf_ctx_arg_aux *ctx_arg_info;
struct mutex dst_mutex;
struct bpf_prog *dst_prog;
struct bpf_trampoline *dst_trampoline;
enum bpf_prog_type saved_dst_prog_type;
enum bpf_attach_type saved_dst_attach_type;
bool verifier_zext;
bool offload_requested;
bool attach_btf_trace;
bool func_proto_unreliable;
bool sleepable;
bool tail_call_reachable;
struct hlist_node tramp_hlist;
const struct btf_type *attach_func_proto;
const char *attach_func_name;
struct bpf_prog **func;
void *jit_data;
struct bpf_jit_poke_descriptor *poke_tab;
u32 size_poke_tab;
struct bpf_ksym ksym;
const struct bpf_prog_ops *ops;
struct bpf_map **used_maps;
struct mutex used_maps_mutex;
struct bpf_prog *prog;
struct user_struct *user;
u64 load_time;
struct bpf_map * cgroup_storage[2];
char name[16];
void *security;
struct bpf_prog_offload *offload;
struct btf *btf;
struct bpf_func_info *func_info;
struct bpf_func_info_aux *func_info_aux;
struct bpf_line_info *linfo;
void **jited_linfo;
u32 func_info_cnt;
u32 nr_linfo;
u32 linfo_idx;
u32 num_exentries;
struct exception_table_entry *extable;
struct bpf_prog_stats *stats;
struct work_struct work;
struct callback_head rcu;
};
5.13
: ✅struct bpf_prog_aux {
atomic64_t refcnt;
u32 used_map_cnt;
u32 used_btf_cnt;
u32 max_ctx_offset;
u32 max_pkt_offset;
u32 max_tp_access;
u32 stack_depth;
u32 id;
u32 func_cnt;
u32 func_idx;
u32 attach_btf_id;
u32 ctx_arg_info_size;
u32 max_rdonly_access;
u32 max_rdwr_access;
struct btf *attach_btf;
const struct bpf_ctx_arg_aux *ctx_arg_info;
struct mutex dst_mutex;
struct bpf_prog *dst_prog;
struct bpf_trampoline *dst_trampoline;
enum bpf_prog_type saved_dst_prog_type;
enum bpf_attach_type saved_dst_attach_type;
bool verifier_zext;
bool offload_requested;
bool attach_btf_trace;
bool func_proto_unreliable;
bool sleepable;
bool tail_call_reachable;
struct hlist_node tramp_hlist;
const struct btf_type *attach_func_proto;
const char *attach_func_name;
struct bpf_prog **func;
void *jit_data;
struct bpf_jit_poke_descriptor *poke_tab;
struct bpf_kfunc_desc_tab *kfunc_tab;
u32 size_poke_tab;
struct bpf_ksym ksym;
const struct bpf_prog_ops *ops;
struct bpf_map **used_maps;
struct mutex used_maps_mutex;
struct btf_mod_pair *used_btfs;
struct bpf_prog *prog;
struct user_struct *user;
u64 load_time;
struct bpf_map * cgroup_storage[2];
char name[16];
void *security;
struct bpf_prog_offload *offload;
struct btf *btf;
struct bpf_func_info *func_info;
struct bpf_func_info_aux *func_info_aux;
struct bpf_line_info *linfo;
void **jited_linfo;
u32 func_info_cnt;
u32 nr_linfo;
u32 linfo_idx;
u32 num_exentries;
struct exception_table_entry *extable;
struct work_struct work;
struct callback_head rcu;
};
5.15
: ✅struct bpf_prog_aux {
atomic64_t refcnt;
u32 used_map_cnt;
u32 used_btf_cnt;
u32 max_ctx_offset;
u32 max_pkt_offset;
u32 max_tp_access;
u32 stack_depth;
u32 id;
u32 func_cnt;
u32 func_idx;
u32 attach_btf_id;
u32 ctx_arg_info_size;
u32 max_rdonly_access;
u32 max_rdwr_access;
struct btf *attach_btf;
const struct bpf_ctx_arg_aux *ctx_arg_info;
struct mutex dst_mutex;
struct bpf_prog *dst_prog;
struct bpf_trampoline *dst_trampoline;
enum bpf_prog_type saved_dst_prog_type;
enum bpf_attach_type saved_dst_attach_type;
bool verifier_zext;
bool offload_requested;
bool attach_btf_trace;
bool func_proto_unreliable;
bool sleepable;
bool tail_call_reachable;
struct hlist_node tramp_hlist;
const struct btf_type *attach_func_proto;
const char *attach_func_name;
struct bpf_prog **func;
void *jit_data;
struct bpf_jit_poke_descriptor *poke_tab;
struct bpf_kfunc_desc_tab *kfunc_tab;
u32 size_poke_tab;
struct bpf_ksym ksym;
const struct bpf_prog_ops *ops;
struct bpf_map **used_maps;
struct mutex used_maps_mutex;
struct btf_mod_pair *used_btfs;
struct bpf_prog *prog;
struct user_struct *user;
u64 load_time;
struct bpf_map * cgroup_storage[2];
char name[16];
void *security;
struct bpf_prog_offload *offload;
struct btf *btf;
struct bpf_func_info *func_info;
struct bpf_func_info_aux *func_info_aux;
struct bpf_line_info *linfo;
void **jited_linfo;
u32 func_info_cnt;
u32 nr_linfo;
u32 linfo_idx;
u32 num_exentries;
struct exception_table_entry *extable;
struct work_struct work;
struct callback_head rcu;
};
5.19
: ✅struct bpf_prog_aux {
atomic64_t refcnt;
u32 used_map_cnt;
u32 used_btf_cnt;
u32 max_ctx_offset;
u32 max_pkt_offset;
u32 max_tp_access;
u32 stack_depth;
u32 id;
u32 func_cnt;
u32 func_idx;
u32 attach_btf_id;
u32 ctx_arg_info_size;
u32 max_rdonly_access;
u32 max_rdwr_access;
struct btf *attach_btf;
const struct bpf_ctx_arg_aux *ctx_arg_info;
struct mutex dst_mutex;
struct bpf_prog *dst_prog;
struct bpf_trampoline *dst_trampoline;
enum bpf_prog_type saved_dst_prog_type;
enum bpf_attach_type saved_dst_attach_type;
bool verifier_zext;
bool offload_requested;
bool attach_btf_trace;
bool func_proto_unreliable;
bool sleepable;
bool tail_call_reachable;
bool xdp_has_frags;
const struct btf_type *attach_func_proto;
const char *attach_func_name;
struct bpf_prog **func;
void *jit_data;
struct bpf_jit_poke_descriptor *poke_tab;
struct bpf_kfunc_desc_tab *kfunc_tab;
struct bpf_kfunc_btf_tab *kfunc_btf_tab;
u32 size_poke_tab;
struct bpf_ksym ksym;
const struct bpf_prog_ops *ops;
struct bpf_map **used_maps;
struct mutex used_maps_mutex;
struct btf_mod_pair *used_btfs;
struct bpf_prog *prog;
struct user_struct *user;
u64 load_time;
u32 verified_insns;
struct bpf_map * cgroup_storage[2];
char name[16];
void *security;
struct bpf_prog_offload *offload;
struct btf *btf;
struct bpf_func_info *func_info;
struct bpf_func_info_aux *func_info_aux;
struct bpf_line_info *linfo;
void **jited_linfo;
u32 func_info_cnt;
u32 nr_linfo;
u32 linfo_idx;
u32 num_exentries;
struct exception_table_entry *extable;
struct work_struct work;
struct callback_head rcu;
};
6.2
: ✅struct bpf_prog_aux {
atomic64_t refcnt;
u32 used_map_cnt;
u32 used_btf_cnt;
u32 max_ctx_offset;
u32 max_pkt_offset;
u32 max_tp_access;
u32 stack_depth;
u32 id;
u32 func_cnt;
u32 func_idx;
u32 attach_btf_id;
u32 ctx_arg_info_size;
u32 max_rdonly_access;
u32 max_rdwr_access;
struct btf *attach_btf;
const struct bpf_ctx_arg_aux *ctx_arg_info;
struct mutex dst_mutex;
struct bpf_prog *dst_prog;
struct bpf_trampoline *dst_trampoline;
enum bpf_prog_type saved_dst_prog_type;
enum bpf_attach_type saved_dst_attach_type;
bool verifier_zext;
bool offload_requested;
bool attach_btf_trace;
bool func_proto_unreliable;
bool sleepable;
bool tail_call_reachable;
bool xdp_has_frags;
const struct btf_type *attach_func_proto;
const char *attach_func_name;
struct bpf_prog **func;
void *jit_data;
struct bpf_jit_poke_descriptor *poke_tab;
struct bpf_kfunc_desc_tab *kfunc_tab;
struct bpf_kfunc_btf_tab *kfunc_btf_tab;
u32 size_poke_tab;
struct bpf_ksym ksym;
const struct bpf_prog_ops *ops;
struct bpf_map **used_maps;
struct mutex used_maps_mutex;
struct btf_mod_pair *used_btfs;
struct bpf_prog *prog;
struct user_struct *user;
u64 load_time;
u32 verified_insns;
int cgroup_atype;
struct bpf_map * cgroup_storage[2];
char name[16];
void *security;
struct bpf_prog_offload *offload;
struct btf *btf;
struct bpf_func_info *func_info;
struct bpf_func_info_aux *func_info_aux;
struct bpf_line_info *linfo;
void **jited_linfo;
u32 func_info_cnt;
u32 nr_linfo;
u32 linfo_idx;
u32 num_exentries;
struct exception_table_entry *extable;
struct work_struct work;
struct callback_head rcu;
};
6.5
: ✅struct bpf_prog_aux {
atomic64_t refcnt;
u32 used_map_cnt;
u32 used_btf_cnt;
u32 max_ctx_offset;
u32 max_pkt_offset;
u32 max_tp_access;
u32 stack_depth;
u32 id;
u32 func_cnt;
u32 func_idx;
u32 attach_btf_id;
u32 ctx_arg_info_size;
u32 max_rdonly_access;
u32 max_rdwr_access;
struct btf *attach_btf;
const struct bpf_ctx_arg_aux *ctx_arg_info;
struct mutex dst_mutex;
struct bpf_prog *dst_prog;
struct bpf_trampoline *dst_trampoline;
enum bpf_prog_type saved_dst_prog_type;
enum bpf_attach_type saved_dst_attach_type;
bool verifier_zext;
bool dev_bound;
bool offload_requested;
bool attach_btf_trace;
bool func_proto_unreliable;
bool sleepable;
bool tail_call_reachable;
bool xdp_has_frags;
const struct btf_type *attach_func_proto;
const char *attach_func_name;
struct bpf_prog **func;
void *jit_data;
struct bpf_jit_poke_descriptor *poke_tab;
struct bpf_kfunc_desc_tab *kfunc_tab;
struct bpf_kfunc_btf_tab *kfunc_btf_tab;
u32 size_poke_tab;
struct bpf_ksym ksym;
const struct bpf_prog_ops *ops;
struct bpf_map **used_maps;
struct mutex used_maps_mutex;
struct btf_mod_pair *used_btfs;
struct bpf_prog *prog;
struct user_struct *user;
u64 load_time;
u32 verified_insns;
int cgroup_atype;
struct bpf_map * cgroup_storage[2];
char name[16];
void *security;
struct bpf_prog_offload *offload;
struct btf *btf;
struct bpf_func_info *func_info;
struct bpf_func_info_aux *func_info_aux;
struct bpf_line_info *linfo;
void **jited_linfo;
u32 func_info_cnt;
u32 nr_linfo;
u32 linfo_idx;
struct module *mod;
u32 num_exentries;
struct exception_table_entry *extable;
struct work_struct work;
struct callback_head rcu;
};
6.8
: ✅struct bpf_prog_aux {
atomic64_t refcnt;
u32 used_map_cnt;
u32 used_btf_cnt;
u32 max_ctx_offset;
u32 max_pkt_offset;
u32 max_tp_access;
u32 stack_depth;
u32 id;
u32 func_cnt;
u32 real_func_cnt;
u32 func_idx;
u32 attach_btf_id;
u32 ctx_arg_info_size;
u32 max_rdonly_access;
u32 max_rdwr_access;
struct btf *attach_btf;
const struct bpf_ctx_arg_aux *ctx_arg_info;
struct mutex dst_mutex;
struct bpf_prog *dst_prog;
struct bpf_trampoline *dst_trampoline;
enum bpf_prog_type saved_dst_prog_type;
enum bpf_attach_type saved_dst_attach_type;
bool verifier_zext;
bool dev_bound;
bool offload_requested;
bool attach_btf_trace;
bool attach_tracing_prog;
bool func_proto_unreliable;
bool sleepable;
bool tail_call_reachable;
bool xdp_has_frags;
bool exception_cb;
bool exception_boundary;
const struct btf_type *attach_func_proto;
const char *attach_func_name;
struct bpf_prog **func;
void *jit_data;
struct bpf_jit_poke_descriptor *poke_tab;
struct bpf_kfunc_desc_tab *kfunc_tab;
struct bpf_kfunc_btf_tab *kfunc_btf_tab;
u32 size_poke_tab;
struct bpf_ksym ksym;
const struct bpf_prog_ops *ops;
struct bpf_map **used_maps;
struct mutex used_maps_mutex;
struct btf_mod_pair *used_btfs;
struct bpf_prog *prog;
struct user_struct *user;
u64 load_time;
u32 verified_insns;
int cgroup_atype;
struct bpf_map * cgroup_storage[2];
char name[16];
u64 (*bpf_exception_cb)(u64, u64, u64, u64, u64);
void *security;
struct bpf_prog_offload *offload;
struct btf *btf;
struct bpf_func_info *func_info;
struct bpf_func_info_aux *func_info_aux;
struct bpf_line_info *linfo;
void **jited_linfo;
u32 func_info_cnt;
u32 nr_linfo;
u32 linfo_idx;
struct module *mod;
u32 num_exentries;
struct exception_table_entry *extable;
struct work_struct work;
struct callback_head rcu;
};
arm64
: ✅struct bpf_prog_aux {
atomic_t refcnt;
u32 used_map_cnt;
u32 max_ctx_offset;
u32 max_pkt_offset;
u32 max_tp_access;
u32 stack_depth;
u32 id;
u32 func_cnt;
u32 func_idx;
bool verifier_zext;
bool offload_requested;
struct bpf_prog **func;
void *jit_data;
struct latch_tree_node ksym_tnode;
struct list_head ksym_lnode;
const struct bpf_prog_ops *ops;
struct bpf_map **used_maps;
struct bpf_prog *prog;
struct user_struct *user;
u64 load_time;
struct bpf_map * cgroup_storage[2];
char name[16];
void *security;
struct bpf_prog_offload *offload;
struct btf *btf;
struct bpf_func_info *func_info;
struct bpf_line_info *linfo;
void **jited_linfo;
u32 func_info_cnt;
u32 nr_linfo;
u32 linfo_idx;
struct bpf_prog_stats *stats;
struct work_struct work;
struct callback_head rcu;
};
armhf
: ✅struct bpf_prog_aux {
atomic_t refcnt;
u32 used_map_cnt;
u32 max_ctx_offset;
u32 max_pkt_offset;
u32 max_tp_access;
u32 stack_depth;
u32 id;
u32 func_cnt;
u32 func_idx;
bool verifier_zext;
bool offload_requested;
struct bpf_prog **func;
void *jit_data;
struct latch_tree_node ksym_tnode;
struct list_head ksym_lnode;
const struct bpf_prog_ops *ops;
struct bpf_map **used_maps;
struct bpf_prog *prog;
struct user_struct *user;
u64 load_time;
struct bpf_map * cgroup_storage[2];
char name[16];
void *security;
struct bpf_prog_offload *offload;
struct btf *btf;
struct bpf_func_info *func_info;
struct bpf_line_info *linfo;
void **jited_linfo;
u32 func_info_cnt;
u32 nr_linfo;
u32 linfo_idx;
struct bpf_prog_stats *stats;
struct work_struct work;
struct callback_head rcu;
};
ppc64el
: ✅struct bpf_prog_aux {
atomic_t refcnt;
u32 used_map_cnt;
u32 max_ctx_offset;
u32 max_pkt_offset;
u32 max_tp_access;
u32 stack_depth;
u32 id;
u32 func_cnt;
u32 func_idx;
bool verifier_zext;
bool offload_requested;
struct bpf_prog **func;
void *jit_data;
struct latch_tree_node ksym_tnode;
struct list_head ksym_lnode;
const struct bpf_prog_ops *ops;
struct bpf_map **used_maps;
struct bpf_prog *prog;
struct user_struct *user;
u64 load_time;
struct bpf_map * cgroup_storage[2];
char name[16];
void *security;
struct bpf_prog_offload *offload;
struct btf *btf;
struct bpf_func_info *func_info;
struct bpf_line_info *linfo;
void **jited_linfo;
u32 func_info_cnt;
u32 nr_linfo;
u32 linfo_idx;
struct bpf_prog_stats *stats;
struct work_struct work;
struct callback_head rcu;
};
riscv64
: ✅struct bpf_prog_aux {
atomic_t refcnt;
u32 used_map_cnt;
u32 max_ctx_offset;
u32 max_pkt_offset;
u32 max_tp_access;
u32 stack_depth;
u32 id;
u32 func_cnt;
u32 func_idx;
bool verifier_zext;
bool offload_requested;
struct bpf_prog **func;
void *jit_data;
struct latch_tree_node ksym_tnode;
struct list_head ksym_lnode;
const struct bpf_prog_ops *ops;
struct bpf_map **used_maps;
struct bpf_prog *prog;
struct user_struct *user;
u64 load_time;
struct bpf_map * cgroup_storage[2];
char name[16];
void *security;
struct bpf_prog_offload *offload;
struct btf *btf;
struct bpf_func_info *func_info;
struct bpf_line_info *linfo;
void **jited_linfo;
u32 func_info_cnt;
u32 nr_linfo;
u32 linfo_idx;
struct bpf_prog_stats *stats;
struct work_struct work;
struct callback_head rcu;
};
aws
: ✅struct bpf_prog_aux {
atomic_t refcnt;
u32 used_map_cnt;
u32 max_ctx_offset;
u32 max_pkt_offset;
u32 max_tp_access;
u32 stack_depth;
u32 id;
u32 func_cnt;
u32 func_idx;
bool verifier_zext;
bool offload_requested;
struct bpf_prog **func;
void *jit_data;
struct latch_tree_node ksym_tnode;
struct list_head ksym_lnode;
const struct bpf_prog_ops *ops;
struct bpf_map **used_maps;
struct bpf_prog *prog;
struct user_struct *user;
u64 load_time;
struct bpf_map * cgroup_storage[2];
char name[16];
void *security;
struct bpf_prog_offload *offload;
struct btf *btf;
struct bpf_func_info *func_info;
struct bpf_line_info *linfo;
void **jited_linfo;
u32 func_info_cnt;
u32 nr_linfo;
u32 linfo_idx;
struct bpf_prog_stats *stats;
struct work_struct work;
struct callback_head rcu;
};
azure
: ✅struct bpf_prog_aux {
atomic_t refcnt;
u32 used_map_cnt;
u32 max_ctx_offset;
u32 max_pkt_offset;
u32 max_tp_access;
u32 stack_depth;
u32 id;
u32 func_cnt;
u32 func_idx;
bool verifier_zext;
bool offload_requested;
struct bpf_prog **func;
void *jit_data;
struct latch_tree_node ksym_tnode;
struct list_head ksym_lnode;
const struct bpf_prog_ops *ops;
struct bpf_map **used_maps;
struct bpf_prog *prog;
struct user_struct *user;
u64 load_time;
struct bpf_map * cgroup_storage[2];
char name[16];
void *security;
struct bpf_prog_offload *offload;
struct btf *btf;
struct bpf_func_info *func_info;
struct bpf_line_info *linfo;
void **jited_linfo;
u32 func_info_cnt;
u32 nr_linfo;
u32 linfo_idx;
struct bpf_prog_stats *stats;
struct work_struct work;
struct callback_head rcu;
};
gcp
: ✅struct bpf_prog_aux {
atomic_t refcnt;
u32 used_map_cnt;
u32 max_ctx_offset;
u32 max_pkt_offset;
u32 max_tp_access;
u32 stack_depth;
u32 id;
u32 func_cnt;
u32 func_idx;
bool verifier_zext;
bool offload_requested;
struct bpf_prog **func;
void *jit_data;
struct latch_tree_node ksym_tnode;
struct list_head ksym_lnode;
const struct bpf_prog_ops *ops;
struct bpf_map **used_maps;
struct bpf_prog *prog;
struct user_struct *user;
u64 load_time;
struct bpf_map * cgroup_storage[2];
char name[16];
void *security;
struct bpf_prog_offload *offload;
struct btf *btf;
struct bpf_func_info *func_info;
struct bpf_line_info *linfo;
void **jited_linfo;
u32 func_info_cnt;
u32 nr_linfo;
u32 linfo_idx;
struct bpf_prog_stats *stats;
struct work_struct work;
struct callback_head rcu;
};
lowlatency
: ✅struct bpf_prog_aux {
atomic_t refcnt;
u32 used_map_cnt;
u32 max_ctx_offset;
u32 max_pkt_offset;
u32 max_tp_access;
u32 stack_depth;
u32 id;
u32 func_cnt;
u32 func_idx;
bool verifier_zext;
bool offload_requested;
struct bpf_prog **func;
void *jit_data;
struct latch_tree_node ksym_tnode;
struct list_head ksym_lnode;
const struct bpf_prog_ops *ops;
struct bpf_map **used_maps;
struct bpf_prog *prog;
struct user_struct *user;
u64 load_time;
struct bpf_map * cgroup_storage[2];
char name[16];
void *security;
struct bpf_prog_offload *offload;
struct btf *btf;
struct bpf_func_info *func_info;
struct bpf_line_info *linfo;
void **jited_linfo;
u32 func_info_cnt;
u32 nr_linfo;
u32 linfo_idx;
struct bpf_prog_stats *stats;
struct work_struct work;
struct callback_head rcu;
};
Regular
4.4
and 4.8
⚠️u32 max_ctx_offset
4.8
and 4.10
✅
4.10
and 4.13
⚠️u32 stack_depth
u32 id
struct latch_tree_node ksym_tnode
struct list_head ksym_lnode
4.13
and 4.15
⚠️u64 load_time
char name[16]
void *security
struct bpf_dev_offload *offload
const struct bpf_verifier_ops *ops
➡️ const struct bpf_prog_ops *ops
4.15
and 4.18
⚠️u32 func_cnt
bool offload_requested
struct bpf_prog **func
void *jit_data
struct bpf_dev_offload *offload
➡️ struct bpf_prog_offload *offload
4.18
and 5.0
⚠️u32 max_pkt_offset
u32 func_idx
struct bpf_map * cgroup_storage[2]
struct btf *btf
struct bpf_func_info *func_info
struct bpf_line_info *linfo
void **jited_linfo
u32 func_info_cnt
u32 nr_linfo
u32 linfo_idx
5.0
and 5.3
⚠️u32 max_tp_access
bool verifier_zext
struct bpf_prog_stats *stats
5.3
and 5.4
✅
5.4
and 5.8
⚠️u32 attach_btf_id
u32 ctx_arg_info_size
const struct bpf_ctx_arg_aux *ctx_arg_info
struct bpf_prog *linked_prog
bool attach_btf_trace
bool func_proto_unreliable
enum bpf_tramp_prog_type trampoline_prog_type
struct bpf_trampoline *trampoline
struct hlist_node tramp_hlist
const struct btf_type *attach_func_proto
const char *attach_func_name
struct bpf_jit_poke_descriptor *poke_tab
u32 size_poke_tab
struct bpf_ksym ksym
struct bpf_func_info_aux *func_info_aux
u32 num_exentries
struct exception_table_entry *extable
struct latch_tree_node ksym_tnode
struct list_head ksym_lnode
atomic_t refcnt
➡️ atomic64_t refcnt
5.8
and 5.11
⚠️u32 max_rdonly_access
u32 max_rdwr_access
struct btf *attach_btf
struct mutex dst_mutex
struct bpf_prog *dst_prog
struct bpf_trampoline *dst_trampoline
enum bpf_prog_type saved_dst_prog_type
enum bpf_attach_type saved_dst_attach_type
bool sleepable
bool tail_call_reachable
struct mutex used_maps_mutex
struct bpf_prog *linked_prog
enum bpf_tramp_prog_type trampoline_prog_type
struct bpf_trampoline *trampoline
5.11
and 5.13
⚠️u32 used_btf_cnt
struct bpf_kfunc_desc_tab *kfunc_tab
struct btf_mod_pair *used_btfs
struct bpf_prog_stats *stats
5.13
and 5.15
✅
5.15
and 5.19
⚠️bool xdp_has_frags
struct bpf_kfunc_btf_tab *kfunc_btf_tab
u32 verified_insns
struct hlist_node tramp_hlist
5.19
and 6.2
⚠️int cgroup_atype
6.2
and 6.5
⚠️bool dev_bound
struct module *mod
6.5
and 6.8
⚠️u32 real_func_cnt
bool attach_tracing_prog
bool exception_cb
bool exception_boundary
u64 (*bpf_exception_cb)(u64, u64, u64, u64, u64)
amd64
and arm64
✅
amd64
and armhf
✅
amd64
and ppc64el
✅
amd64
and riscv64
✅
generic
and aws
✅
generic
and azure
✅
generic
and gcp
✅
generic
and lowlatency
✅