-
Notifications
You must be signed in to change notification settings - Fork 135
Feature parity with libbpf 1.0
insearchoflosttime edited this page Jul 29, 2022
·
3 revisions
One of the major milestones for libbpf-rs is to reach feature-parity with libbpf-1.0 so that any bpf userspace program writable in C may be writable in Rust.
There are some APIs that are still missing. This is a compiled list of what is still needed and will be kept up-to-date as we go along. We greatly welcome and appreciate any contributions towards this milestone.
- bpf_map_lookup_elem
- bpf_btf_get_fd_by_id;
- bpf_map__btf_key_type_id;
- bpf_map__btf_value_type_id;
- bpf_map_get_fd_by_id;
- bpf_map_get_next_id;
- bpf_map_get_next_key;
- bpf_obj_get;
- bpf_obj_get_info_by_fd;
- bpf_obj_pin;
- bpf_object__btf_fd;
- bpf_object__find_map_by_name;
- bpf_object__kversion;
- bpf_object__open;
- bpf_object__pin;
- bpf_object__pin_maps;
- bpf_object__pin_programs;
- bpf_object__unpin_maps;
- bpf_object__unpin_programs;
- bpf_prog_attach;
- bpf_prog_detach;
- bpf_prog_detach2;
- bpf_prog_get_fd_by_id;
- bpf_prog_get_next_id;
- bpf_prog_query;
- bpf_program__unload;
- bpf_prog_linfo__free;
- bpf_prog_linfo__new;
- bpf_prog_linfo__lfind_addr_func;
- bpf_prog_linfo__lfind;
- bpf_raw_tracepoint_open;
- bpf_task_fd_query;
- btf__fd;
- btf__find_by_name;
- btf__free;
- btf__name_by_offset;
- btf__new;
- btf__resolve_size;
- btf__resolve_type;
- btf__type_by_id;
- libbpf_attach_type_by_name;
- libbpf_get_error;
- libbpf_prog_type_by_name;
- libbpf_strerror;
- bpf_object__btf
- btf__get_raw_data
- btf_ext__free
- btf_ext__get_raw_data
- btf_ext__new
- bpf_object__find_map_fd_by_name
- bpf_map__is_internal
bpf_map_freeze
- btf_dump__dump_type
- btf_dump__free
- btf__parse_elf
- bpf_btf_get_next_id
- bpf_map__get_pin_path
- bpf_map__is_pinned
- bpf_map__set_pin_path
- btf__find_by_name_kind
- libbpf_find_vmlinux_btf_id
- btf_dump__emit_type_decl
- bpf_map_delete_batch
- bpf_map_lookup_and_delete_batch
- bpf_map_lookup_batch
- bpf_map_update_batch
- bpf_object__find_program_by_name
- bpf_object__attach_skeleton
- bpf_object__destroy_skeleton
- bpf_object__detach_skeleton
- bpf_object__load_skeleton
- bpf_object__open_skeleton
- btf__align_of
- libbpf_find_kernel_btf
- bpf_prog_attach_opts
- bpf_link_update
- bpf_link_create
- bpf_enable_stats
- bpf_link_get_fd_by_id
- bpf_program__attach_iter
- bpf_map__ifindex;
- bpf_map__map_flags;
- bpf_map__max_entries;
- bpf_map__numa_node;
bpf_map__set_map_flags;bpf_map__set_numa_node;- bpf_program__autoload;
- btf__parse;
- btf__parse_raw;
- btf__pointer_size;
- btf__set_fd;
- btf__set_pointer_size;
- bpf_prog_bind_map;
- bpf_prog_test_run_opts;
- bpf_program__attach_freplace;
- btf__add_array;
- btf__add_const;
- btf__add_enum;
- btf__add_enum_value;
- btf__add_datasec;
- btf__add_datasec_var_info;
- btf__add_field;
- btf__add_func;
- btf__add_func_param;
- btf__add_func_proto;
- btf__add_fwd;
- btf__add_int;
- btf__add_ptr;
- btf__add_restrict;
- btf__add_str;
- btf__add_struct;
- btf__add_typedef;
- btf__add_union;
- btf__add_var;
- btf__add_volatile;
- btf__endianness;
- btf__find_str;
- btf__new_empty;
- btf__set_endianness;
- btf__str_by_offset;
- btf__base_btf;
- btf__parse_elf_split;
- btf__parse_raw_split;
- btf__parse_split;
- btf__new_empty_split;
- btf__new_split;
ring_buffer__epoll_fd;
- btf__add_float;
- btf__add_type;
- bpf_linker__add_file;
- bpf_linker__finalize;
- bpf_linker__free;
- bpf_linker__new;
- bpf_map__inner_map;
- bpf_object__set_kversion;
- bpf_map__initial_value;
- bpf_map__pin_path;
- bpf_map_lookup_and_delete_elem_flags;
- bpf_program__attach_kprobe_opts;
- bpf_program__attach_perf_event_opts;
- bpf_program__attach_tracepoint_opts;
- bpf_program__attach_uprobe_opts;
- bpf_object__gen_loader;
- btf__load_from_kernel_by_id;
- btf__load_from_kernel_by_id_split;
- btf__load_into_kernel;
- btf__load_module_btf;
- btf__load_vmlinux_btf;
- btf_dump__dump_type_data;
- libbpf_set_strict_mode;
- bpf_map__map_extra;
bpf_map__set_map_extra;- bpf_object__next_map;
- bpf_object__next_program;
- bpf_object__prev_map;
- bpf_object__prev_program;
- bpf_prog_load;
- bpf_program__insns;
- btf__add_btf;
- btf__add_decl_tag;
- btf__add_type_tag;
- btf__dedup;
- btf__raw_data;
- btf__type_cnt;
- btf_dump__new;
- libbpf_major_version;
- libbpf_minor_version;
- libbpf_version_string;
- perf_buffer__new_raw;
- bpf_btf_load;
- bpf_program__log_buf;
- bpf_program__log_level;
- bpf_program__set_log_buf;
- bpf_program__set_log_level;
- bpf_xdp_attach;
- bpf_xdp_detach;
- bpf_xdp_query;
- bpf_xdp_query_id;
- btf_ext__raw_data;
- libbpf_probe_bpf_helper;
- libbpf_probe_bpf_map_type;
- libbpf_probe_bpf_prog_type;
- libbpf_set_memlock_rlim;
- bpf_map__autocreate;
- bpf_map__get_next_key;
- bpf_map__delete_elem;
- bpf_map__lookup_and_delete_elem;
- bpf_map__lookup_elem;
bpf_map__set_autocreate;- bpf_map__update_elem;
- bpf_map_delete_elem_flags;
- bpf_object__destroy_subskeleton;
- bpf_object__open_subskeleton;
- bpf_program__attach_kprobe_multi_opts;
- bpf_program__attach_trace_opts;
- bpf_program__attach_usdt;
- bpf_program__set_insns;
- libbpf_register_prog_handler;
- libbpf_unregister_prog_handler;
- bpf_prog_query_opts;
- bpf_program__attach_ksyscall;
- btf__add_enum64;
- btf__add_enum64_value;
- libbpf_bpf_attach_type_str;
- libbpf_bpf_link_type_str;
- libbpf_bpf_map_type_str;
- libbpf_bpf_prog_type_str;
- perf_buffer__buffer;