From 8ac2fe3d783367a474b51d2fc5d59bb59d5f308d Mon Sep 17 00:00:00 2001 From: Dylan Reimerink Date: Mon, 22 Jul 2024 17:38:15 +0200 Subject: [PATCH 1/4] tools: Updated reference generation to use code blocks for names All lists of names referencing BPF functions, maps, and programs are now generated with code blocks. This allows the spell checker to ignore these names. Signed-off-by: Dylan Reimerink --- docs/linux/helper-function/bpf_bind.md | 2 +- .../helper-function/bpf_bprm_opts_set.md | 2 +- .../bpf_btf_find_by_name_kind.md | 2 +- .../bpf_cgrp_storage_delete.md | 2 +- .../helper-function/bpf_cgrp_storage_get.md | 2 +- docs/linux/helper-function/bpf_check_mtu.md | 6 +- .../helper-function/bpf_clone_redirect.md | 6 +- .../helper-function/bpf_copy_from_user.md | 16 +- .../bpf_copy_from_user_task.md | 16 +- docs/linux/helper-function/bpf_csum_diff.md | 14 +- docs/linux/helper-function/bpf_csum_level.md | 6 +- docs/linux/helper-function/bpf_csum_update.md | 6 +- .../bpf_current_task_under_cgroup.md | 16 +- docs/linux/helper-function/bpf_fib_lookup.md | 6 +- docs/linux/helper-function/bpf_find_vma.md | 16 +- .../helper-function/bpf_for_each_map_elem.md | 70 ++-- .../helper-function/bpf_get_attach_cookie.md | 6 +- .../bpf_get_branch_snapshot.md | 16 +- .../helper-function/bpf_get_cgroup_classid.md | 18 +- .../bpf_get_current_ancestor_cgroup_id.md | 22 +- .../bpf_get_current_cgroup_id.md | 28 +- .../helper-function/bpf_get_current_comm.md | 20 +- .../bpf_get_current_pid_tgid.md | 22 +- .../helper-function/bpf_get_current_task.md | 58 +-- .../bpf_get_current_task_btf.md | 58 +-- .../bpf_get_current_uid_gid.md | 28 +- docs/linux/helper-function/bpf_get_func_ip.md | 16 +- .../helper-function/bpf_get_hash_recalc.md | 12 +- .../helper-function/bpf_get_listener_sock.md | 6 +- .../helper-function/bpf_get_local_storage.md | 18 +- .../helper-function/bpf_get_netns_cookie.md | 10 +- .../bpf_get_ns_current_pid_tgid.md | 16 +- .../helper-function/bpf_get_numa_node_id.md | 58 +-- .../helper-function/bpf_get_prandom_u32.md | 60 +-- docs/linux/helper-function/bpf_get_retval.md | 6 +- .../helper-function/bpf_get_route_realm.md | 12 +- .../bpf_get_smp_processor_id.md | 58 +-- .../helper-function/bpf_get_socket_cookie.md | 18 +- .../helper-function/bpf_get_socket_uid.md | 10 +- docs/linux/helper-function/bpf_get_stack.md | 10 +- docs/linux/helper-function/bpf_get_stackid.md | 10 +- .../helper-function/bpf_get_task_stack.md | 16 +- docs/linux/helper-function/bpf_getsockopt.md | 8 +- .../helper-function/bpf_ima_file_hash.md | 2 +- .../helper-function/bpf_ima_inode_hash.md | 2 +- .../bpf_inode_storage_delete.md | 2 +- .../helper-function/bpf_inode_storage_get.md | 2 +- docs/linux/helper-function/bpf_jiffies64.md | 58 +-- .../bpf_kallsyms_lookup_name.md | 2 +- .../helper-function/bpf_ktime_get_boot_ns.md | 60 +-- .../bpf_ktime_get_coarse_ns.md | 16 +- .../linux/helper-function/bpf_ktime_get_ns.md | 60 +-- .../helper-function/bpf_l3_csum_replace.md | 6 +- .../helper-function/bpf_l4_csum_replace.md | 6 +- .../linux/helper-function/bpf_load_hdr_opt.md | 2 +- docs/linux/helper-function/bpf_loop.md | 58 +-- .../helper-function/bpf_lwt_push_encap.md | 4 +- .../helper-function/bpf_lwt_seg6_action.md | 2 +- .../bpf_lwt_seg6_adjust_srh.md | 2 +- .../bpf_lwt_seg6_store_bytes.md | 2 +- .../helper-function/bpf_map_delete_elem.md | 78 ++-- .../helper-function/bpf_map_lookup_elem.md | 84 ++-- .../bpf_map_lookup_percpu_elem.md | 64 +-- .../helper-function/bpf_map_peek_elem.md | 66 +-- .../linux/helper-function/bpf_map_pop_elem.md | 64 +-- .../helper-function/bpf_map_push_elem.md | 66 +-- .../helper-function/bpf_map_update_elem.md | 78 ++-- .../helper-function/bpf_msg_apply_bytes.md | 2 +- .../helper-function/bpf_msg_cork_bytes.md | 2 +- .../linux/helper-function/bpf_msg_pop_data.md | 2 +- .../helper-function/bpf_msg_pull_data.md | 2 +- .../helper-function/bpf_msg_push_data.md | 2 +- .../helper-function/bpf_msg_redirect_hash.md | 4 +- .../helper-function/bpf_msg_redirect_map.md | 4 +- .../helper-function/bpf_override_return.md | 2 +- docs/linux/helper-function/bpf_per_cpu_ptr.md | 58 +-- .../helper-function/bpf_perf_event_output.md | 48 +-- .../helper-function/bpf_perf_event_read.md | 18 +- .../bpf_perf_event_read_value.md | 18 +- .../bpf_perf_prog_read_value.md | 2 +- docs/linux/helper-function/bpf_probe_read.md | 16 +- .../helper-function/bpf_probe_read_kernel.md | 58 +-- .../bpf_probe_read_kernel_str.md | 58 +-- .../helper-function/bpf_probe_read_str.md | 16 +- .../helper-function/bpf_probe_read_user.md | 58 +-- .../bpf_probe_read_user_str.md | 58 +-- .../helper-function/bpf_probe_write_user.md | 16 +- docs/linux/helper-function/bpf_rc_keydown.md | 2 +- .../helper-function/bpf_rc_pointer_rel.md | 2 +- docs/linux/helper-function/bpf_rc_repeat.md | 2 +- .../bpf_read_branch_records.md | 2 +- docs/linux/helper-function/bpf_redirect.md | 8 +- .../linux/helper-function/bpf_redirect_map.md | 2 +- .../helper-function/bpf_redirect_neigh.md | 4 +- .../helper-function/bpf_redirect_peer.md | 4 +- .../helper-function/bpf_reserve_hdr_opt.md | 2 +- .../helper-function/bpf_ringbuf_discard.md | 58 +-- .../helper-function/bpf_ringbuf_output.md | 58 +-- .../helper-function/bpf_ringbuf_query.md | 58 +-- .../helper-function/bpf_ringbuf_reserve.md | 58 +-- .../helper-function/bpf_ringbuf_submit.md | 58 +-- docs/linux/helper-function/bpf_send_signal.md | 16 +- .../helper-function/bpf_send_signal_thread.md | 16 +- docs/linux/helper-function/bpf_set_hash.md | 4 +- .../helper-function/bpf_set_hash_invalid.md | 6 +- docs/linux/helper-function/bpf_set_retval.md | 6 +- docs/linux/helper-function/bpf_setsockopt.md | 8 +- .../bpf_sk_ancestor_cgroup_id.md | 2 +- docs/linux/helper-function/bpf_sk_assign.md | 6 +- .../linux/helper-function/bpf_sk_cgroup_id.md | 2 +- docs/linux/helper-function/bpf_sk_fullsock.md | 6 +- .../helper-function/bpf_sk_lookup_tcp.md | 12 +- .../helper-function/bpf_sk_lookup_udp.md | 12 +- .../helper-function/bpf_sk_redirect_hash.md | 4 +- .../helper-function/bpf_sk_redirect_map.md | 4 +- docs/linux/helper-function/bpf_sk_release.md | 14 +- .../bpf_sk_select_reuseport.md | 8 +- .../helper-function/bpf_sk_storage_delete.md | 18 +- .../helper-function/bpf_sk_storage_get.md | 20 +- .../helper-function/bpf_skb_adjust_room.md | 6 +- .../bpf_skb_ancestor_cgroup_id.md | 6 +- .../helper-function/bpf_skb_cgroup_classid.md | 4 +- .../helper-function/bpf_skb_cgroup_id.md | 6 +- .../helper-function/bpf_skb_change_head.md | 8 +- .../helper-function/bpf_skb_change_proto.md | 4 +- .../helper-function/bpf_skb_change_tail.md | 8 +- .../helper-function/bpf_skb_change_type.md | 4 +- .../helper-function/bpf_skb_ecn_set_ce.md | 6 +- .../helper-function/bpf_skb_get_tunnel_key.md | 6 +- .../helper-function/bpf_skb_get_tunnel_opt.md | 6 +- .../helper-function/bpf_skb_get_xfrm_state.md | 4 +- .../helper-function/bpf_skb_load_bytes.md | 22 +- .../bpf_skb_load_bytes_relative.md | 10 +- docs/linux/helper-function/bpf_skb_output.md | 2 +- .../helper-function/bpf_skb_pull_data.md | 14 +- .../helper-function/bpf_skb_set_tstamp.md | 4 +- .../helper-function/bpf_skb_set_tunnel_key.md | 6 +- .../helper-function/bpf_skb_set_tunnel_opt.md | 6 +- .../helper-function/bpf_skb_store_bytes.md | 8 +- .../helper-function/bpf_skb_under_cgroup.md | 12 +- .../linux/helper-function/bpf_skb_vlan_pop.md | 4 +- .../helper-function/bpf_skb_vlan_push.md | 4 +- .../helper-function/bpf_skc_lookup_tcp.md | 12 +- .../helper-function/bpf_skc_to_tcp6_sock.md | 10 +- .../bpf_skc_to_tcp_request_sock.md | 10 +- .../helper-function/bpf_skc_to_tcp_sock.md | 10 +- .../bpf_skc_to_tcp_timewait_sock.md | 10 +- .../helper-function/bpf_skc_to_udp6_sock.md | 10 +- .../helper-function/bpf_skc_to_unix_sock.md | 10 +- docs/linux/helper-function/bpf_snprintf.md | 58 +-- .../linux/helper-function/bpf_snprintf_btf.md | 58 +-- .../helper-function/bpf_sock_hash_update.md | 4 +- .../helper-function/bpf_sock_map_update.md | 4 +- .../bpf_sock_ops_cb_flags_set.md | 2 +- docs/linux/helper-function/bpf_spin_unlock.md | 58 +-- .../helper-function/bpf_store_hdr_opt.md | 2 +- docs/linux/helper-function/bpf_strncmp.md | 58 +-- docs/linux/helper-function/bpf_strtol.md | 2 +- docs/linux/helper-function/bpf_strtoul.md | 2 +- docs/linux/helper-function/bpf_sys_bpf.md | 2 +- docs/linux/helper-function/bpf_sys_close.md | 2 +- .../bpf_sysctl_get_current_value.md | 2 +- .../helper-function/bpf_sysctl_get_name.md | 2 +- .../bpf_sysctl_get_new_value.md | 2 +- .../bpf_sysctl_set_new_value.md | 2 +- docs/linux/helper-function/bpf_tail_call.md | 60 +-- .../linux/helper-function/bpf_task_pt_regs.md | 58 +-- .../bpf_task_storage_delete.md | 16 +- .../helper-function/bpf_task_storage_get.md | 16 +- .../bpf_tcp_check_syncookie.md | 6 +- .../helper-function/bpf_tcp_gen_syncookie.md | 6 +- .../linux/helper-function/bpf_tcp_send_ack.md | 2 +- docs/linux/helper-function/bpf_tcp_sock.md | 10 +- .../linux/helper-function/bpf_this_cpu_ptr.md | 58 +-- .../linux/helper-function/bpf_trace_printk.md | 60 +-- .../helper-function/bpf_trace_vprintk.md | 58 +-- .../helper-function/bpf_xdp_adjust_head.md | 2 +- .../helper-function/bpf_xdp_adjust_meta.md | 2 +- .../helper-function/bpf_xdp_adjust_tail.md | 2 +- .../helper-function/bpf_xdp_get_buff_len.md | 2 +- .../helper-function/bpf_xdp_load_bytes.md | 2 +- docs/linux/helper-function/bpf_xdp_output.md | 2 +- .../helper-function/bpf_xdp_store_bytes.md | 2 +- docs/linux/map-type/BPF_MAP_TYPE_ARRAY.md | 8 +- .../map-type/BPF_MAP_TYPE_ARRAY_OF_MAPS.md | 2 +- .../map-type/BPF_MAP_TYPE_BLOOM_FILTER.md | 4 +- .../map-type/BPF_MAP_TYPE_CGROUP_STORAGE.md | 2 +- .../map-type/BPF_MAP_TYPE_CGRP_STORAGE.md | 4 +- docs/linux/map-type/BPF_MAP_TYPE_CPUMAP.md | 2 +- docs/linux/map-type/BPF_MAP_TYPE_DEVMAP.md | 2 +- .../map-type/BPF_MAP_TYPE_DEVMAP_HASH.md | 2 +- docs/linux/map-type/BPF_MAP_TYPE_HASH.md | 8 +- .../map-type/BPF_MAP_TYPE_INODE_STORAGE.md | 4 +- docs/linux/map-type/BPF_MAP_TYPE_LPM_TRIE.md | 6 +- .../map-type/BPF_MAP_TYPE_PERCPU_ARRAY.md | 10 +- .../BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE.md | 2 +- .../map-type/BPF_MAP_TYPE_PERCPU_HASH.md | 10 +- .../map-type/BPF_MAP_TYPE_PERF_EVENT_ARRAY.md | 10 +- .../linux/map-type/BPF_MAP_TYPE_PROG_ARRAY.md | 2 +- docs/linux/map-type/BPF_MAP_TYPE_QUEUE.md | 6 +- .../BPF_MAP_TYPE_REUSEPORT_SOCKARRAY.md | 2 +- .../linux/map-type/BPF_MAP_TYPE_SK_STORAGE.md | 4 +- docs/linux/map-type/BPF_MAP_TYPE_SOCKHASH.md | 14 +- docs/linux/map-type/BPF_MAP_TYPE_SOCKMAP.md | 14 +- docs/linux/map-type/BPF_MAP_TYPE_STACK.md | 6 +- .../map-type/BPF_MAP_TYPE_STACK_TRACE.md | 2 +- .../map-type/BPF_MAP_TYPE_TASK_STORAGE.md | 4 +- docs/linux/map-type/BPF_MAP_TYPE_XSKMAP.md | 4 +- .../BPF_PROG_TYPE_CGROUP_DEVICE.md | 94 ++--- .../program-type/BPF_PROG_TYPE_CGROUP_SKB.md | 196 ++++----- .../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md | 106 ++--- .../BPF_PROG_TYPE_CGROUP_SOCKOPT.md | 106 ++--- .../BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md | 190 ++++----- .../BPF_PROG_TYPE_CGROUP_SYSCTL.md | 108 ++--- .../BPF_PROG_TYPE_FLOW_DISSECTOR.md | 98 ++--- .../program-type/BPF_PROG_TYPE_KPROBE.md | 208 +++++----- docs/linux/program-type/BPF_PROG_TYPE_LSM.md | 388 +++++++++--------- .../program-type/BPF_PROG_TYPE_LWT_IN.md | 172 ++++---- .../program-type/BPF_PROG_TYPE_LWT_OUT.md | 170 ++++---- .../program-type/BPF_PROG_TYPE_LWT_XMIT.md | 200 ++++----- .../program-type/BPF_PROG_TYPE_PERF_EVENT.md | 204 ++++----- .../BPF_PROG_TYPE_RAW_TRACEPOINT.md | 198 ++++----- .../BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md | 198 ++++----- .../program-type/BPF_PROG_TYPE_SCHED_CLS.md | 344 ++++++++-------- .../program-type/BPF_PROG_TYPE_SK_LOOKUP.md | 102 ++--- .../program-type/BPF_PROG_TYPE_SK_MSG.md | 128 +++--- .../BPF_PROG_TYPE_SK_REUSEPORT.md | 92 ++--- .../program-type/BPF_PROG_TYPE_SK_SKB.md | 196 ++++----- .../BPF_PROG_TYPE_SOCKET_FILTER.md | 162 ++++---- .../program-type/BPF_PROG_TYPE_SOCK_OPS.md | 126 +++--- .../program-type/BPF_PROG_TYPE_STRUCT_OPS.md | 302 +++++++------- .../program-type/BPF_PROG_TYPE_SYSCALL.md | 282 ++++++------- .../program-type/BPF_PROG_TYPE_TRACEPOINT.md | 200 ++++----- .../program-type/BPF_PROG_TYPE_TRACING.md | 372 ++++++++--------- docs/linux/program-type/BPF_PROG_TYPE_XDP.md | 268 ++++++------ tools/helper-ref-gen/main.go | 8 +- tools/kfunc-gen/main.go | 2 +- 237 files changed, 4365 insertions(+), 4365 deletions(-) diff --git a/docs/linux/helper-function/bpf_bind.md b/docs/linux/helper-function/bpf_bind.md index 75ed2593..708e001b 100644 --- a/docs/linux/helper-function/bpf_bind.md +++ b/docs/linux/helper-function/bpf_bind.md @@ -35,7 +35,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) ### Example diff --git a/docs/linux/helper-function/bpf_bprm_opts_set.md b/docs/linux/helper-function/bpf_bprm_opts_set.md index 33949979..fb6ec04c 100644 --- a/docs/linux/helper-function/bpf_bprm_opts_set.md +++ b/docs/linux/helper-function/bpf_bprm_opts_set.md @@ -36,7 +36,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) ### Example diff --git a/docs/linux/helper-function/bpf_btf_find_by_name_kind.md b/docs/linux/helper-function/bpf_btf_find_by_name_kind.md index eba1075d..9f56ada7 100644 --- a/docs/linux/helper-function/bpf_btf_find_by_name_kind.md +++ b/docs/linux/helper-function/bpf_btf_find_by_name_kind.md @@ -34,7 +34,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) ### Example diff --git a/docs/linux/helper-function/bpf_cgrp_storage_delete.md b/docs/linux/helper-function/bpf_cgrp_storage_delete.md index 9444fcc6..d4d1088f 100644 --- a/docs/linux/helper-function/bpf_cgrp_storage_delete.md +++ b/docs/linux/helper-function/bpf_cgrp_storage_delete.md @@ -72,7 +72,7 @@ This helper call can be used with the following map types: - * [BPF_MAP_TYPE_CGRP_STORAGE](../map-type/BPF_MAP_TYPE_CGRP_STORAGE.md) + * [`BPF_MAP_TYPE_CGRP_STORAGE`](../map-type/BPF_MAP_TYPE_CGRP_STORAGE.md) ### Example diff --git a/docs/linux/helper-function/bpf_cgrp_storage_get.md b/docs/linux/helper-function/bpf_cgrp_storage_get.md index 9791a8ee..c02bdb6d 100644 --- a/docs/linux/helper-function/bpf_cgrp_storage_get.md +++ b/docs/linux/helper-function/bpf_cgrp_storage_get.md @@ -78,7 +78,7 @@ This helper call can be used with the following map types: - * [BPF_MAP_TYPE_CGRP_STORAGE](../map-type/BPF_MAP_TYPE_CGRP_STORAGE.md) + * [`BPF_MAP_TYPE_CGRP_STORAGE`](../map-type/BPF_MAP_TYPE_CGRP_STORAGE.md) ### Example diff --git a/docs/linux/helper-function/bpf_check_mtu.md b/docs/linux/helper-function/bpf_check_mtu.md index 310cb62d..b124824b 100644 --- a/docs/linux/helper-function/bpf_check_mtu.md +++ b/docs/linux/helper-function/bpf_check_mtu.md @@ -64,9 +64,9 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_clone_redirect.md b/docs/linux/helper-function/bpf_clone_redirect.md index 4d71e640..0f02c2f3 100644 --- a/docs/linux/helper-function/bpf_clone_redirect.md +++ b/docs/linux/helper-function/bpf_clone_redirect.md @@ -38,9 +38,9 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_copy_from_user.md b/docs/linux/helper-function/bpf_copy_from_user.md index 9ddfbf77..91ed97b1 100644 --- a/docs/linux/helper-function/bpf_copy_from_user.md +++ b/docs/linux/helper-function/bpf_copy_from_user.md @@ -34,14 +34,14 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_copy_from_user_task.md b/docs/linux/helper-function/bpf_copy_from_user_task.md index 5448bf13..ad976ca2 100644 --- a/docs/linux/helper-function/bpf_copy_from_user_task.md +++ b/docs/linux/helper-function/bpf_copy_from_user_task.md @@ -34,14 +34,14 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_csum_diff.md b/docs/linux/helper-function/bpf_csum_diff.md index 4196ff9e..ed4ba32c 100644 --- a/docs/linux/helper-function/bpf_csum_diff.md +++ b/docs/linux/helper-function/bpf_csum_diff.md @@ -43,13 +43,13 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_csum_level.md b/docs/linux/helper-function/bpf_csum_level.md index a78f3cba..1d4370af 100644 --- a/docs/linux/helper-function/bpf_csum_level.md +++ b/docs/linux/helper-function/bpf_csum_level.md @@ -46,9 +46,9 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_csum_update.md b/docs/linux/helper-function/bpf_csum_update.md index 4cbfc688..56ddfaee 100644 --- a/docs/linux/helper-function/bpf_csum_update.md +++ b/docs/linux/helper-function/bpf_csum_update.md @@ -34,9 +34,9 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_current_task_under_cgroup.md b/docs/linux/helper-function/bpf_current_task_under_cgroup.md index 61ad48ae..6348ae01 100644 --- a/docs/linux/helper-function/bpf_current_task_under_cgroup.md +++ b/docs/linux/helper-function/bpf_current_task_under_cgroup.md @@ -39,14 +39,14 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_fib_lookup.md b/docs/linux/helper-function/bpf_fib_lookup.md index 2e7b08b3..f163e1a1 100644 --- a/docs/linux/helper-function/bpf_fib_lookup.md +++ b/docs/linux/helper-function/bpf_fib_lookup.md @@ -67,9 +67,9 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_find_vma.md b/docs/linux/helper-function/bpf_find_vma.md index b85d9f1b..17f6b5ed 100644 --- a/docs/linux/helper-function/bpf_find_vma.md +++ b/docs/linux/helper-function/bpf_find_vma.md @@ -40,14 +40,14 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_for_each_map_elem.md b/docs/linux/helper-function/bpf_for_each_map_elem.md index dc351667..2eac3fc2 100644 --- a/docs/linux/helper-function/bpf_for_each_map_elem.md +++ b/docs/linux/helper-function/bpf_for_each_map_elem.md @@ -43,35 +43,35 @@ invalid `flags`. This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Map types @@ -79,12 +79,12 @@ This helper call can be used in the following program types: This helper call can be used with the following map types: - * [BPF_MAP_TYPE_ARRAY](../map-type/BPF_MAP_TYPE_ARRAY.md) - * [BPF_MAP_TYPE_HASH](../map-type/BPF_MAP_TYPE_HASH.md) - * [BPF_MAP_TYPE_LRU_HASH](../map-type/BPF_MAP_TYPE_LRU_HASH.md) - * [BPF_MAP_TYPE_LRU_PERCPU_HASH](../map-type/BPF_MAP_TYPE_LRU_PERCPU_HASH.md) - * [BPF_MAP_TYPE_PERCPU_ARRAY](../map-type/BPF_MAP_TYPE_PERCPU_ARRAY.md) - * [BPF_MAP_TYPE_PERCPU_HASH](../map-type/BPF_MAP_TYPE_PERCPU_HASH.md) + * [`BPF_MAP_TYPE_ARRAY`](../map-type/BPF_MAP_TYPE_ARRAY.md) + * [`BPF_MAP_TYPE_HASH`](../map-type/BPF_MAP_TYPE_HASH.md) + * [`BPF_MAP_TYPE_LRU_HASH`](../map-type/BPF_MAP_TYPE_LRU_HASH.md) + * [`BPF_MAP_TYPE_LRU_PERCPU_HASH`](../map-type/BPF_MAP_TYPE_LRU_PERCPU_HASH.md) + * [`BPF_MAP_TYPE_PERCPU_ARRAY`](../map-type/BPF_MAP_TYPE_PERCPU_ARRAY.md) + * [`BPF_MAP_TYPE_PERCPU_HASH`](../map-type/BPF_MAP_TYPE_PERCPU_HASH.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_attach_cookie.md b/docs/linux/helper-function/bpf_get_attach_cookie.md index dba64e12..872afbdb 100644 --- a/docs/linux/helper-function/bpf_get_attach_cookie.md +++ b/docs/linux/helper-function/bpf_get_attach_cookie.md @@ -40,9 +40,9 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_branch_snapshot.md b/docs/linux/helper-function/bpf_get_branch_snapshot.md index eabc94d3..b5b17832 100644 --- a/docs/linux/helper-function/bpf_get_branch_snapshot.md +++ b/docs/linux/helper-function/bpf_get_branch_snapshot.md @@ -42,14 +42,14 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_cgroup_classid.md b/docs/linux/helper-function/bpf_get_cgroup_classid.md index 03429e9d..3178be12 100644 --- a/docs/linux/helper-function/bpf_get_cgroup_classid.md +++ b/docs/linux/helper-function/bpf_get_cgroup_classid.md @@ -42,15 +42,15 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_current_ancestor_cgroup_id.md b/docs/linux/helper-function/bpf_get_current_ancestor_cgroup_id.md index 095fb1cf..99503edc 100644 --- a/docs/linux/helper-function/bpf_get_current_ancestor_cgroup_id.md +++ b/docs/linux/helper-function/bpf_get_current_ancestor_cgroup_id.md @@ -38,17 +38,17 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_current_cgroup_id.md b/docs/linux/helper-function/bpf_get_current_cgroup_id.md index 19707fca..3b84716b 100644 --- a/docs/linux/helper-function/bpf_get_current_cgroup_id.md +++ b/docs/linux/helper-function/bpf_get_current_cgroup_id.md @@ -34,20 +34,20 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_current_comm.md b/docs/linux/helper-function/bpf_get_current_comm.md index ea572aaf..49146207 100644 --- a/docs/linux/helper-function/bpf_get_current_comm.md +++ b/docs/linux/helper-function/bpf_get_current_comm.md @@ -34,16 +34,16 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_current_pid_tgid.md b/docs/linux/helper-function/bpf_get_current_pid_tgid.md index 3023aa7a..1a6f6ca8 100644 --- a/docs/linux/helper-function/bpf_get_current_pid_tgid.md +++ b/docs/linux/helper-function/bpf_get_current_pid_tgid.md @@ -34,17 +34,17 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_current_task.md b/docs/linux/helper-function/bpf_get_current_task.md index 835cd658..d893e71f 100644 --- a/docs/linux/helper-function/bpf_get_current_task.md +++ b/docs/linux/helper-function/bpf_get_current_task.md @@ -34,35 +34,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_current_task_btf.md b/docs/linux/helper-function/bpf_get_current_task_btf.md index 467adc7b..345929a1 100644 --- a/docs/linux/helper-function/bpf_get_current_task_btf.md +++ b/docs/linux/helper-function/bpf_get_current_task_btf.md @@ -34,35 +34,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_current_uid_gid.md b/docs/linux/helper-function/bpf_get_current_uid_gid.md index 08a2d128..44c10e66 100644 --- a/docs/linux/helper-function/bpf_get_current_uid_gid.md +++ b/docs/linux/helper-function/bpf_get_current_uid_gid.md @@ -34,20 +34,20 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_func_ip.md b/docs/linux/helper-function/bpf_get_func_ip.md index d52e2a25..fa628715 100644 --- a/docs/linux/helper-function/bpf_get_func_ip.md +++ b/docs/linux/helper-function/bpf_get_func_ip.md @@ -38,14 +38,14 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_hash_recalc.md b/docs/linux/helper-function/bpf_get_hash_recalc.md index 6e98c3bf..a9bd0022 100644 --- a/docs/linux/helper-function/bpf_get_hash_recalc.md +++ b/docs/linux/helper-function/bpf_get_hash_recalc.md @@ -36,12 +36,12 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_listener_sock.md b/docs/linux/helper-function/bpf_get_listener_sock.md index 9365505f..63bb48e9 100644 --- a/docs/linux/helper-function/bpf_get_listener_sock.md +++ b/docs/linux/helper-function/bpf_get_listener_sock.md @@ -34,9 +34,9 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_local_storage.md b/docs/linux/helper-function/bpf_get_local_storage.md index d564f962..52df4d1a 100644 --- a/docs/linux/helper-function/bpf_get_local_storage.md +++ b/docs/linux/helper-function/bpf_get_local_storage.md @@ -38,13 +38,13 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) @@ -54,8 +54,8 @@ This helper call can be used with the following map types: - * [BPF_MAP_TYPE_CGROUP_STORAGE](../map-type/BPF_MAP_TYPE_CGROUP_STORAGE.md) - * [BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE](../map-type/BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE.md) + * [`BPF_MAP_TYPE_CGROUP_STORAGE`](../map-type/BPF_MAP_TYPE_CGROUP_STORAGE.md) + * [`BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE`](../map-type/BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_netns_cookie.md b/docs/linux/helper-function/bpf_get_netns_cookie.md index 48fd27ea..b9da613e 100644 --- a/docs/linux/helper-function/bpf_get_netns_cookie.md +++ b/docs/linux/helper-function/bpf_get_netns_cookie.md @@ -34,11 +34,11 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_ns_current_pid_tgid.md b/docs/linux/helper-function/bpf_get_ns_current_pid_tgid.md index 92057318..afe03067 100644 --- a/docs/linux/helper-function/bpf_get_ns_current_pid_tgid.md +++ b/docs/linux/helper-function/bpf_get_ns_current_pid_tgid.md @@ -38,14 +38,14 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_numa_node_id.md b/docs/linux/helper-function/bpf_get_numa_node_id.md index 4f42f82c..a8c0cde8 100644 --- a/docs/linux/helper-function/bpf_get_numa_node_id.md +++ b/docs/linux/helper-function/bpf_get_numa_node_id.md @@ -34,35 +34,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_prandom_u32.md b/docs/linux/helper-function/bpf_get_prandom_u32.md index e844dfd5..19491d3a 100644 --- a/docs/linux/helper-function/bpf_get_prandom_u32.md +++ b/docs/linux/helper-function/bpf_get_prandom_u32.md @@ -36,36 +36,36 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LIRC_MODE2](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LIRC_MODE2`](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_retval.md b/docs/linux/helper-function/bpf_get_retval.md index 03e31fe7..397e867a 100644 --- a/docs/linux/helper-function/bpf_get_retval.md +++ b/docs/linux/helper-function/bpf_get_retval.md @@ -36,9 +36,9 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_route_realm.md b/docs/linux/helper-function/bpf_get_route_realm.md index 9ddfdd52..decd593d 100644 --- a/docs/linux/helper-function/bpf_get_route_realm.md +++ b/docs/linux/helper-function/bpf_get_route_realm.md @@ -38,12 +38,12 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_smp_processor_id.md b/docs/linux/helper-function/bpf_get_smp_processor_id.md index 7a9df09d..83d04556 100644 --- a/docs/linux/helper-function/bpf_get_smp_processor_id.md +++ b/docs/linux/helper-function/bpf_get_smp_processor_id.md @@ -34,35 +34,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_socket_cookie.md b/docs/linux/helper-function/bpf_get_socket_cookie.md index 4fbfe605..8e76f440 100644 --- a/docs/linux/helper-function/bpf_get_socket_cookie.md +++ b/docs/linux/helper-function/bpf_get_socket_cookie.md @@ -34,15 +34,15 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_socket_uid.md b/docs/linux/helper-function/bpf_get_socket_uid.md index f9fd7b75..8db204e3 100644 --- a/docs/linux/helper-function/bpf_get_socket_uid.md +++ b/docs/linux/helper-function/bpf_get_socket_uid.md @@ -34,11 +34,11 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_stack.md b/docs/linux/helper-function/bpf_get_stack.md index 1aceda20..aebc6995 100644 --- a/docs/linux/helper-function/bpf_get_stack.md +++ b/docs/linux/helper-function/bpf_get_stack.md @@ -52,11 +52,11 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_stackid.md b/docs/linux/helper-function/bpf_get_stackid.md index c9e30cfd..b3e38ccc 100644 --- a/docs/linux/helper-function/bpf_get_stackid.md +++ b/docs/linux/helper-function/bpf_get_stackid.md @@ -63,11 +63,11 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_task_stack.md b/docs/linux/helper-function/bpf_get_task_stack.md index 101496eb..84b46f74 100644 --- a/docs/linux/helper-function/bpf_get_task_stack.md +++ b/docs/linux/helper-function/bpf_get_task_stack.md @@ -50,14 +50,14 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_getsockopt.md b/docs/linux/helper-function/bpf_getsockopt.md index 86bce254..ec741dba 100644 --- a/docs/linux/helper-function/bpf_getsockopt.md +++ b/docs/linux/helper-function/bpf_getsockopt.md @@ -42,10 +42,10 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) [:octicons-tag-24: v5.15](https://github.com/torvalds/linux/commit/2c531639deb5e3ddfd6e8123b82052b2d9fbc6e5) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) [:octicons-tag-24: v5.8](https://github.com/torvalds/linux/commit/beecf11bc2188067824591612151c4dc6ec383c7) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) [:octicons-tag-24: v6.0](https://github.com/torvalds/linux/commit/9113d7e48e9128522b9f5a54dfd30dff10509a92) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) [:octicons-tag-24: v5.15](https://github.com/torvalds/linux/commit/2c531639deb5e3ddfd6e8123b82052b2d9fbc6e5) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) [:octicons-tag-24: v5.8](https://github.com/torvalds/linux/commit/beecf11bc2188067824591612151c4dc6ec383c7) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) [:octicons-tag-24: v6.0](https://github.com/torvalds/linux/commit/9113d7e48e9128522b9f5a54dfd30dff10509a92) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) ### Example diff --git a/docs/linux/helper-function/bpf_ima_file_hash.md b/docs/linux/helper-function/bpf_ima_file_hash.md index 8d59f0fe..29edb8d9 100644 --- a/docs/linux/helper-function/bpf_ima_file_hash.md +++ b/docs/linux/helper-function/bpf_ima_file_hash.md @@ -34,7 +34,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) ### Example diff --git a/docs/linux/helper-function/bpf_ima_inode_hash.md b/docs/linux/helper-function/bpf_ima_inode_hash.md index acfeefba..79a89956 100644 --- a/docs/linux/helper-function/bpf_ima_inode_hash.md +++ b/docs/linux/helper-function/bpf_ima_inode_hash.md @@ -34,7 +34,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) ### Example diff --git a/docs/linux/helper-function/bpf_inode_storage_delete.md b/docs/linux/helper-function/bpf_inode_storage_delete.md index 4ebe32bd..f803993d 100644 --- a/docs/linux/helper-function/bpf_inode_storage_delete.md +++ b/docs/linux/helper-function/bpf_inode_storage_delete.md @@ -36,7 +36,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) ### Example diff --git a/docs/linux/helper-function/bpf_inode_storage_get.md b/docs/linux/helper-function/bpf_inode_storage_get.md index 43ff5eb2..3871d7d7 100644 --- a/docs/linux/helper-function/bpf_inode_storage_get.md +++ b/docs/linux/helper-function/bpf_inode_storage_get.md @@ -42,7 +42,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) ### Example diff --git a/docs/linux/helper-function/bpf_jiffies64.md b/docs/linux/helper-function/bpf_jiffies64.md index cb517582..7bf739fe 100644 --- a/docs/linux/helper-function/bpf_jiffies64.md +++ b/docs/linux/helper-function/bpf_jiffies64.md @@ -35,35 +35,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_kallsyms_lookup_name.md b/docs/linux/helper-function/bpf_kallsyms_lookup_name.md index 792fd763..2362a18f 100644 --- a/docs/linux/helper-function/bpf_kallsyms_lookup_name.md +++ b/docs/linux/helper-function/bpf_kallsyms_lookup_name.md @@ -42,7 +42,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) ### Example diff --git a/docs/linux/helper-function/bpf_ktime_get_boot_ns.md b/docs/linux/helper-function/bpf_ktime_get_boot_ns.md index 78ab470d..8e2b91c8 100644 --- a/docs/linux/helper-function/bpf_ktime_get_boot_ns.md +++ b/docs/linux/helper-function/bpf_ktime_get_boot_ns.md @@ -34,36 +34,36 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LIRC_MODE2](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LIRC_MODE2`](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_ktime_get_coarse_ns.md b/docs/linux/helper-function/bpf_ktime_get_coarse_ns.md index a75489d3..05d4f90a 100644 --- a/docs/linux/helper-function/bpf_ktime_get_coarse_ns.md +++ b/docs/linux/helper-function/bpf_ktime_get_coarse_ns.md @@ -36,14 +36,14 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) ### Example diff --git a/docs/linux/helper-function/bpf_ktime_get_ns.md b/docs/linux/helper-function/bpf_ktime_get_ns.md index 63f96786..36fd52c9 100644 --- a/docs/linux/helper-function/bpf_ktime_get_ns.md +++ b/docs/linux/helper-function/bpf_ktime_get_ns.md @@ -35,36 +35,36 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LIRC_MODE2](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LIRC_MODE2`](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_l3_csum_replace.md b/docs/linux/helper-function/bpf_l3_csum_replace.md index f0eb3347..962c11d1 100644 --- a/docs/linux/helper-function/bpf_l3_csum_replace.md +++ b/docs/linux/helper-function/bpf_l3_csum_replace.md @@ -38,9 +38,9 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_l4_csum_replace.md b/docs/linux/helper-function/bpf_l4_csum_replace.md index e74b4a15..1ce6ec71 100644 --- a/docs/linux/helper-function/bpf_l4_csum_replace.md +++ b/docs/linux/helper-function/bpf_l4_csum_replace.md @@ -38,9 +38,9 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_load_hdr_opt.md b/docs/linux/helper-function/bpf_load_hdr_opt.md index c12c3f3a..15371f89 100644 --- a/docs/linux/helper-function/bpf_load_hdr_opt.md +++ b/docs/linux/helper-function/bpf_load_hdr_opt.md @@ -67,7 +67,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) ### Example diff --git a/docs/linux/helper-function/bpf_loop.md b/docs/linux/helper-function/bpf_loop.md index 5c4b8b59..1989554f 100644 --- a/docs/linux/helper-function/bpf_loop.md +++ b/docs/linux/helper-function/bpf_loop.md @@ -42,35 +42,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_lwt_push_encap.md b/docs/linux/helper-function/bpf_lwt_push_encap.md index 37a0068d..663c9467 100644 --- a/docs/linux/helper-function/bpf_lwt_push_encap.md +++ b/docs/linux/helper-function/bpf_lwt_push_encap.md @@ -50,8 +50,8 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) ### Example diff --git a/docs/linux/helper-function/bpf_lwt_seg6_action.md b/docs/linux/helper-function/bpf_lwt_seg6_action.md index 1ffaaf06..762068f5 100644 --- a/docs/linux/helper-function/bpf_lwt_seg6_action.md +++ b/docs/linux/helper-function/bpf_lwt_seg6_action.md @@ -52,7 +52,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) ### Example diff --git a/docs/linux/helper-function/bpf_lwt_seg6_adjust_srh.md b/docs/linux/helper-function/bpf_lwt_seg6_adjust_srh.md index 40bd6a15..8cecc6ac 100644 --- a/docs/linux/helper-function/bpf_lwt_seg6_adjust_srh.md +++ b/docs/linux/helper-function/bpf_lwt_seg6_adjust_srh.md @@ -36,7 +36,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) ### Example diff --git a/docs/linux/helper-function/bpf_lwt_seg6_store_bytes.md b/docs/linux/helper-function/bpf_lwt_seg6_store_bytes.md index c8327ed1..f843c839 100644 --- a/docs/linux/helper-function/bpf_lwt_seg6_store_bytes.md +++ b/docs/linux/helper-function/bpf_lwt_seg6_store_bytes.md @@ -36,7 +36,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) ### Example diff --git a/docs/linux/helper-function/bpf_map_delete_elem.md b/docs/linux/helper-function/bpf_map_delete_elem.md index 8fc5bc4c..0dc34eb6 100644 --- a/docs/linux/helper-function/bpf_map_delete_elem.md +++ b/docs/linux/helper-function/bpf_map_delete_elem.md @@ -38,36 +38,36 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LIRC_MODE2](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LIRC_MODE2`](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Map types @@ -76,15 +76,15 @@ This helper call can be used with the following map types: - * [BPF_MAP_TYPE_ARRAY](../map-type/BPF_MAP_TYPE_ARRAY.md) - * [BPF_MAP_TYPE_HASH](../map-type/BPF_MAP_TYPE_HASH.md) - * [BPF_MAP_TYPE_LPM_TRIE](../map-type/BPF_MAP_TYPE_LPM_TRIE.md) - * [BPF_MAP_TYPE_LRU_HASH](../map-type/BPF_MAP_TYPE_LRU_HASH.md) - * [BPF_MAP_TYPE_LRU_PERCPU_HASH](../map-type/BPF_MAP_TYPE_LRU_PERCPU_HASH.md) - * [BPF_MAP_TYPE_PERCPU_ARRAY](../map-type/BPF_MAP_TYPE_PERCPU_ARRAY.md) - * [BPF_MAP_TYPE_PERCPU_HASH](../map-type/BPF_MAP_TYPE_PERCPU_HASH.md) - * [BPF_MAP_TYPE_SOCKHASH](../map-type/BPF_MAP_TYPE_SOCKHASH.md) - * [BPF_MAP_TYPE_SOCKMAP](../map-type/BPF_MAP_TYPE_SOCKMAP.md) + * [`BPF_MAP_TYPE_ARRAY`](../map-type/BPF_MAP_TYPE_ARRAY.md) + * [`BPF_MAP_TYPE_HASH`](../map-type/BPF_MAP_TYPE_HASH.md) + * [`BPF_MAP_TYPE_LPM_TRIE`](../map-type/BPF_MAP_TYPE_LPM_TRIE.md) + * [`BPF_MAP_TYPE_LRU_HASH`](../map-type/BPF_MAP_TYPE_LRU_HASH.md) + * [`BPF_MAP_TYPE_LRU_PERCPU_HASH`](../map-type/BPF_MAP_TYPE_LRU_PERCPU_HASH.md) + * [`BPF_MAP_TYPE_PERCPU_ARRAY`](../map-type/BPF_MAP_TYPE_PERCPU_ARRAY.md) + * [`BPF_MAP_TYPE_PERCPU_HASH`](../map-type/BPF_MAP_TYPE_PERCPU_HASH.md) + * [`BPF_MAP_TYPE_SOCKHASH`](../map-type/BPF_MAP_TYPE_SOCKHASH.md) + * [`BPF_MAP_TYPE_SOCKMAP`](../map-type/BPF_MAP_TYPE_SOCKMAP.md) ### Example diff --git a/docs/linux/helper-function/bpf_map_lookup_elem.md b/docs/linux/helper-function/bpf_map_lookup_elem.md index 6d546de5..5f87df52 100644 --- a/docs/linux/helper-function/bpf_map_lookup_elem.md +++ b/docs/linux/helper-function/bpf_map_lookup_elem.md @@ -43,36 +43,36 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LIRC_MODE2](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LIRC_MODE2`](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Map types @@ -81,18 +81,18 @@ This helper call can be used with the following map types: - * [BPF_MAP_TYPE_ARRAY](../map-type/BPF_MAP_TYPE_ARRAY.md) - * [BPF_MAP_TYPE_ARRAY_OF_MAPS](../map-type/BPF_MAP_TYPE_ARRAY_OF_MAPS.md) - * [BPF_MAP_TYPE_HASH](../map-type/BPF_MAP_TYPE_HASH.md) - * [BPF_MAP_TYPE_HASH_OF_MAPS](../map-type/BPF_MAP_TYPE_HASH_OF_MAPS.md) - * [BPF_MAP_TYPE_LPM_TRIE](../map-type/BPF_MAP_TYPE_LPM_TRIE.md) - * [BPF_MAP_TYPE_LRU_HASH](../map-type/BPF_MAP_TYPE_LRU_HASH.md) - * [BPF_MAP_TYPE_LRU_PERCPU_HASH](../map-type/BPF_MAP_TYPE_LRU_PERCPU_HASH.md) - * [BPF_MAP_TYPE_PERCPU_ARRAY](../map-type/BPF_MAP_TYPE_PERCPU_ARRAY.md) - * [BPF_MAP_TYPE_PERCPU_HASH](../map-type/BPF_MAP_TYPE_PERCPU_HASH.md) - * [BPF_MAP_TYPE_SOCKHASH](../map-type/BPF_MAP_TYPE_SOCKHASH.md) - * [BPF_MAP_TYPE_SOCKMAP](../map-type/BPF_MAP_TYPE_SOCKMAP.md) - * [BPF_MAP_TYPE_XSKMAP](../map-type/BPF_MAP_TYPE_XSKMAP.md) + * [`BPF_MAP_TYPE_ARRAY`](../map-type/BPF_MAP_TYPE_ARRAY.md) + * [`BPF_MAP_TYPE_ARRAY_OF_MAPS`](../map-type/BPF_MAP_TYPE_ARRAY_OF_MAPS.md) + * [`BPF_MAP_TYPE_HASH`](../map-type/BPF_MAP_TYPE_HASH.md) + * [`BPF_MAP_TYPE_HASH_OF_MAPS`](../map-type/BPF_MAP_TYPE_HASH_OF_MAPS.md) + * [`BPF_MAP_TYPE_LPM_TRIE`](../map-type/BPF_MAP_TYPE_LPM_TRIE.md) + * [`BPF_MAP_TYPE_LRU_HASH`](../map-type/BPF_MAP_TYPE_LRU_HASH.md) + * [`BPF_MAP_TYPE_LRU_PERCPU_HASH`](../map-type/BPF_MAP_TYPE_LRU_PERCPU_HASH.md) + * [`BPF_MAP_TYPE_PERCPU_ARRAY`](../map-type/BPF_MAP_TYPE_PERCPU_ARRAY.md) + * [`BPF_MAP_TYPE_PERCPU_HASH`](../map-type/BPF_MAP_TYPE_PERCPU_HASH.md) + * [`BPF_MAP_TYPE_SOCKHASH`](../map-type/BPF_MAP_TYPE_SOCKHASH.md) + * [`BPF_MAP_TYPE_SOCKMAP`](../map-type/BPF_MAP_TYPE_SOCKMAP.md) + * [`BPF_MAP_TYPE_XSKMAP`](../map-type/BPF_MAP_TYPE_XSKMAP.md) ### Example diff --git a/docs/linux/helper-function/bpf_map_lookup_percpu_elem.md b/docs/linux/helper-function/bpf_map_lookup_percpu_elem.md index 5b2ee478..9957547a 100644 --- a/docs/linux/helper-function/bpf_map_lookup_percpu_elem.md +++ b/docs/linux/helper-function/bpf_map_lookup_percpu_elem.md @@ -33,35 +33,35 @@ Map value associated to _key_ on _cpu_, or **NULL** if no entry was found or _cp This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Map types @@ -69,9 +69,9 @@ This helper call can be used in the following program types: This helper call can be used with the following map types: - * [BPF_MAP_TYPE_LRU_PERCPU_HASH](../map-type/BPF_MAP_TYPE_LRU_PERCPU_HASH.md) - * [BPF_MAP_TYPE_PERCPU_ARRAY](../map-type/BPF_MAP_TYPE_PERCPU_ARRAY.md) - * [BPF_MAP_TYPE_PERCPU_HASH](../map-type/BPF_MAP_TYPE_PERCPU_HASH.md) + * [`BPF_MAP_TYPE_LRU_PERCPU_HASH`](../map-type/BPF_MAP_TYPE_LRU_PERCPU_HASH.md) + * [`BPF_MAP_TYPE_PERCPU_ARRAY`](../map-type/BPF_MAP_TYPE_PERCPU_ARRAY.md) + * [`BPF_MAP_TYPE_PERCPU_HASH`](../map-type/BPF_MAP_TYPE_PERCPU_HASH.md) ### Example diff --git a/docs/linux/helper-function/bpf_map_peek_elem.md b/docs/linux/helper-function/bpf_map_peek_elem.md index feaf459c..73390e50 100644 --- a/docs/linux/helper-function/bpf_map_peek_elem.md +++ b/docs/linux/helper-function/bpf_map_peek_elem.md @@ -34,36 +34,36 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LIRC_MODE2](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LIRC_MODE2`](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Map types @@ -72,9 +72,9 @@ This helper call can be used with the following map types: - * [BPF_MAP_TYPE_BLOOM_FILTER](../map-type/BPF_MAP_TYPE_BLOOM_FILTER.md) - * [BPF_MAP_TYPE_QUEUE](../map-type/BPF_MAP_TYPE_QUEUE.md) - * [BPF_MAP_TYPE_STACK](../map-type/BPF_MAP_TYPE_STACK.md) + * [`BPF_MAP_TYPE_BLOOM_FILTER`](../map-type/BPF_MAP_TYPE_BLOOM_FILTER.md) + * [`BPF_MAP_TYPE_QUEUE`](../map-type/BPF_MAP_TYPE_QUEUE.md) + * [`BPF_MAP_TYPE_STACK`](../map-type/BPF_MAP_TYPE_STACK.md) ### Example diff --git a/docs/linux/helper-function/bpf_map_pop_elem.md b/docs/linux/helper-function/bpf_map_pop_elem.md index dad94d3b..eda3961c 100644 --- a/docs/linux/helper-function/bpf_map_pop_elem.md +++ b/docs/linux/helper-function/bpf_map_pop_elem.md @@ -35,36 +35,36 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LIRC_MODE2](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LIRC_MODE2`](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Map types @@ -73,8 +73,8 @@ This helper call can be used with the following map types: - * [BPF_MAP_TYPE_QUEUE](../map-type/BPF_MAP_TYPE_QUEUE.md) - * [BPF_MAP_TYPE_STACK](../map-type/BPF_MAP_TYPE_STACK.md) + * [`BPF_MAP_TYPE_QUEUE`](../map-type/BPF_MAP_TYPE_QUEUE.md) + * [`BPF_MAP_TYPE_STACK`](../map-type/BPF_MAP_TYPE_STACK.md) ### Example diff --git a/docs/linux/helper-function/bpf_map_push_elem.md b/docs/linux/helper-function/bpf_map_push_elem.md index 565ccc76..2a1808da 100644 --- a/docs/linux/helper-function/bpf_map_push_elem.md +++ b/docs/linux/helper-function/bpf_map_push_elem.md @@ -39,36 +39,36 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LIRC_MODE2](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LIRC_MODE2`](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Map types @@ -77,9 +77,9 @@ This helper call can be used with the following map types: - * [BPF_MAP_TYPE_BLOOM_FILTER](../map-type/BPF_MAP_TYPE_BLOOM_FILTER.md) - * [BPF_MAP_TYPE_QUEUE](../map-type/BPF_MAP_TYPE_QUEUE.md) - * [BPF_MAP_TYPE_STACK](../map-type/BPF_MAP_TYPE_STACK.md) + * [`BPF_MAP_TYPE_BLOOM_FILTER`](../map-type/BPF_MAP_TYPE_BLOOM_FILTER.md) + * [`BPF_MAP_TYPE_QUEUE`](../map-type/BPF_MAP_TYPE_QUEUE.md) + * [`BPF_MAP_TYPE_STACK`](../map-type/BPF_MAP_TYPE_STACK.md) ### Example diff --git a/docs/linux/helper-function/bpf_map_update_elem.md b/docs/linux/helper-function/bpf_map_update_elem.md index 3eaa35b2..b068d723 100644 --- a/docs/linux/helper-function/bpf_map_update_elem.md +++ b/docs/linux/helper-function/bpf_map_update_elem.md @@ -40,36 +40,36 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LIRC_MODE2](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LIRC_MODE2`](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Map types @@ -78,15 +78,15 @@ This helper call can be used with the following map types: - * [BPF_MAP_TYPE_ARRAY](../map-type/BPF_MAP_TYPE_ARRAY.md) - * [BPF_MAP_TYPE_HASH](../map-type/BPF_MAP_TYPE_HASH.md) - * [BPF_MAP_TYPE_LPM_TRIE](../map-type/BPF_MAP_TYPE_LPM_TRIE.md) - * [BPF_MAP_TYPE_LRU_HASH](../map-type/BPF_MAP_TYPE_LRU_HASH.md) - * [BPF_MAP_TYPE_LRU_PERCPU_HASH](../map-type/BPF_MAP_TYPE_LRU_PERCPU_HASH.md) - * [BPF_MAP_TYPE_PERCPU_ARRAY](../map-type/BPF_MAP_TYPE_PERCPU_ARRAY.md) - * [BPF_MAP_TYPE_PERCPU_HASH](../map-type/BPF_MAP_TYPE_PERCPU_HASH.md) - * [BPF_MAP_TYPE_SOCKHASH](../map-type/BPF_MAP_TYPE_SOCKHASH.md) - * [BPF_MAP_TYPE_SOCKMAP](../map-type/BPF_MAP_TYPE_SOCKMAP.md) + * [`BPF_MAP_TYPE_ARRAY`](../map-type/BPF_MAP_TYPE_ARRAY.md) + * [`BPF_MAP_TYPE_HASH`](../map-type/BPF_MAP_TYPE_HASH.md) + * [`BPF_MAP_TYPE_LPM_TRIE`](../map-type/BPF_MAP_TYPE_LPM_TRIE.md) + * [`BPF_MAP_TYPE_LRU_HASH`](../map-type/BPF_MAP_TYPE_LRU_HASH.md) + * [`BPF_MAP_TYPE_LRU_PERCPU_HASH`](../map-type/BPF_MAP_TYPE_LRU_PERCPU_HASH.md) + * [`BPF_MAP_TYPE_PERCPU_ARRAY`](../map-type/BPF_MAP_TYPE_PERCPU_ARRAY.md) + * [`BPF_MAP_TYPE_PERCPU_HASH`](../map-type/BPF_MAP_TYPE_PERCPU_HASH.md) + * [`BPF_MAP_TYPE_SOCKHASH`](../map-type/BPF_MAP_TYPE_SOCKHASH.md) + * [`BPF_MAP_TYPE_SOCKMAP`](../map-type/BPF_MAP_TYPE_SOCKMAP.md) diff --git a/docs/linux/helper-function/bpf_msg_apply_bytes.md b/docs/linux/helper-function/bpf_msg_apply_bytes.md index 982e69bc..f20d9f05 100644 --- a/docs/linux/helper-function/bpf_msg_apply_bytes.md +++ b/docs/linux/helper-function/bpf_msg_apply_bytes.md @@ -44,7 +44,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) ### Example diff --git a/docs/linux/helper-function/bpf_msg_cork_bytes.md b/docs/linux/helper-function/bpf_msg_cork_bytes.md index 16f20782..95e6b590 100644 --- a/docs/linux/helper-function/bpf_msg_cork_bytes.md +++ b/docs/linux/helper-function/bpf_msg_cork_bytes.md @@ -36,7 +36,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) ### Example diff --git a/docs/linux/helper-function/bpf_msg_pop_data.md b/docs/linux/helper-function/bpf_msg_pop_data.md index 6b05ab3a..a49f9a23 100644 --- a/docs/linux/helper-function/bpf_msg_pop_data.md +++ b/docs/linux/helper-function/bpf_msg_pop_data.md @@ -34,7 +34,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) ### Example diff --git a/docs/linux/helper-function/bpf_msg_pull_data.md b/docs/linux/helper-function/bpf_msg_pull_data.md index 3b67e5fc..76548a20 100644 --- a/docs/linux/helper-function/bpf_msg_pull_data.md +++ b/docs/linux/helper-function/bpf_msg_pull_data.md @@ -40,7 +40,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) ### Example diff --git a/docs/linux/helper-function/bpf_msg_push_data.md b/docs/linux/helper-function/bpf_msg_push_data.md index d20a4a4b..f991dd06 100644 --- a/docs/linux/helper-function/bpf_msg_push_data.md +++ b/docs/linux/helper-function/bpf_msg_push_data.md @@ -38,7 +38,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) ### Example diff --git a/docs/linux/helper-function/bpf_msg_redirect_hash.md b/docs/linux/helper-function/bpf_msg_redirect_hash.md index f87cabee..149c59e7 100644 --- a/docs/linux/helper-function/bpf_msg_redirect_hash.md +++ b/docs/linux/helper-function/bpf_msg_redirect_hash.md @@ -30,7 +30,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) ### Map types @@ -39,7 +39,7 @@ This helper call can be used with the following map types: - * [BPF_MAP_TYPE_SOCKHASH](../map-type/BPF_MAP_TYPE_SOCKHASH.md) + * [`BPF_MAP_TYPE_SOCKHASH`](../map-type/BPF_MAP_TYPE_SOCKHASH.md) ### Example diff --git a/docs/linux/helper-function/bpf_msg_redirect_map.md b/docs/linux/helper-function/bpf_msg_redirect_map.md index cb6dea62..884b7747 100644 --- a/docs/linux/helper-function/bpf_msg_redirect_map.md +++ b/docs/linux/helper-function/bpf_msg_redirect_map.md @@ -30,7 +30,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) ### Map types @@ -39,7 +39,7 @@ This helper call can be used with the following map types: - * [BPF_MAP_TYPE_SOCKMAP](../map-type/BPF_MAP_TYPE_SOCKMAP.md) + * [`BPF_MAP_TYPE_SOCKMAP`](../map-type/BPF_MAP_TYPE_SOCKMAP.md) ### Example diff --git a/docs/linux/helper-function/bpf_override_return.md b/docs/linux/helper-function/bpf_override_return.md index 0db55d97..d684c1b3 100644 --- a/docs/linux/helper-function/bpf_override_return.md +++ b/docs/linux/helper-function/bpf_override_return.md @@ -40,7 +40,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) ### Example diff --git a/docs/linux/helper-function/bpf_per_cpu_ptr.md b/docs/linux/helper-function/bpf_per_cpu_ptr.md index c2c01504..9f73c5c7 100644 --- a/docs/linux/helper-function/bpf_per_cpu_ptr.md +++ b/docs/linux/helper-function/bpf_per_cpu_ptr.md @@ -36,35 +36,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_perf_event_output.md b/docs/linux/helper-function/bpf_perf_event_output.md index 4a515ff6..86a605e1 100644 --- a/docs/linux/helper-function/bpf_perf_event_output.md +++ b/docs/linux/helper-function/bpf_perf_event_output.md @@ -49,29 +49,29 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Map types @@ -80,7 +80,7 @@ This helper call can be used with the following map types: - * [BPF_MAP_TYPE_PERF_EVENT_ARRAY](../map-type/BPF_MAP_TYPE_PERF_EVENT_ARRAY.md) + * [`BPF_MAP_TYPE_PERF_EVENT_ARRAY`](../map-type/BPF_MAP_TYPE_PERF_EVENT_ARRAY.md) ### Example diff --git a/docs/linux/helper-function/bpf_perf_event_read.md b/docs/linux/helper-function/bpf_perf_event_read.md index a3a81628..675adc0a 100644 --- a/docs/linux/helper-function/bpf_perf_event_read.md +++ b/docs/linux/helper-function/bpf_perf_event_read.md @@ -37,14 +37,14 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Map types @@ -53,7 +53,7 @@ This helper call can be used with the following map types: - * [BPF_MAP_TYPE_PERF_EVENT_ARRAY](../map-type/BPF_MAP_TYPE_PERF_EVENT_ARRAY.md) + * [`BPF_MAP_TYPE_PERF_EVENT_ARRAY`](../map-type/BPF_MAP_TYPE_PERF_EVENT_ARRAY.md) ### Example diff --git a/docs/linux/helper-function/bpf_perf_event_read_value.md b/docs/linux/helper-function/bpf_perf_event_read_value.md index ebedddb4..bb32c251 100644 --- a/docs/linux/helper-function/bpf_perf_event_read_value.md +++ b/docs/linux/helper-function/bpf_perf_event_read_value.md @@ -39,14 +39,14 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Map types @@ -55,7 +55,7 @@ This helper call can be used with the following map types: - * [BPF_MAP_TYPE_PERF_EVENT_ARRAY](../map-type/BPF_MAP_TYPE_PERF_EVENT_ARRAY.md) + * [`BPF_MAP_TYPE_PERF_EVENT_ARRAY`](../map-type/BPF_MAP_TYPE_PERF_EVENT_ARRAY.md) ### Example diff --git a/docs/linux/helper-function/bpf_perf_prog_read_value.md b/docs/linux/helper-function/bpf_perf_prog_read_value.md index aecd7c28..40b21805 100644 --- a/docs/linux/helper-function/bpf_perf_prog_read_value.md +++ b/docs/linux/helper-function/bpf_perf_prog_read_value.md @@ -31,7 +31,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) ### Example diff --git a/docs/linux/helper-function/bpf_probe_read.md b/docs/linux/helper-function/bpf_probe_read.md index d56a579f..883d4b7d 100644 --- a/docs/linux/helper-function/bpf_probe_read.md +++ b/docs/linux/helper-function/bpf_probe_read.md @@ -36,14 +36,14 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_probe_read_kernel.md b/docs/linux/helper-function/bpf_probe_read_kernel.md index 1b4f35bc..dc89e63d 100644 --- a/docs/linux/helper-function/bpf_probe_read_kernel.md +++ b/docs/linux/helper-function/bpf_probe_read_kernel.md @@ -34,35 +34,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_probe_read_kernel_str.md b/docs/linux/helper-function/bpf_probe_read_kernel_str.md index 290b6111..22532370 100644 --- a/docs/linux/helper-function/bpf_probe_read_kernel_str.md +++ b/docs/linux/helper-function/bpf_probe_read_kernel_str.md @@ -34,35 +34,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_probe_read_str.md b/docs/linux/helper-function/bpf_probe_read_str.md index ad2458aa..eacfacc8 100644 --- a/docs/linux/helper-function/bpf_probe_read_str.md +++ b/docs/linux/helper-function/bpf_probe_read_str.md @@ -36,14 +36,14 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_probe_read_user.md b/docs/linux/helper-function/bpf_probe_read_user.md index ee2fde72..e2f54446 100644 --- a/docs/linux/helper-function/bpf_probe_read_user.md +++ b/docs/linux/helper-function/bpf_probe_read_user.md @@ -34,35 +34,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_probe_read_user_str.md b/docs/linux/helper-function/bpf_probe_read_user_str.md index 18cb5a35..10dee2d5 100644 --- a/docs/linux/helper-function/bpf_probe_read_user_str.md +++ b/docs/linux/helper-function/bpf_probe_read_user_str.md @@ -50,35 +50,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_probe_write_user.md b/docs/linux/helper-function/bpf_probe_write_user.md index 76407dc2..b46fbeb0 100644 --- a/docs/linux/helper-function/bpf_probe_write_user.md +++ b/docs/linux/helper-function/bpf_probe_write_user.md @@ -38,14 +38,14 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_rc_keydown.md b/docs/linux/helper-function/bpf_rc_keydown.md index 66b78b9c..cfb85133 100644 --- a/docs/linux/helper-function/bpf_rc_keydown.md +++ b/docs/linux/helper-function/bpf_rc_keydown.md @@ -42,7 +42,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LIRC_MODE2](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) + * [`BPF_PROG_TYPE_LIRC_MODE2`](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) ### Example diff --git a/docs/linux/helper-function/bpf_rc_pointer_rel.md b/docs/linux/helper-function/bpf_rc_pointer_rel.md index 6f90faa5..44eb81ef 100644 --- a/docs/linux/helper-function/bpf_rc_pointer_rel.md +++ b/docs/linux/helper-function/bpf_rc_pointer_rel.md @@ -38,7 +38,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LIRC_MODE2](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) + * [`BPF_PROG_TYPE_LIRC_MODE2`](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) ### Example diff --git a/docs/linux/helper-function/bpf_rc_repeat.md b/docs/linux/helper-function/bpf_rc_repeat.md index 25ac63be..e754910a 100644 --- a/docs/linux/helper-function/bpf_rc_repeat.md +++ b/docs/linux/helper-function/bpf_rc_repeat.md @@ -40,7 +40,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LIRC_MODE2](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) + * [`BPF_PROG_TYPE_LIRC_MODE2`](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) ### Example diff --git a/docs/linux/helper-function/bpf_read_branch_records.md b/docs/linux/helper-function/bpf_read_branch_records.md index 17c8337b..089f4118 100644 --- a/docs/linux/helper-function/bpf_read_branch_records.md +++ b/docs/linux/helper-function/bpf_read_branch_records.md @@ -40,7 +40,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) ### Example diff --git a/docs/linux/helper-function/bpf_redirect.md b/docs/linux/helper-function/bpf_redirect.md index 66aedba2..55760c41 100644 --- a/docs/linux/helper-function/bpf_redirect.md +++ b/docs/linux/helper-function/bpf_redirect.md @@ -38,10 +38,10 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_redirect_map.md b/docs/linux/helper-function/bpf_redirect_map.md index 42d5c606..db9ced22 100644 --- a/docs/linux/helper-function/bpf_redirect_map.md +++ b/docs/linux/helper-function/bpf_redirect_map.md @@ -40,7 +40,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_redirect_neigh.md b/docs/linux/helper-function/bpf_redirect_neigh.md index 02bfbc2b..f3a21709 100644 --- a/docs/linux/helper-function/bpf_redirect_neigh.md +++ b/docs/linux/helper-function/bpf_redirect_neigh.md @@ -38,8 +38,8 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_redirect_peer.md b/docs/linux/helper-function/bpf_redirect_peer.md index 12539449..070f898f 100644 --- a/docs/linux/helper-function/bpf_redirect_peer.md +++ b/docs/linux/helper-function/bpf_redirect_peer.md @@ -36,8 +36,8 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_reserve_hdr_opt.md b/docs/linux/helper-function/bpf_reserve_hdr_opt.md index ecd8d24a..d604335c 100644 --- a/docs/linux/helper-function/bpf_reserve_hdr_opt.md +++ b/docs/linux/helper-function/bpf_reserve_hdr_opt.md @@ -46,7 +46,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) ### Example diff --git a/docs/linux/helper-function/bpf_ringbuf_discard.md b/docs/linux/helper-function/bpf_ringbuf_discard.md index d4077d06..56bc07c4 100644 --- a/docs/linux/helper-function/bpf_ringbuf_discard.md +++ b/docs/linux/helper-function/bpf_ringbuf_discard.md @@ -35,35 +35,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_ringbuf_output.md b/docs/linux/helper-function/bpf_ringbuf_output.md index 3931c62d..4a83930b 100644 --- a/docs/linux/helper-function/bpf_ringbuf_output.md +++ b/docs/linux/helper-function/bpf_ringbuf_output.md @@ -37,35 +37,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_ringbuf_query.md b/docs/linux/helper-function/bpf_ringbuf_query.md index ba07a89a..68d31a3b 100644 --- a/docs/linux/helper-function/bpf_ringbuf_query.md +++ b/docs/linux/helper-function/bpf_ringbuf_query.md @@ -41,35 +41,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_ringbuf_reserve.md b/docs/linux/helper-function/bpf_ringbuf_reserve.md index 3d64e461..a47cda88 100644 --- a/docs/linux/helper-function/bpf_ringbuf_reserve.md +++ b/docs/linux/helper-function/bpf_ringbuf_reserve.md @@ -37,35 +37,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_ringbuf_submit.md b/docs/linux/helper-function/bpf_ringbuf_submit.md index b9a1cfb4..df506495 100644 --- a/docs/linux/helper-function/bpf_ringbuf_submit.md +++ b/docs/linux/helper-function/bpf_ringbuf_submit.md @@ -36,35 +36,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_send_signal.md b/docs/linux/helper-function/bpf_send_signal.md index 53582497..f88c5db2 100644 --- a/docs/linux/helper-function/bpf_send_signal.md +++ b/docs/linux/helper-function/bpf_send_signal.md @@ -42,14 +42,14 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_send_signal_thread.md b/docs/linux/helper-function/bpf_send_signal_thread.md index 2fbba369..ed875afe 100644 --- a/docs/linux/helper-function/bpf_send_signal_thread.md +++ b/docs/linux/helper-function/bpf_send_signal_thread.md @@ -42,14 +42,14 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_set_hash.md b/docs/linux/helper-function/bpf_set_hash.md index c0045d18..cda1b494 100644 --- a/docs/linux/helper-function/bpf_set_hash.md +++ b/docs/linux/helper-function/bpf_set_hash.md @@ -34,8 +34,8 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_set_hash_invalid.md b/docs/linux/helper-function/bpf_set_hash_invalid.md index 7deefea1..3e1f688d 100644 --- a/docs/linux/helper-function/bpf_set_hash_invalid.md +++ b/docs/linux/helper-function/bpf_set_hash_invalid.md @@ -34,9 +34,9 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_set_retval.md b/docs/linux/helper-function/bpf_set_retval.md index 06d23844..a845ce20 100644 --- a/docs/linux/helper-function/bpf_set_retval.md +++ b/docs/linux/helper-function/bpf_set_retval.md @@ -44,9 +44,9 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) ### Example diff --git a/docs/linux/helper-function/bpf_setsockopt.md b/docs/linux/helper-function/bpf_setsockopt.md index f3f8c8aa..641295ad 100644 --- a/docs/linux/helper-function/bpf_setsockopt.md +++ b/docs/linux/helper-function/bpf_setsockopt.md @@ -48,10 +48,10 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) [:octicons-tag-24: v5.15](https://github.com/torvalds/linux/commit/2c531639deb5e3ddfd6e8123b82052b2d9fbc6e5) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) [:octicons-tag-24: v5.8](https://github.com/torvalds/linux/commit/beecf11bc2188067824591612151c4dc6ec383c7) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) [:octicons-tag-24: v6.0](https://github.com/torvalds/linux/commit/9113d7e48e9128522b9f5a54dfd30dff10509a92) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) [:octicons-tag-24: v5.15](https://github.com/torvalds/linux/commit/2c531639deb5e3ddfd6e8123b82052b2d9fbc6e5) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) [:octicons-tag-24: v5.8](https://github.com/torvalds/linux/commit/beecf11bc2188067824591612151c4dc6ec383c7) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) [:octicons-tag-24: v6.0](https://github.com/torvalds/linux/commit/9113d7e48e9128522b9f5a54dfd30dff10509a92) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) ### Example diff --git a/docs/linux/helper-function/bpf_sk_ancestor_cgroup_id.md b/docs/linux/helper-function/bpf_sk_ancestor_cgroup_id.md index dcd1dae4..60ae935d 100644 --- a/docs/linux/helper-function/bpf_sk_ancestor_cgroup_id.md +++ b/docs/linux/helper-function/bpf_sk_ancestor_cgroup_id.md @@ -38,7 +38,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) ### Example diff --git a/docs/linux/helper-function/bpf_sk_assign.md b/docs/linux/helper-function/bpf_sk_assign.md index 7c0084e6..cc729c63 100644 --- a/docs/linux/helper-function/bpf_sk_assign.md +++ b/docs/linux/helper-function/bpf_sk_assign.md @@ -72,9 +72,9 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) ### Examples diff --git a/docs/linux/helper-function/bpf_sk_cgroup_id.md b/docs/linux/helper-function/bpf_sk_cgroup_id.md index 5b70b330..fc47ab4e 100644 --- a/docs/linux/helper-function/bpf_sk_cgroup_id.md +++ b/docs/linux/helper-function/bpf_sk_cgroup_id.md @@ -38,7 +38,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) ### Example diff --git a/docs/linux/helper-function/bpf_sk_fullsock.md b/docs/linux/helper-function/bpf_sk_fullsock.md index d072ffb7..de7bcf92 100644 --- a/docs/linux/helper-function/bpf_sk_fullsock.md +++ b/docs/linux/helper-function/bpf_sk_fullsock.md @@ -34,9 +34,9 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_sk_lookup_tcp.md b/docs/linux/helper-function/bpf_sk_lookup_tcp.md index cc1d79e8..78e449e3 100644 --- a/docs/linux/helper-function/bpf_sk_lookup_tcp.md +++ b/docs/linux/helper-function/bpf_sk_lookup_tcp.md @@ -52,12 +52,12 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_sk_lookup_udp.md b/docs/linux/helper-function/bpf_sk_lookup_udp.md index 060e777d..3938ab1f 100644 --- a/docs/linux/helper-function/bpf_sk_lookup_udp.md +++ b/docs/linux/helper-function/bpf_sk_lookup_udp.md @@ -52,12 +52,12 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_sk_redirect_hash.md b/docs/linux/helper-function/bpf_sk_redirect_hash.md index fbb0e437..878dd252 100644 --- a/docs/linux/helper-function/bpf_sk_redirect_hash.md +++ b/docs/linux/helper-function/bpf_sk_redirect_hash.md @@ -30,7 +30,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) ### Map types @@ -39,7 +39,7 @@ This helper call can be used with the following map types: - * [BPF_MAP_TYPE_SOCKHASH](../map-type/BPF_MAP_TYPE_SOCKHASH.md) + * [`BPF_MAP_TYPE_SOCKHASH`](../map-type/BPF_MAP_TYPE_SOCKHASH.md) ### Example diff --git a/docs/linux/helper-function/bpf_sk_redirect_map.md b/docs/linux/helper-function/bpf_sk_redirect_map.md index 629e1666..5b9c6610 100644 --- a/docs/linux/helper-function/bpf_sk_redirect_map.md +++ b/docs/linux/helper-function/bpf_sk_redirect_map.md @@ -30,7 +30,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) ### Map types @@ -39,7 +39,7 @@ This helper call can be used with the following map types: - * [BPF_MAP_TYPE_SOCKMAP](../map-type/BPF_MAP_TYPE_SOCKMAP.md) + * [`BPF_MAP_TYPE_SOCKMAP`](../map-type/BPF_MAP_TYPE_SOCKMAP.md) ### Example diff --git a/docs/linux/helper-function/bpf_sk_release.md b/docs/linux/helper-function/bpf_sk_release.md index cfc896b3..eb0960e1 100644 --- a/docs/linux/helper-function/bpf_sk_release.md +++ b/docs/linux/helper-function/bpf_sk_release.md @@ -34,13 +34,13 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_sk_select_reuseport.md b/docs/linux/helper-function/bpf_sk_select_reuseport.md index 521f193f..4849561c 100644 --- a/docs/linux/helper-function/bpf_sk_select_reuseport.md +++ b/docs/linux/helper-function/bpf_sk_select_reuseport.md @@ -36,7 +36,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) ### Map types @@ -45,9 +45,9 @@ This helper call can be used with the following map types: - * [BPF_MAP_TYPE_REUSEPORT_SOCKARRAY](../map-type/BPF_MAP_TYPE_REUSEPORT_SOCKARRAY.md) - * [BPF_MAP_TYPE_SOCKHASH](../map-type/BPF_MAP_TYPE_SOCKHASH.md) - * [BPF_MAP_TYPE_SOCKMAP](../map-type/BPF_MAP_TYPE_SOCKMAP.md) + * [`BPF_MAP_TYPE_REUSEPORT_SOCKARRAY`](../map-type/BPF_MAP_TYPE_REUSEPORT_SOCKARRAY.md) + * [`BPF_MAP_TYPE_SOCKHASH`](../map-type/BPF_MAP_TYPE_SOCKHASH.md) + * [`BPF_MAP_TYPE_SOCKMAP`](../map-type/BPF_MAP_TYPE_SOCKMAP.md) ### Example diff --git a/docs/linux/helper-function/bpf_sk_storage_delete.md b/docs/linux/helper-function/bpf_sk_storage_delete.md index 68f73ddb..766a512a 100644 --- a/docs/linux/helper-function/bpf_sk_storage_delete.md +++ b/docs/linux/helper-function/bpf_sk_storage_delete.md @@ -36,15 +36,15 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/helper-function/bpf_sk_storage_get.md b/docs/linux/helper-function/bpf_sk_storage_get.md index ab3d62f8..c1e20ef4 100644 --- a/docs/linux/helper-function/bpf_sk_storage_get.md +++ b/docs/linux/helper-function/bpf_sk_storage_get.md @@ -44,16 +44,16 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/helper-function/bpf_skb_adjust_room.md b/docs/linux/helper-function/bpf_skb_adjust_room.md index ba387662..230ad1e3 100644 --- a/docs/linux/helper-function/bpf_skb_adjust_room.md +++ b/docs/linux/helper-function/bpf_skb_adjust_room.md @@ -69,9 +69,9 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) ### Example diff --git a/docs/linux/helper-function/bpf_skb_ancestor_cgroup_id.md b/docs/linux/helper-function/bpf_skb_ancestor_cgroup_id.md index 8fc30874..c8da21fe 100644 --- a/docs/linux/helper-function/bpf_skb_ancestor_cgroup_id.md +++ b/docs/linux/helper-function/bpf_skb_ancestor_cgroup_id.md @@ -38,9 +38,9 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_skb_cgroup_classid.md b/docs/linux/helper-function/bpf_skb_cgroup_classid.md index 2fb09415..abbe1b16 100644 --- a/docs/linux/helper-function/bpf_skb_cgroup_classid.md +++ b/docs/linux/helper-function/bpf_skb_cgroup_classid.md @@ -34,8 +34,8 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_skb_cgroup_id.md b/docs/linux/helper-function/bpf_skb_cgroup_id.md index 7bc914e1..ea5da7fa 100644 --- a/docs/linux/helper-function/bpf_skb_cgroup_id.md +++ b/docs/linux/helper-function/bpf_skb_cgroup_id.md @@ -36,9 +36,9 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_skb_change_head.md b/docs/linux/helper-function/bpf_skb_change_head.md index cabfb7de..a3d548c3 100644 --- a/docs/linux/helper-function/bpf_skb_change_head.md +++ b/docs/linux/helper-function/bpf_skb_change_head.md @@ -40,10 +40,10 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) [:octicons-tag-24: v5.8](https://github.com/torvalds/linux/commit/6f3f65d80dac8f2bafce2213005821fccdce194c) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) [:octicons-tag-24: v5.8](https://github.com/torvalds/linux/commit/6f3f65d80dac8f2bafce2213005821fccdce194c) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) [:octicons-tag-24: v5.8](https://github.com/torvalds/linux/commit/6f3f65d80dac8f2bafce2213005821fccdce194c) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) [:octicons-tag-24: v5.8](https://github.com/torvalds/linux/commit/6f3f65d80dac8f2bafce2213005821fccdce194c) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) ### Example diff --git a/docs/linux/helper-function/bpf_skb_change_proto.md b/docs/linux/helper-function/bpf_skb_change_proto.md index 332ee02f..f9135fc4 100644 --- a/docs/linux/helper-function/bpf_skb_change_proto.md +++ b/docs/linux/helper-function/bpf_skb_change_proto.md @@ -40,8 +40,8 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_skb_change_tail.md b/docs/linux/helper-function/bpf_skb_change_tail.md index 530961d5..90a3ad91 100644 --- a/docs/linux/helper-function/bpf_skb_change_tail.md +++ b/docs/linux/helper-function/bpf_skb_change_tail.md @@ -38,10 +38,10 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) ### Example diff --git a/docs/linux/helper-function/bpf_skb_change_type.md b/docs/linux/helper-function/bpf_skb_change_type.md index c8774143..e711d2a7 100644 --- a/docs/linux/helper-function/bpf_skb_change_type.md +++ b/docs/linux/helper-function/bpf_skb_change_type.md @@ -54,8 +54,8 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_skb_ecn_set_ce.md b/docs/linux/helper-function/bpf_skb_ecn_set_ce.md index a508d881..58c7eaf9 100644 --- a/docs/linux/helper-function/bpf_skb_ecn_set_ce.md +++ b/docs/linux/helper-function/bpf_skb_ecn_set_ce.md @@ -34,9 +34,9 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_skb_get_tunnel_key.md b/docs/linux/helper-function/bpf_skb_get_tunnel_key.md index 729fae7b..75b787d8 100644 --- a/docs/linux/helper-function/bpf_skb_get_tunnel_key.md +++ b/docs/linux/helper-function/bpf_skb_get_tunnel_key.md @@ -56,9 +56,9 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_skb_get_tunnel_opt.md b/docs/linux/helper-function/bpf_skb_get_tunnel_opt.md index 50f9a21d..8dc046b3 100644 --- a/docs/linux/helper-function/bpf_skb_get_tunnel_opt.md +++ b/docs/linux/helper-function/bpf_skb_get_tunnel_opt.md @@ -36,9 +36,9 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_skb_get_xfrm_state.md b/docs/linux/helper-function/bpf_skb_get_xfrm_state.md index 0d01e5fb..cae1c6e7 100644 --- a/docs/linux/helper-function/bpf_skb_get_xfrm_state.md +++ b/docs/linux/helper-function/bpf_skb_get_xfrm_state.md @@ -40,8 +40,8 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_skb_load_bytes.md b/docs/linux/helper-function/bpf_skb_load_bytes.md index cfdef08b..a5247fe1 100644 --- a/docs/linux/helper-function/bpf_skb_load_bytes.md +++ b/docs/linux/helper-function/bpf_skb_load_bytes.md @@ -36,17 +36,17 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) ### Example diff --git a/docs/linux/helper-function/bpf_skb_load_bytes_relative.md b/docs/linux/helper-function/bpf_skb_load_bytes_relative.md index 5a1b5935..aa9761a6 100644 --- a/docs/linux/helper-function/bpf_skb_load_bytes_relative.md +++ b/docs/linux/helper-function/bpf_skb_load_bytes_relative.md @@ -44,11 +44,11 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) ### Example diff --git a/docs/linux/helper-function/bpf_skb_output.md b/docs/linux/helper-function/bpf_skb_output.md index 8dff49bb..f5b95e7c 100644 --- a/docs/linux/helper-function/bpf_skb_output.md +++ b/docs/linux/helper-function/bpf_skb_output.md @@ -46,7 +46,7 @@ This helper call can be used with the following map types: - * [BPF_MAP_TYPE_PERF_EVENT_ARRAY](../map-type/BPF_MAP_TYPE_PERF_EVENT_ARRAY.md) + * [`BPF_MAP_TYPE_PERF_EVENT_ARRAY`](../map-type/BPF_MAP_TYPE_PERF_EVENT_ARRAY.md) ### Example diff --git a/docs/linux/helper-function/bpf_skb_pull_data.md b/docs/linux/helper-function/bpf_skb_pull_data.md index 7d8b827b..13bbd537 100644 --- a/docs/linux/helper-function/bpf_skb_pull_data.md +++ b/docs/linux/helper-function/bpf_skb_pull_data.md @@ -42,13 +42,13 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) ### Example diff --git a/docs/linux/helper-function/bpf_skb_set_tstamp.md b/docs/linux/helper-function/bpf_skb_set_tstamp.md index 5652d47c..25793c59 100644 --- a/docs/linux/helper-function/bpf_skb_set_tstamp.md +++ b/docs/linux/helper-function/bpf_skb_set_tstamp.md @@ -44,8 +44,8 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_skb_set_tunnel_key.md b/docs/linux/helper-function/bpf_skb_set_tunnel_key.md index 96bdf987..49aef7f1 100644 --- a/docs/linux/helper-function/bpf_skb_set_tunnel_key.md +++ b/docs/linux/helper-function/bpf_skb_set_tunnel_key.md @@ -62,9 +62,9 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_skb_set_tunnel_opt.md b/docs/linux/helper-function/bpf_skb_set_tunnel_opt.md index 384f8580..f508c7d4 100644 --- a/docs/linux/helper-function/bpf_skb_set_tunnel_opt.md +++ b/docs/linux/helper-function/bpf_skb_set_tunnel_opt.md @@ -36,9 +36,9 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_skb_store_bytes.md b/docs/linux/helper-function/bpf_skb_store_bytes.md index 87d4fb79..aa73798b 100644 --- a/docs/linux/helper-function/bpf_skb_store_bytes.md +++ b/docs/linux/helper-function/bpf_skb_store_bytes.md @@ -36,10 +36,10 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) ### Example diff --git a/docs/linux/helper-function/bpf_skb_under_cgroup.md b/docs/linux/helper-function/bpf_skb_under_cgroup.md index 5d74737c..24668493 100644 --- a/docs/linux/helper-function/bpf_skb_under_cgroup.md +++ b/docs/linux/helper-function/bpf_skb_under_cgroup.md @@ -39,12 +39,12 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_skb_vlan_pop.md b/docs/linux/helper-function/bpf_skb_vlan_pop.md index e467a8f8..39bcc1ea 100644 --- a/docs/linux/helper-function/bpf_skb_vlan_pop.md +++ b/docs/linux/helper-function/bpf_skb_vlan_pop.md @@ -36,8 +36,8 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_skb_vlan_push.md b/docs/linux/helper-function/bpf_skb_vlan_push.md index cfa74b0c..1e97ac63 100644 --- a/docs/linux/helper-function/bpf_skb_vlan_push.md +++ b/docs/linux/helper-function/bpf_skb_vlan_push.md @@ -36,8 +36,8 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_skc_lookup_tcp.md b/docs/linux/helper-function/bpf_skc_lookup_tcp.md index fb3da4be..b2bb3295 100644 --- a/docs/linux/helper-function/bpf_skc_lookup_tcp.md +++ b/docs/linux/helper-function/bpf_skc_lookup_tcp.md @@ -38,12 +38,12 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_skc_to_tcp6_sock.md b/docs/linux/helper-function/bpf_skc_to_tcp6_sock.md index b1a604dc..49f1180a 100644 --- a/docs/linux/helper-function/bpf_skc_to_tcp6_sock.md +++ b/docs/linux/helper-function/bpf_skc_to_tcp6_sock.md @@ -34,11 +34,11 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) ### Example diff --git a/docs/linux/helper-function/bpf_skc_to_tcp_request_sock.md b/docs/linux/helper-function/bpf_skc_to_tcp_request_sock.md index 048b3cd1..276e70f7 100644 --- a/docs/linux/helper-function/bpf_skc_to_tcp_request_sock.md +++ b/docs/linux/helper-function/bpf_skc_to_tcp_request_sock.md @@ -34,11 +34,11 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) ### Example diff --git a/docs/linux/helper-function/bpf_skc_to_tcp_sock.md b/docs/linux/helper-function/bpf_skc_to_tcp_sock.md index 8a77be29..968f9980 100644 --- a/docs/linux/helper-function/bpf_skc_to_tcp_sock.md +++ b/docs/linux/helper-function/bpf_skc_to_tcp_sock.md @@ -34,11 +34,11 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) ### Example diff --git a/docs/linux/helper-function/bpf_skc_to_tcp_timewait_sock.md b/docs/linux/helper-function/bpf_skc_to_tcp_timewait_sock.md index 21cb4b1d..f219d3e1 100644 --- a/docs/linux/helper-function/bpf_skc_to_tcp_timewait_sock.md +++ b/docs/linux/helper-function/bpf_skc_to_tcp_timewait_sock.md @@ -34,11 +34,11 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) ### Example diff --git a/docs/linux/helper-function/bpf_skc_to_udp6_sock.md b/docs/linux/helper-function/bpf_skc_to_udp6_sock.md index 1a256d58..7b6a5004 100644 --- a/docs/linux/helper-function/bpf_skc_to_udp6_sock.md +++ b/docs/linux/helper-function/bpf_skc_to_udp6_sock.md @@ -34,11 +34,11 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) ### Example diff --git a/docs/linux/helper-function/bpf_skc_to_unix_sock.md b/docs/linux/helper-function/bpf_skc_to_unix_sock.md index 03c7e69e..e0b867e4 100644 --- a/docs/linux/helper-function/bpf_skc_to_unix_sock.md +++ b/docs/linux/helper-function/bpf_skc_to_unix_sock.md @@ -34,11 +34,11 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) ### Example diff --git a/docs/linux/helper-function/bpf_snprintf.md b/docs/linux/helper-function/bpf_snprintf.md index 892be18e..66e55f8d 100644 --- a/docs/linux/helper-function/bpf_snprintf.md +++ b/docs/linux/helper-function/bpf_snprintf.md @@ -42,35 +42,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_snprintf_btf.md b/docs/linux/helper-function/bpf_snprintf_btf.md index abbc873a..56163d5a 100644 --- a/docs/linux/helper-function/bpf_snprintf_btf.md +++ b/docs/linux/helper-function/bpf_snprintf_btf.md @@ -56,35 +56,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_sock_hash_update.md b/docs/linux/helper-function/bpf_sock_hash_update.md index ff72b230..7fd966b1 100644 --- a/docs/linux/helper-function/bpf_sock_hash_update.md +++ b/docs/linux/helper-function/bpf_sock_hash_update.md @@ -36,7 +36,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) ### Map types @@ -45,7 +45,7 @@ This helper call can be used with the following map types: - * [BPF_MAP_TYPE_SOCKHASH](../map-type/BPF_MAP_TYPE_SOCKHASH.md) + * [`BPF_MAP_TYPE_SOCKHASH`](../map-type/BPF_MAP_TYPE_SOCKHASH.md) ### Example diff --git a/docs/linux/helper-function/bpf_sock_map_update.md b/docs/linux/helper-function/bpf_sock_map_update.md index b92b1101..7a9880d9 100644 --- a/docs/linux/helper-function/bpf_sock_map_update.md +++ b/docs/linux/helper-function/bpf_sock_map_update.md @@ -36,7 +36,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) ### Map types @@ -45,7 +45,7 @@ This helper call can be used with the following map types: - * [BPF_MAP_TYPE_SOCKMAP](../map-type/BPF_MAP_TYPE_SOCKMAP.md) + * [`BPF_MAP_TYPE_SOCKMAP`](../map-type/BPF_MAP_TYPE_SOCKMAP.md) ### Example diff --git a/docs/linux/helper-function/bpf_sock_ops_cb_flags_set.md b/docs/linux/helper-function/bpf_sock_ops_cb_flags_set.md index 76864a55..76bfc4c5 100644 --- a/docs/linux/helper-function/bpf_sock_ops_cb_flags_set.md +++ b/docs/linux/helper-function/bpf_sock_ops_cb_flags_set.md @@ -59,7 +59,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) ### Example diff --git a/docs/linux/helper-function/bpf_spin_unlock.md b/docs/linux/helper-function/bpf_spin_unlock.md index a97eae3e..5dbb8830 100644 --- a/docs/linux/helper-function/bpf_spin_unlock.md +++ b/docs/linux/helper-function/bpf_spin_unlock.md @@ -23,35 +23,35 @@ Release the `lock` previously locked by a call to `bpf_spin_lock(lock)`. This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_store_hdr_opt.md b/docs/linux/helper-function/bpf_store_hdr_opt.md index 5a78f921..8293cd22 100644 --- a/docs/linux/helper-function/bpf_store_hdr_opt.md +++ b/docs/linux/helper-function/bpf_store_hdr_opt.md @@ -52,7 +52,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) ### Example diff --git a/docs/linux/helper-function/bpf_strncmp.md b/docs/linux/helper-function/bpf_strncmp.md index 2d54b53f..afd212fa 100644 --- a/docs/linux/helper-function/bpf_strncmp.md +++ b/docs/linux/helper-function/bpf_strncmp.md @@ -34,35 +34,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_strtol.md b/docs/linux/helper-function/bpf_strtol.md index 011aa34e..cedf1a7b 100644 --- a/docs/linux/helper-function/bpf_strtol.md +++ b/docs/linux/helper-function/bpf_strtol.md @@ -44,7 +44,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) ### Example diff --git a/docs/linux/helper-function/bpf_strtoul.md b/docs/linux/helper-function/bpf_strtoul.md index f4b18e5e..d66bad06 100644 --- a/docs/linux/helper-function/bpf_strtoul.md +++ b/docs/linux/helper-function/bpf_strtoul.md @@ -44,7 +44,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) ### Example diff --git a/docs/linux/helper-function/bpf_sys_bpf.md b/docs/linux/helper-function/bpf_sys_bpf.md index 53247017..3cf33304 100644 --- a/docs/linux/helper-function/bpf_sys_bpf.md +++ b/docs/linux/helper-function/bpf_sys_bpf.md @@ -34,7 +34,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) ### Example diff --git a/docs/linux/helper-function/bpf_sys_close.md b/docs/linux/helper-function/bpf_sys_close.md index 427eacb9..00a92989 100644 --- a/docs/linux/helper-function/bpf_sys_close.md +++ b/docs/linux/helper-function/bpf_sys_close.md @@ -34,7 +34,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) ### Example diff --git a/docs/linux/helper-function/bpf_sysctl_get_current_value.md b/docs/linux/helper-function/bpf_sysctl_get_current_value.md index 7b81c73e..48f7b0f8 100644 --- a/docs/linux/helper-function/bpf_sysctl_get_current_value.md +++ b/docs/linux/helper-function/bpf_sysctl_get_current_value.md @@ -42,7 +42,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) ### Example diff --git a/docs/linux/helper-function/bpf_sysctl_get_name.md b/docs/linux/helper-function/bpf_sysctl_get_name.md index 36696ba8..24ea5456 100644 --- a/docs/linux/helper-function/bpf_sysctl_get_name.md +++ b/docs/linux/helper-function/bpf_sysctl_get_name.md @@ -40,7 +40,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) ### Example diff --git a/docs/linux/helper-function/bpf_sysctl_get_new_value.md b/docs/linux/helper-function/bpf_sysctl_get_new_value.md index cc629402..ec7907e5 100644 --- a/docs/linux/helper-function/bpf_sysctl_get_new_value.md +++ b/docs/linux/helper-function/bpf_sysctl_get_new_value.md @@ -42,7 +42,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) ### Example diff --git a/docs/linux/helper-function/bpf_sysctl_set_new_value.md b/docs/linux/helper-function/bpf_sysctl_set_new_value.md index 10259adc..b8221862 100644 --- a/docs/linux/helper-function/bpf_sysctl_set_new_value.md +++ b/docs/linux/helper-function/bpf_sysctl_set_new_value.md @@ -42,7 +42,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) ### Example diff --git a/docs/linux/helper-function/bpf_tail_call.md b/docs/linux/helper-function/bpf_tail_call.md index 41056140..2b3e109b 100644 --- a/docs/linux/helper-function/bpf_tail_call.md +++ b/docs/linux/helper-function/bpf_tail_call.md @@ -57,36 +57,36 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LIRC_MODE2](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LIRC_MODE2`](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_task_pt_regs.md b/docs/linux/helper-function/bpf_task_pt_regs.md index 7c483a83..cce9bfb2 100644 --- a/docs/linux/helper-function/bpf_task_pt_regs.md +++ b/docs/linux/helper-function/bpf_task_pt_regs.md @@ -34,35 +34,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_task_storage_delete.md b/docs/linux/helper-function/bpf_task_storage_delete.md index 78228986..40803be5 100644 --- a/docs/linux/helper-function/bpf_task_storage_delete.md +++ b/docs/linux/helper-function/bpf_task_storage_delete.md @@ -36,14 +36,14 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_task_storage_get.md b/docs/linux/helper-function/bpf_task_storage_get.md index 98ca88fb..d9d0fe34 100644 --- a/docs/linux/helper-function/bpf_task_storage_get.md +++ b/docs/linux/helper-function/bpf_task_storage_get.md @@ -42,14 +42,14 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_tcp_check_syncookie.md b/docs/linux/helper-function/bpf_tcp_check_syncookie.md index 4ae45d68..4211647a 100644 --- a/docs/linux/helper-function/bpf_tcp_check_syncookie.md +++ b/docs/linux/helper-function/bpf_tcp_check_syncookie.md @@ -38,9 +38,9 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_tcp_gen_syncookie.md b/docs/linux/helper-function/bpf_tcp_gen_syncookie.md index bb5dab58..8f6d3e13 100644 --- a/docs/linux/helper-function/bpf_tcp_gen_syncookie.md +++ b/docs/linux/helper-function/bpf_tcp_gen_syncookie.md @@ -48,9 +48,9 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_tcp_send_ack.md b/docs/linux/helper-function/bpf_tcp_send_ack.md index 3ad274ba..223f6a62 100644 --- a/docs/linux/helper-function/bpf_tcp_send_ack.md +++ b/docs/linux/helper-function/bpf_tcp_send_ack.md @@ -34,7 +34,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/helper-function/bpf_tcp_sock.md b/docs/linux/helper-function/bpf_tcp_sock.md index fcd7856a..f7b31356 100644 --- a/docs/linux/helper-function/bpf_tcp_sock.md +++ b/docs/linux/helper-function/bpf_tcp_sock.md @@ -34,11 +34,11 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) ### Example diff --git a/docs/linux/helper-function/bpf_this_cpu_ptr.md b/docs/linux/helper-function/bpf_this_cpu_ptr.md index 18a4bf92..7a546d46 100644 --- a/docs/linux/helper-function/bpf_this_cpu_ptr.md +++ b/docs/linux/helper-function/bpf_this_cpu_ptr.md @@ -36,35 +36,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_trace_printk.md b/docs/linux/helper-function/bpf_trace_printk.md index 8b9361b4..da9c0dad 100644 --- a/docs/linux/helper-function/bpf_trace_printk.md +++ b/docs/linux/helper-function/bpf_trace_printk.md @@ -91,36 +91,36 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LIRC_MODE2](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LIRC_MODE2`](../program-type/BPF_PROG_TYPE_LIRC_MODE2.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_trace_vprintk.md b/docs/linux/helper-function/bpf_trace_vprintk.md index e9b6bb39..15b10b2b 100644 --- a/docs/linux/helper-function/bpf_trace_vprintk.md +++ b/docs/linux/helper-function/bpf_trace_vprintk.md @@ -36,35 +36,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_xdp_adjust_head.md b/docs/linux/helper-function/bpf_xdp_adjust_head.md index 52690d50..5bfb2d39 100644 --- a/docs/linux/helper-function/bpf_xdp_adjust_head.md +++ b/docs/linux/helper-function/bpf_xdp_adjust_head.md @@ -36,7 +36,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_xdp_adjust_meta.md b/docs/linux/helper-function/bpf_xdp_adjust_meta.md index d5f40fcc..c2fc315f 100644 --- a/docs/linux/helper-function/bpf_xdp_adjust_meta.md +++ b/docs/linux/helper-function/bpf_xdp_adjust_meta.md @@ -38,7 +38,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_xdp_adjust_tail.md b/docs/linux/helper-function/bpf_xdp_adjust_tail.md index 62c30255..cbbdca0f 100644 --- a/docs/linux/helper-function/bpf_xdp_adjust_tail.md +++ b/docs/linux/helper-function/bpf_xdp_adjust_tail.md @@ -36,7 +36,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_xdp_get_buff_len.md b/docs/linux/helper-function/bpf_xdp_get_buff_len.md index 469e5f84..770b2114 100644 --- a/docs/linux/helper-function/bpf_xdp_get_buff_len.md +++ b/docs/linux/helper-function/bpf_xdp_get_buff_len.md @@ -34,7 +34,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_xdp_load_bytes.md b/docs/linux/helper-function/bpf_xdp_load_bytes.md index f9a1a91c..a7cc5ce6 100644 --- a/docs/linux/helper-function/bpf_xdp_load_bytes.md +++ b/docs/linux/helper-function/bpf_xdp_load_bytes.md @@ -34,7 +34,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_xdp_output.md b/docs/linux/helper-function/bpf_xdp_output.md index e99a695e..ce24e078 100644 --- a/docs/linux/helper-function/bpf_xdp_output.md +++ b/docs/linux/helper-function/bpf_xdp_output.md @@ -44,7 +44,7 @@ This helper call can be used with the following map types: - * [BPF_MAP_TYPE_PERF_EVENT_ARRAY](../map-type/BPF_MAP_TYPE_PERF_EVENT_ARRAY.md) + * [`BPF_MAP_TYPE_PERF_EVENT_ARRAY`](../map-type/BPF_MAP_TYPE_PERF_EVENT_ARRAY.md) ### Example diff --git a/docs/linux/helper-function/bpf_xdp_store_bytes.md b/docs/linux/helper-function/bpf_xdp_store_bytes.md index 257a8475..a1dce127 100644 --- a/docs/linux/helper-function/bpf_xdp_store_bytes.md +++ b/docs/linux/helper-function/bpf_xdp_store_bytes.md @@ -34,7 +34,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/map-type/BPF_MAP_TYPE_ARRAY.md b/docs/linux/map-type/BPF_MAP_TYPE_ARRAY.md index ea30d938..19a4f9cc 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_ARRAY.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_ARRAY.md @@ -33,10 +33,10 @@ The following helper functions work with this map type: - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) ## Flags diff --git a/docs/linux/map-type/BPF_MAP_TYPE_ARRAY_OF_MAPS.md b/docs/linux/map-type/BPF_MAP_TYPE_ARRAY_OF_MAPS.md index 04f9f59a..8ef097c7 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_ARRAY_OF_MAPS.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_ARRAY_OF_MAPS.md @@ -53,7 +53,7 @@ The following helper functions work with this map type: - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) ## Flags diff --git a/docs/linux/map-type/BPF_MAP_TYPE_BLOOM_FILTER.md b/docs/linux/map-type/BPF_MAP_TYPE_BLOOM_FILTER.md index 3e386735..5dc50f8f 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_BLOOM_FILTER.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_BLOOM_FILTER.md @@ -59,8 +59,8 @@ The bloom filter map supports two operations: - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) ## Flags diff --git a/docs/linux/map-type/BPF_MAP_TYPE_CGROUP_STORAGE.md b/docs/linux/map-type/BPF_MAP_TYPE_CGROUP_STORAGE.md index 236629ba..eb5be4dc 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_CGROUP_STORAGE.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_CGROUP_STORAGE.md @@ -39,7 +39,7 @@ The following helper functions work with this map type: - * [bpf_get_local_storage](../helper-function/bpf_get_local_storage.md) + * [`bpf_get_local_storage`](../helper-function/bpf_get_local_storage.md) ## Flags diff --git a/docs/linux/map-type/BPF_MAP_TYPE_CGRP_STORAGE.md b/docs/linux/map-type/BPF_MAP_TYPE_CGRP_STORAGE.md index 38b2c83b..a6a1c1bb 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_CGRP_STORAGE.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_CGRP_STORAGE.md @@ -34,8 +34,8 @@ The following helper functions work with this map type: - * [bpf_cgrp_storage_get](../helper-function/bpf_cgrp_storage_get.md) - * [bpf_cgrp_storage_delete](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) ## Flags diff --git a/docs/linux/map-type/BPF_MAP_TYPE_CPUMAP.md b/docs/linux/map-type/BPF_MAP_TYPE_CPUMAP.md index 26295cd9..e16a10ad 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_CPUMAP.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_CPUMAP.md @@ -53,7 +53,7 @@ The following syscall commands work with this map type: - * [bpf_redirect_map](../helper-function/bpf_redirect_map.md) + * [`bpf_redirect_map`](../helper-function/bpf_redirect_map.md) ## Flags diff --git a/docs/linux/map-type/BPF_MAP_TYPE_DEVMAP.md b/docs/linux/map-type/BPF_MAP_TYPE_DEVMAP.md index 6dcb0e8b..33844eac 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_DEVMAP.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_DEVMAP.md @@ -51,7 +51,7 @@ The following syscall commands work with this map type: - * [bpf_redirect_map](../helper-function/bpf_redirect_map.md) + * [`bpf_redirect_map`](../helper-function/bpf_redirect_map.md) ## Flags diff --git a/docs/linux/map-type/BPF_MAP_TYPE_DEVMAP_HASH.md b/docs/linux/map-type/BPF_MAP_TYPE_DEVMAP_HASH.md index 7676b7fe..0347a10f 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_DEVMAP_HASH.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_DEVMAP_HASH.md @@ -51,7 +51,7 @@ The following syscall commands work with this map type: - * [bpf_redirect_map](../helper-function/bpf_redirect_map.md) + * [`bpf_redirect_map`](../helper-function/bpf_redirect_map.md) ## Flags diff --git a/docs/linux/map-type/BPF_MAP_TYPE_HASH.md b/docs/linux/map-type/BPF_MAP_TYPE_HASH.md index 432eb8bf..8ffabbc3 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_HASH.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_HASH.md @@ -33,10 +33,10 @@ The following helper functions work with this map type: - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) ## Flags diff --git a/docs/linux/map-type/BPF_MAP_TYPE_INODE_STORAGE.md b/docs/linux/map-type/BPF_MAP_TYPE_INODE_STORAGE.md index ff6e0e6b..51b02d99 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_INODE_STORAGE.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_INODE_STORAGE.md @@ -32,8 +32,8 @@ The following helper functions work with this map type: - * [bpf_inode_storage_get](../helper-function/bpf_inode_storage_get.md) - * [bpf_inode_storage_delete](../helper-function/bpf_inode_storage_delete.md) + * [`bpf_inode_storage_get`](../helper-function/bpf_inode_storage_get.md) + * [`bpf_inode_storage_delete`](../helper-function/bpf_inode_storage_delete.md) ## Flags diff --git a/docs/linux/map-type/BPF_MAP_TYPE_LPM_TRIE.md b/docs/linux/map-type/BPF_MAP_TYPE_LPM_TRIE.md index cbd1b1fc..dd5206cc 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_LPM_TRIE.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_LPM_TRIE.md @@ -73,9 +73,9 @@ The following helper functions work with this map type: - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) ## Flags diff --git a/docs/linux/map-type/BPF_MAP_TYPE_PERCPU_ARRAY.md b/docs/linux/map-type/BPF_MAP_TYPE_PERCPU_ARRAY.md index 3f0ac5ff..a9a67f7c 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_PERCPU_ARRAY.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_PERCPU_ARRAY.md @@ -39,11 +39,11 @@ The following helper functions work with this map type: - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) ## Flags diff --git a/docs/linux/map-type/BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE.md b/docs/linux/map-type/BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE.md index 6438e5c7..15ffde4b 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE.md @@ -39,7 +39,7 @@ The following helper functions work with this map type: - * [bpf_get_local_storage](../helper-function/bpf_get_local_storage.md) + * [`bpf_get_local_storage`](../helper-function/bpf_get_local_storage.md) ## Flags diff --git a/docs/linux/map-type/BPF_MAP_TYPE_PERCPU_HASH.md b/docs/linux/map-type/BPF_MAP_TYPE_PERCPU_HASH.md index 5448980e..33a434f2 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_PERCPU_HASH.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_PERCPU_HASH.md @@ -47,11 +47,11 @@ The following helper functions work with this map type: - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) ## Flags diff --git a/docs/linux/map-type/BPF_MAP_TYPE_PERF_EVENT_ARRAY.md b/docs/linux/map-type/BPF_MAP_TYPE_PERF_EVENT_ARRAY.md index d0e80286..ceeada04 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_PERF_EVENT_ARRAY.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_PERF_EVENT_ARRAY.md @@ -324,11 +324,11 @@ The following syscall commands work with this map type: - * [bpf_perf_event_read](../helper-function/bpf_perf_event_read.md) - * [bpf_perf_event_output](../helper-function/bpf_perf_event_output.md) - * [bpf_skb_output](../helper-function/bpf_skb_output.md) - * [bpf_perf_event_read_value](../helper-function/bpf_perf_event_read_value.md) - * [bpf_xdp_output](../helper-function/bpf_xdp_output.md) + * [`bpf_perf_event_read`](../helper-function/bpf_perf_event_read.md) + * [`bpf_perf_event_output`](../helper-function/bpf_perf_event_output.md) + * [`bpf_skb_output`](../helper-function/bpf_skb_output.md) + * [`bpf_perf_event_read_value`](../helper-function/bpf_perf_event_read_value.md) + * [`bpf_xdp_output`](../helper-function/bpf_xdp_output.md) ## Flags diff --git a/docs/linux/map-type/BPF_MAP_TYPE_PROG_ARRAY.md b/docs/linux/map-type/BPF_MAP_TYPE_PROG_ARRAY.md index a0744190..c87c5314 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_PROG_ARRAY.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_PROG_ARRAY.md @@ -37,7 +37,7 @@ The following syscall commands work with this map type: - * [bpf_tail_call](../helper-function/bpf_tail_call.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) ## Flags diff --git a/docs/linux/map-type/BPF_MAP_TYPE_QUEUE.md b/docs/linux/map-type/BPF_MAP_TYPE_QUEUE.md index f0049fd7..ce59490c 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_QUEUE.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_QUEUE.md @@ -37,9 +37,9 @@ The following syscall commands work with this map type: - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) ## Flags diff --git a/docs/linux/map-type/BPF_MAP_TYPE_REUSEPORT_SOCKARRAY.md b/docs/linux/map-type/BPF_MAP_TYPE_REUSEPORT_SOCKARRAY.md index bb078b92..ec77a5ff 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_REUSEPORT_SOCKARRAY.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_REUSEPORT_SOCKARRAY.md @@ -32,7 +32,7 @@ The following syscall commands work with this map type: - * [bpf_sk_select_reuseport](../helper-function/bpf_sk_select_reuseport.md) + * [`bpf_sk_select_reuseport`](../helper-function/bpf_sk_select_reuseport.md) ## Flags diff --git a/docs/linux/map-type/BPF_MAP_TYPE_SK_STORAGE.md b/docs/linux/map-type/BPF_MAP_TYPE_SK_STORAGE.md index 81be5427..b4500e53 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_SK_STORAGE.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_SK_STORAGE.md @@ -32,8 +32,8 @@ The following helper functions work with this map type: - * [bpf_sk_storage_get](../helper-function/bpf_sk_storage_get.md) - * [bpf_sk_storage_delete](../helper-function/bpf_sk_storage_delete.md) + * [`bpf_sk_storage_get`](../helper-function/bpf_sk_storage_get.md) + * [`bpf_sk_storage_delete`](../helper-function/bpf_sk_storage_delete.md) ## Flags diff --git a/docs/linux/map-type/BPF_MAP_TYPE_SOCKHASH.md b/docs/linux/map-type/BPF_MAP_TYPE_SOCKHASH.md index 0b62ea44..51f9aecb 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_SOCKHASH.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_SOCKHASH.md @@ -37,13 +37,13 @@ The following syscall commands work with this map type: - * [bpf_sk_redirect_hash](../helper-function/bpf_sk_redirect_hash.md) - * [bpf_sock_hash_update](../helper-function/bpf_sock_hash_update.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_msg_redirect_hash](../helper-function/bpf_msg_redirect_hash.md) - * [bpf_sk_select_reuseport](../helper-function/bpf_sk_select_reuseport.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) + * [`bpf_sk_redirect_hash`](../helper-function/bpf_sk_redirect_hash.md) + * [`bpf_sock_hash_update`](../helper-function/bpf_sock_hash_update.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_msg_redirect_hash`](../helper-function/bpf_msg_redirect_hash.md) + * [`bpf_sk_select_reuseport`](../helper-function/bpf_sk_select_reuseport.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) ## Flags diff --git a/docs/linux/map-type/BPF_MAP_TYPE_SOCKMAP.md b/docs/linux/map-type/BPF_MAP_TYPE_SOCKMAP.md index fe926af5..a6af1fa7 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_SOCKMAP.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_SOCKMAP.md @@ -52,13 +52,13 @@ The following syscall commands work with this map type: - * [bpf_sk_redirect_map](../helper-function/bpf_sk_redirect_map.md) - * [bpf_sock_map_update](../helper-function/bpf_sock_map_update.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_msg_redirect_map](../helper-function/bpf_msg_redirect_map.md) - * [bpf_sk_select_reuseport](../helper-function/bpf_sk_select_reuseport.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) + * [`bpf_sk_redirect_map`](../helper-function/bpf_sk_redirect_map.md) + * [`bpf_sock_map_update`](../helper-function/bpf_sock_map_update.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_msg_redirect_map`](../helper-function/bpf_msg_redirect_map.md) + * [`bpf_sk_select_reuseport`](../helper-function/bpf_sk_select_reuseport.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) ## Flags diff --git a/docs/linux/map-type/BPF_MAP_TYPE_STACK.md b/docs/linux/map-type/BPF_MAP_TYPE_STACK.md index 6d51456f..4c16b226 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_STACK.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_STACK.md @@ -37,9 +37,9 @@ The following syscall commands work with this map type: - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) ## Flags diff --git a/docs/linux/map-type/BPF_MAP_TYPE_STACK_TRACE.md b/docs/linux/map-type/BPF_MAP_TYPE_STACK_TRACE.md index e47d2456..6cd3b77d 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_STACK_TRACE.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_STACK_TRACE.md @@ -14,5 +14,5 @@ The following helper functions work with this map type: - * [bpf_get_stackid](../helper-function/bpf_get_stackid.md) + * [`bpf_get_stackid`](../helper-function/bpf_get_stackid.md) diff --git a/docs/linux/map-type/BPF_MAP_TYPE_TASK_STORAGE.md b/docs/linux/map-type/BPF_MAP_TYPE_TASK_STORAGE.md index 2247cde2..5045bad6 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_TASK_STORAGE.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_TASK_STORAGE.md @@ -32,8 +32,8 @@ The following helper functions work with this map type: - * [bpf_task_storage_get](../helper-function/bpf_task_storage_get.md) - * [bpf_task_storage_delete](../helper-function/bpf_task_storage_delete.md) + * [`bpf_task_storage_get`](../helper-function/bpf_task_storage_get.md) + * [`bpf_task_storage_delete`](../helper-function/bpf_task_storage_delete.md) ## Flags diff --git a/docs/linux/map-type/BPF_MAP_TYPE_XSKMAP.md b/docs/linux/map-type/BPF_MAP_TYPE_XSKMAP.md index 4fd8603e..6030e32a 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_XSKMAP.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_XSKMAP.md @@ -58,8 +58,8 @@ The following syscall commands work with this map type: - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_redirect_map](../helper-function/bpf_redirect_map.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_redirect_map`](../helper-function/bpf_redirect_map.md) ## Flags diff --git a/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md b/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md index e07d0e04..98cc1ef9 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md @@ -113,53 +113,53 @@ char _license[] SEC("license") = "GPL"; ??? abstract "Supported helper functions" - * [bpf_get_current_uid_gid](../helper-function/bpf_get_current_uid_gid.md) - * [bpf_get_local_storage](../helper-function/bpf_get_local_storage.md) - * [bpf_get_current_cgroup_id](../helper-function/bpf_get_current_cgroup_id.md) - * [bpf_perf_event_output](../helper-function/bpf_perf_event_output.md) - * [bpf_get_retval](../helper-function/bpf_get_retval.md) - * [bpf_set_retval](../helper-function/bpf_set_retval.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_loop](../helper-function/bpf_loop.md) - * [bpf_strncmp](../helper-function/bpf_strncmp.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_timer_init](../helper-function/bpf_timer_init.md) - * [bpf_timer_set_callback](../helper-function/bpf_timer_set_callback.md) - * [bpf_timer_start](../helper-function/bpf_timer_start.md) - * [bpf_timer_cancel](../helper-function/bpf_timer_cancel.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) + * [`bpf_get_current_uid_gid`](../helper-function/bpf_get_current_uid_gid.md) + * [`bpf_get_local_storage`](../helper-function/bpf_get_local_storage.md) + * [`bpf_get_current_cgroup_id`](../helper-function/bpf_get_current_cgroup_id.md) + * [`bpf_perf_event_output`](../helper-function/bpf_perf_event_output.md) + * [`bpf_get_retval`](../helper-function/bpf_get_retval.md) + * [`bpf_set_retval`](../helper-function/bpf_set_retval.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_loop`](../helper-function/bpf_loop.md) + * [`bpf_strncmp`](../helper-function/bpf_strncmp.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_timer_init`](../helper-function/bpf_timer_init.md) + * [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) + * [`bpf_timer_start`](../helper-function/bpf_timer_start.md) + * [`bpf_timer_cancel`](../helper-function/bpf_timer_cancel.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SKB.md b/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SKB.md index b374044c..1fe6eab6 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SKB.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SKB.md @@ -250,108 +250,108 @@ char _license[] SEC("license") = "GPL"; ??? abstract "Supported helper functions" - * [bpf_get_local_storage](../helper-function/bpf_get_local_storage.md) - * [bpf_sk_fullsock](../helper-function/bpf_sk_fullsock.md) - * [bpf_sk_storage_get](../helper-function/bpf_sk_storage_get.md) - * [bpf_sk_storage_delete](../helper-function/bpf_sk_storage_delete.md) - * [bpf_perf_event_output](../helper-function/bpf_perf_event_output.md) - * [bpf_skb_cgroup_id](../helper-function/bpf_skb_cgroup_id.md) - * [bpf_skb_ancestor_cgroup_id](../helper-function/bpf_skb_ancestor_cgroup_id.md) - * [bpf_sk_cgroup_id](../helper-function/bpf_sk_cgroup_id.md) - * [bpf_sk_ancestor_cgroup_id](../helper-function/bpf_sk_ancestor_cgroup_id.md) - * [bpf_sk_lookup_tcp](../helper-function/bpf_sk_lookup_tcp.md) - * [bpf_sk_lookup_udp](../helper-function/bpf_sk_lookup_udp.md) - * [bpf_sk_release](../helper-function/bpf_sk_release.md) - * [bpf_skc_lookup_tcp](../helper-function/bpf_skc_lookup_tcp.md) - * [bpf_tcp_sock](../helper-function/bpf_tcp_sock.md) - * [bpf_get_listener_sock](../helper-function/bpf_get_listener_sock.md) - * [bpf_skb_ecn_set_ce](../helper-function/bpf_skb_ecn_set_ce.md) - * [bpf_skb_load_bytes](../helper-function/bpf_skb_load_bytes.md) - * [bpf_skb_load_bytes_relative](../helper-function/bpf_skb_load_bytes_relative.md) - * [bpf_get_socket_cookie](../helper-function/bpf_get_socket_cookie.md) - * [bpf_get_socket_uid](../helper-function/bpf_get_socket_uid.md) - * [bpf_perf_event_output](../helper-function/bpf_perf_event_output.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_loop](../helper-function/bpf_loop.md) - * [bpf_strncmp](../helper-function/bpf_strncmp.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_timer_init](../helper-function/bpf_timer_init.md) - * [bpf_timer_set_callback](../helper-function/bpf_timer_set_callback.md) - * [bpf_timer_start](../helper-function/bpf_timer_start.md) - * [bpf_timer_cancel](../helper-function/bpf_timer_cancel.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) + * [`bpf_get_local_storage`](../helper-function/bpf_get_local_storage.md) + * [`bpf_sk_fullsock`](../helper-function/bpf_sk_fullsock.md) + * [`bpf_sk_storage_get`](../helper-function/bpf_sk_storage_get.md) + * [`bpf_sk_storage_delete`](../helper-function/bpf_sk_storage_delete.md) + * [`bpf_perf_event_output`](../helper-function/bpf_perf_event_output.md) + * [`bpf_skb_cgroup_id`](../helper-function/bpf_skb_cgroup_id.md) + * [`bpf_skb_ancestor_cgroup_id`](../helper-function/bpf_skb_ancestor_cgroup_id.md) + * [`bpf_sk_cgroup_id`](../helper-function/bpf_sk_cgroup_id.md) + * [`bpf_sk_ancestor_cgroup_id`](../helper-function/bpf_sk_ancestor_cgroup_id.md) + * [`bpf_sk_lookup_tcp`](../helper-function/bpf_sk_lookup_tcp.md) + * [`bpf_sk_lookup_udp`](../helper-function/bpf_sk_lookup_udp.md) + * [`bpf_sk_release`](../helper-function/bpf_sk_release.md) + * [`bpf_skc_lookup_tcp`](../helper-function/bpf_skc_lookup_tcp.md) + * [`bpf_tcp_sock`](../helper-function/bpf_tcp_sock.md) + * [`bpf_get_listener_sock`](../helper-function/bpf_get_listener_sock.md) + * [`bpf_skb_ecn_set_ce`](../helper-function/bpf_skb_ecn_set_ce.md) + * [`bpf_skb_load_bytes`](../helper-function/bpf_skb_load_bytes.md) + * [`bpf_skb_load_bytes_relative`](../helper-function/bpf_skb_load_bytes_relative.md) + * [`bpf_get_socket_cookie`](../helper-function/bpf_get_socket_cookie.md) + * [`bpf_get_socket_uid`](../helper-function/bpf_get_socket_uid.md) + * [`bpf_perf_event_output`](../helper-function/bpf_perf_event_output.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_loop`](../helper-function/bpf_loop.md) + * [`bpf_strncmp`](../helper-function/bpf_strncmp.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_timer_init`](../helper-function/bpf_timer_init.md) + * [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) + * [`bpf_timer_start`](../helper-function/bpf_timer_start.md) + * [`bpf_timer_cancel`](../helper-function/bpf_timer_cancel.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) ## KFuncs ??? abstract "Supported kfuncs" - - [bpf_arena_alloc_pages](../kfuncs/bpf_arena_alloc_pages.md) - - [bpf_arena_free_pages](../kfuncs/bpf_arena_free_pages.md) - - [bpf_cast_to_kern_ctx](../kfuncs/bpf_cast_to_kern_ctx.md) - - [bpf_dynptr_adjust](../kfuncs/bpf_dynptr_adjust.md) - - [bpf_dynptr_clone](../kfuncs/bpf_dynptr_clone.md) - - [bpf_dynptr_from_skb](../kfuncs/bpf_dynptr_from_skb.md) - - [bpf_dynptr_is_null](../kfuncs/bpf_dynptr_is_null.md) - - [bpf_dynptr_is_rdonly](../kfuncs/bpf_dynptr_is_rdonly.md) - - [bpf_dynptr_size](../kfuncs/bpf_dynptr_size.md) - - [bpf_dynptr_slice](../kfuncs/bpf_dynptr_slice.md) - - [bpf_dynptr_slice_rdwr](../kfuncs/bpf_dynptr_slice_rdwr.md) - - [bpf_iter_css_destroy](../kfuncs/bpf_iter_css_destroy.md) - - [bpf_iter_css_new](../kfuncs/bpf_iter_css_new.md) - - [bpf_iter_css_next](../kfuncs/bpf_iter_css_next.md) - - [bpf_iter_css_task_destroy](../kfuncs/bpf_iter_css_task_destroy.md) - - [bpf_iter_css_task_new](../kfuncs/bpf_iter_css_task_new.md) - - [bpf_iter_css_task_next](../kfuncs/bpf_iter_css_task_next.md) - - [bpf_iter_num_destroy](../kfuncs/bpf_iter_num_destroy.md) - - [bpf_iter_num_new](../kfuncs/bpf_iter_num_new.md) - - [bpf_iter_num_next](../kfuncs/bpf_iter_num_next.md) - - [bpf_iter_task_destroy](../kfuncs/bpf_iter_task_destroy.md) - - [bpf_iter_task_new](../kfuncs/bpf_iter_task_new.md) - - [bpf_iter_task_next](../kfuncs/bpf_iter_task_next.md) - - [bpf_iter_task_vma_destroy](../kfuncs/bpf_iter_task_vma_destroy.md) - - [bpf_iter_task_vma_new](../kfuncs/bpf_iter_task_vma_new.md) - - [bpf_iter_task_vma_next](../kfuncs/bpf_iter_task_vma_next.md) - - [bpf_map_sum_elem_count](../kfuncs/bpf_map_sum_elem_count.md) - - [bpf_preempt_disable](../kfuncs/bpf_preempt_disable.md) - - [bpf_preempt_enable](../kfuncs/bpf_preempt_enable.md) - - [bpf_rcu_read_lock](../kfuncs/bpf_rcu_read_lock.md) - - [bpf_rcu_read_unlock](../kfuncs/bpf_rcu_read_unlock.md) - - [bpf_rdonly_cast](../kfuncs/bpf_rdonly_cast.md) - - [bpf_sock_addr_set_sun_path](../kfuncs/bpf_sock_addr_set_sun_path.md) - - [bpf_wq_init](../kfuncs/bpf_wq_init.md) - - [bpf_wq_set_callback_impl](../kfuncs/bpf_wq_set_callback_impl.md) - - [bpf_wq_start](../kfuncs/bpf_wq_start.md) + - [`bpf_arena_alloc_pages`](../kfuncs/bpf_arena_alloc_pages.md) + - [`bpf_arena_free_pages`](../kfuncs/bpf_arena_free_pages.md) + - [`bpf_cast_to_kern_ctx`](../kfuncs/bpf_cast_to_kern_ctx.md) + - [`bpf_dynptr_adjust`](../kfuncs/bpf_dynptr_adjust.md) + - [`bpf_dynptr_clone`](../kfuncs/bpf_dynptr_clone.md) + - [`bpf_dynptr_from_skb`](../kfuncs/bpf_dynptr_from_skb.md) + - [`bpf_dynptr_is_null`](../kfuncs/bpf_dynptr_is_null.md) + - [`bpf_dynptr_is_rdonly`](../kfuncs/bpf_dynptr_is_rdonly.md) + - [`bpf_dynptr_size`](../kfuncs/bpf_dynptr_size.md) + - [`bpf_dynptr_slice`](../kfuncs/bpf_dynptr_slice.md) + - [`bpf_dynptr_slice_rdwr`](../kfuncs/bpf_dynptr_slice_rdwr.md) + - [`bpf_iter_css_destroy`](../kfuncs/bpf_iter_css_destroy.md) + - [`bpf_iter_css_new`](../kfuncs/bpf_iter_css_new.md) + - [`bpf_iter_css_next`](../kfuncs/bpf_iter_css_next.md) + - [`bpf_iter_css_task_destroy`](../kfuncs/bpf_iter_css_task_destroy.md) + - [`bpf_iter_css_task_new`](../kfuncs/bpf_iter_css_task_new.md) + - [`bpf_iter_css_task_next`](../kfuncs/bpf_iter_css_task_next.md) + - [`bpf_iter_num_destroy`](../kfuncs/bpf_iter_num_destroy.md) + - [`bpf_iter_num_new`](../kfuncs/bpf_iter_num_new.md) + - [`bpf_iter_num_next`](../kfuncs/bpf_iter_num_next.md) + - [`bpf_iter_task_destroy`](../kfuncs/bpf_iter_task_destroy.md) + - [`bpf_iter_task_new`](../kfuncs/bpf_iter_task_new.md) + - [`bpf_iter_task_next`](../kfuncs/bpf_iter_task_next.md) + - [`bpf_iter_task_vma_destroy`](../kfuncs/bpf_iter_task_vma_destroy.md) + - [`bpf_iter_task_vma_new`](../kfuncs/bpf_iter_task_vma_new.md) + - [`bpf_iter_task_vma_next`](../kfuncs/bpf_iter_task_vma_next.md) + - [`bpf_map_sum_elem_count`](../kfuncs/bpf_map_sum_elem_count.md) + - [`bpf_preempt_disable`](../kfuncs/bpf_preempt_disable.md) + - [`bpf_preempt_enable`](../kfuncs/bpf_preempt_enable.md) + - [`bpf_rcu_read_lock`](../kfuncs/bpf_rcu_read_lock.md) + - [`bpf_rcu_read_unlock`](../kfuncs/bpf_rcu_read_unlock.md) + - [`bpf_rdonly_cast`](../kfuncs/bpf_rdonly_cast.md) + - [`bpf_sock_addr_set_sun_path`](../kfuncs/bpf_sock_addr_set_sun_path.md) + - [`bpf_wq_init`](../kfuncs/bpf_wq_init.md) + - [`bpf_wq_set_callback_impl`](../kfuncs/bpf_wq_set_callback_impl.md) + - [`bpf_wq_start`](../kfuncs/bpf_wq_start.md) diff --git a/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SOCK.md b/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SOCK.md index 43289150..cc6461d3 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SOCK.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SOCK.md @@ -232,59 +232,59 @@ int sock_release(struct bpf_sock *ctx) ??? abstract "Supported helper functions" - * [bpf_get_current_uid_gid](../helper-function/bpf_get_current_uid_gid.md) - * [bpf_get_local_storage](../helper-function/bpf_get_local_storage.md) - * [bpf_get_socket_cookie](../helper-function/bpf_get_socket_cookie.md) - * [bpf_get_netns_cookie](../helper-function/bpf_get_netns_cookie.md) - * [bpf_perf_event_output](../helper-function/bpf_perf_event_output.md) - * [bpf_get_current_pid_tgid](../helper-function/bpf_get_current_pid_tgid.md) - * [bpf_get_current_comm](../helper-function/bpf_get_current_comm.md) - * [bpf_get_current_cgroup_id](../helper-function/bpf_get_current_cgroup_id.md) - * [bpf_get_current_ancestor_cgroup_id](../helper-function/bpf_get_current_ancestor_cgroup_id.md) - * [bpf_get_cgroup_classid](../helper-function/bpf_get_cgroup_classid.md) - * [bpf_sk_storage_get](../helper-function/bpf_sk_storage_get.md) - * [bpf_ktime_get_coarse_ns](../helper-function/bpf_ktime_get_coarse_ns.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_loop](../helper-function/bpf_loop.md) - * [bpf_strncmp](../helper-function/bpf_strncmp.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_timer_init](../helper-function/bpf_timer_init.md) - * [bpf_timer_set_callback](../helper-function/bpf_timer_set_callback.md) - * [bpf_timer_start](../helper-function/bpf_timer_start.md) - * [bpf_timer_cancel](../helper-function/bpf_timer_cancel.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) + * [`bpf_get_current_uid_gid`](../helper-function/bpf_get_current_uid_gid.md) + * [`bpf_get_local_storage`](../helper-function/bpf_get_local_storage.md) + * [`bpf_get_socket_cookie`](../helper-function/bpf_get_socket_cookie.md) + * [`bpf_get_netns_cookie`](../helper-function/bpf_get_netns_cookie.md) + * [`bpf_perf_event_output`](../helper-function/bpf_perf_event_output.md) + * [`bpf_get_current_pid_tgid`](../helper-function/bpf_get_current_pid_tgid.md) + * [`bpf_get_current_comm`](../helper-function/bpf_get_current_comm.md) + * [`bpf_get_current_cgroup_id`](../helper-function/bpf_get_current_cgroup_id.md) + * [`bpf_get_current_ancestor_cgroup_id`](../helper-function/bpf_get_current_ancestor_cgroup_id.md) + * [`bpf_get_cgroup_classid`](../helper-function/bpf_get_cgroup_classid.md) + * [`bpf_sk_storage_get`](../helper-function/bpf_sk_storage_get.md) + * [`bpf_ktime_get_coarse_ns`](../helper-function/bpf_ktime_get_coarse_ns.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_loop`](../helper-function/bpf_loop.md) + * [`bpf_strncmp`](../helper-function/bpf_strncmp.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_timer_init`](../helper-function/bpf_timer_init.md) + * [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) + * [`bpf_timer_start`](../helper-function/bpf_timer_start.md) + * [`bpf_timer_cancel`](../helper-function/bpf_timer_cancel.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md b/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md index 3d567282..30532216 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md @@ -176,59 +176,59 @@ int setsockopt(struct bpf_sockopt *ctx) ??? abstract "Supported helper functions" - * [bpf_get_netns_cookie](../helper-function/bpf_get_netns_cookie.md) - * [bpf_sk_storage_get](../helper-function/bpf_sk_storage_get.md) - * [bpf_sk_storage_delete](../helper-function/bpf_sk_storage_delete.md) - * [bpf_setsockopt](../helper-function/bpf_setsockopt.md) [:octicons-tag-24: v5.15](https://github.com/torvalds/linux/commit/2c531639deb5e3ddfd6e8123b82052b2d9fbc6e5) - * [bpf_getsockopt](../helper-function/bpf_getsockopt.md) [:octicons-tag-24: v5.15](https://github.com/torvalds/linux/commit/2c531639deb5e3ddfd6e8123b82052b2d9fbc6e5) - * [bpf_tcp_sock](../helper-function/bpf_tcp_sock.md) - * [bpf_get_current_uid_gid](../helper-function/bpf_get_current_uid_gid.md) - * [bpf_get_local_storage](../helper-function/bpf_get_local_storage.md) - * [bpf_get_current_cgroup_id](../helper-function/bpf_get_current_cgroup_id.md) - * [bpf_perf_event_output](../helper-function/bpf_perf_event_output.md) - * [bpf_get_retval](../helper-function/bpf_get_retval.md) - * [bpf_set_retval](../helper-function/bpf_set_retval.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_loop](../helper-function/bpf_loop.md) - * [bpf_strncmp](../helper-function/bpf_strncmp.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_timer_init](../helper-function/bpf_timer_init.md) - * [bpf_timer_set_callback](../helper-function/bpf_timer_set_callback.md) - * [bpf_timer_start](../helper-function/bpf_timer_start.md) - * [bpf_timer_cancel](../helper-function/bpf_timer_cancel.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) + * [`bpf_get_netns_cookie`](../helper-function/bpf_get_netns_cookie.md) + * [`bpf_sk_storage_get`](../helper-function/bpf_sk_storage_get.md) + * [`bpf_sk_storage_delete`](../helper-function/bpf_sk_storage_delete.md) + * [`bpf_setsockopt`](../helper-function/bpf_setsockopt.md) [:octicons-tag-24: v5.15](https://github.com/torvalds/linux/commit/2c531639deb5e3ddfd6e8123b82052b2d9fbc6e5) + * [`bpf_getsockopt`](../helper-function/bpf_getsockopt.md) [:octicons-tag-24: v5.15](https://github.com/torvalds/linux/commit/2c531639deb5e3ddfd6e8123b82052b2d9fbc6e5) + * [`bpf_tcp_sock`](../helper-function/bpf_tcp_sock.md) + * [`bpf_get_current_uid_gid`](../helper-function/bpf_get_current_uid_gid.md) + * [`bpf_get_local_storage`](../helper-function/bpf_get_local_storage.md) + * [`bpf_get_current_cgroup_id`](../helper-function/bpf_get_current_cgroup_id.md) + * [`bpf_perf_event_output`](../helper-function/bpf_perf_event_output.md) + * [`bpf_get_retval`](../helper-function/bpf_get_retval.md) + * [`bpf_set_retval`](../helper-function/bpf_set_retval.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_loop`](../helper-function/bpf_loop.md) + * [`bpf_strncmp`](../helper-function/bpf_strncmp.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_timer_init`](../helper-function/bpf_timer_init.md) + * [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) + * [`bpf_timer_start`](../helper-function/bpf_timer_start.md) + * [`bpf_timer_cancel`](../helper-function/bpf_timer_cancel.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md b/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md index 3fcb20b9..3bbd0ef6 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md @@ -336,105 +336,105 @@ cGroup socket buffer programs are attached to cgroups via the [`BPF_PROG_ATTACH` ??? abstract "Supported helper functions" - * [bpf_get_current_uid_gid](../helper-function/bpf_get_current_uid_gid.md) - * [bpf_bind](../helper-function/bpf_bind.md) - * [bpf_get_socket_cookie](../helper-function/bpf_get_socket_cookie.md) - * [bpf_get_netns_cookie](../helper-function/bpf_get_netns_cookie.md) - * [bpf_get_local_storage](../helper-function/bpf_get_local_storage.md) - * [bpf_perf_event_output](../helper-function/bpf_perf_event_output.md) - * [bpf_get_current_pid_tgid](../helper-function/bpf_get_current_pid_tgid.md) - * [bpf_get_current_comm](../helper-function/bpf_get_current_comm.md) - * [bpf_get_current_cgroup_id](../helper-function/bpf_get_current_cgroup_id.md) - * [bpf_get_current_ancestor_cgroup_id](../helper-function/bpf_get_current_ancestor_cgroup_id.md) - * [bpf_get_cgroup_classid](../helper-function/bpf_get_cgroup_classid.md) - * [bpf_sk_lookup_tcp](../helper-function/bpf_sk_lookup_tcp.md) - * [bpf_sk_lookup_udp](../helper-function/bpf_sk_lookup_udp.md) - * [bpf_sk_release](../helper-function/bpf_sk_release.md) - * [bpf_skc_lookup_tcp](../helper-function/bpf_skc_lookup_tcp.md) - * [bpf_sk_storage_get](../helper-function/bpf_sk_storage_get.md) - * [bpf_sk_storage_delete](../helper-function/bpf_sk_storage_delete.md) - * [bpf_setsockopt](../helper-function/bpf_setsockopt.md) [:octicons-tag-24: v5.8](https://github.com/torvalds/linux/commit/beecf11bc2188067824591612151c4dc6ec383c7) - * [bpf_getsockopt](../helper-function/bpf_getsockopt.md) [:octicons-tag-24: v5.8](https://github.com/torvalds/linux/commit/beecf11bc2188067824591612151c4dc6ec383c7) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_loop](../helper-function/bpf_loop.md) - * [bpf_strncmp](../helper-function/bpf_strncmp.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_timer_init](../helper-function/bpf_timer_init.md) - * [bpf_timer_set_callback](../helper-function/bpf_timer_set_callback.md) - * [bpf_timer_start](../helper-function/bpf_timer_start.md) - * [bpf_timer_cancel](../helper-function/bpf_timer_cancel.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) + * [`bpf_get_current_uid_gid`](../helper-function/bpf_get_current_uid_gid.md) + * [`bpf_bind`](../helper-function/bpf_bind.md) + * [`bpf_get_socket_cookie`](../helper-function/bpf_get_socket_cookie.md) + * [`bpf_get_netns_cookie`](../helper-function/bpf_get_netns_cookie.md) + * [`bpf_get_local_storage`](../helper-function/bpf_get_local_storage.md) + * [`bpf_perf_event_output`](../helper-function/bpf_perf_event_output.md) + * [`bpf_get_current_pid_tgid`](../helper-function/bpf_get_current_pid_tgid.md) + * [`bpf_get_current_comm`](../helper-function/bpf_get_current_comm.md) + * [`bpf_get_current_cgroup_id`](../helper-function/bpf_get_current_cgroup_id.md) + * [`bpf_get_current_ancestor_cgroup_id`](../helper-function/bpf_get_current_ancestor_cgroup_id.md) + * [`bpf_get_cgroup_classid`](../helper-function/bpf_get_cgroup_classid.md) + * [`bpf_sk_lookup_tcp`](../helper-function/bpf_sk_lookup_tcp.md) + * [`bpf_sk_lookup_udp`](../helper-function/bpf_sk_lookup_udp.md) + * [`bpf_sk_release`](../helper-function/bpf_sk_release.md) + * [`bpf_skc_lookup_tcp`](../helper-function/bpf_skc_lookup_tcp.md) + * [`bpf_sk_storage_get`](../helper-function/bpf_sk_storage_get.md) + * [`bpf_sk_storage_delete`](../helper-function/bpf_sk_storage_delete.md) + * [`bpf_setsockopt`](../helper-function/bpf_setsockopt.md) [:octicons-tag-24: v5.8](https://github.com/torvalds/linux/commit/beecf11bc2188067824591612151c4dc6ec383c7) + * [`bpf_getsockopt`](../helper-function/bpf_getsockopt.md) [:octicons-tag-24: v5.8](https://github.com/torvalds/linux/commit/beecf11bc2188067824591612151c4dc6ec383c7) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_loop`](../helper-function/bpf_loop.md) + * [`bpf_strncmp`](../helper-function/bpf_strncmp.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_timer_init`](../helper-function/bpf_timer_init.md) + * [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) + * [`bpf_timer_start`](../helper-function/bpf_timer_start.md) + * [`bpf_timer_cancel`](../helper-function/bpf_timer_cancel.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) ## KFuncs ??? abstract "Supported kfuncs" - - [bpf_arena_alloc_pages](../kfuncs/bpf_arena_alloc_pages.md) - - [bpf_arena_free_pages](../kfuncs/bpf_arena_free_pages.md) - - [bpf_cast_to_kern_ctx](../kfuncs/bpf_cast_to_kern_ctx.md) - - [bpf_dynptr_adjust](../kfuncs/bpf_dynptr_adjust.md) - - [bpf_dynptr_clone](../kfuncs/bpf_dynptr_clone.md) - - [bpf_dynptr_is_null](../kfuncs/bpf_dynptr_is_null.md) - - [bpf_dynptr_is_rdonly](../kfuncs/bpf_dynptr_is_rdonly.md) - - [bpf_dynptr_size](../kfuncs/bpf_dynptr_size.md) - - [bpf_dynptr_slice](../kfuncs/bpf_dynptr_slice.md) - - [bpf_dynptr_slice_rdwr](../kfuncs/bpf_dynptr_slice_rdwr.md) - - [bpf_iter_css_destroy](../kfuncs/bpf_iter_css_destroy.md) - - [bpf_iter_css_new](../kfuncs/bpf_iter_css_new.md) - - [bpf_iter_css_next](../kfuncs/bpf_iter_css_next.md) - - [bpf_iter_css_task_destroy](../kfuncs/bpf_iter_css_task_destroy.md) - - [bpf_iter_css_task_new](../kfuncs/bpf_iter_css_task_new.md) - - [bpf_iter_css_task_next](../kfuncs/bpf_iter_css_task_next.md) - - [bpf_iter_num_destroy](../kfuncs/bpf_iter_num_destroy.md) - - [bpf_iter_num_new](../kfuncs/bpf_iter_num_new.md) - - [bpf_iter_num_next](../kfuncs/bpf_iter_num_next.md) - - [bpf_iter_task_destroy](../kfuncs/bpf_iter_task_destroy.md) - - [bpf_iter_task_new](../kfuncs/bpf_iter_task_new.md) - - [bpf_iter_task_next](../kfuncs/bpf_iter_task_next.md) - - [bpf_iter_task_vma_destroy](../kfuncs/bpf_iter_task_vma_destroy.md) - - [bpf_iter_task_vma_new](../kfuncs/bpf_iter_task_vma_new.md) - - [bpf_iter_task_vma_next](../kfuncs/bpf_iter_task_vma_next.md) - - [bpf_map_sum_elem_count](../kfuncs/bpf_map_sum_elem_count.md) - - [bpf_preempt_disable](../kfuncs/bpf_preempt_disable.md) - - [bpf_preempt_enable](../kfuncs/bpf_preempt_enable.md) - - [bpf_rcu_read_lock](../kfuncs/bpf_rcu_read_lock.md) - - [bpf_rcu_read_unlock](../kfuncs/bpf_rcu_read_unlock.md) - - [bpf_rdonly_cast](../kfuncs/bpf_rdonly_cast.md) - - [bpf_sock_addr_set_sun_path](../kfuncs/bpf_sock_addr_set_sun_path.md) - - [bpf_wq_init](../kfuncs/bpf_wq_init.md) - - [bpf_wq_set_callback_impl](../kfuncs/bpf_wq_set_callback_impl.md) - - [bpf_wq_start](../kfuncs/bpf_wq_start.md) + - [`bpf_arena_alloc_pages`](../kfuncs/bpf_arena_alloc_pages.md) + - [`bpf_arena_free_pages`](../kfuncs/bpf_arena_free_pages.md) + - [`bpf_cast_to_kern_ctx`](../kfuncs/bpf_cast_to_kern_ctx.md) + - [`bpf_dynptr_adjust`](../kfuncs/bpf_dynptr_adjust.md) + - [`bpf_dynptr_clone`](../kfuncs/bpf_dynptr_clone.md) + - [`bpf_dynptr_is_null`](../kfuncs/bpf_dynptr_is_null.md) + - [`bpf_dynptr_is_rdonly`](../kfuncs/bpf_dynptr_is_rdonly.md) + - [`bpf_dynptr_size`](../kfuncs/bpf_dynptr_size.md) + - [`bpf_dynptr_slice`](../kfuncs/bpf_dynptr_slice.md) + - [`bpf_dynptr_slice_rdwr`](../kfuncs/bpf_dynptr_slice_rdwr.md) + - [`bpf_iter_css_destroy`](../kfuncs/bpf_iter_css_destroy.md) + - [`bpf_iter_css_new`](../kfuncs/bpf_iter_css_new.md) + - [`bpf_iter_css_next`](../kfuncs/bpf_iter_css_next.md) + - [`bpf_iter_css_task_destroy`](../kfuncs/bpf_iter_css_task_destroy.md) + - [`bpf_iter_css_task_new`](../kfuncs/bpf_iter_css_task_new.md) + - [`bpf_iter_css_task_next`](../kfuncs/bpf_iter_css_task_next.md) + - [`bpf_iter_num_destroy`](../kfuncs/bpf_iter_num_destroy.md) + - [`bpf_iter_num_new`](../kfuncs/bpf_iter_num_new.md) + - [`bpf_iter_num_next`](../kfuncs/bpf_iter_num_next.md) + - [`bpf_iter_task_destroy`](../kfuncs/bpf_iter_task_destroy.md) + - [`bpf_iter_task_new`](../kfuncs/bpf_iter_task_new.md) + - [`bpf_iter_task_next`](../kfuncs/bpf_iter_task_next.md) + - [`bpf_iter_task_vma_destroy`](../kfuncs/bpf_iter_task_vma_destroy.md) + - [`bpf_iter_task_vma_new`](../kfuncs/bpf_iter_task_vma_new.md) + - [`bpf_iter_task_vma_next`](../kfuncs/bpf_iter_task_vma_next.md) + - [`bpf_map_sum_elem_count`](../kfuncs/bpf_map_sum_elem_count.md) + - [`bpf_preempt_disable`](../kfuncs/bpf_preempt_disable.md) + - [`bpf_preempt_enable`](../kfuncs/bpf_preempt_enable.md) + - [`bpf_rcu_read_lock`](../kfuncs/bpf_rcu_read_lock.md) + - [`bpf_rcu_read_unlock`](../kfuncs/bpf_rcu_read_unlock.md) + - [`bpf_rdonly_cast`](../kfuncs/bpf_rdonly_cast.md) + - [`bpf_sock_addr_set_sun_path`](../kfuncs/bpf_sock_addr_set_sun_path.md) + - [`bpf_wq_init`](../kfuncs/bpf_wq_init.md) + - [`bpf_wq_set_callback_impl`](../kfuncs/bpf_wq_set_callback_impl.md) + - [`bpf_wq_start`](../kfuncs/bpf_wq_start.md) diff --git a/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md b/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md index bb5dfb22..1d9850c9 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md @@ -159,60 +159,60 @@ char _license[] SEC("license") = "GPL"; ??? abstract "Supported helper functions" - * [bpf_strtol](../helper-function/bpf_strtol.md) - * [bpf_strtoul](../helper-function/bpf_strtoul.md) - * [bpf_sysctl_get_name](../helper-function/bpf_sysctl_get_name.md) - * [bpf_sysctl_get_current_value](../helper-function/bpf_sysctl_get_current_value.md) - * [bpf_sysctl_get_new_value](../helper-function/bpf_sysctl_get_new_value.md) - * [bpf_sysctl_set_new_value](../helper-function/bpf_sysctl_set_new_value.md) - * [bpf_ktime_get_coarse_ns](../helper-function/bpf_ktime_get_coarse_ns.md) - * [bpf_get_current_uid_gid](../helper-function/bpf_get_current_uid_gid.md) - * [bpf_get_local_storage](../helper-function/bpf_get_local_storage.md) - * [bpf_get_current_cgroup_id](../helper-function/bpf_get_current_cgroup_id.md) - * [bpf_perf_event_output](../helper-function/bpf_perf_event_output.md) - * [bpf_get_retval](../helper-function/bpf_get_retval.md) - * [bpf_set_retval](../helper-function/bpf_set_retval.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_loop](../helper-function/bpf_loop.md) - * [bpf_strncmp](../helper-function/bpf_strncmp.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_timer_init](../helper-function/bpf_timer_init.md) - * [bpf_timer_set_callback](../helper-function/bpf_timer_set_callback.md) - * [bpf_timer_start](../helper-function/bpf_timer_start.md) - * [bpf_timer_cancel](../helper-function/bpf_timer_cancel.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) + * [`bpf_strtol`](../helper-function/bpf_strtol.md) + * [`bpf_strtoul`](../helper-function/bpf_strtoul.md) + * [`bpf_sysctl_get_name`](../helper-function/bpf_sysctl_get_name.md) + * [`bpf_sysctl_get_current_value`](../helper-function/bpf_sysctl_get_current_value.md) + * [`bpf_sysctl_get_new_value`](../helper-function/bpf_sysctl_get_new_value.md) + * [`bpf_sysctl_set_new_value`](../helper-function/bpf_sysctl_set_new_value.md) + * [`bpf_ktime_get_coarse_ns`](../helper-function/bpf_ktime_get_coarse_ns.md) + * [`bpf_get_current_uid_gid`](../helper-function/bpf_get_current_uid_gid.md) + * [`bpf_get_local_storage`](../helper-function/bpf_get_local_storage.md) + * [`bpf_get_current_cgroup_id`](../helper-function/bpf_get_current_cgroup_id.md) + * [`bpf_perf_event_output`](../helper-function/bpf_perf_event_output.md) + * [`bpf_get_retval`](../helper-function/bpf_get_retval.md) + * [`bpf_set_retval`](../helper-function/bpf_set_retval.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_loop`](../helper-function/bpf_loop.md) + * [`bpf_strncmp`](../helper-function/bpf_strncmp.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_timer_init`](../helper-function/bpf_timer_init.md) + * [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) + * [`bpf_timer_start`](../helper-function/bpf_timer_start.md) + * [`bpf_timer_cancel`](../helper-function/bpf_timer_cancel.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md b/docs/linux/program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md index e7a0e1a5..8c89e666 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md @@ -183,55 +183,55 @@ Not all helper functions are available in all program types. These are the helpe ??? abstract "Supported helper functions" - * [bpf_skb_load_bytes](../helper-function/bpf_skb_load_bytes.md) - * [bpf_skc_to_tcp6_sock](../helper-function/bpf_skc_to_tcp6_sock.md) - * [bpf_skc_to_tcp_sock](../helper-function/bpf_skc_to_tcp_sock.md) - * [bpf_skc_to_tcp_timewait_sock](../helper-function/bpf_skc_to_tcp_timewait_sock.md) - * [bpf_skc_to_tcp_request_sock](../helper-function/bpf_skc_to_tcp_request_sock.md) - * [bpf_skc_to_udp6_sock](../helper-function/bpf_skc_to_udp6_sock.md) - * [bpf_skc_to_unix_sock](../helper-function/bpf_skc_to_unix_sock.md) - * [bpf_ktime_get_coarse_ns](../helper-function/bpf_ktime_get_coarse_ns.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_loop](../helper-function/bpf_loop.md) - * [bpf_strncmp](../helper-function/bpf_strncmp.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_timer_init](../helper-function/bpf_timer_init.md) - * [bpf_timer_set_callback](../helper-function/bpf_timer_set_callback.md) - * [bpf_timer_start](../helper-function/bpf_timer_start.md) - * [bpf_timer_cancel](../helper-function/bpf_timer_cancel.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) + * [`bpf_skb_load_bytes`](../helper-function/bpf_skb_load_bytes.md) + * [`bpf_skc_to_tcp6_sock`](../helper-function/bpf_skc_to_tcp6_sock.md) + * [`bpf_skc_to_tcp_sock`](../helper-function/bpf_skc_to_tcp_sock.md) + * [`bpf_skc_to_tcp_timewait_sock`](../helper-function/bpf_skc_to_tcp_timewait_sock.md) + * [`bpf_skc_to_tcp_request_sock`](../helper-function/bpf_skc_to_tcp_request_sock.md) + * [`bpf_skc_to_udp6_sock`](../helper-function/bpf_skc_to_udp6_sock.md) + * [`bpf_skc_to_unix_sock`](../helper-function/bpf_skc_to_unix_sock.md) + * [`bpf_ktime_get_coarse_ns`](../helper-function/bpf_ktime_get_coarse_ns.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_loop`](../helper-function/bpf_loop.md) + * [`bpf_strncmp`](../helper-function/bpf_strncmp.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_timer_init`](../helper-function/bpf_timer_init.md) + * [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) + * [`bpf_timer_start`](../helper-function/bpf_timer_start.md) + * [`bpf_timer_cancel`](../helper-function/bpf_timer_cancel.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_KPROBE.md b/docs/linux/program-type/BPF_PROG_TYPE_KPROBE.md index 73b1b7e8..e00596b3 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_KPROBE.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_KPROBE.md @@ -101,114 +101,114 @@ Not all helper functions are available in all program types. These are the helpe ??? abstract "Supported helper functions" - * [bpf_perf_event_output](../helper-function/bpf_perf_event_output.md) - * [bpf_get_stackid](../helper-function/bpf_get_stackid.md) - * [bpf_get_stack](../helper-function/bpf_get_stack.md) - * [bpf_override_return](../helper-function/bpf_override_return.md) - * [bpf_get_func_ip](../helper-function/bpf_get_func_ip.md) - * [bpf_get_attach_cookie](../helper-function/bpf_get_attach_cookie.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_get_current_pid_tgid](../helper-function/bpf_get_current_pid_tgid.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_get_current_uid_gid](../helper-function/bpf_get_current_uid_gid.md) - * [bpf_get_current_comm](../helper-function/bpf_get_current_comm.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_perf_event_read](../helper-function/bpf_perf_event_read.md) - * [bpf_current_task_under_cgroup](../helper-function/bpf_current_task_under_cgroup.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_probe_write_user](../helper-function/bpf_probe_write_user.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_probe_read](../helper-function/bpf_probe_read.md) - * [bpf_probe_read_str](../helper-function/bpf_probe_read_str.md) - * [bpf_get_current_cgroup_id](../helper-function/bpf_get_current_cgroup_id.md) - * [bpf_get_current_ancestor_cgroup_id](../helper-function/bpf_get_current_ancestor_cgroup_id.md) - * [bpf_send_signal](../helper-function/bpf_send_signal.md) - * [bpf_send_signal_thread](../helper-function/bpf_send_signal_thread.md) - * [bpf_perf_event_read_value](../helper-function/bpf_perf_event_read_value.md) - * [bpf_get_ns_current_pid_tgid](../helper-function/bpf_get_ns_current_pid_tgid.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_get_task_stack](../helper-function/bpf_get_task_stack.md) - * [bpf_copy_from_user](../helper-function/bpf_copy_from_user.md) - * [bpf_copy_from_user_task](../helper-function/bpf_copy_from_user_task.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_task_storage_get](../helper-function/bpf_task_storage_get.md) - * [bpf_task_storage_delete](../helper-function/bpf_task_storage_delete.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_get_func_ip](../helper-function/bpf_get_func_ip.md) - * [bpf_get_branch_snapshot](../helper-function/bpf_get_branch_snapshot.md) - * [bpf_find_vma](../helper-function/bpf_find_vma.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_loop](../helper-function/bpf_loop.md) - * [bpf_strncmp](../helper-function/bpf_strncmp.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_timer_init](../helper-function/bpf_timer_init.md) - * [bpf_timer_set_callback](../helper-function/bpf_timer_set_callback.md) - * [bpf_timer_start](../helper-function/bpf_timer_start.md) - * [bpf_timer_cancel](../helper-function/bpf_timer_cancel.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) + * [`bpf_perf_event_output`](../helper-function/bpf_perf_event_output.md) + * [`bpf_get_stackid`](../helper-function/bpf_get_stackid.md) + * [`bpf_get_stack`](../helper-function/bpf_get_stack.md) + * [`bpf_override_return`](../helper-function/bpf_override_return.md) + * [`bpf_get_func_ip`](../helper-function/bpf_get_func_ip.md) + * [`bpf_get_attach_cookie`](../helper-function/bpf_get_attach_cookie.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_get_current_pid_tgid`](../helper-function/bpf_get_current_pid_tgid.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_get_current_uid_gid`](../helper-function/bpf_get_current_uid_gid.md) + * [`bpf_get_current_comm`](../helper-function/bpf_get_current_comm.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_perf_event_read`](../helper-function/bpf_perf_event_read.md) + * [`bpf_current_task_under_cgroup`](../helper-function/bpf_current_task_under_cgroup.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_probe_write_user`](../helper-function/bpf_probe_write_user.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_probe_read`](../helper-function/bpf_probe_read.md) + * [`bpf_probe_read_str`](../helper-function/bpf_probe_read_str.md) + * [`bpf_get_current_cgroup_id`](../helper-function/bpf_get_current_cgroup_id.md) + * [`bpf_get_current_ancestor_cgroup_id`](../helper-function/bpf_get_current_ancestor_cgroup_id.md) + * [`bpf_send_signal`](../helper-function/bpf_send_signal.md) + * [`bpf_send_signal_thread`](../helper-function/bpf_send_signal_thread.md) + * [`bpf_perf_event_read_value`](../helper-function/bpf_perf_event_read_value.md) + * [`bpf_get_ns_current_pid_tgid`](../helper-function/bpf_get_ns_current_pid_tgid.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_get_task_stack`](../helper-function/bpf_get_task_stack.md) + * [`bpf_copy_from_user`](../helper-function/bpf_copy_from_user.md) + * [`bpf_copy_from_user_task`](../helper-function/bpf_copy_from_user_task.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_task_storage_get`](../helper-function/bpf_task_storage_get.md) + * [`bpf_task_storage_delete`](../helper-function/bpf_task_storage_delete.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_get_func_ip`](../helper-function/bpf_get_func_ip.md) + * [`bpf_get_branch_snapshot`](../helper-function/bpf_get_branch_snapshot.md) + * [`bpf_find_vma`](../helper-function/bpf_find_vma.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_loop`](../helper-function/bpf_loop.md) + * [`bpf_strncmp`](../helper-function/bpf_strncmp.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_timer_init`](../helper-function/bpf_timer_init.md) + * [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) + * [`bpf_timer_start`](../helper-function/bpf_timer_start.md) + * [`bpf_timer_cancel`](../helper-function/bpf_timer_cancel.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) ## KFuncs ??? abstract "Supported kfuncs" - - [bpf_session_cookie](../kfuncs/bpf_session_cookie.md) - - [bpf_session_is_return](../kfuncs/bpf_session_is_return.md) + - [`bpf_session_cookie`](../kfuncs/bpf_session_cookie.md) + - [`bpf_session_is_return`](../kfuncs/bpf_session_is_return.md) diff --git a/docs/linux/program-type/BPF_PROG_TYPE_LSM.md b/docs/linux/program-type/BPF_PROG_TYPE_LSM.md index e3cb9b0c..77c72ebb 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_LSM.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_LSM.md @@ -60,205 +60,205 @@ Not all helper functions are available in all program types. These are the helpe ??? abstract "Supported helper functions" - * [bpf_inode_storage_get](../helper-function/bpf_inode_storage_get.md) - * [bpf_inode_storage_delete](../helper-function/bpf_inode_storage_delete.md) - * [bpf_sk_storage_get](../helper-function/bpf_sk_storage_get.md) - * [bpf_sk_storage_delete](../helper-function/bpf_sk_storage_delete.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_bprm_opts_set](../helper-function/bpf_bprm_opts_set.md) - * [bpf_ima_inode_hash](../helper-function/bpf_ima_inode_hash.md) - * [bpf_ima_file_hash](../helper-function/bpf_ima_file_hash.md) - * [bpf_setsockopt](../helper-function/bpf_setsockopt.md) [:octicons-tag-24: v6.0](https://github.com/torvalds/linux/commit/9113d7e48e9128522b9f5a54dfd30dff10509a92) - * [bpf_getsockopt](../helper-function/bpf_getsockopt.md) [:octicons-tag-24: v6.0](https://github.com/torvalds/linux/commit/9113d7e48e9128522b9f5a54dfd30dff10509a92) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_get_current_pid_tgid](../helper-function/bpf_get_current_pid_tgid.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_get_current_uid_gid](../helper-function/bpf_get_current_uid_gid.md) - * [bpf_get_current_comm](../helper-function/bpf_get_current_comm.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_perf_event_read](../helper-function/bpf_perf_event_read.md) - * [bpf_current_task_under_cgroup](../helper-function/bpf_current_task_under_cgroup.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_probe_write_user](../helper-function/bpf_probe_write_user.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_probe_read](../helper-function/bpf_probe_read.md) - * [bpf_probe_read_str](../helper-function/bpf_probe_read_str.md) - * [bpf_get_current_cgroup_id](../helper-function/bpf_get_current_cgroup_id.md) - * [bpf_get_current_ancestor_cgroup_id](../helper-function/bpf_get_current_ancestor_cgroup_id.md) - * [bpf_send_signal](../helper-function/bpf_send_signal.md) - * [bpf_send_signal_thread](../helper-function/bpf_send_signal_thread.md) - * [bpf_perf_event_read_value](../helper-function/bpf_perf_event_read_value.md) - * [bpf_get_ns_current_pid_tgid](../helper-function/bpf_get_ns_current_pid_tgid.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_get_task_stack](../helper-function/bpf_get_task_stack.md) - * [bpf_copy_from_user](../helper-function/bpf_copy_from_user.md) - * [bpf_copy_from_user_task](../helper-function/bpf_copy_from_user_task.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_task_storage_get](../helper-function/bpf_task_storage_get.md) - * [bpf_task_storage_delete](../helper-function/bpf_task_storage_delete.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_get_func_ip](../helper-function/bpf_get_func_ip.md) - * [bpf_get_branch_snapshot](../helper-function/bpf_get_branch_snapshot.md) - * [bpf_find_vma](../helper-function/bpf_find_vma.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_loop](../helper-function/bpf_loop.md) - * [bpf_strncmp](../helper-function/bpf_strncmp.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_timer_init](../helper-function/bpf_timer_init.md) - * [bpf_timer_set_callback](../helper-function/bpf_timer_set_callback.md) - * [bpf_timer_start](../helper-function/bpf_timer_start.md) - * [bpf_timer_cancel](../helper-function/bpf_timer_cancel.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) + * [`bpf_inode_storage_get`](../helper-function/bpf_inode_storage_get.md) + * [`bpf_inode_storage_delete`](../helper-function/bpf_inode_storage_delete.md) + * [`bpf_sk_storage_get`](../helper-function/bpf_sk_storage_get.md) + * [`bpf_sk_storage_delete`](../helper-function/bpf_sk_storage_delete.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_bprm_opts_set`](../helper-function/bpf_bprm_opts_set.md) + * [`bpf_ima_inode_hash`](../helper-function/bpf_ima_inode_hash.md) + * [`bpf_ima_file_hash`](../helper-function/bpf_ima_file_hash.md) + * [`bpf_setsockopt`](../helper-function/bpf_setsockopt.md) [:octicons-tag-24: v6.0](https://github.com/torvalds/linux/commit/9113d7e48e9128522b9f5a54dfd30dff10509a92) + * [`bpf_getsockopt`](../helper-function/bpf_getsockopt.md) [:octicons-tag-24: v6.0](https://github.com/torvalds/linux/commit/9113d7e48e9128522b9f5a54dfd30dff10509a92) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_get_current_pid_tgid`](../helper-function/bpf_get_current_pid_tgid.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_get_current_uid_gid`](../helper-function/bpf_get_current_uid_gid.md) + * [`bpf_get_current_comm`](../helper-function/bpf_get_current_comm.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_perf_event_read`](../helper-function/bpf_perf_event_read.md) + * [`bpf_current_task_under_cgroup`](../helper-function/bpf_current_task_under_cgroup.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_probe_write_user`](../helper-function/bpf_probe_write_user.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_probe_read`](../helper-function/bpf_probe_read.md) + * [`bpf_probe_read_str`](../helper-function/bpf_probe_read_str.md) + * [`bpf_get_current_cgroup_id`](../helper-function/bpf_get_current_cgroup_id.md) + * [`bpf_get_current_ancestor_cgroup_id`](../helper-function/bpf_get_current_ancestor_cgroup_id.md) + * [`bpf_send_signal`](../helper-function/bpf_send_signal.md) + * [`bpf_send_signal_thread`](../helper-function/bpf_send_signal_thread.md) + * [`bpf_perf_event_read_value`](../helper-function/bpf_perf_event_read_value.md) + * [`bpf_get_ns_current_pid_tgid`](../helper-function/bpf_get_ns_current_pid_tgid.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_get_task_stack`](../helper-function/bpf_get_task_stack.md) + * [`bpf_copy_from_user`](../helper-function/bpf_copy_from_user.md) + * [`bpf_copy_from_user_task`](../helper-function/bpf_copy_from_user_task.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_task_storage_get`](../helper-function/bpf_task_storage_get.md) + * [`bpf_task_storage_delete`](../helper-function/bpf_task_storage_delete.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_get_func_ip`](../helper-function/bpf_get_func_ip.md) + * [`bpf_get_branch_snapshot`](../helper-function/bpf_get_branch_snapshot.md) + * [`bpf_find_vma`](../helper-function/bpf_find_vma.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_loop`](../helper-function/bpf_loop.md) + * [`bpf_strncmp`](../helper-function/bpf_strncmp.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_timer_init`](../helper-function/bpf_timer_init.md) + * [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) + * [`bpf_timer_start`](../helper-function/bpf_timer_start.md) + * [`bpf_timer_cancel`](../helper-function/bpf_timer_cancel.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) ## KFuncs ??? abstract "Supported kfuncs" - - [bpf_arena_alloc_pages](../kfuncs/bpf_arena_alloc_pages.md) - - [bpf_arena_free_pages](../kfuncs/bpf_arena_free_pages.md) - - [bpf_cast_to_kern_ctx](../kfuncs/bpf_cast_to_kern_ctx.md) - - [bpf_cgroup_acquire](../kfuncs/bpf_cgroup_acquire.md) - - [bpf_cgroup_ancestor](../kfuncs/bpf_cgroup_ancestor.md) - - [bpf_cgroup_from_id](../kfuncs/bpf_cgroup_from_id.md) - - [bpf_cgroup_release](../kfuncs/bpf_cgroup_release.md) - - [bpf_cpumask_acquire](../kfuncs/bpf_cpumask_acquire.md) - - [bpf_cpumask_and](../kfuncs/bpf_cpumask_and.md) - - [bpf_cpumask_any_and_distribute](../kfuncs/bpf_cpumask_any_and_distribute.md) - - [bpf_cpumask_any_distribute](../kfuncs/bpf_cpumask_any_distribute.md) - - [bpf_cpumask_clear](../kfuncs/bpf_cpumask_clear.md) - - [bpf_cpumask_clear_cpu](../kfuncs/bpf_cpumask_clear_cpu.md) - - [bpf_cpumask_copy](../kfuncs/bpf_cpumask_copy.md) - - [bpf_cpumask_create](../kfuncs/bpf_cpumask_create.md) - - [bpf_cpumask_empty](../kfuncs/bpf_cpumask_empty.md) - - [bpf_cpumask_equal](../kfuncs/bpf_cpumask_equal.md) - - [bpf_cpumask_first](../kfuncs/bpf_cpumask_first.md) - - [bpf_cpumask_first_and](../kfuncs/bpf_cpumask_first_and.md) - - [bpf_cpumask_first_zero](../kfuncs/bpf_cpumask_first_zero.md) - - [bpf_cpumask_full](../kfuncs/bpf_cpumask_full.md) - - [bpf_cpumask_intersects](../kfuncs/bpf_cpumask_intersects.md) - - [bpf_cpumask_or](../kfuncs/bpf_cpumask_or.md) - - [bpf_cpumask_release](../kfuncs/bpf_cpumask_release.md) - - [bpf_cpumask_set_cpu](../kfuncs/bpf_cpumask_set_cpu.md) - - [bpf_cpumask_setall](../kfuncs/bpf_cpumask_setall.md) - - [bpf_cpumask_subset](../kfuncs/bpf_cpumask_subset.md) - - [bpf_cpumask_test_and_clear_cpu](../kfuncs/bpf_cpumask_test_and_clear_cpu.md) - - [bpf_cpumask_test_and_set_cpu](../kfuncs/bpf_cpumask_test_and_set_cpu.md) - - [bpf_cpumask_test_cpu](../kfuncs/bpf_cpumask_test_cpu.md) - - [bpf_cpumask_weight](../kfuncs/bpf_cpumask_weight.md) - - [bpf_cpumask_xor](../kfuncs/bpf_cpumask_xor.md) - - [bpf_dynptr_adjust](../kfuncs/bpf_dynptr_adjust.md) - - [bpf_dynptr_clone](../kfuncs/bpf_dynptr_clone.md) - - [bpf_dynptr_is_null](../kfuncs/bpf_dynptr_is_null.md) - - [bpf_dynptr_is_rdonly](../kfuncs/bpf_dynptr_is_rdonly.md) - - [bpf_dynptr_size](../kfuncs/bpf_dynptr_size.md) - - [bpf_dynptr_slice](../kfuncs/bpf_dynptr_slice.md) - - [bpf_dynptr_slice_rdwr](../kfuncs/bpf_dynptr_slice_rdwr.md) - - [bpf_get_file_xattr](../kfuncs/bpf_get_file_xattr.md) - - [bpf_get_fsverity_digest](../kfuncs/bpf_get_fsverity_digest.md) - - [bpf_iter_css_destroy](../kfuncs/bpf_iter_css_destroy.md) - - [bpf_iter_css_new](../kfuncs/bpf_iter_css_new.md) - - [bpf_iter_css_next](../kfuncs/bpf_iter_css_next.md) - - [bpf_iter_css_task_destroy](../kfuncs/bpf_iter_css_task_destroy.md) - - [bpf_iter_css_task_new](../kfuncs/bpf_iter_css_task_new.md) - - [bpf_iter_css_task_next](../kfuncs/bpf_iter_css_task_next.md) - - [bpf_iter_num_destroy](../kfuncs/bpf_iter_num_destroy.md) - - [bpf_iter_num_new](../kfuncs/bpf_iter_num_new.md) - - [bpf_iter_num_next](../kfuncs/bpf_iter_num_next.md) - - [bpf_iter_task_destroy](../kfuncs/bpf_iter_task_destroy.md) - - [bpf_iter_task_new](../kfuncs/bpf_iter_task_new.md) - - [bpf_iter_task_next](../kfuncs/bpf_iter_task_next.md) - - [bpf_iter_task_vma_destroy](../kfuncs/bpf_iter_task_vma_destroy.md) - - [bpf_iter_task_vma_new](../kfuncs/bpf_iter_task_vma_new.md) - - [bpf_iter_task_vma_next](../kfuncs/bpf_iter_task_vma_next.md) - - [bpf_list_pop_back](../kfuncs/bpf_list_pop_back.md) - - [bpf_list_pop_front](../kfuncs/bpf_list_pop_front.md) - - [bpf_list_push_back_impl](../kfuncs/bpf_list_push_back_impl.md) - - [bpf_list_push_front_impl](../kfuncs/bpf_list_push_front_impl.md) - - [bpf_map_sum_elem_count](../kfuncs/bpf_map_sum_elem_count.md) - - [bpf_obj_drop_impl](../kfuncs/bpf_obj_drop_impl.md) - - [bpf_obj_new_impl](../kfuncs/bpf_obj_new_impl.md) - - [bpf_percpu_obj_drop_impl](../kfuncs/bpf_percpu_obj_drop_impl.md) - - [bpf_percpu_obj_new_impl](../kfuncs/bpf_percpu_obj_new_impl.md) - - [bpf_preempt_disable](../kfuncs/bpf_preempt_disable.md) - - [bpf_preempt_enable](../kfuncs/bpf_preempt_enable.md) - - [bpf_rbtree_add_impl](../kfuncs/bpf_rbtree_add_impl.md) - - [bpf_rbtree_first](../kfuncs/bpf_rbtree_first.md) - - [bpf_rbtree_remove](../kfuncs/bpf_rbtree_remove.md) - - [bpf_rcu_read_lock](../kfuncs/bpf_rcu_read_lock.md) - - [bpf_rcu_read_unlock](../kfuncs/bpf_rcu_read_unlock.md) - - [bpf_rdonly_cast](../kfuncs/bpf_rdonly_cast.md) - - [bpf_refcount_acquire_impl](../kfuncs/bpf_refcount_acquire_impl.md) - - [bpf_task_acquire](../kfuncs/bpf_task_acquire.md) - - [bpf_task_from_pid](../kfuncs/bpf_task_from_pid.md) - - [bpf_task_get_cgroup1](../kfuncs/bpf_task_get_cgroup1.md) - - [bpf_task_release](../kfuncs/bpf_task_release.md) - - [bpf_task_under_cgroup](../kfuncs/bpf_task_under_cgroup.md) - - [bpf_throw](../kfuncs/bpf_throw.md) - - [bpf_wq_init](../kfuncs/bpf_wq_init.md) - - [bpf_wq_set_callback_impl](../kfuncs/bpf_wq_set_callback_impl.md) - - [bpf_wq_start](../kfuncs/bpf_wq_start.md) - - [cgroup_rstat_flush](../kfuncs/cgroup_rstat_flush.md) - - [cgroup_rstat_updated](../kfuncs/cgroup_rstat_updated.md) - - [crash_kexec](../kfuncs/crash_kexec.md) - - [hid_bpf_get_data](../kfuncs/hid_bpf_get_data.md) + - [`bpf_arena_alloc_pages`](../kfuncs/bpf_arena_alloc_pages.md) + - [`bpf_arena_free_pages`](../kfuncs/bpf_arena_free_pages.md) + - [`bpf_cast_to_kern_ctx`](../kfuncs/bpf_cast_to_kern_ctx.md) + - [`bpf_cgroup_acquire`](../kfuncs/bpf_cgroup_acquire.md) + - [`bpf_cgroup_ancestor`](../kfuncs/bpf_cgroup_ancestor.md) + - [`bpf_cgroup_from_id`](../kfuncs/bpf_cgroup_from_id.md) + - [`bpf_cgroup_release`](../kfuncs/bpf_cgroup_release.md) + - [`bpf_cpumask_acquire`](../kfuncs/bpf_cpumask_acquire.md) + - [`bpf_cpumask_and`](../kfuncs/bpf_cpumask_and.md) + - [`bpf_cpumask_any_and_distribute`](../kfuncs/bpf_cpumask_any_and_distribute.md) + - [`bpf_cpumask_any_distribute`](../kfuncs/bpf_cpumask_any_distribute.md) + - [`bpf_cpumask_clear`](../kfuncs/bpf_cpumask_clear.md) + - [`bpf_cpumask_clear_cpu`](../kfuncs/bpf_cpumask_clear_cpu.md) + - [`bpf_cpumask_copy`](../kfuncs/bpf_cpumask_copy.md) + - [`bpf_cpumask_create`](../kfuncs/bpf_cpumask_create.md) + - [`bpf_cpumask_empty`](../kfuncs/bpf_cpumask_empty.md) + - [`bpf_cpumask_equal`](../kfuncs/bpf_cpumask_equal.md) + - [`bpf_cpumask_first`](../kfuncs/bpf_cpumask_first.md) + - [`bpf_cpumask_first_and`](../kfuncs/bpf_cpumask_first_and.md) + - [`bpf_cpumask_first_zero`](../kfuncs/bpf_cpumask_first_zero.md) + - [`bpf_cpumask_full`](../kfuncs/bpf_cpumask_full.md) + - [`bpf_cpumask_intersects`](../kfuncs/bpf_cpumask_intersects.md) + - [`bpf_cpumask_or`](../kfuncs/bpf_cpumask_or.md) + - [`bpf_cpumask_release`](../kfuncs/bpf_cpumask_release.md) + - [`bpf_cpumask_set_cpu`](../kfuncs/bpf_cpumask_set_cpu.md) + - [`bpf_cpumask_setall`](../kfuncs/bpf_cpumask_setall.md) + - [`bpf_cpumask_subset`](../kfuncs/bpf_cpumask_subset.md) + - [`bpf_cpumask_test_and_clear_cpu`](../kfuncs/bpf_cpumask_test_and_clear_cpu.md) + - [`bpf_cpumask_test_and_set_cpu`](../kfuncs/bpf_cpumask_test_and_set_cpu.md) + - [`bpf_cpumask_test_cpu`](../kfuncs/bpf_cpumask_test_cpu.md) + - [`bpf_cpumask_weight`](../kfuncs/bpf_cpumask_weight.md) + - [`bpf_cpumask_xor`](../kfuncs/bpf_cpumask_xor.md) + - [`bpf_dynptr_adjust`](../kfuncs/bpf_dynptr_adjust.md) + - [`bpf_dynptr_clone`](../kfuncs/bpf_dynptr_clone.md) + - [`bpf_dynptr_is_null`](../kfuncs/bpf_dynptr_is_null.md) + - [`bpf_dynptr_is_rdonly`](../kfuncs/bpf_dynptr_is_rdonly.md) + - [`bpf_dynptr_size`](../kfuncs/bpf_dynptr_size.md) + - [`bpf_dynptr_slice`](../kfuncs/bpf_dynptr_slice.md) + - [`bpf_dynptr_slice_rdwr`](../kfuncs/bpf_dynptr_slice_rdwr.md) + - [`bpf_get_file_xattr`](../kfuncs/bpf_get_file_xattr.md) + - [`bpf_get_fsverity_digest`](../kfuncs/bpf_get_fsverity_digest.md) + - [`bpf_iter_css_destroy`](../kfuncs/bpf_iter_css_destroy.md) + - [`bpf_iter_css_new`](../kfuncs/bpf_iter_css_new.md) + - [`bpf_iter_css_next`](../kfuncs/bpf_iter_css_next.md) + - [`bpf_iter_css_task_destroy`](../kfuncs/bpf_iter_css_task_destroy.md) + - [`bpf_iter_css_task_new`](../kfuncs/bpf_iter_css_task_new.md) + - [`bpf_iter_css_task_next`](../kfuncs/bpf_iter_css_task_next.md) + - [`bpf_iter_num_destroy`](../kfuncs/bpf_iter_num_destroy.md) + - [`bpf_iter_num_new`](../kfuncs/bpf_iter_num_new.md) + - [`bpf_iter_num_next`](../kfuncs/bpf_iter_num_next.md) + - [`bpf_iter_task_destroy`](../kfuncs/bpf_iter_task_destroy.md) + - [`bpf_iter_task_new`](../kfuncs/bpf_iter_task_new.md) + - [`bpf_iter_task_next`](../kfuncs/bpf_iter_task_next.md) + - [`bpf_iter_task_vma_destroy`](../kfuncs/bpf_iter_task_vma_destroy.md) + - [`bpf_iter_task_vma_new`](../kfuncs/bpf_iter_task_vma_new.md) + - [`bpf_iter_task_vma_next`](../kfuncs/bpf_iter_task_vma_next.md) + - [`bpf_list_pop_back`](../kfuncs/bpf_list_pop_back.md) + - [`bpf_list_pop_front`](../kfuncs/bpf_list_pop_front.md) + - [`bpf_list_push_back_impl`](../kfuncs/bpf_list_push_back_impl.md) + - [`bpf_list_push_front_impl`](../kfuncs/bpf_list_push_front_impl.md) + - [`bpf_map_sum_elem_count`](../kfuncs/bpf_map_sum_elem_count.md) + - [`bpf_obj_drop_impl`](../kfuncs/bpf_obj_drop_impl.md) + - [`bpf_obj_new_impl`](../kfuncs/bpf_obj_new_impl.md) + - [`bpf_percpu_obj_drop_impl`](../kfuncs/bpf_percpu_obj_drop_impl.md) + - [`bpf_percpu_obj_new_impl`](../kfuncs/bpf_percpu_obj_new_impl.md) + - [`bpf_preempt_disable`](../kfuncs/bpf_preempt_disable.md) + - [`bpf_preempt_enable`](../kfuncs/bpf_preempt_enable.md) + - [`bpf_rbtree_add_impl`](../kfuncs/bpf_rbtree_add_impl.md) + - [`bpf_rbtree_first`](../kfuncs/bpf_rbtree_first.md) + - [`bpf_rbtree_remove`](../kfuncs/bpf_rbtree_remove.md) + - [`bpf_rcu_read_lock`](../kfuncs/bpf_rcu_read_lock.md) + - [`bpf_rcu_read_unlock`](../kfuncs/bpf_rcu_read_unlock.md) + - [`bpf_rdonly_cast`](../kfuncs/bpf_rdonly_cast.md) + - [`bpf_refcount_acquire_impl`](../kfuncs/bpf_refcount_acquire_impl.md) + - [`bpf_task_acquire`](../kfuncs/bpf_task_acquire.md) + - [`bpf_task_from_pid`](../kfuncs/bpf_task_from_pid.md) + - [`bpf_task_get_cgroup1`](../kfuncs/bpf_task_get_cgroup1.md) + - [`bpf_task_release`](../kfuncs/bpf_task_release.md) + - [`bpf_task_under_cgroup`](../kfuncs/bpf_task_under_cgroup.md) + - [`bpf_throw`](../kfuncs/bpf_throw.md) + - [`bpf_wq_init`](../kfuncs/bpf_wq_init.md) + - [`bpf_wq_set_callback_impl`](../kfuncs/bpf_wq_set_callback_impl.md) + - [`bpf_wq_start`](../kfuncs/bpf_wq_start.md) + - [`cgroup_rstat_flush`](../kfuncs/cgroup_rstat_flush.md) + - [`cgroup_rstat_updated`](../kfuncs/cgroup_rstat_updated.md) + - [`crash_kexec`](../kfuncs/crash_kexec.md) + - [`hid_bpf_get_data`](../kfuncs/hid_bpf_get_data.md) diff --git a/docs/linux/program-type/BPF_PROG_TYPE_LWT_IN.md b/docs/linux/program-type/BPF_PROG_TYPE_LWT_IN.md index 19389681..012a11a5 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_LWT_IN.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_LWT_IN.md @@ -153,97 +153,97 @@ Not all helper functions are available in all program types. These are the helpe ??? abstract "Supported helper functions" - * [bpf_lwt_push_encap](../helper-function/bpf_lwt_push_encap.md) - * [bpf_skb_load_bytes](../helper-function/bpf_skb_load_bytes.md) - * [bpf_skb_pull_data](../helper-function/bpf_skb_pull_data.md) - * [bpf_csum_diff](../helper-function/bpf_csum_diff.md) - * [bpf_get_cgroup_classid](../helper-function/bpf_get_cgroup_classid.md) - * [bpf_get_route_realm](../helper-function/bpf_get_route_realm.md) - * [bpf_get_hash_recalc](../helper-function/bpf_get_hash_recalc.md) - * [bpf_perf_event_output](../helper-function/bpf_perf_event_output.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_skb_under_cgroup](../helper-function/bpf_skb_under_cgroup.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_loop](../helper-function/bpf_loop.md) - * [bpf_strncmp](../helper-function/bpf_strncmp.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_timer_init](../helper-function/bpf_timer_init.md) - * [bpf_timer_set_callback](../helper-function/bpf_timer_set_callback.md) - * [bpf_timer_start](../helper-function/bpf_timer_start.md) - * [bpf_timer_cancel](../helper-function/bpf_timer_cancel.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) + * [`bpf_lwt_push_encap`](../helper-function/bpf_lwt_push_encap.md) + * [`bpf_skb_load_bytes`](../helper-function/bpf_skb_load_bytes.md) + * [`bpf_skb_pull_data`](../helper-function/bpf_skb_pull_data.md) + * [`bpf_csum_diff`](../helper-function/bpf_csum_diff.md) + * [`bpf_get_cgroup_classid`](../helper-function/bpf_get_cgroup_classid.md) + * [`bpf_get_route_realm`](../helper-function/bpf_get_route_realm.md) + * [`bpf_get_hash_recalc`](../helper-function/bpf_get_hash_recalc.md) + * [`bpf_perf_event_output`](../helper-function/bpf_perf_event_output.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_skb_under_cgroup`](../helper-function/bpf_skb_under_cgroup.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_loop`](../helper-function/bpf_loop.md) + * [`bpf_strncmp`](../helper-function/bpf_strncmp.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_timer_init`](../helper-function/bpf_timer_init.md) + * [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) + * [`bpf_timer_start`](../helper-function/bpf_timer_start.md) + * [`bpf_timer_cancel`](../helper-function/bpf_timer_cancel.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) ## KFuncs ??? abstract "Supported kfuncs" - - [bpf_arena_alloc_pages](../kfuncs/bpf_arena_alloc_pages.md) - - [bpf_arena_free_pages](../kfuncs/bpf_arena_free_pages.md) - - [bpf_cast_to_kern_ctx](../kfuncs/bpf_cast_to_kern_ctx.md) - - [bpf_dynptr_adjust](../kfuncs/bpf_dynptr_adjust.md) - - [bpf_dynptr_clone](../kfuncs/bpf_dynptr_clone.md) - - [bpf_dynptr_from_skb](../kfuncs/bpf_dynptr_from_skb.md) - - [bpf_dynptr_is_null](../kfuncs/bpf_dynptr_is_null.md) - - [bpf_dynptr_is_rdonly](../kfuncs/bpf_dynptr_is_rdonly.md) - - [bpf_dynptr_size](../kfuncs/bpf_dynptr_size.md) - - [bpf_dynptr_slice](../kfuncs/bpf_dynptr_slice.md) - - [bpf_dynptr_slice_rdwr](../kfuncs/bpf_dynptr_slice_rdwr.md) - - [bpf_iter_css_destroy](../kfuncs/bpf_iter_css_destroy.md) - - [bpf_iter_css_new](../kfuncs/bpf_iter_css_new.md) - - [bpf_iter_css_next](../kfuncs/bpf_iter_css_next.md) - - [bpf_iter_css_task_destroy](../kfuncs/bpf_iter_css_task_destroy.md) - - [bpf_iter_css_task_new](../kfuncs/bpf_iter_css_task_new.md) - - [bpf_iter_css_task_next](../kfuncs/bpf_iter_css_task_next.md) - - [bpf_iter_num_destroy](../kfuncs/bpf_iter_num_destroy.md) - - [bpf_iter_num_new](../kfuncs/bpf_iter_num_new.md) - - [bpf_iter_num_next](../kfuncs/bpf_iter_num_next.md) - - [bpf_iter_task_destroy](../kfuncs/bpf_iter_task_destroy.md) - - [bpf_iter_task_new](../kfuncs/bpf_iter_task_new.md) - - [bpf_iter_task_next](../kfuncs/bpf_iter_task_next.md) - - [bpf_iter_task_vma_destroy](../kfuncs/bpf_iter_task_vma_destroy.md) - - [bpf_iter_task_vma_new](../kfuncs/bpf_iter_task_vma_new.md) - - [bpf_iter_task_vma_next](../kfuncs/bpf_iter_task_vma_next.md) - - [bpf_map_sum_elem_count](../kfuncs/bpf_map_sum_elem_count.md) - - [bpf_preempt_disable](../kfuncs/bpf_preempt_disable.md) - - [bpf_preempt_enable](../kfuncs/bpf_preempt_enable.md) - - [bpf_rcu_read_lock](../kfuncs/bpf_rcu_read_lock.md) - - [bpf_rcu_read_unlock](../kfuncs/bpf_rcu_read_unlock.md) - - [bpf_rdonly_cast](../kfuncs/bpf_rdonly_cast.md) - - [bpf_wq_init](../kfuncs/bpf_wq_init.md) - - [bpf_wq_set_callback_impl](../kfuncs/bpf_wq_set_callback_impl.md) - - [bpf_wq_start](../kfuncs/bpf_wq_start.md) + - [`bpf_arena_alloc_pages`](../kfuncs/bpf_arena_alloc_pages.md) + - [`bpf_arena_free_pages`](../kfuncs/bpf_arena_free_pages.md) + - [`bpf_cast_to_kern_ctx`](../kfuncs/bpf_cast_to_kern_ctx.md) + - [`bpf_dynptr_adjust`](../kfuncs/bpf_dynptr_adjust.md) + - [`bpf_dynptr_clone`](../kfuncs/bpf_dynptr_clone.md) + - [`bpf_dynptr_from_skb`](../kfuncs/bpf_dynptr_from_skb.md) + - [`bpf_dynptr_is_null`](../kfuncs/bpf_dynptr_is_null.md) + - [`bpf_dynptr_is_rdonly`](../kfuncs/bpf_dynptr_is_rdonly.md) + - [`bpf_dynptr_size`](../kfuncs/bpf_dynptr_size.md) + - [`bpf_dynptr_slice`](../kfuncs/bpf_dynptr_slice.md) + - [`bpf_dynptr_slice_rdwr`](../kfuncs/bpf_dynptr_slice_rdwr.md) + - [`bpf_iter_css_destroy`](../kfuncs/bpf_iter_css_destroy.md) + - [`bpf_iter_css_new`](../kfuncs/bpf_iter_css_new.md) + - [`bpf_iter_css_next`](../kfuncs/bpf_iter_css_next.md) + - [`bpf_iter_css_task_destroy`](../kfuncs/bpf_iter_css_task_destroy.md) + - [`bpf_iter_css_task_new`](../kfuncs/bpf_iter_css_task_new.md) + - [`bpf_iter_css_task_next`](../kfuncs/bpf_iter_css_task_next.md) + - [`bpf_iter_num_destroy`](../kfuncs/bpf_iter_num_destroy.md) + - [`bpf_iter_num_new`](../kfuncs/bpf_iter_num_new.md) + - [`bpf_iter_num_next`](../kfuncs/bpf_iter_num_next.md) + - [`bpf_iter_task_destroy`](../kfuncs/bpf_iter_task_destroy.md) + - [`bpf_iter_task_new`](../kfuncs/bpf_iter_task_new.md) + - [`bpf_iter_task_next`](../kfuncs/bpf_iter_task_next.md) + - [`bpf_iter_task_vma_destroy`](../kfuncs/bpf_iter_task_vma_destroy.md) + - [`bpf_iter_task_vma_new`](../kfuncs/bpf_iter_task_vma_new.md) + - [`bpf_iter_task_vma_next`](../kfuncs/bpf_iter_task_vma_next.md) + - [`bpf_map_sum_elem_count`](../kfuncs/bpf_map_sum_elem_count.md) + - [`bpf_preempt_disable`](../kfuncs/bpf_preempt_disable.md) + - [`bpf_preempt_enable`](../kfuncs/bpf_preempt_enable.md) + - [`bpf_rcu_read_lock`](../kfuncs/bpf_rcu_read_lock.md) + - [`bpf_rcu_read_unlock`](../kfuncs/bpf_rcu_read_unlock.md) + - [`bpf_rdonly_cast`](../kfuncs/bpf_rdonly_cast.md) + - [`bpf_wq_init`](../kfuncs/bpf_wq_init.md) + - [`bpf_wq_set_callback_impl`](../kfuncs/bpf_wq_set_callback_impl.md) + - [`bpf_wq_start`](../kfuncs/bpf_wq_start.md) diff --git a/docs/linux/program-type/BPF_PROG_TYPE_LWT_OUT.md b/docs/linux/program-type/BPF_PROG_TYPE_LWT_OUT.md index 8db7e343..9a5816ee 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_LWT_OUT.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_LWT_OUT.md @@ -151,96 +151,96 @@ Not all helper functions are available in all program types. These are the helpe ??? abstract "Supported helper functions" - * [bpf_skb_load_bytes](../helper-function/bpf_skb_load_bytes.md) - * [bpf_skb_pull_data](../helper-function/bpf_skb_pull_data.md) - * [bpf_csum_diff](../helper-function/bpf_csum_diff.md) - * [bpf_get_cgroup_classid](../helper-function/bpf_get_cgroup_classid.md) - * [bpf_get_route_realm](../helper-function/bpf_get_route_realm.md) - * [bpf_get_hash_recalc](../helper-function/bpf_get_hash_recalc.md) - * [bpf_perf_event_output](../helper-function/bpf_perf_event_output.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_skb_under_cgroup](../helper-function/bpf_skb_under_cgroup.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_loop](../helper-function/bpf_loop.md) - * [bpf_strncmp](../helper-function/bpf_strncmp.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_timer_init](../helper-function/bpf_timer_init.md) - * [bpf_timer_set_callback](../helper-function/bpf_timer_set_callback.md) - * [bpf_timer_start](../helper-function/bpf_timer_start.md) - * [bpf_timer_cancel](../helper-function/bpf_timer_cancel.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) + * [`bpf_skb_load_bytes`](../helper-function/bpf_skb_load_bytes.md) + * [`bpf_skb_pull_data`](../helper-function/bpf_skb_pull_data.md) + * [`bpf_csum_diff`](../helper-function/bpf_csum_diff.md) + * [`bpf_get_cgroup_classid`](../helper-function/bpf_get_cgroup_classid.md) + * [`bpf_get_route_realm`](../helper-function/bpf_get_route_realm.md) + * [`bpf_get_hash_recalc`](../helper-function/bpf_get_hash_recalc.md) + * [`bpf_perf_event_output`](../helper-function/bpf_perf_event_output.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_skb_under_cgroup`](../helper-function/bpf_skb_under_cgroup.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_loop`](../helper-function/bpf_loop.md) + * [`bpf_strncmp`](../helper-function/bpf_strncmp.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_timer_init`](../helper-function/bpf_timer_init.md) + * [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) + * [`bpf_timer_start`](../helper-function/bpf_timer_start.md) + * [`bpf_timer_cancel`](../helper-function/bpf_timer_cancel.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) ## KFuncs ??? abstract "Supported kfuncs" - - [bpf_arena_alloc_pages](../kfuncs/bpf_arena_alloc_pages.md) - - [bpf_arena_free_pages](../kfuncs/bpf_arena_free_pages.md) - - [bpf_cast_to_kern_ctx](../kfuncs/bpf_cast_to_kern_ctx.md) - - [bpf_dynptr_adjust](../kfuncs/bpf_dynptr_adjust.md) - - [bpf_dynptr_clone](../kfuncs/bpf_dynptr_clone.md) - - [bpf_dynptr_from_skb](../kfuncs/bpf_dynptr_from_skb.md) - - [bpf_dynptr_is_null](../kfuncs/bpf_dynptr_is_null.md) - - [bpf_dynptr_is_rdonly](../kfuncs/bpf_dynptr_is_rdonly.md) - - [bpf_dynptr_size](../kfuncs/bpf_dynptr_size.md) - - [bpf_dynptr_slice](../kfuncs/bpf_dynptr_slice.md) - - [bpf_dynptr_slice_rdwr](../kfuncs/bpf_dynptr_slice_rdwr.md) - - [bpf_iter_css_destroy](../kfuncs/bpf_iter_css_destroy.md) - - [bpf_iter_css_new](../kfuncs/bpf_iter_css_new.md) - - [bpf_iter_css_next](../kfuncs/bpf_iter_css_next.md) - - [bpf_iter_css_task_destroy](../kfuncs/bpf_iter_css_task_destroy.md) - - [bpf_iter_css_task_new](../kfuncs/bpf_iter_css_task_new.md) - - [bpf_iter_css_task_next](../kfuncs/bpf_iter_css_task_next.md) - - [bpf_iter_num_destroy](../kfuncs/bpf_iter_num_destroy.md) - - [bpf_iter_num_new](../kfuncs/bpf_iter_num_new.md) - - [bpf_iter_num_next](../kfuncs/bpf_iter_num_next.md) - - [bpf_iter_task_destroy](../kfuncs/bpf_iter_task_destroy.md) - - [bpf_iter_task_new](../kfuncs/bpf_iter_task_new.md) - - [bpf_iter_task_next](../kfuncs/bpf_iter_task_next.md) - - [bpf_iter_task_vma_destroy](../kfuncs/bpf_iter_task_vma_destroy.md) - - [bpf_iter_task_vma_new](../kfuncs/bpf_iter_task_vma_new.md) - - [bpf_iter_task_vma_next](../kfuncs/bpf_iter_task_vma_next.md) - - [bpf_map_sum_elem_count](../kfuncs/bpf_map_sum_elem_count.md) - - [bpf_preempt_disable](../kfuncs/bpf_preempt_disable.md) - - [bpf_preempt_enable](../kfuncs/bpf_preempt_enable.md) - - [bpf_rcu_read_lock](../kfuncs/bpf_rcu_read_lock.md) - - [bpf_rcu_read_unlock](../kfuncs/bpf_rcu_read_unlock.md) - - [bpf_rdonly_cast](../kfuncs/bpf_rdonly_cast.md) - - [bpf_wq_init](../kfuncs/bpf_wq_init.md) - - [bpf_wq_set_callback_impl](../kfuncs/bpf_wq_set_callback_impl.md) - - [bpf_wq_start](../kfuncs/bpf_wq_start.md) + - [`bpf_arena_alloc_pages`](../kfuncs/bpf_arena_alloc_pages.md) + - [`bpf_arena_free_pages`](../kfuncs/bpf_arena_free_pages.md) + - [`bpf_cast_to_kern_ctx`](../kfuncs/bpf_cast_to_kern_ctx.md) + - [`bpf_dynptr_adjust`](../kfuncs/bpf_dynptr_adjust.md) + - [`bpf_dynptr_clone`](../kfuncs/bpf_dynptr_clone.md) + - [`bpf_dynptr_from_skb`](../kfuncs/bpf_dynptr_from_skb.md) + - [`bpf_dynptr_is_null`](../kfuncs/bpf_dynptr_is_null.md) + - [`bpf_dynptr_is_rdonly`](../kfuncs/bpf_dynptr_is_rdonly.md) + - [`bpf_dynptr_size`](../kfuncs/bpf_dynptr_size.md) + - [`bpf_dynptr_slice`](../kfuncs/bpf_dynptr_slice.md) + - [`bpf_dynptr_slice_rdwr`](../kfuncs/bpf_dynptr_slice_rdwr.md) + - [`bpf_iter_css_destroy`](../kfuncs/bpf_iter_css_destroy.md) + - [`bpf_iter_css_new`](../kfuncs/bpf_iter_css_new.md) + - [`bpf_iter_css_next`](../kfuncs/bpf_iter_css_next.md) + - [`bpf_iter_css_task_destroy`](../kfuncs/bpf_iter_css_task_destroy.md) + - [`bpf_iter_css_task_new`](../kfuncs/bpf_iter_css_task_new.md) + - [`bpf_iter_css_task_next`](../kfuncs/bpf_iter_css_task_next.md) + - [`bpf_iter_num_destroy`](../kfuncs/bpf_iter_num_destroy.md) + - [`bpf_iter_num_new`](../kfuncs/bpf_iter_num_new.md) + - [`bpf_iter_num_next`](../kfuncs/bpf_iter_num_next.md) + - [`bpf_iter_task_destroy`](../kfuncs/bpf_iter_task_destroy.md) + - [`bpf_iter_task_new`](../kfuncs/bpf_iter_task_new.md) + - [`bpf_iter_task_next`](../kfuncs/bpf_iter_task_next.md) + - [`bpf_iter_task_vma_destroy`](../kfuncs/bpf_iter_task_vma_destroy.md) + - [`bpf_iter_task_vma_new`](../kfuncs/bpf_iter_task_vma_new.md) + - [`bpf_iter_task_vma_next`](../kfuncs/bpf_iter_task_vma_next.md) + - [`bpf_map_sum_elem_count`](../kfuncs/bpf_map_sum_elem_count.md) + - [`bpf_preempt_disable`](../kfuncs/bpf_preempt_disable.md) + - [`bpf_preempt_enable`](../kfuncs/bpf_preempt_enable.md) + - [`bpf_rcu_read_lock`](../kfuncs/bpf_rcu_read_lock.md) + - [`bpf_rcu_read_unlock`](../kfuncs/bpf_rcu_read_unlock.md) + - [`bpf_rdonly_cast`](../kfuncs/bpf_rdonly_cast.md) + - [`bpf_wq_init`](../kfuncs/bpf_wq_init.md) + - [`bpf_wq_set_callback_impl`](../kfuncs/bpf_wq_set_callback_impl.md) + - [`bpf_wq_start`](../kfuncs/bpf_wq_start.md) diff --git a/docs/linux/program-type/BPF_PROG_TYPE_LWT_XMIT.md b/docs/linux/program-type/BPF_PROG_TYPE_LWT_XMIT.md index 14491e6c..7e8e06d5 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_LWT_XMIT.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_LWT_XMIT.md @@ -89,111 +89,111 @@ Not all helper functions are available in all program types. These are the helpe ??? abstract "Supported helper functions" - * [bpf_skb_get_tunnel_key](../helper-function/bpf_skb_get_tunnel_key.md) - * [bpf_skb_set_tunnel_key](../helper-function/bpf_skb_set_tunnel_key.md) - * [bpf_skb_get_tunnel_opt](../helper-function/bpf_skb_get_tunnel_opt.md) - * [bpf_skb_set_tunnel_opt](../helper-function/bpf_skb_set_tunnel_opt.md) - * [bpf_redirect](../helper-function/bpf_redirect.md) - * [bpf_clone_redirect](../helper-function/bpf_clone_redirect.md) - * [bpf_skb_change_tail](../helper-function/bpf_skb_change_tail.md) - * [bpf_skb_change_head](../helper-function/bpf_skb_change_head.md) - * [bpf_skb_store_bytes](../helper-function/bpf_skb_store_bytes.md) - * [bpf_csum_update](../helper-function/bpf_csum_update.md) - * [bpf_csum_level](../helper-function/bpf_csum_level.md) - * [bpf_l3_csum_replace](../helper-function/bpf_l3_csum_replace.md) - * [bpf_l4_csum_replace](../helper-function/bpf_l4_csum_replace.md) - * [bpf_set_hash_invalid](../helper-function/bpf_set_hash_invalid.md) - * [bpf_lwt_push_encap](../helper-function/bpf_lwt_push_encap.md) - * [bpf_skb_load_bytes](../helper-function/bpf_skb_load_bytes.md) - * [bpf_skb_pull_data](../helper-function/bpf_skb_pull_data.md) - * [bpf_csum_diff](../helper-function/bpf_csum_diff.md) - * [bpf_get_cgroup_classid](../helper-function/bpf_get_cgroup_classid.md) - * [bpf_get_route_realm](../helper-function/bpf_get_route_realm.md) - * [bpf_get_hash_recalc](../helper-function/bpf_get_hash_recalc.md) - * [bpf_perf_event_output](../helper-function/bpf_perf_event_output.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_skb_under_cgroup](../helper-function/bpf_skb_under_cgroup.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_loop](../helper-function/bpf_loop.md) - * [bpf_strncmp](../helper-function/bpf_strncmp.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_timer_init](../helper-function/bpf_timer_init.md) - * [bpf_timer_set_callback](../helper-function/bpf_timer_set_callback.md) - * [bpf_timer_start](../helper-function/bpf_timer_start.md) - * [bpf_timer_cancel](../helper-function/bpf_timer_cancel.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) + * [`bpf_skb_get_tunnel_key`](../helper-function/bpf_skb_get_tunnel_key.md) + * [`bpf_skb_set_tunnel_key`](../helper-function/bpf_skb_set_tunnel_key.md) + * [`bpf_skb_get_tunnel_opt`](../helper-function/bpf_skb_get_tunnel_opt.md) + * [`bpf_skb_set_tunnel_opt`](../helper-function/bpf_skb_set_tunnel_opt.md) + * [`bpf_redirect`](../helper-function/bpf_redirect.md) + * [`bpf_clone_redirect`](../helper-function/bpf_clone_redirect.md) + * [`bpf_skb_change_tail`](../helper-function/bpf_skb_change_tail.md) + * [`bpf_skb_change_head`](../helper-function/bpf_skb_change_head.md) + * [`bpf_skb_store_bytes`](../helper-function/bpf_skb_store_bytes.md) + * [`bpf_csum_update`](../helper-function/bpf_csum_update.md) + * [`bpf_csum_level`](../helper-function/bpf_csum_level.md) + * [`bpf_l3_csum_replace`](../helper-function/bpf_l3_csum_replace.md) + * [`bpf_l4_csum_replace`](../helper-function/bpf_l4_csum_replace.md) + * [`bpf_set_hash_invalid`](../helper-function/bpf_set_hash_invalid.md) + * [`bpf_lwt_push_encap`](../helper-function/bpf_lwt_push_encap.md) + * [`bpf_skb_load_bytes`](../helper-function/bpf_skb_load_bytes.md) + * [`bpf_skb_pull_data`](../helper-function/bpf_skb_pull_data.md) + * [`bpf_csum_diff`](../helper-function/bpf_csum_diff.md) + * [`bpf_get_cgroup_classid`](../helper-function/bpf_get_cgroup_classid.md) + * [`bpf_get_route_realm`](../helper-function/bpf_get_route_realm.md) + * [`bpf_get_hash_recalc`](../helper-function/bpf_get_hash_recalc.md) + * [`bpf_perf_event_output`](../helper-function/bpf_perf_event_output.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_skb_under_cgroup`](../helper-function/bpf_skb_under_cgroup.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_loop`](../helper-function/bpf_loop.md) + * [`bpf_strncmp`](../helper-function/bpf_strncmp.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_timer_init`](../helper-function/bpf_timer_init.md) + * [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) + * [`bpf_timer_start`](../helper-function/bpf_timer_start.md) + * [`bpf_timer_cancel`](../helper-function/bpf_timer_cancel.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) ## KFuncs ??? abstract "Supported kfuncs" - - [bpf_arena_alloc_pages](../kfuncs/bpf_arena_alloc_pages.md) - - [bpf_arena_free_pages](../kfuncs/bpf_arena_free_pages.md) - - [bpf_cast_to_kern_ctx](../kfuncs/bpf_cast_to_kern_ctx.md) - - [bpf_dynptr_adjust](../kfuncs/bpf_dynptr_adjust.md) - - [bpf_dynptr_clone](../kfuncs/bpf_dynptr_clone.md) - - [bpf_dynptr_from_skb](../kfuncs/bpf_dynptr_from_skb.md) - - [bpf_dynptr_is_null](../kfuncs/bpf_dynptr_is_null.md) - - [bpf_dynptr_is_rdonly](../kfuncs/bpf_dynptr_is_rdonly.md) - - [bpf_dynptr_size](../kfuncs/bpf_dynptr_size.md) - - [bpf_dynptr_slice](../kfuncs/bpf_dynptr_slice.md) - - [bpf_dynptr_slice_rdwr](../kfuncs/bpf_dynptr_slice_rdwr.md) - - [bpf_iter_css_destroy](../kfuncs/bpf_iter_css_destroy.md) - - [bpf_iter_css_new](../kfuncs/bpf_iter_css_new.md) - - [bpf_iter_css_next](../kfuncs/bpf_iter_css_next.md) - - [bpf_iter_css_task_destroy](../kfuncs/bpf_iter_css_task_destroy.md) - - [bpf_iter_css_task_new](../kfuncs/bpf_iter_css_task_new.md) - - [bpf_iter_css_task_next](../kfuncs/bpf_iter_css_task_next.md) - - [bpf_iter_num_destroy](../kfuncs/bpf_iter_num_destroy.md) - - [bpf_iter_num_new](../kfuncs/bpf_iter_num_new.md) - - [bpf_iter_num_next](../kfuncs/bpf_iter_num_next.md) - - [bpf_iter_task_destroy](../kfuncs/bpf_iter_task_destroy.md) - - [bpf_iter_task_new](../kfuncs/bpf_iter_task_new.md) - - [bpf_iter_task_next](../kfuncs/bpf_iter_task_next.md) - - [bpf_iter_task_vma_destroy](../kfuncs/bpf_iter_task_vma_destroy.md) - - [bpf_iter_task_vma_new](../kfuncs/bpf_iter_task_vma_new.md) - - [bpf_iter_task_vma_next](../kfuncs/bpf_iter_task_vma_next.md) - - [bpf_map_sum_elem_count](../kfuncs/bpf_map_sum_elem_count.md) - - [bpf_preempt_disable](../kfuncs/bpf_preempt_disable.md) - - [bpf_preempt_enable](../kfuncs/bpf_preempt_enable.md) - - [bpf_rcu_read_lock](../kfuncs/bpf_rcu_read_lock.md) - - [bpf_rcu_read_unlock](../kfuncs/bpf_rcu_read_unlock.md) - - [bpf_rdonly_cast](../kfuncs/bpf_rdonly_cast.md) - - [bpf_wq_init](../kfuncs/bpf_wq_init.md) - - [bpf_wq_set_callback_impl](../kfuncs/bpf_wq_set_callback_impl.md) - - [bpf_wq_start](../kfuncs/bpf_wq_start.md) + - [`bpf_arena_alloc_pages`](../kfuncs/bpf_arena_alloc_pages.md) + - [`bpf_arena_free_pages`](../kfuncs/bpf_arena_free_pages.md) + - [`bpf_cast_to_kern_ctx`](../kfuncs/bpf_cast_to_kern_ctx.md) + - [`bpf_dynptr_adjust`](../kfuncs/bpf_dynptr_adjust.md) + - [`bpf_dynptr_clone`](../kfuncs/bpf_dynptr_clone.md) + - [`bpf_dynptr_from_skb`](../kfuncs/bpf_dynptr_from_skb.md) + - [`bpf_dynptr_is_null`](../kfuncs/bpf_dynptr_is_null.md) + - [`bpf_dynptr_is_rdonly`](../kfuncs/bpf_dynptr_is_rdonly.md) + - [`bpf_dynptr_size`](../kfuncs/bpf_dynptr_size.md) + - [`bpf_dynptr_slice`](../kfuncs/bpf_dynptr_slice.md) + - [`bpf_dynptr_slice_rdwr`](../kfuncs/bpf_dynptr_slice_rdwr.md) + - [`bpf_iter_css_destroy`](../kfuncs/bpf_iter_css_destroy.md) + - [`bpf_iter_css_new`](../kfuncs/bpf_iter_css_new.md) + - [`bpf_iter_css_next`](../kfuncs/bpf_iter_css_next.md) + - [`bpf_iter_css_task_destroy`](../kfuncs/bpf_iter_css_task_destroy.md) + - [`bpf_iter_css_task_new`](../kfuncs/bpf_iter_css_task_new.md) + - [`bpf_iter_css_task_next`](../kfuncs/bpf_iter_css_task_next.md) + - [`bpf_iter_num_destroy`](../kfuncs/bpf_iter_num_destroy.md) + - [`bpf_iter_num_new`](../kfuncs/bpf_iter_num_new.md) + - [`bpf_iter_num_next`](../kfuncs/bpf_iter_num_next.md) + - [`bpf_iter_task_destroy`](../kfuncs/bpf_iter_task_destroy.md) + - [`bpf_iter_task_new`](../kfuncs/bpf_iter_task_new.md) + - [`bpf_iter_task_next`](../kfuncs/bpf_iter_task_next.md) + - [`bpf_iter_task_vma_destroy`](../kfuncs/bpf_iter_task_vma_destroy.md) + - [`bpf_iter_task_vma_new`](../kfuncs/bpf_iter_task_vma_new.md) + - [`bpf_iter_task_vma_next`](../kfuncs/bpf_iter_task_vma_next.md) + - [`bpf_map_sum_elem_count`](../kfuncs/bpf_map_sum_elem_count.md) + - [`bpf_preempt_disable`](../kfuncs/bpf_preempt_disable.md) + - [`bpf_preempt_enable`](../kfuncs/bpf_preempt_enable.md) + - [`bpf_rcu_read_lock`](../kfuncs/bpf_rcu_read_lock.md) + - [`bpf_rcu_read_unlock`](../kfuncs/bpf_rcu_read_unlock.md) + - [`bpf_rdonly_cast`](../kfuncs/bpf_rdonly_cast.md) + - [`bpf_wq_init`](../kfuncs/bpf_wq_init.md) + - [`bpf_wq_set_callback_impl`](../kfuncs/bpf_wq_set_callback_impl.md) + - [`bpf_wq_start`](../kfuncs/bpf_wq_start.md) diff --git a/docs/linux/program-type/BPF_PROG_TYPE_PERF_EVENT.md b/docs/linux/program-type/BPF_PROG_TYPE_PERF_EVENT.md index 30214dd4..70560464 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_PERF_EVENT.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_PERF_EVENT.md @@ -221,108 +221,108 @@ We call the syscall command with the [`BPF_PERF_EVENT`](../syscall/BPF_LINK_CREA ??? abstract "Supported helper functions" - * [bpf_perf_event_output](../helper-function/bpf_perf_event_output.md) - * [bpf_get_stackid](../helper-function/bpf_get_stackid.md) - * [bpf_get_stack](../helper-function/bpf_get_stack.md) - * [bpf_perf_prog_read_value](../helper-function/bpf_perf_prog_read_value.md) - * [bpf_read_branch_records](../helper-function/bpf_read_branch_records.md) - * [bpf_get_attach_cookie](../helper-function/bpf_get_attach_cookie.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_get_current_pid_tgid](../helper-function/bpf_get_current_pid_tgid.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_get_current_uid_gid](../helper-function/bpf_get_current_uid_gid.md) - * [bpf_get_current_comm](../helper-function/bpf_get_current_comm.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_perf_event_read](../helper-function/bpf_perf_event_read.md) - * [bpf_current_task_under_cgroup](../helper-function/bpf_current_task_under_cgroup.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_probe_write_user](../helper-function/bpf_probe_write_user.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_probe_read](../helper-function/bpf_probe_read.md) - * [bpf_probe_read_str](../helper-function/bpf_probe_read_str.md) - * [bpf_get_current_cgroup_id](../helper-function/bpf_get_current_cgroup_id.md) - * [bpf_get_current_ancestor_cgroup_id](../helper-function/bpf_get_current_ancestor_cgroup_id.md) - * [bpf_send_signal](../helper-function/bpf_send_signal.md) - * [bpf_send_signal_thread](../helper-function/bpf_send_signal_thread.md) - * [bpf_perf_event_read_value](../helper-function/bpf_perf_event_read_value.md) - * [bpf_get_ns_current_pid_tgid](../helper-function/bpf_get_ns_current_pid_tgid.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_get_task_stack](../helper-function/bpf_get_task_stack.md) - * [bpf_copy_from_user](../helper-function/bpf_copy_from_user.md) - * [bpf_copy_from_user_task](../helper-function/bpf_copy_from_user_task.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_task_storage_get](../helper-function/bpf_task_storage_get.md) - * [bpf_task_storage_delete](../helper-function/bpf_task_storage_delete.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_get_func_ip](../helper-function/bpf_get_func_ip.md) - * [bpf_get_branch_snapshot](../helper-function/bpf_get_branch_snapshot.md) - * [bpf_find_vma](../helper-function/bpf_find_vma.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_loop](../helper-function/bpf_loop.md) - * [bpf_strncmp](../helper-function/bpf_strncmp.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_timer_init](../helper-function/bpf_timer_init.md) - * [bpf_timer_set_callback](../helper-function/bpf_timer_set_callback.md) - * [bpf_timer_start](../helper-function/bpf_timer_start.md) - * [bpf_timer_cancel](../helper-function/bpf_timer_cancel.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) + * [`bpf_perf_event_output`](../helper-function/bpf_perf_event_output.md) + * [`bpf_get_stackid`](../helper-function/bpf_get_stackid.md) + * [`bpf_get_stack`](../helper-function/bpf_get_stack.md) + * [`bpf_perf_prog_read_value`](../helper-function/bpf_perf_prog_read_value.md) + * [`bpf_read_branch_records`](../helper-function/bpf_read_branch_records.md) + * [`bpf_get_attach_cookie`](../helper-function/bpf_get_attach_cookie.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_get_current_pid_tgid`](../helper-function/bpf_get_current_pid_tgid.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_get_current_uid_gid`](../helper-function/bpf_get_current_uid_gid.md) + * [`bpf_get_current_comm`](../helper-function/bpf_get_current_comm.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_perf_event_read`](../helper-function/bpf_perf_event_read.md) + * [`bpf_current_task_under_cgroup`](../helper-function/bpf_current_task_under_cgroup.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_probe_write_user`](../helper-function/bpf_probe_write_user.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_probe_read`](../helper-function/bpf_probe_read.md) + * [`bpf_probe_read_str`](../helper-function/bpf_probe_read_str.md) + * [`bpf_get_current_cgroup_id`](../helper-function/bpf_get_current_cgroup_id.md) + * [`bpf_get_current_ancestor_cgroup_id`](../helper-function/bpf_get_current_ancestor_cgroup_id.md) + * [`bpf_send_signal`](../helper-function/bpf_send_signal.md) + * [`bpf_send_signal_thread`](../helper-function/bpf_send_signal_thread.md) + * [`bpf_perf_event_read_value`](../helper-function/bpf_perf_event_read_value.md) + * [`bpf_get_ns_current_pid_tgid`](../helper-function/bpf_get_ns_current_pid_tgid.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_get_task_stack`](../helper-function/bpf_get_task_stack.md) + * [`bpf_copy_from_user`](../helper-function/bpf_copy_from_user.md) + * [`bpf_copy_from_user_task`](../helper-function/bpf_copy_from_user_task.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_task_storage_get`](../helper-function/bpf_task_storage_get.md) + * [`bpf_task_storage_delete`](../helper-function/bpf_task_storage_delete.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_get_func_ip`](../helper-function/bpf_get_func_ip.md) + * [`bpf_get_branch_snapshot`](../helper-function/bpf_get_branch_snapshot.md) + * [`bpf_find_vma`](../helper-function/bpf_find_vma.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_loop`](../helper-function/bpf_loop.md) + * [`bpf_strncmp`](../helper-function/bpf_strncmp.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_timer_init`](../helper-function/bpf_timer_init.md) + * [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) + * [`bpf_timer_start`](../helper-function/bpf_timer_start.md) + * [`bpf_timer_cancel`](../helper-function/bpf_timer_cancel.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md b/docs/linux/program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md index 0d9041b4..4dc6a477 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md @@ -229,105 +229,105 @@ Not all helper functions are available in all program types. These are the helpe ??? abstract "Supported helper functions" - * [bpf_perf_event_output](../helper-function/bpf_perf_event_output.md) - * [bpf_get_stackid](../helper-function/bpf_get_stackid.md) - * [bpf_get_stack](../helper-function/bpf_get_stack.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_get_current_pid_tgid](../helper-function/bpf_get_current_pid_tgid.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_get_current_uid_gid](../helper-function/bpf_get_current_uid_gid.md) - * [bpf_get_current_comm](../helper-function/bpf_get_current_comm.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_perf_event_read](../helper-function/bpf_perf_event_read.md) - * [bpf_current_task_under_cgroup](../helper-function/bpf_current_task_under_cgroup.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_probe_write_user](../helper-function/bpf_probe_write_user.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_probe_read](../helper-function/bpf_probe_read.md) - * [bpf_probe_read_str](../helper-function/bpf_probe_read_str.md) - * [bpf_get_current_cgroup_id](../helper-function/bpf_get_current_cgroup_id.md) - * [bpf_get_current_ancestor_cgroup_id](../helper-function/bpf_get_current_ancestor_cgroup_id.md) - * [bpf_send_signal](../helper-function/bpf_send_signal.md) - * [bpf_send_signal_thread](../helper-function/bpf_send_signal_thread.md) - * [bpf_perf_event_read_value](../helper-function/bpf_perf_event_read_value.md) - * [bpf_get_ns_current_pid_tgid](../helper-function/bpf_get_ns_current_pid_tgid.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_get_task_stack](../helper-function/bpf_get_task_stack.md) - * [bpf_copy_from_user](../helper-function/bpf_copy_from_user.md) - * [bpf_copy_from_user_task](../helper-function/bpf_copy_from_user_task.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_task_storage_get](../helper-function/bpf_task_storage_get.md) - * [bpf_task_storage_delete](../helper-function/bpf_task_storage_delete.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_get_func_ip](../helper-function/bpf_get_func_ip.md) - * [bpf_get_branch_snapshot](../helper-function/bpf_get_branch_snapshot.md) - * [bpf_find_vma](../helper-function/bpf_find_vma.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_loop](../helper-function/bpf_loop.md) - * [bpf_strncmp](../helper-function/bpf_strncmp.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_timer_init](../helper-function/bpf_timer_init.md) - * [bpf_timer_set_callback](../helper-function/bpf_timer_set_callback.md) - * [bpf_timer_start](../helper-function/bpf_timer_start.md) - * [bpf_timer_cancel](../helper-function/bpf_timer_cancel.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) + * [`bpf_perf_event_output`](../helper-function/bpf_perf_event_output.md) + * [`bpf_get_stackid`](../helper-function/bpf_get_stackid.md) + * [`bpf_get_stack`](../helper-function/bpf_get_stack.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_get_current_pid_tgid`](../helper-function/bpf_get_current_pid_tgid.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_get_current_uid_gid`](../helper-function/bpf_get_current_uid_gid.md) + * [`bpf_get_current_comm`](../helper-function/bpf_get_current_comm.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_perf_event_read`](../helper-function/bpf_perf_event_read.md) + * [`bpf_current_task_under_cgroup`](../helper-function/bpf_current_task_under_cgroup.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_probe_write_user`](../helper-function/bpf_probe_write_user.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_probe_read`](../helper-function/bpf_probe_read.md) + * [`bpf_probe_read_str`](../helper-function/bpf_probe_read_str.md) + * [`bpf_get_current_cgroup_id`](../helper-function/bpf_get_current_cgroup_id.md) + * [`bpf_get_current_ancestor_cgroup_id`](../helper-function/bpf_get_current_ancestor_cgroup_id.md) + * [`bpf_send_signal`](../helper-function/bpf_send_signal.md) + * [`bpf_send_signal_thread`](../helper-function/bpf_send_signal_thread.md) + * [`bpf_perf_event_read_value`](../helper-function/bpf_perf_event_read_value.md) + * [`bpf_get_ns_current_pid_tgid`](../helper-function/bpf_get_ns_current_pid_tgid.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_get_task_stack`](../helper-function/bpf_get_task_stack.md) + * [`bpf_copy_from_user`](../helper-function/bpf_copy_from_user.md) + * [`bpf_copy_from_user_task`](../helper-function/bpf_copy_from_user_task.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_task_storage_get`](../helper-function/bpf_task_storage_get.md) + * [`bpf_task_storage_delete`](../helper-function/bpf_task_storage_delete.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_get_func_ip`](../helper-function/bpf_get_func_ip.md) + * [`bpf_get_branch_snapshot`](../helper-function/bpf_get_branch_snapshot.md) + * [`bpf_find_vma`](../helper-function/bpf_find_vma.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_loop`](../helper-function/bpf_loop.md) + * [`bpf_strncmp`](../helper-function/bpf_strncmp.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_timer_init`](../helper-function/bpf_timer_init.md) + * [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) + * [`bpf_timer_start`](../helper-function/bpf_timer_start.md) + * [`bpf_timer_cancel`](../helper-function/bpf_timer_cancel.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md b/docs/linux/program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md index 081ffd42..51edb480 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md @@ -24,105 +24,105 @@ Not all helper functions are available in all program types. These are the helpe ??? abstract "Supported helper functions" - * [bpf_perf_event_output](../helper-function/bpf_perf_event_output.md) - * [bpf_get_stackid](../helper-function/bpf_get_stackid.md) - * [bpf_get_stack](../helper-function/bpf_get_stack.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_get_current_pid_tgid](../helper-function/bpf_get_current_pid_tgid.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_get_current_uid_gid](../helper-function/bpf_get_current_uid_gid.md) - * [bpf_get_current_comm](../helper-function/bpf_get_current_comm.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_perf_event_read](../helper-function/bpf_perf_event_read.md) - * [bpf_current_task_under_cgroup](../helper-function/bpf_current_task_under_cgroup.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_probe_write_user](../helper-function/bpf_probe_write_user.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_probe_read](../helper-function/bpf_probe_read.md) - * [bpf_probe_read_str](../helper-function/bpf_probe_read_str.md) - * [bpf_get_current_cgroup_id](../helper-function/bpf_get_current_cgroup_id.md) - * [bpf_get_current_ancestor_cgroup_id](../helper-function/bpf_get_current_ancestor_cgroup_id.md) - * [bpf_send_signal](../helper-function/bpf_send_signal.md) - * [bpf_send_signal_thread](../helper-function/bpf_send_signal_thread.md) - * [bpf_perf_event_read_value](../helper-function/bpf_perf_event_read_value.md) - * [bpf_get_ns_current_pid_tgid](../helper-function/bpf_get_ns_current_pid_tgid.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_get_task_stack](../helper-function/bpf_get_task_stack.md) - * [bpf_copy_from_user](../helper-function/bpf_copy_from_user.md) - * [bpf_copy_from_user_task](../helper-function/bpf_copy_from_user_task.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_task_storage_get](../helper-function/bpf_task_storage_get.md) - * [bpf_task_storage_delete](../helper-function/bpf_task_storage_delete.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_get_func_ip](../helper-function/bpf_get_func_ip.md) - * [bpf_get_branch_snapshot](../helper-function/bpf_get_branch_snapshot.md) - * [bpf_find_vma](../helper-function/bpf_find_vma.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_loop](../helper-function/bpf_loop.md) - * [bpf_strncmp](../helper-function/bpf_strncmp.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_timer_init](../helper-function/bpf_timer_init.md) - * [bpf_timer_set_callback](../helper-function/bpf_timer_set_callback.md) - * [bpf_timer_start](../helper-function/bpf_timer_start.md) - * [bpf_timer_cancel](../helper-function/bpf_timer_cancel.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) + * [`bpf_perf_event_output`](../helper-function/bpf_perf_event_output.md) + * [`bpf_get_stackid`](../helper-function/bpf_get_stackid.md) + * [`bpf_get_stack`](../helper-function/bpf_get_stack.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_get_current_pid_tgid`](../helper-function/bpf_get_current_pid_tgid.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_get_current_uid_gid`](../helper-function/bpf_get_current_uid_gid.md) + * [`bpf_get_current_comm`](../helper-function/bpf_get_current_comm.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_perf_event_read`](../helper-function/bpf_perf_event_read.md) + * [`bpf_current_task_under_cgroup`](../helper-function/bpf_current_task_under_cgroup.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_probe_write_user`](../helper-function/bpf_probe_write_user.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_probe_read`](../helper-function/bpf_probe_read.md) + * [`bpf_probe_read_str`](../helper-function/bpf_probe_read_str.md) + * [`bpf_get_current_cgroup_id`](../helper-function/bpf_get_current_cgroup_id.md) + * [`bpf_get_current_ancestor_cgroup_id`](../helper-function/bpf_get_current_ancestor_cgroup_id.md) + * [`bpf_send_signal`](../helper-function/bpf_send_signal.md) + * [`bpf_send_signal_thread`](../helper-function/bpf_send_signal_thread.md) + * [`bpf_perf_event_read_value`](../helper-function/bpf_perf_event_read_value.md) + * [`bpf_get_ns_current_pid_tgid`](../helper-function/bpf_get_ns_current_pid_tgid.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_get_task_stack`](../helper-function/bpf_get_task_stack.md) + * [`bpf_copy_from_user`](../helper-function/bpf_copy_from_user.md) + * [`bpf_copy_from_user_task`](../helper-function/bpf_copy_from_user_task.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_task_storage_get`](../helper-function/bpf_task_storage_get.md) + * [`bpf_task_storage_delete`](../helper-function/bpf_task_storage_delete.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_get_func_ip`](../helper-function/bpf_get_func_ip.md) + * [`bpf_get_branch_snapshot`](../helper-function/bpf_get_branch_snapshot.md) + * [`bpf_find_vma`](../helper-function/bpf_find_vma.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_loop`](../helper-function/bpf_loop.md) + * [`bpf_strncmp`](../helper-function/bpf_strncmp.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_timer_init`](../helper-function/bpf_timer_init.md) + * [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) + * [`bpf_timer_start`](../helper-function/bpf_timer_start.md) + * [`bpf_timer_cancel`](../helper-function/bpf_timer_cancel.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_SCHED_CLS.md b/docs/linux/program-type/BPF_PROG_TYPE_SCHED_CLS.md index 161ee5e3..68794a70 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_SCHED_CLS.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_SCHED_CLS.md @@ -108,182 +108,182 @@ Not all helper functions are available in all program types. These are the helpe ??? abstract "Supported helper functions" - * [bpf_skb_store_bytes](../helper-function/bpf_skb_store_bytes.md) - * [bpf_skb_load_bytes](../helper-function/bpf_skb_load_bytes.md) - * [bpf_skb_load_bytes_relative](../helper-function/bpf_skb_load_bytes_relative.md) - * [bpf_skb_pull_data](../helper-function/bpf_skb_pull_data.md) - * [bpf_csum_diff](../helper-function/bpf_csum_diff.md) - * [bpf_csum_update](../helper-function/bpf_csum_update.md) - * [bpf_csum_level](../helper-function/bpf_csum_level.md) - * [bpf_l3_csum_replace](../helper-function/bpf_l3_csum_replace.md) - * [bpf_l4_csum_replace](../helper-function/bpf_l4_csum_replace.md) - * [bpf_clone_redirect](../helper-function/bpf_clone_redirect.md) - * [bpf_get_cgroup_classid](../helper-function/bpf_get_cgroup_classid.md) - * [bpf_skb_vlan_push](../helper-function/bpf_skb_vlan_push.md) - * [bpf_skb_vlan_pop](../helper-function/bpf_skb_vlan_pop.md) - * [bpf_skb_change_proto](../helper-function/bpf_skb_change_proto.md) - * [bpf_skb_change_type](../helper-function/bpf_skb_change_type.md) - * [bpf_skb_adjust_room](../helper-function/bpf_skb_adjust_room.md) - * [bpf_skb_change_tail](../helper-function/bpf_skb_change_tail.md) - * [bpf_skb_change_head](../helper-function/bpf_skb_change_head.md) [:octicons-tag-24: v5.8](https://github.com/torvalds/linux/commit/6f3f65d80dac8f2bafce2213005821fccdce194c) - * [bpf_skb_get_tunnel_key](../helper-function/bpf_skb_get_tunnel_key.md) - * [bpf_skb_set_tunnel_key](../helper-function/bpf_skb_set_tunnel_key.md) - * [bpf_skb_get_tunnel_opt](../helper-function/bpf_skb_get_tunnel_opt.md) - * [bpf_skb_set_tunnel_opt](../helper-function/bpf_skb_set_tunnel_opt.md) - * [bpf_redirect](../helper-function/bpf_redirect.md) - * [bpf_redirect_neigh](../helper-function/bpf_redirect_neigh.md) - * [bpf_redirect_peer](../helper-function/bpf_redirect_peer.md) - * [bpf_get_route_realm](../helper-function/bpf_get_route_realm.md) - * [bpf_get_hash_recalc](../helper-function/bpf_get_hash_recalc.md) - * [bpf_set_hash_invalid](../helper-function/bpf_set_hash_invalid.md) - * [bpf_set_hash](../helper-function/bpf_set_hash.md) - * [bpf_perf_event_output](../helper-function/bpf_perf_event_output.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_skb_under_cgroup](../helper-function/bpf_skb_under_cgroup.md) - * [bpf_get_socket_cookie](../helper-function/bpf_get_socket_cookie.md) - * [bpf_get_socket_uid](../helper-function/bpf_get_socket_uid.md) - * [bpf_fib_lookup](../helper-function/bpf_fib_lookup.md) - * [bpf_check_mtu](../helper-function/bpf_check_mtu.md) - * [bpf_sk_fullsock](../helper-function/bpf_sk_fullsock.md) - * [bpf_sk_storage_get](../helper-function/bpf_sk_storage_get.md) - * [bpf_sk_storage_delete](../helper-function/bpf_sk_storage_delete.md) - * [bpf_skb_get_xfrm_state](../helper-function/bpf_skb_get_xfrm_state.md) - * [bpf_skb_cgroup_classid](../helper-function/bpf_skb_cgroup_classid.md) - * [bpf_skb_cgroup_id](../helper-function/bpf_skb_cgroup_id.md) - * [bpf_skb_ancestor_cgroup_id](../helper-function/bpf_skb_ancestor_cgroup_id.md) - * [bpf_sk_lookup_tcp](../helper-function/bpf_sk_lookup_tcp.md) - * [bpf_sk_lookup_udp](../helper-function/bpf_sk_lookup_udp.md) - * [bpf_sk_release](../helper-function/bpf_sk_release.md) - * [bpf_tcp_sock](../helper-function/bpf_tcp_sock.md) - * [bpf_get_listener_sock](../helper-function/bpf_get_listener_sock.md) - * [bpf_skc_lookup_tcp](../helper-function/bpf_skc_lookup_tcp.md) - * [bpf_tcp_check_syncookie](../helper-function/bpf_tcp_check_syncookie.md) - * [bpf_skb_ecn_set_ce](../helper-function/bpf_skb_ecn_set_ce.md) - * [bpf_tcp_gen_syncookie](../helper-function/bpf_tcp_gen_syncookie.md) - * [bpf_sk_assign](../helper-function/bpf_sk_assign.md) - * [bpf_skb_set_tstamp](../helper-function/bpf_skb_set_tstamp.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_loop](../helper-function/bpf_loop.md) - * [bpf_strncmp](../helper-function/bpf_strncmp.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_timer_init](../helper-function/bpf_timer_init.md) - * [bpf_timer_set_callback](../helper-function/bpf_timer_set_callback.md) - * [bpf_timer_start](../helper-function/bpf_timer_start.md) - * [bpf_timer_cancel](../helper-function/bpf_timer_cancel.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) + * [`bpf_skb_store_bytes`](../helper-function/bpf_skb_store_bytes.md) + * [`bpf_skb_load_bytes`](../helper-function/bpf_skb_load_bytes.md) + * [`bpf_skb_load_bytes_relative`](../helper-function/bpf_skb_load_bytes_relative.md) + * [`bpf_skb_pull_data`](../helper-function/bpf_skb_pull_data.md) + * [`bpf_csum_diff`](../helper-function/bpf_csum_diff.md) + * [`bpf_csum_update`](../helper-function/bpf_csum_update.md) + * [`bpf_csum_level`](../helper-function/bpf_csum_level.md) + * [`bpf_l3_csum_replace`](../helper-function/bpf_l3_csum_replace.md) + * [`bpf_l4_csum_replace`](../helper-function/bpf_l4_csum_replace.md) + * [`bpf_clone_redirect`](../helper-function/bpf_clone_redirect.md) + * [`bpf_get_cgroup_classid`](../helper-function/bpf_get_cgroup_classid.md) + * [`bpf_skb_vlan_push`](../helper-function/bpf_skb_vlan_push.md) + * [`bpf_skb_vlan_pop`](../helper-function/bpf_skb_vlan_pop.md) + * [`bpf_skb_change_proto`](../helper-function/bpf_skb_change_proto.md) + * [`bpf_skb_change_type`](../helper-function/bpf_skb_change_type.md) + * [`bpf_skb_adjust_room`](../helper-function/bpf_skb_adjust_room.md) + * [`bpf_skb_change_tail`](../helper-function/bpf_skb_change_tail.md) + * [`bpf_skb_change_head`](../helper-function/bpf_skb_change_head.md) [:octicons-tag-24: v5.8](https://github.com/torvalds/linux/commit/6f3f65d80dac8f2bafce2213005821fccdce194c) + * [`bpf_skb_get_tunnel_key`](../helper-function/bpf_skb_get_tunnel_key.md) + * [`bpf_skb_set_tunnel_key`](../helper-function/bpf_skb_set_tunnel_key.md) + * [`bpf_skb_get_tunnel_opt`](../helper-function/bpf_skb_get_tunnel_opt.md) + * [`bpf_skb_set_tunnel_opt`](../helper-function/bpf_skb_set_tunnel_opt.md) + * [`bpf_redirect`](../helper-function/bpf_redirect.md) + * [`bpf_redirect_neigh`](../helper-function/bpf_redirect_neigh.md) + * [`bpf_redirect_peer`](../helper-function/bpf_redirect_peer.md) + * [`bpf_get_route_realm`](../helper-function/bpf_get_route_realm.md) + * [`bpf_get_hash_recalc`](../helper-function/bpf_get_hash_recalc.md) + * [`bpf_set_hash_invalid`](../helper-function/bpf_set_hash_invalid.md) + * [`bpf_set_hash`](../helper-function/bpf_set_hash.md) + * [`bpf_perf_event_output`](../helper-function/bpf_perf_event_output.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_skb_under_cgroup`](../helper-function/bpf_skb_under_cgroup.md) + * [`bpf_get_socket_cookie`](../helper-function/bpf_get_socket_cookie.md) + * [`bpf_get_socket_uid`](../helper-function/bpf_get_socket_uid.md) + * [`bpf_fib_lookup`](../helper-function/bpf_fib_lookup.md) + * [`bpf_check_mtu`](../helper-function/bpf_check_mtu.md) + * [`bpf_sk_fullsock`](../helper-function/bpf_sk_fullsock.md) + * [`bpf_sk_storage_get`](../helper-function/bpf_sk_storage_get.md) + * [`bpf_sk_storage_delete`](../helper-function/bpf_sk_storage_delete.md) + * [`bpf_skb_get_xfrm_state`](../helper-function/bpf_skb_get_xfrm_state.md) + * [`bpf_skb_cgroup_classid`](../helper-function/bpf_skb_cgroup_classid.md) + * [`bpf_skb_cgroup_id`](../helper-function/bpf_skb_cgroup_id.md) + * [`bpf_skb_ancestor_cgroup_id`](../helper-function/bpf_skb_ancestor_cgroup_id.md) + * [`bpf_sk_lookup_tcp`](../helper-function/bpf_sk_lookup_tcp.md) + * [`bpf_sk_lookup_udp`](../helper-function/bpf_sk_lookup_udp.md) + * [`bpf_sk_release`](../helper-function/bpf_sk_release.md) + * [`bpf_tcp_sock`](../helper-function/bpf_tcp_sock.md) + * [`bpf_get_listener_sock`](../helper-function/bpf_get_listener_sock.md) + * [`bpf_skc_lookup_tcp`](../helper-function/bpf_skc_lookup_tcp.md) + * [`bpf_tcp_check_syncookie`](../helper-function/bpf_tcp_check_syncookie.md) + * [`bpf_skb_ecn_set_ce`](../helper-function/bpf_skb_ecn_set_ce.md) + * [`bpf_tcp_gen_syncookie`](../helper-function/bpf_tcp_gen_syncookie.md) + * [`bpf_sk_assign`](../helper-function/bpf_sk_assign.md) + * [`bpf_skb_set_tstamp`](../helper-function/bpf_skb_set_tstamp.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_loop`](../helper-function/bpf_loop.md) + * [`bpf_strncmp`](../helper-function/bpf_strncmp.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_timer_init`](../helper-function/bpf_timer_init.md) + * [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) + * [`bpf_timer_start`](../helper-function/bpf_timer_start.md) + * [`bpf_timer_cancel`](../helper-function/bpf_timer_cancel.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) ## KFuncs ??? abstract "Supported kfuncs" - - [bpf_arena_alloc_pages](../kfuncs/bpf_arena_alloc_pages.md) - - [bpf_arena_free_pages](../kfuncs/bpf_arena_free_pages.md) - - [bpf_cast_to_kern_ctx](../kfuncs/bpf_cast_to_kern_ctx.md) - - [bpf_cgroup_acquire](../kfuncs/bpf_cgroup_acquire.md) - - [bpf_cgroup_ancestor](../kfuncs/bpf_cgroup_ancestor.md) - - [bpf_cgroup_from_id](../kfuncs/bpf_cgroup_from_id.md) - - [bpf_cgroup_release](../kfuncs/bpf_cgroup_release.md) - - [bpf_crypto_decrypt](../kfuncs/bpf_crypto_decrypt.md) - - [bpf_crypto_encrypt](../kfuncs/bpf_crypto_encrypt.md) - - [bpf_ct_change_status](../kfuncs/bpf_ct_change_status.md) - - [bpf_ct_change_timeout](../kfuncs/bpf_ct_change_timeout.md) - - [bpf_ct_insert_entry](../kfuncs/bpf_ct_insert_entry.md) - - [bpf_ct_release](../kfuncs/bpf_ct_release.md) - - [bpf_ct_set_nat_info](../kfuncs/bpf_ct_set_nat_info.md) - - [bpf_ct_set_status](../kfuncs/bpf_ct_set_status.md) - - [bpf_ct_set_timeout](../kfuncs/bpf_ct_set_timeout.md) - - [bpf_dynptr_adjust](../kfuncs/bpf_dynptr_adjust.md) - - [bpf_dynptr_clone](../kfuncs/bpf_dynptr_clone.md) - - [bpf_dynptr_from_skb](../kfuncs/bpf_dynptr_from_skb.md) - - [bpf_dynptr_is_null](../kfuncs/bpf_dynptr_is_null.md) - - [bpf_dynptr_is_rdonly](../kfuncs/bpf_dynptr_is_rdonly.md) - - [bpf_dynptr_size](../kfuncs/bpf_dynptr_size.md) - - [bpf_dynptr_slice](../kfuncs/bpf_dynptr_slice.md) - - [bpf_dynptr_slice_rdwr](../kfuncs/bpf_dynptr_slice_rdwr.md) - - [bpf_iter_css_destroy](../kfuncs/bpf_iter_css_destroy.md) - - [bpf_iter_css_new](../kfuncs/bpf_iter_css_new.md) - - [bpf_iter_css_next](../kfuncs/bpf_iter_css_next.md) - - [bpf_iter_css_task_destroy](../kfuncs/bpf_iter_css_task_destroy.md) - - [bpf_iter_css_task_new](../kfuncs/bpf_iter_css_task_new.md) - - [bpf_iter_css_task_next](../kfuncs/bpf_iter_css_task_next.md) - - [bpf_iter_num_destroy](../kfuncs/bpf_iter_num_destroy.md) - - [bpf_iter_num_new](../kfuncs/bpf_iter_num_new.md) - - [bpf_iter_num_next](../kfuncs/bpf_iter_num_next.md) - - [bpf_iter_task_destroy](../kfuncs/bpf_iter_task_destroy.md) - - [bpf_iter_task_new](../kfuncs/bpf_iter_task_new.md) - - [bpf_iter_task_next](../kfuncs/bpf_iter_task_next.md) - - [bpf_iter_task_vma_destroy](../kfuncs/bpf_iter_task_vma_destroy.md) - - [bpf_iter_task_vma_new](../kfuncs/bpf_iter_task_vma_new.md) - - [bpf_iter_task_vma_next](../kfuncs/bpf_iter_task_vma_next.md) - - [bpf_list_pop_back](../kfuncs/bpf_list_pop_back.md) - - [bpf_list_pop_front](../kfuncs/bpf_list_pop_front.md) - - [bpf_list_push_back_impl](../kfuncs/bpf_list_push_back_impl.md) - - [bpf_list_push_front_impl](../kfuncs/bpf_list_push_front_impl.md) - - [bpf_map_sum_elem_count](../kfuncs/bpf_map_sum_elem_count.md) - - [bpf_obj_drop_impl](../kfuncs/bpf_obj_drop_impl.md) - - [bpf_obj_new_impl](../kfuncs/bpf_obj_new_impl.md) - - [bpf_percpu_obj_drop_impl](../kfuncs/bpf_percpu_obj_drop_impl.md) - - [bpf_percpu_obj_new_impl](../kfuncs/bpf_percpu_obj_new_impl.md) - - [bpf_preempt_disable](../kfuncs/bpf_preempt_disable.md) - - [bpf_preempt_enable](../kfuncs/bpf_preempt_enable.md) - - [bpf_rbtree_add_impl](../kfuncs/bpf_rbtree_add_impl.md) - - [bpf_rbtree_first](../kfuncs/bpf_rbtree_first.md) - - [bpf_rbtree_remove](../kfuncs/bpf_rbtree_remove.md) - - [bpf_rcu_read_lock](../kfuncs/bpf_rcu_read_lock.md) - - [bpf_rcu_read_unlock](../kfuncs/bpf_rcu_read_unlock.md) - - [bpf_rdonly_cast](../kfuncs/bpf_rdonly_cast.md) - - [bpf_refcount_acquire_impl](../kfuncs/bpf_refcount_acquire_impl.md) - - [bpf_skb_ct_alloc](../kfuncs/bpf_skb_ct_alloc.md) - - [bpf_skb_ct_lookup](../kfuncs/bpf_skb_ct_lookup.md) - - [bpf_skb_get_fou_encap](../kfuncs/bpf_skb_get_fou_encap.md) - - [bpf_skb_get_xfrm_info](../kfuncs/bpf_skb_get_xfrm_info.md) - - [bpf_skb_set_fou_encap](../kfuncs/bpf_skb_set_fou_encap.md) - - [bpf_skb_set_xfrm_info](../kfuncs/bpf_skb_set_xfrm_info.md) - - [bpf_task_acquire](../kfuncs/bpf_task_acquire.md) - - [bpf_task_from_pid](../kfuncs/bpf_task_from_pid.md) - - [bpf_task_get_cgroup1](../kfuncs/bpf_task_get_cgroup1.md) - - [bpf_task_release](../kfuncs/bpf_task_release.md) - - [bpf_task_under_cgroup](../kfuncs/bpf_task_under_cgroup.md) - - [bpf_throw](../kfuncs/bpf_throw.md) - - [bpf_wq_init](../kfuncs/bpf_wq_init.md) - - [bpf_wq_set_callback_impl](../kfuncs/bpf_wq_set_callback_impl.md) - - [bpf_wq_start](../kfuncs/bpf_wq_start.md) - - [bpf_xdp_ct_alloc](../kfuncs/bpf_xdp_ct_alloc.md) - - [bpf_xdp_ct_lookup](../kfuncs/bpf_xdp_ct_lookup.md) - - [bpf_xdp_get_xfrm_state](../kfuncs/bpf_xdp_get_xfrm_state.md) - - [bpf_xdp_xfrm_state_release](../kfuncs/bpf_xdp_xfrm_state_release.md) - - [crash_kexec](../kfuncs/crash_kexec.md) + - [`bpf_arena_alloc_pages`](../kfuncs/bpf_arena_alloc_pages.md) + - [`bpf_arena_free_pages`](../kfuncs/bpf_arena_free_pages.md) + - [`bpf_cast_to_kern_ctx`](../kfuncs/bpf_cast_to_kern_ctx.md) + - [`bpf_cgroup_acquire`](../kfuncs/bpf_cgroup_acquire.md) + - [`bpf_cgroup_ancestor`](../kfuncs/bpf_cgroup_ancestor.md) + - [`bpf_cgroup_from_id`](../kfuncs/bpf_cgroup_from_id.md) + - [`bpf_cgroup_release`](../kfuncs/bpf_cgroup_release.md) + - [`bpf_crypto_decrypt`](../kfuncs/bpf_crypto_decrypt.md) + - [`bpf_crypto_encrypt`](../kfuncs/bpf_crypto_encrypt.md) + - [`bpf_ct_change_status`](../kfuncs/bpf_ct_change_status.md) + - [`bpf_ct_change_timeout`](../kfuncs/bpf_ct_change_timeout.md) + - [`bpf_ct_insert_entry`](../kfuncs/bpf_ct_insert_entry.md) + - [`bpf_ct_release`](../kfuncs/bpf_ct_release.md) + - [`bpf_ct_set_nat_info`](../kfuncs/bpf_ct_set_nat_info.md) + - [`bpf_ct_set_status`](../kfuncs/bpf_ct_set_status.md) + - [`bpf_ct_set_timeout`](../kfuncs/bpf_ct_set_timeout.md) + - [`bpf_dynptr_adjust`](../kfuncs/bpf_dynptr_adjust.md) + - [`bpf_dynptr_clone`](../kfuncs/bpf_dynptr_clone.md) + - [`bpf_dynptr_from_skb`](../kfuncs/bpf_dynptr_from_skb.md) + - [`bpf_dynptr_is_null`](../kfuncs/bpf_dynptr_is_null.md) + - [`bpf_dynptr_is_rdonly`](../kfuncs/bpf_dynptr_is_rdonly.md) + - [`bpf_dynptr_size`](../kfuncs/bpf_dynptr_size.md) + - [`bpf_dynptr_slice`](../kfuncs/bpf_dynptr_slice.md) + - [`bpf_dynptr_slice_rdwr`](../kfuncs/bpf_dynptr_slice_rdwr.md) + - [`bpf_iter_css_destroy`](../kfuncs/bpf_iter_css_destroy.md) + - [`bpf_iter_css_new`](../kfuncs/bpf_iter_css_new.md) + - [`bpf_iter_css_next`](../kfuncs/bpf_iter_css_next.md) + - [`bpf_iter_css_task_destroy`](../kfuncs/bpf_iter_css_task_destroy.md) + - [`bpf_iter_css_task_new`](../kfuncs/bpf_iter_css_task_new.md) + - [`bpf_iter_css_task_next`](../kfuncs/bpf_iter_css_task_next.md) + - [`bpf_iter_num_destroy`](../kfuncs/bpf_iter_num_destroy.md) + - [`bpf_iter_num_new`](../kfuncs/bpf_iter_num_new.md) + - [`bpf_iter_num_next`](../kfuncs/bpf_iter_num_next.md) + - [`bpf_iter_task_destroy`](../kfuncs/bpf_iter_task_destroy.md) + - [`bpf_iter_task_new`](../kfuncs/bpf_iter_task_new.md) + - [`bpf_iter_task_next`](../kfuncs/bpf_iter_task_next.md) + - [`bpf_iter_task_vma_destroy`](../kfuncs/bpf_iter_task_vma_destroy.md) + - [`bpf_iter_task_vma_new`](../kfuncs/bpf_iter_task_vma_new.md) + - [`bpf_iter_task_vma_next`](../kfuncs/bpf_iter_task_vma_next.md) + - [`bpf_list_pop_back`](../kfuncs/bpf_list_pop_back.md) + - [`bpf_list_pop_front`](../kfuncs/bpf_list_pop_front.md) + - [`bpf_list_push_back_impl`](../kfuncs/bpf_list_push_back_impl.md) + - [`bpf_list_push_front_impl`](../kfuncs/bpf_list_push_front_impl.md) + - [`bpf_map_sum_elem_count`](../kfuncs/bpf_map_sum_elem_count.md) + - [`bpf_obj_drop_impl`](../kfuncs/bpf_obj_drop_impl.md) + - [`bpf_obj_new_impl`](../kfuncs/bpf_obj_new_impl.md) + - [`bpf_percpu_obj_drop_impl`](../kfuncs/bpf_percpu_obj_drop_impl.md) + - [`bpf_percpu_obj_new_impl`](../kfuncs/bpf_percpu_obj_new_impl.md) + - [`bpf_preempt_disable`](../kfuncs/bpf_preempt_disable.md) + - [`bpf_preempt_enable`](../kfuncs/bpf_preempt_enable.md) + - [`bpf_rbtree_add_impl`](../kfuncs/bpf_rbtree_add_impl.md) + - [`bpf_rbtree_first`](../kfuncs/bpf_rbtree_first.md) + - [`bpf_rbtree_remove`](../kfuncs/bpf_rbtree_remove.md) + - [`bpf_rcu_read_lock`](../kfuncs/bpf_rcu_read_lock.md) + - [`bpf_rcu_read_unlock`](../kfuncs/bpf_rcu_read_unlock.md) + - [`bpf_rdonly_cast`](../kfuncs/bpf_rdonly_cast.md) + - [`bpf_refcount_acquire_impl`](../kfuncs/bpf_refcount_acquire_impl.md) + - [`bpf_skb_ct_alloc`](../kfuncs/bpf_skb_ct_alloc.md) + - [`bpf_skb_ct_lookup`](../kfuncs/bpf_skb_ct_lookup.md) + - [`bpf_skb_get_fou_encap`](../kfuncs/bpf_skb_get_fou_encap.md) + - [`bpf_skb_get_xfrm_info`](../kfuncs/bpf_skb_get_xfrm_info.md) + - [`bpf_skb_set_fou_encap`](../kfuncs/bpf_skb_set_fou_encap.md) + - [`bpf_skb_set_xfrm_info`](../kfuncs/bpf_skb_set_xfrm_info.md) + - [`bpf_task_acquire`](../kfuncs/bpf_task_acquire.md) + - [`bpf_task_from_pid`](../kfuncs/bpf_task_from_pid.md) + - [`bpf_task_get_cgroup1`](../kfuncs/bpf_task_get_cgroup1.md) + - [`bpf_task_release`](../kfuncs/bpf_task_release.md) + - [`bpf_task_under_cgroup`](../kfuncs/bpf_task_under_cgroup.md) + - [`bpf_throw`](../kfuncs/bpf_throw.md) + - [`bpf_wq_init`](../kfuncs/bpf_wq_init.md) + - [`bpf_wq_set_callback_impl`](../kfuncs/bpf_wq_set_callback_impl.md) + - [`bpf_wq_start`](../kfuncs/bpf_wq_start.md) + - [`bpf_xdp_ct_alloc`](../kfuncs/bpf_xdp_ct_alloc.md) + - [`bpf_xdp_ct_lookup`](../kfuncs/bpf_xdp_ct_lookup.md) + - [`bpf_xdp_get_xfrm_state`](../kfuncs/bpf_xdp_get_xfrm_state.md) + - [`bpf_xdp_xfrm_state_release`](../kfuncs/bpf_xdp_xfrm_state_release.md) + - [`crash_kexec`](../kfuncs/crash_kexec.md) diff --git a/docs/linux/program-type/BPF_PROG_TYPE_SK_LOOKUP.md b/docs/linux/program-type/BPF_PROG_TYPE_SK_LOOKUP.md index fa7aea82..7b36e112 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_SK_LOOKUP.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_SK_LOOKUP.md @@ -137,57 +137,57 @@ Not all helper functions are available in all program types. These are the helpe ??? abstract "Supported helper functions" - * [bpf_perf_event_output](../helper-function/bpf_perf_event_output.md) - * [bpf_sk_assign](../helper-function/bpf_sk_assign.md) - * [bpf_sk_release](../helper-function/bpf_sk_release.md) - * [bpf_skc_to_tcp6_sock](../helper-function/bpf_skc_to_tcp6_sock.md) - * [bpf_skc_to_tcp_sock](../helper-function/bpf_skc_to_tcp_sock.md) - * [bpf_skc_to_tcp_timewait_sock](../helper-function/bpf_skc_to_tcp_timewait_sock.md) - * [bpf_skc_to_tcp_request_sock](../helper-function/bpf_skc_to_tcp_request_sock.md) - * [bpf_skc_to_udp6_sock](../helper-function/bpf_skc_to_udp6_sock.md) - * [bpf_skc_to_unix_sock](../helper-function/bpf_skc_to_unix_sock.md) - * [bpf_ktime_get_coarse_ns](../helper-function/bpf_ktime_get_coarse_ns.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_loop](../helper-function/bpf_loop.md) - * [bpf_strncmp](../helper-function/bpf_strncmp.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_timer_init](../helper-function/bpf_timer_init.md) - * [bpf_timer_set_callback](../helper-function/bpf_timer_set_callback.md) - * [bpf_timer_start](../helper-function/bpf_timer_start.md) - * [bpf_timer_cancel](../helper-function/bpf_timer_cancel.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) + * [`bpf_perf_event_output`](../helper-function/bpf_perf_event_output.md) + * [`bpf_sk_assign`](../helper-function/bpf_sk_assign.md) + * [`bpf_sk_release`](../helper-function/bpf_sk_release.md) + * [`bpf_skc_to_tcp6_sock`](../helper-function/bpf_skc_to_tcp6_sock.md) + * [`bpf_skc_to_tcp_sock`](../helper-function/bpf_skc_to_tcp_sock.md) + * [`bpf_skc_to_tcp_timewait_sock`](../helper-function/bpf_skc_to_tcp_timewait_sock.md) + * [`bpf_skc_to_tcp_request_sock`](../helper-function/bpf_skc_to_tcp_request_sock.md) + * [`bpf_skc_to_udp6_sock`](../helper-function/bpf_skc_to_udp6_sock.md) + * [`bpf_skc_to_unix_sock`](../helper-function/bpf_skc_to_unix_sock.md) + * [`bpf_ktime_get_coarse_ns`](../helper-function/bpf_ktime_get_coarse_ns.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_loop`](../helper-function/bpf_loop.md) + * [`bpf_strncmp`](../helper-function/bpf_strncmp.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_timer_init`](../helper-function/bpf_timer_init.md) + * [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) + * [`bpf_timer_start`](../helper-function/bpf_timer_start.md) + * [`bpf_timer_cancel`](../helper-function/bpf_timer_cancel.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_SK_MSG.md b/docs/linux/program-type/BPF_PROG_TYPE_SK_MSG.md index b7fb77c2..b1373626 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_SK_MSG.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_SK_MSG.md @@ -153,70 +153,70 @@ int prog_msg_verdict(struct sk_msg_md *msg) ??? abstract "Supported helper functions" - * [bpf_msg_redirect_map](../helper-function/bpf_msg_redirect_map.md) - * [bpf_msg_redirect_hash](../helper-function/bpf_msg_redirect_hash.md) - * [bpf_msg_apply_bytes](../helper-function/bpf_msg_apply_bytes.md) - * [bpf_msg_cork_bytes](../helper-function/bpf_msg_cork_bytes.md) - * [bpf_msg_pull_data](../helper-function/bpf_msg_pull_data.md) - * [bpf_msg_push_data](../helper-function/bpf_msg_push_data.md) - * [bpf_msg_pop_data](../helper-function/bpf_msg_pop_data.md) - * [bpf_perf_event_output](../helper-function/bpf_perf_event_output.md) - * [bpf_get_current_uid_gid](../helper-function/bpf_get_current_uid_gid.md) - * [bpf_get_current_pid_tgid](../helper-function/bpf_get_current_pid_tgid.md) - * [bpf_sk_storage_get](../helper-function/bpf_sk_storage_get.md) - * [bpf_sk_storage_delete](../helper-function/bpf_sk_storage_delete.md) - * [bpf_get_netns_cookie](../helper-function/bpf_get_netns_cookie.md) - * [bpf_get_current_cgroup_id](../helper-function/bpf_get_current_cgroup_id.md) - * [bpf_get_current_ancestor_cgroup_id](../helper-function/bpf_get_current_ancestor_cgroup_id.md) - * [bpf_get_cgroup_classid](../helper-function/bpf_get_cgroup_classid.md) - * [bpf_skc_to_tcp6_sock](../helper-function/bpf_skc_to_tcp6_sock.md) - * [bpf_skc_to_tcp_sock](../helper-function/bpf_skc_to_tcp_sock.md) - * [bpf_skc_to_tcp_timewait_sock](../helper-function/bpf_skc_to_tcp_timewait_sock.md) - * [bpf_skc_to_tcp_request_sock](../helper-function/bpf_skc_to_tcp_request_sock.md) - * [bpf_skc_to_udp6_sock](../helper-function/bpf_skc_to_udp6_sock.md) - * [bpf_skc_to_unix_sock](../helper-function/bpf_skc_to_unix_sock.md) - * [bpf_ktime_get_coarse_ns](../helper-function/bpf_ktime_get_coarse_ns.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_loop](../helper-function/bpf_loop.md) - * [bpf_strncmp](../helper-function/bpf_strncmp.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_timer_init](../helper-function/bpf_timer_init.md) - * [bpf_timer_set_callback](../helper-function/bpf_timer_set_callback.md) - * [bpf_timer_start](../helper-function/bpf_timer_start.md) - * [bpf_timer_cancel](../helper-function/bpf_timer_cancel.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) + * [`bpf_msg_redirect_map`](../helper-function/bpf_msg_redirect_map.md) + * [`bpf_msg_redirect_hash`](../helper-function/bpf_msg_redirect_hash.md) + * [`bpf_msg_apply_bytes`](../helper-function/bpf_msg_apply_bytes.md) + * [`bpf_msg_cork_bytes`](../helper-function/bpf_msg_cork_bytes.md) + * [`bpf_msg_pull_data`](../helper-function/bpf_msg_pull_data.md) + * [`bpf_msg_push_data`](../helper-function/bpf_msg_push_data.md) + * [`bpf_msg_pop_data`](../helper-function/bpf_msg_pop_data.md) + * [`bpf_perf_event_output`](../helper-function/bpf_perf_event_output.md) + * [`bpf_get_current_uid_gid`](../helper-function/bpf_get_current_uid_gid.md) + * [`bpf_get_current_pid_tgid`](../helper-function/bpf_get_current_pid_tgid.md) + * [`bpf_sk_storage_get`](../helper-function/bpf_sk_storage_get.md) + * [`bpf_sk_storage_delete`](../helper-function/bpf_sk_storage_delete.md) + * [`bpf_get_netns_cookie`](../helper-function/bpf_get_netns_cookie.md) + * [`bpf_get_current_cgroup_id`](../helper-function/bpf_get_current_cgroup_id.md) + * [`bpf_get_current_ancestor_cgroup_id`](../helper-function/bpf_get_current_ancestor_cgroup_id.md) + * [`bpf_get_cgroup_classid`](../helper-function/bpf_get_cgroup_classid.md) + * [`bpf_skc_to_tcp6_sock`](../helper-function/bpf_skc_to_tcp6_sock.md) + * [`bpf_skc_to_tcp_sock`](../helper-function/bpf_skc_to_tcp_sock.md) + * [`bpf_skc_to_tcp_timewait_sock`](../helper-function/bpf_skc_to_tcp_timewait_sock.md) + * [`bpf_skc_to_tcp_request_sock`](../helper-function/bpf_skc_to_tcp_request_sock.md) + * [`bpf_skc_to_udp6_sock`](../helper-function/bpf_skc_to_udp6_sock.md) + * [`bpf_skc_to_unix_sock`](../helper-function/bpf_skc_to_unix_sock.md) + * [`bpf_ktime_get_coarse_ns`](../helper-function/bpf_ktime_get_coarse_ns.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_loop`](../helper-function/bpf_loop.md) + * [`bpf_strncmp`](../helper-function/bpf_strncmp.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_timer_init`](../helper-function/bpf_timer_init.md) + * [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) + * [`bpf_timer_start`](../helper-function/bpf_timer_start.md) + * [`bpf_timer_cancel`](../helper-function/bpf_timer_cancel.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_SK_REUSEPORT.md b/docs/linux/program-type/BPF_PROG_TYPE_SK_REUSEPORT.md index 77180d0f..3ada3f46 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_SK_REUSEPORT.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_SK_REUSEPORT.md @@ -142,52 +142,52 @@ Not all helper functions are available in all program types. These are the helpe ??? abstract "Supported helper functions" - * [bpf_sk_select_reuseport](../helper-function/bpf_sk_select_reuseport.md) - * [bpf_skb_load_bytes](../helper-function/bpf_skb_load_bytes.md) - * [bpf_skb_load_bytes_relative](../helper-function/bpf_skb_load_bytes_relative.md) - * [bpf_get_socket_cookie](../helper-function/bpf_get_socket_cookie.md) - * [bpf_ktime_get_coarse_ns](../helper-function/bpf_ktime_get_coarse_ns.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_loop](../helper-function/bpf_loop.md) - * [bpf_strncmp](../helper-function/bpf_strncmp.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_timer_init](../helper-function/bpf_timer_init.md) - * [bpf_timer_set_callback](../helper-function/bpf_timer_set_callback.md) - * [bpf_timer_start](../helper-function/bpf_timer_start.md) - * [bpf_timer_cancel](../helper-function/bpf_timer_cancel.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) + * [`bpf_sk_select_reuseport`](../helper-function/bpf_sk_select_reuseport.md) + * [`bpf_skb_load_bytes`](../helper-function/bpf_skb_load_bytes.md) + * [`bpf_skb_load_bytes_relative`](../helper-function/bpf_skb_load_bytes_relative.md) + * [`bpf_get_socket_cookie`](../helper-function/bpf_get_socket_cookie.md) + * [`bpf_ktime_get_coarse_ns`](../helper-function/bpf_ktime_get_coarse_ns.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_loop`](../helper-function/bpf_loop.md) + * [`bpf_strncmp`](../helper-function/bpf_strncmp.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_timer_init`](../helper-function/bpf_timer_init.md) + * [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) + * [`bpf_timer_start`](../helper-function/bpf_timer_start.md) + * [`bpf_timer_cancel`](../helper-function/bpf_timer_cancel.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_SK_SKB.md b/docs/linux/program-type/BPF_PROG_TYPE_SK_SKB.md index df87f9fe..7bca829a 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_SK_SKB.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_SK_SKB.md @@ -178,108 +178,108 @@ out: ??? abstract "Supported helper functions" - * [bpf_skb_store_bytes](../helper-function/bpf_skb_store_bytes.md) - * [bpf_skb_load_bytes](../helper-function/bpf_skb_load_bytes.md) - * [bpf_skb_pull_data](../helper-function/bpf_skb_pull_data.md) - * [bpf_skb_change_tail](../helper-function/bpf_skb_change_tail.md) - * [bpf_skb_change_head](../helper-function/bpf_skb_change_head.md) - * [bpf_skb_adjust_room](../helper-function/bpf_skb_adjust_room.md) - * [bpf_get_socket_cookie](../helper-function/bpf_get_socket_cookie.md) - * [bpf_get_socket_uid](../helper-function/bpf_get_socket_uid.md) - * [bpf_sk_redirect_map](../helper-function/bpf_sk_redirect_map.md) - * [bpf_sk_redirect_hash](../helper-function/bpf_sk_redirect_hash.md) - * [bpf_perf_event_output](../helper-function/bpf_perf_event_output.md) - * [bpf_sk_lookup_tcp](../helper-function/bpf_sk_lookup_tcp.md) - * [bpf_sk_lookup_udp](../helper-function/bpf_sk_lookup_udp.md) - * [bpf_sk_release](../helper-function/bpf_sk_release.md) - * [bpf_skc_lookup_tcp](../helper-function/bpf_skc_lookup_tcp.md) - * [bpf_skc_to_tcp6_sock](../helper-function/bpf_skc_to_tcp6_sock.md) - * [bpf_skc_to_tcp_sock](../helper-function/bpf_skc_to_tcp_sock.md) - * [bpf_skc_to_tcp_timewait_sock](../helper-function/bpf_skc_to_tcp_timewait_sock.md) - * [bpf_skc_to_tcp_request_sock](../helper-function/bpf_skc_to_tcp_request_sock.md) - * [bpf_skc_to_udp6_sock](../helper-function/bpf_skc_to_udp6_sock.md) - * [bpf_skc_to_unix_sock](../helper-function/bpf_skc_to_unix_sock.md) - * [bpf_ktime_get_coarse_ns](../helper-function/bpf_ktime_get_coarse_ns.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_loop](../helper-function/bpf_loop.md) - * [bpf_strncmp](../helper-function/bpf_strncmp.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_timer_init](../helper-function/bpf_timer_init.md) - * [bpf_timer_set_callback](../helper-function/bpf_timer_set_callback.md) - * [bpf_timer_start](../helper-function/bpf_timer_start.md) - * [bpf_timer_cancel](../helper-function/bpf_timer_cancel.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) + * [`bpf_skb_store_bytes`](../helper-function/bpf_skb_store_bytes.md) + * [`bpf_skb_load_bytes`](../helper-function/bpf_skb_load_bytes.md) + * [`bpf_skb_pull_data`](../helper-function/bpf_skb_pull_data.md) + * [`bpf_skb_change_tail`](../helper-function/bpf_skb_change_tail.md) + * [`bpf_skb_change_head`](../helper-function/bpf_skb_change_head.md) + * [`bpf_skb_adjust_room`](../helper-function/bpf_skb_adjust_room.md) + * [`bpf_get_socket_cookie`](../helper-function/bpf_get_socket_cookie.md) + * [`bpf_get_socket_uid`](../helper-function/bpf_get_socket_uid.md) + * [`bpf_sk_redirect_map`](../helper-function/bpf_sk_redirect_map.md) + * [`bpf_sk_redirect_hash`](../helper-function/bpf_sk_redirect_hash.md) + * [`bpf_perf_event_output`](../helper-function/bpf_perf_event_output.md) + * [`bpf_sk_lookup_tcp`](../helper-function/bpf_sk_lookup_tcp.md) + * [`bpf_sk_lookup_udp`](../helper-function/bpf_sk_lookup_udp.md) + * [`bpf_sk_release`](../helper-function/bpf_sk_release.md) + * [`bpf_skc_lookup_tcp`](../helper-function/bpf_skc_lookup_tcp.md) + * [`bpf_skc_to_tcp6_sock`](../helper-function/bpf_skc_to_tcp6_sock.md) + * [`bpf_skc_to_tcp_sock`](../helper-function/bpf_skc_to_tcp_sock.md) + * [`bpf_skc_to_tcp_timewait_sock`](../helper-function/bpf_skc_to_tcp_timewait_sock.md) + * [`bpf_skc_to_tcp_request_sock`](../helper-function/bpf_skc_to_tcp_request_sock.md) + * [`bpf_skc_to_udp6_sock`](../helper-function/bpf_skc_to_udp6_sock.md) + * [`bpf_skc_to_unix_sock`](../helper-function/bpf_skc_to_unix_sock.md) + * [`bpf_ktime_get_coarse_ns`](../helper-function/bpf_ktime_get_coarse_ns.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_loop`](../helper-function/bpf_loop.md) + * [`bpf_strncmp`](../helper-function/bpf_strncmp.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_timer_init`](../helper-function/bpf_timer_init.md) + * [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) + * [`bpf_timer_start`](../helper-function/bpf_timer_start.md) + * [`bpf_timer_cancel`](../helper-function/bpf_timer_cancel.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) ## KFuncs ??? abstract "Supported kfuncs" - - [bpf_arena_alloc_pages](../kfuncs/bpf_arena_alloc_pages.md) - - [bpf_arena_free_pages](../kfuncs/bpf_arena_free_pages.md) - - [bpf_cast_to_kern_ctx](../kfuncs/bpf_cast_to_kern_ctx.md) - - [bpf_dynptr_adjust](../kfuncs/bpf_dynptr_adjust.md) - - [bpf_dynptr_clone](../kfuncs/bpf_dynptr_clone.md) - - [bpf_dynptr_from_skb](../kfuncs/bpf_dynptr_from_skb.md) - - [bpf_dynptr_is_null](../kfuncs/bpf_dynptr_is_null.md) - - [bpf_dynptr_is_rdonly](../kfuncs/bpf_dynptr_is_rdonly.md) - - [bpf_dynptr_size](../kfuncs/bpf_dynptr_size.md) - - [bpf_dynptr_slice](../kfuncs/bpf_dynptr_slice.md) - - [bpf_dynptr_slice_rdwr](../kfuncs/bpf_dynptr_slice_rdwr.md) - - [bpf_iter_css_destroy](../kfuncs/bpf_iter_css_destroy.md) - - [bpf_iter_css_new](../kfuncs/bpf_iter_css_new.md) - - [bpf_iter_css_next](../kfuncs/bpf_iter_css_next.md) - - [bpf_iter_css_task_destroy](../kfuncs/bpf_iter_css_task_destroy.md) - - [bpf_iter_css_task_new](../kfuncs/bpf_iter_css_task_new.md) - - [bpf_iter_css_task_next](../kfuncs/bpf_iter_css_task_next.md) - - [bpf_iter_num_destroy](../kfuncs/bpf_iter_num_destroy.md) - - [bpf_iter_num_new](../kfuncs/bpf_iter_num_new.md) - - [bpf_iter_num_next](../kfuncs/bpf_iter_num_next.md) - - [bpf_iter_task_destroy](../kfuncs/bpf_iter_task_destroy.md) - - [bpf_iter_task_new](../kfuncs/bpf_iter_task_new.md) - - [bpf_iter_task_next](../kfuncs/bpf_iter_task_next.md) - - [bpf_iter_task_vma_destroy](../kfuncs/bpf_iter_task_vma_destroy.md) - - [bpf_iter_task_vma_new](../kfuncs/bpf_iter_task_vma_new.md) - - [bpf_iter_task_vma_next](../kfuncs/bpf_iter_task_vma_next.md) - - [bpf_map_sum_elem_count](../kfuncs/bpf_map_sum_elem_count.md) - - [bpf_preempt_disable](../kfuncs/bpf_preempt_disable.md) - - [bpf_preempt_enable](../kfuncs/bpf_preempt_enable.md) - - [bpf_rcu_read_lock](../kfuncs/bpf_rcu_read_lock.md) - - [bpf_rcu_read_unlock](../kfuncs/bpf_rcu_read_unlock.md) - - [bpf_rdonly_cast](../kfuncs/bpf_rdonly_cast.md) - - [bpf_wq_init](../kfuncs/bpf_wq_init.md) - - [bpf_wq_set_callback_impl](../kfuncs/bpf_wq_set_callback_impl.md) - - [bpf_wq_start](../kfuncs/bpf_wq_start.md) + - [`bpf_arena_alloc_pages`](../kfuncs/bpf_arena_alloc_pages.md) + - [`bpf_arena_free_pages`](../kfuncs/bpf_arena_free_pages.md) + - [`bpf_cast_to_kern_ctx`](../kfuncs/bpf_cast_to_kern_ctx.md) + - [`bpf_dynptr_adjust`](../kfuncs/bpf_dynptr_adjust.md) + - [`bpf_dynptr_clone`](../kfuncs/bpf_dynptr_clone.md) + - [`bpf_dynptr_from_skb`](../kfuncs/bpf_dynptr_from_skb.md) + - [`bpf_dynptr_is_null`](../kfuncs/bpf_dynptr_is_null.md) + - [`bpf_dynptr_is_rdonly`](../kfuncs/bpf_dynptr_is_rdonly.md) + - [`bpf_dynptr_size`](../kfuncs/bpf_dynptr_size.md) + - [`bpf_dynptr_slice`](../kfuncs/bpf_dynptr_slice.md) + - [`bpf_dynptr_slice_rdwr`](../kfuncs/bpf_dynptr_slice_rdwr.md) + - [`bpf_iter_css_destroy`](../kfuncs/bpf_iter_css_destroy.md) + - [`bpf_iter_css_new`](../kfuncs/bpf_iter_css_new.md) + - [`bpf_iter_css_next`](../kfuncs/bpf_iter_css_next.md) + - [`bpf_iter_css_task_destroy`](../kfuncs/bpf_iter_css_task_destroy.md) + - [`bpf_iter_css_task_new`](../kfuncs/bpf_iter_css_task_new.md) + - [`bpf_iter_css_task_next`](../kfuncs/bpf_iter_css_task_next.md) + - [`bpf_iter_num_destroy`](../kfuncs/bpf_iter_num_destroy.md) + - [`bpf_iter_num_new`](../kfuncs/bpf_iter_num_new.md) + - [`bpf_iter_num_next`](../kfuncs/bpf_iter_num_next.md) + - [`bpf_iter_task_destroy`](../kfuncs/bpf_iter_task_destroy.md) + - [`bpf_iter_task_new`](../kfuncs/bpf_iter_task_new.md) + - [`bpf_iter_task_next`](../kfuncs/bpf_iter_task_next.md) + - [`bpf_iter_task_vma_destroy`](../kfuncs/bpf_iter_task_vma_destroy.md) + - [`bpf_iter_task_vma_new`](../kfuncs/bpf_iter_task_vma_new.md) + - [`bpf_iter_task_vma_next`](../kfuncs/bpf_iter_task_vma_next.md) + - [`bpf_map_sum_elem_count`](../kfuncs/bpf_map_sum_elem_count.md) + - [`bpf_preempt_disable`](../kfuncs/bpf_preempt_disable.md) + - [`bpf_preempt_enable`](../kfuncs/bpf_preempt_enable.md) + - [`bpf_rcu_read_lock`](../kfuncs/bpf_rcu_read_lock.md) + - [`bpf_rcu_read_unlock`](../kfuncs/bpf_rcu_read_unlock.md) + - [`bpf_rdonly_cast`](../kfuncs/bpf_rdonly_cast.md) + - [`bpf_wq_init`](../kfuncs/bpf_wq_init.md) + - [`bpf_wq_set_callback_impl`](../kfuncs/bpf_wq_set_callback_impl.md) + - [`bpf_wq_start`](../kfuncs/bpf_wq_start.md) diff --git a/docs/linux/program-type/BPF_PROG_TYPE_SOCKET_FILTER.md b/docs/linux/program-type/BPF_PROG_TYPE_SOCKET_FILTER.md index ce8a32ba..024536c9 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_SOCKET_FILTER.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_SOCKET_FILTER.md @@ -74,93 +74,93 @@ Not all helper functions are available in all program types. These are the helpe ??? abstract "Supported helper functions" - * [bpf_skb_load_bytes](../helper-function/bpf_skb_load_bytes.md) - * [bpf_skb_load_bytes_relative](../helper-function/bpf_skb_load_bytes_relative.md) - * [bpf_get_socket_cookie](../helper-function/bpf_get_socket_cookie.md) - * [bpf_get_socket_uid](../helper-function/bpf_get_socket_uid.md) - * [bpf_perf_event_output](../helper-function/bpf_perf_event_output.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_loop](../helper-function/bpf_loop.md) - * [bpf_strncmp](../helper-function/bpf_strncmp.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_timer_init](../helper-function/bpf_timer_init.md) - * [bpf_timer_set_callback](../helper-function/bpf_timer_set_callback.md) - * [bpf_timer_start](../helper-function/bpf_timer_start.md) - * [bpf_timer_cancel](../helper-function/bpf_timer_cancel.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) + * [`bpf_skb_load_bytes`](../helper-function/bpf_skb_load_bytes.md) + * [`bpf_skb_load_bytes_relative`](../helper-function/bpf_skb_load_bytes_relative.md) + * [`bpf_get_socket_cookie`](../helper-function/bpf_get_socket_cookie.md) + * [`bpf_get_socket_uid`](../helper-function/bpf_get_socket_uid.md) + * [`bpf_perf_event_output`](../helper-function/bpf_perf_event_output.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_loop`](../helper-function/bpf_loop.md) + * [`bpf_strncmp`](../helper-function/bpf_strncmp.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_timer_init`](../helper-function/bpf_timer_init.md) + * [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) + * [`bpf_timer_start`](../helper-function/bpf_timer_start.md) + * [`bpf_timer_cancel`](../helper-function/bpf_timer_cancel.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) ## KFuncs ??? abstract "Supported kfuncs" - - [bpf_arena_alloc_pages](../kfuncs/bpf_arena_alloc_pages.md) - - [bpf_arena_free_pages](../kfuncs/bpf_arena_free_pages.md) - - [bpf_cast_to_kern_ctx](../kfuncs/bpf_cast_to_kern_ctx.md) - - [bpf_dynptr_adjust](../kfuncs/bpf_dynptr_adjust.md) - - [bpf_dynptr_clone](../kfuncs/bpf_dynptr_clone.md) - - [bpf_dynptr_from_skb](../kfuncs/bpf_dynptr_from_skb.md) - - [bpf_dynptr_is_null](../kfuncs/bpf_dynptr_is_null.md) - - [bpf_dynptr_is_rdonly](../kfuncs/bpf_dynptr_is_rdonly.md) - - [bpf_dynptr_size](../kfuncs/bpf_dynptr_size.md) - - [bpf_dynptr_slice](../kfuncs/bpf_dynptr_slice.md) - - [bpf_dynptr_slice_rdwr](../kfuncs/bpf_dynptr_slice_rdwr.md) - - [bpf_iter_css_destroy](../kfuncs/bpf_iter_css_destroy.md) - - [bpf_iter_css_new](../kfuncs/bpf_iter_css_new.md) - - [bpf_iter_css_next](../kfuncs/bpf_iter_css_next.md) - - [bpf_iter_css_task_destroy](../kfuncs/bpf_iter_css_task_destroy.md) - - [bpf_iter_css_task_new](../kfuncs/bpf_iter_css_task_new.md) - - [bpf_iter_css_task_next](../kfuncs/bpf_iter_css_task_next.md) - - [bpf_iter_num_destroy](../kfuncs/bpf_iter_num_destroy.md) - - [bpf_iter_num_new](../kfuncs/bpf_iter_num_new.md) - - [bpf_iter_num_next](../kfuncs/bpf_iter_num_next.md) - - [bpf_iter_task_destroy](../kfuncs/bpf_iter_task_destroy.md) - - [bpf_iter_task_new](../kfuncs/bpf_iter_task_new.md) - - [bpf_iter_task_next](../kfuncs/bpf_iter_task_next.md) - - [bpf_iter_task_vma_destroy](../kfuncs/bpf_iter_task_vma_destroy.md) - - [bpf_iter_task_vma_new](../kfuncs/bpf_iter_task_vma_new.md) - - [bpf_iter_task_vma_next](../kfuncs/bpf_iter_task_vma_next.md) - - [bpf_map_sum_elem_count](../kfuncs/bpf_map_sum_elem_count.md) - - [bpf_preempt_disable](../kfuncs/bpf_preempt_disable.md) - - [bpf_preempt_enable](../kfuncs/bpf_preempt_enable.md) - - [bpf_rcu_read_lock](../kfuncs/bpf_rcu_read_lock.md) - - [bpf_rcu_read_unlock](../kfuncs/bpf_rcu_read_unlock.md) - - [bpf_rdonly_cast](../kfuncs/bpf_rdonly_cast.md) - - [bpf_wq_init](../kfuncs/bpf_wq_init.md) - - [bpf_wq_set_callback_impl](../kfuncs/bpf_wq_set_callback_impl.md) - - [bpf_wq_start](../kfuncs/bpf_wq_start.md) + - [`bpf_arena_alloc_pages`](../kfuncs/bpf_arena_alloc_pages.md) + - [`bpf_arena_free_pages`](../kfuncs/bpf_arena_free_pages.md) + - [`bpf_cast_to_kern_ctx`](../kfuncs/bpf_cast_to_kern_ctx.md) + - [`bpf_dynptr_adjust`](../kfuncs/bpf_dynptr_adjust.md) + - [`bpf_dynptr_clone`](../kfuncs/bpf_dynptr_clone.md) + - [`bpf_dynptr_from_skb`](../kfuncs/bpf_dynptr_from_skb.md) + - [`bpf_dynptr_is_null`](../kfuncs/bpf_dynptr_is_null.md) + - [`bpf_dynptr_is_rdonly`](../kfuncs/bpf_dynptr_is_rdonly.md) + - [`bpf_dynptr_size`](../kfuncs/bpf_dynptr_size.md) + - [`bpf_dynptr_slice`](../kfuncs/bpf_dynptr_slice.md) + - [`bpf_dynptr_slice_rdwr`](../kfuncs/bpf_dynptr_slice_rdwr.md) + - [`bpf_iter_css_destroy`](../kfuncs/bpf_iter_css_destroy.md) + - [`bpf_iter_css_new`](../kfuncs/bpf_iter_css_new.md) + - [`bpf_iter_css_next`](../kfuncs/bpf_iter_css_next.md) + - [`bpf_iter_css_task_destroy`](../kfuncs/bpf_iter_css_task_destroy.md) + - [`bpf_iter_css_task_new`](../kfuncs/bpf_iter_css_task_new.md) + - [`bpf_iter_css_task_next`](../kfuncs/bpf_iter_css_task_next.md) + - [`bpf_iter_num_destroy`](../kfuncs/bpf_iter_num_destroy.md) + - [`bpf_iter_num_new`](../kfuncs/bpf_iter_num_new.md) + - [`bpf_iter_num_next`](../kfuncs/bpf_iter_num_next.md) + - [`bpf_iter_task_destroy`](../kfuncs/bpf_iter_task_destroy.md) + - [`bpf_iter_task_new`](../kfuncs/bpf_iter_task_new.md) + - [`bpf_iter_task_next`](../kfuncs/bpf_iter_task_next.md) + - [`bpf_iter_task_vma_destroy`](../kfuncs/bpf_iter_task_vma_destroy.md) + - [`bpf_iter_task_vma_new`](../kfuncs/bpf_iter_task_vma_new.md) + - [`bpf_iter_task_vma_next`](../kfuncs/bpf_iter_task_vma_next.md) + - [`bpf_map_sum_elem_count`](../kfuncs/bpf_map_sum_elem_count.md) + - [`bpf_preempt_disable`](../kfuncs/bpf_preempt_disable.md) + - [`bpf_preempt_enable`](../kfuncs/bpf_preempt_enable.md) + - [`bpf_rcu_read_lock`](../kfuncs/bpf_rcu_read_lock.md) + - [`bpf_rcu_read_unlock`](../kfuncs/bpf_rcu_read_unlock.md) + - [`bpf_rdonly_cast`](../kfuncs/bpf_rdonly_cast.md) + - [`bpf_wq_init`](../kfuncs/bpf_wq_init.md) + - [`bpf_wq_set_callback_impl`](../kfuncs/bpf_wq_set_callback_impl.md) + - [`bpf_wq_start`](../kfuncs/bpf_wq_start.md) ## Examples diff --git a/docs/linux/program-type/BPF_PROG_TYPE_SOCK_OPS.md b/docs/linux/program-type/BPF_PROG_TYPE_SOCK_OPS.md index 94be861f..10b199b1 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_SOCK_OPS.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_SOCK_OPS.md @@ -792,69 +792,69 @@ Socket ops programs are attached to cgroups via the [`BPF_PROG_ATTACH`](../sysca ??? abstract "Supported helper functions" - * [bpf_setsockopt](../helper-function/bpf_setsockopt.md) - * [bpf_getsockopt](../helper-function/bpf_getsockopt.md) - * [bpf_sock_ops_cb_flags_set](../helper-function/bpf_sock_ops_cb_flags_set.md) - * [bpf_sock_map_update](../helper-function/bpf_sock_map_update.md) - * [bpf_sock_hash_update](../helper-function/bpf_sock_hash_update.md) - * [bpf_get_socket_cookie](../helper-function/bpf_get_socket_cookie.md) - * [bpf_get_local_storage](../helper-function/bpf_get_local_storage.md) - * [bpf_perf_event_output](../helper-function/bpf_perf_event_output.md) - * [bpf_sk_storage_get](../helper-function/bpf_sk_storage_get.md) - * [bpf_sk_storage_delete](../helper-function/bpf_sk_storage_delete.md) - * [bpf_get_netns_cookie](../helper-function/bpf_get_netns_cookie.md) - * [bpf_load_hdr_opt](../helper-function/bpf_load_hdr_opt.md) - * [bpf_store_hdr_opt](../helper-function/bpf_store_hdr_opt.md) - * [bpf_reserve_hdr_opt](../helper-function/bpf_reserve_hdr_opt.md) - * [bpf_tcp_sock](../helper-function/bpf_tcp_sock.md) - * [bpf_skc_to_tcp6_sock](../helper-function/bpf_skc_to_tcp6_sock.md) - * [bpf_skc_to_tcp_sock](../helper-function/bpf_skc_to_tcp_sock.md) - * [bpf_skc_to_tcp_timewait_sock](../helper-function/bpf_skc_to_tcp_timewait_sock.md) - * [bpf_skc_to_tcp_request_sock](../helper-function/bpf_skc_to_tcp_request_sock.md) - * [bpf_skc_to_udp6_sock](../helper-function/bpf_skc_to_udp6_sock.md) - * [bpf_skc_to_unix_sock](../helper-function/bpf_skc_to_unix_sock.md) - * [bpf_ktime_get_coarse_ns](../helper-function/bpf_ktime_get_coarse_ns.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_loop](../helper-function/bpf_loop.md) - * [bpf_strncmp](../helper-function/bpf_strncmp.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_timer_init](../helper-function/bpf_timer_init.md) - * [bpf_timer_set_callback](../helper-function/bpf_timer_set_callback.md) - * [bpf_timer_start](../helper-function/bpf_timer_start.md) - * [bpf_timer_cancel](../helper-function/bpf_timer_cancel.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) + * [`bpf_setsockopt`](../helper-function/bpf_setsockopt.md) + * [`bpf_getsockopt`](../helper-function/bpf_getsockopt.md) + * [`bpf_sock_ops_cb_flags_set`](../helper-function/bpf_sock_ops_cb_flags_set.md) + * [`bpf_sock_map_update`](../helper-function/bpf_sock_map_update.md) + * [`bpf_sock_hash_update`](../helper-function/bpf_sock_hash_update.md) + * [`bpf_get_socket_cookie`](../helper-function/bpf_get_socket_cookie.md) + * [`bpf_get_local_storage`](../helper-function/bpf_get_local_storage.md) + * [`bpf_perf_event_output`](../helper-function/bpf_perf_event_output.md) + * [`bpf_sk_storage_get`](../helper-function/bpf_sk_storage_get.md) + * [`bpf_sk_storage_delete`](../helper-function/bpf_sk_storage_delete.md) + * [`bpf_get_netns_cookie`](../helper-function/bpf_get_netns_cookie.md) + * [`bpf_load_hdr_opt`](../helper-function/bpf_load_hdr_opt.md) + * [`bpf_store_hdr_opt`](../helper-function/bpf_store_hdr_opt.md) + * [`bpf_reserve_hdr_opt`](../helper-function/bpf_reserve_hdr_opt.md) + * [`bpf_tcp_sock`](../helper-function/bpf_tcp_sock.md) + * [`bpf_skc_to_tcp6_sock`](../helper-function/bpf_skc_to_tcp6_sock.md) + * [`bpf_skc_to_tcp_sock`](../helper-function/bpf_skc_to_tcp_sock.md) + * [`bpf_skc_to_tcp_timewait_sock`](../helper-function/bpf_skc_to_tcp_timewait_sock.md) + * [`bpf_skc_to_tcp_request_sock`](../helper-function/bpf_skc_to_tcp_request_sock.md) + * [`bpf_skc_to_udp6_sock`](../helper-function/bpf_skc_to_udp6_sock.md) + * [`bpf_skc_to_unix_sock`](../helper-function/bpf_skc_to_unix_sock.md) + * [`bpf_ktime_get_coarse_ns`](../helper-function/bpf_ktime_get_coarse_ns.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_loop`](../helper-function/bpf_loop.md) + * [`bpf_strncmp`](../helper-function/bpf_strncmp.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_timer_init`](../helper-function/bpf_timer_init.md) + * [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) + * [`bpf_timer_start`](../helper-function/bpf_timer_start.md) + * [`bpf_timer_cancel`](../helper-function/bpf_timer_cancel.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_STRUCT_OPS.md b/docs/linux/program-type/BPF_PROG_TYPE_STRUCT_OPS.md index 4e7619ac..d6ae3f60 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_STRUCT_OPS.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_STRUCT_OPS.md @@ -285,161 +285,161 @@ Not all helper functions are available in all program types. These are the helpe ??? abstract "Supported helper functions" - * [bpf_tcp_send_ack](../helper-function/bpf_tcp_send_ack.md) - * [bpf_sk_storage_get](../helper-function/bpf_sk_storage_get.md) - * [bpf_sk_storage_delete](../helper-function/bpf_sk_storage_delete.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_loop](../helper-function/bpf_loop.md) - * [bpf_strncmp](../helper-function/bpf_strncmp.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_timer_init](../helper-function/bpf_timer_init.md) - * [bpf_timer_set_callback](../helper-function/bpf_timer_set_callback.md) - * [bpf_timer_start](../helper-function/bpf_timer_start.md) - * [bpf_timer_cancel](../helper-function/bpf_timer_cancel.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) + * [`bpf_tcp_send_ack`](../helper-function/bpf_tcp_send_ack.md) + * [`bpf_sk_storage_get`](../helper-function/bpf_sk_storage_get.md) + * [`bpf_sk_storage_delete`](../helper-function/bpf_sk_storage_delete.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_loop`](../helper-function/bpf_loop.md) + * [`bpf_strncmp`](../helper-function/bpf_strncmp.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_timer_init`](../helper-function/bpf_timer_init.md) + * [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) + * [`bpf_timer_start`](../helper-function/bpf_timer_start.md) + * [`bpf_timer_cancel`](../helper-function/bpf_timer_cancel.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) ## KFuncs ??? abstract "Supported kfuncs" - - [bbr_cwnd_event](../kfuncs/bbr_cwnd_event.md) - - [bbr_init](../kfuncs/bbr_init.md) - - [bbr_main](../kfuncs/bbr_main.md) - - [bbr_min_tso_segs](../kfuncs/bbr_min_tso_segs.md) - - [bbr_set_state](../kfuncs/bbr_set_state.md) - - [bbr_sndbuf_expand](../kfuncs/bbr_sndbuf_expand.md) - - [bbr_ssthresh](../kfuncs/bbr_ssthresh.md) - - [bbr_undo_cwnd](../kfuncs/bbr_undo_cwnd.md) - - [bpf_arena_alloc_pages](../kfuncs/bpf_arena_alloc_pages.md) - - [bpf_arena_free_pages](../kfuncs/bpf_arena_free_pages.md) - - [bpf_cast_to_kern_ctx](../kfuncs/bpf_cast_to_kern_ctx.md) - - [bpf_cgroup_acquire](../kfuncs/bpf_cgroup_acquire.md) - - [bpf_cgroup_ancestor](../kfuncs/bpf_cgroup_ancestor.md) - - [bpf_cgroup_from_id](../kfuncs/bpf_cgroup_from_id.md) - - [bpf_cgroup_release](../kfuncs/bpf_cgroup_release.md) - - [bpf_cpumask_acquire](../kfuncs/bpf_cpumask_acquire.md) - - [bpf_cpumask_and](../kfuncs/bpf_cpumask_and.md) - - [bpf_cpumask_any_and_distribute](../kfuncs/bpf_cpumask_any_and_distribute.md) - - [bpf_cpumask_any_distribute](../kfuncs/bpf_cpumask_any_distribute.md) - - [bpf_cpumask_clear](../kfuncs/bpf_cpumask_clear.md) - - [bpf_cpumask_clear_cpu](../kfuncs/bpf_cpumask_clear_cpu.md) - - [bpf_cpumask_copy](../kfuncs/bpf_cpumask_copy.md) - - [bpf_cpumask_create](../kfuncs/bpf_cpumask_create.md) - - [bpf_cpumask_empty](../kfuncs/bpf_cpumask_empty.md) - - [bpf_cpumask_equal](../kfuncs/bpf_cpumask_equal.md) - - [bpf_cpumask_first](../kfuncs/bpf_cpumask_first.md) - - [bpf_cpumask_first_and](../kfuncs/bpf_cpumask_first_and.md) - - [bpf_cpumask_first_zero](../kfuncs/bpf_cpumask_first_zero.md) - - [bpf_cpumask_full](../kfuncs/bpf_cpumask_full.md) - - [bpf_cpumask_intersects](../kfuncs/bpf_cpumask_intersects.md) - - [bpf_cpumask_or](../kfuncs/bpf_cpumask_or.md) - - [bpf_cpumask_release](../kfuncs/bpf_cpumask_release.md) - - [bpf_cpumask_set_cpu](../kfuncs/bpf_cpumask_set_cpu.md) - - [bpf_cpumask_setall](../kfuncs/bpf_cpumask_setall.md) - - [bpf_cpumask_subset](../kfuncs/bpf_cpumask_subset.md) - - [bpf_cpumask_test_and_clear_cpu](../kfuncs/bpf_cpumask_test_and_clear_cpu.md) - - [bpf_cpumask_test_and_set_cpu](../kfuncs/bpf_cpumask_test_and_set_cpu.md) - - [bpf_cpumask_test_cpu](../kfuncs/bpf_cpumask_test_cpu.md) - - [bpf_cpumask_weight](../kfuncs/bpf_cpumask_weight.md) - - [bpf_cpumask_xor](../kfuncs/bpf_cpumask_xor.md) - - [bpf_dynptr_adjust](../kfuncs/bpf_dynptr_adjust.md) - - [bpf_dynptr_clone](../kfuncs/bpf_dynptr_clone.md) - - [bpf_dynptr_is_null](../kfuncs/bpf_dynptr_is_null.md) - - [bpf_dynptr_is_rdonly](../kfuncs/bpf_dynptr_is_rdonly.md) - - [bpf_dynptr_size](../kfuncs/bpf_dynptr_size.md) - - [bpf_dynptr_slice](../kfuncs/bpf_dynptr_slice.md) - - [bpf_dynptr_slice_rdwr](../kfuncs/bpf_dynptr_slice_rdwr.md) - - [bpf_iter_css_destroy](../kfuncs/bpf_iter_css_destroy.md) - - [bpf_iter_css_new](../kfuncs/bpf_iter_css_new.md) - - [bpf_iter_css_next](../kfuncs/bpf_iter_css_next.md) - - [bpf_iter_css_task_destroy](../kfuncs/bpf_iter_css_task_destroy.md) - - [bpf_iter_css_task_new](../kfuncs/bpf_iter_css_task_new.md) - - [bpf_iter_css_task_next](../kfuncs/bpf_iter_css_task_next.md) - - [bpf_iter_num_destroy](../kfuncs/bpf_iter_num_destroy.md) - - [bpf_iter_num_new](../kfuncs/bpf_iter_num_new.md) - - [bpf_iter_num_next](../kfuncs/bpf_iter_num_next.md) - - [bpf_iter_task_destroy](../kfuncs/bpf_iter_task_destroy.md) - - [bpf_iter_task_new](../kfuncs/bpf_iter_task_new.md) - - [bpf_iter_task_next](../kfuncs/bpf_iter_task_next.md) - - [bpf_iter_task_vma_destroy](../kfuncs/bpf_iter_task_vma_destroy.md) - - [bpf_iter_task_vma_new](../kfuncs/bpf_iter_task_vma_new.md) - - [bpf_iter_task_vma_next](../kfuncs/bpf_iter_task_vma_next.md) - - [bpf_list_pop_back](../kfuncs/bpf_list_pop_back.md) - - [bpf_list_pop_front](../kfuncs/bpf_list_pop_front.md) - - [bpf_list_push_back_impl](../kfuncs/bpf_list_push_back_impl.md) - - [bpf_list_push_front_impl](../kfuncs/bpf_list_push_front_impl.md) - - [bpf_map_sum_elem_count](../kfuncs/bpf_map_sum_elem_count.md) - - [bpf_obj_drop_impl](../kfuncs/bpf_obj_drop_impl.md) - - [bpf_obj_new_impl](../kfuncs/bpf_obj_new_impl.md) - - [bpf_percpu_obj_drop_impl](../kfuncs/bpf_percpu_obj_drop_impl.md) - - [bpf_percpu_obj_new_impl](../kfuncs/bpf_percpu_obj_new_impl.md) - - [bpf_preempt_disable](../kfuncs/bpf_preempt_disable.md) - - [bpf_preempt_enable](../kfuncs/bpf_preempt_enable.md) - - [bpf_rbtree_add_impl](../kfuncs/bpf_rbtree_add_impl.md) - - [bpf_rbtree_first](../kfuncs/bpf_rbtree_first.md) - - [bpf_rbtree_remove](../kfuncs/bpf_rbtree_remove.md) - - [bpf_rcu_read_lock](../kfuncs/bpf_rcu_read_lock.md) - - [bpf_rcu_read_unlock](../kfuncs/bpf_rcu_read_unlock.md) - - [bpf_rdonly_cast](../kfuncs/bpf_rdonly_cast.md) - - [bpf_refcount_acquire_impl](../kfuncs/bpf_refcount_acquire_impl.md) - - [bpf_task_acquire](../kfuncs/bpf_task_acquire.md) - - [bpf_task_from_pid](../kfuncs/bpf_task_from_pid.md) - - [bpf_task_get_cgroup1](../kfuncs/bpf_task_get_cgroup1.md) - - [bpf_task_release](../kfuncs/bpf_task_release.md) - - [bpf_task_under_cgroup](../kfuncs/bpf_task_under_cgroup.md) - - [bpf_throw](../kfuncs/bpf_throw.md) - - [bpf_wq_init](../kfuncs/bpf_wq_init.md) - - [bpf_wq_set_callback_impl](../kfuncs/bpf_wq_set_callback_impl.md) - - [bpf_wq_start](../kfuncs/bpf_wq_start.md) - - [crash_kexec](../kfuncs/crash_kexec.md) - - [cubictcp_acked](../kfuncs/cubictcp_acked.md) - - [cubictcp_cong_avoid](../kfuncs/cubictcp_cong_avoid.md) - - [cubictcp_cwnd_event](../kfuncs/cubictcp_cwnd_event.md) - - [cubictcp_init](../kfuncs/cubictcp_init.md) - - [cubictcp_recalc_ssthresh](../kfuncs/cubictcp_recalc_ssthresh.md) - - [cubictcp_state](../kfuncs/cubictcp_state.md) - - [dctcp_cwnd_event](../kfuncs/dctcp_cwnd_event.md) - - [dctcp_cwnd_undo](../kfuncs/dctcp_cwnd_undo.md) - - [dctcp_init](../kfuncs/dctcp_init.md) - - [dctcp_ssthresh](../kfuncs/dctcp_ssthresh.md) - - [dctcp_state](../kfuncs/dctcp_state.md) - - [dctcp_update_alpha](../kfuncs/dctcp_update_alpha.md) - - [tcp_cong_avoid_ai](../kfuncs/tcp_cong_avoid_ai.md) - - [tcp_reno_cong_avoid](../kfuncs/tcp_reno_cong_avoid.md) - - [tcp_reno_ssthresh](../kfuncs/tcp_reno_ssthresh.md) - - [tcp_reno_undo_cwnd](../kfuncs/tcp_reno_undo_cwnd.md) - - [tcp_slow_start](../kfuncs/tcp_slow_start.md) + - [`bbr_cwnd_event`](../kfuncs/bbr_cwnd_event.md) + - [`bbr_init`](../kfuncs/bbr_init.md) + - [`bbr_main`](../kfuncs/bbr_main.md) + - [`bbr_min_tso_segs`](../kfuncs/bbr_min_tso_segs.md) + - [`bbr_set_state`](../kfuncs/bbr_set_state.md) + - [`bbr_sndbuf_expand`](../kfuncs/bbr_sndbuf_expand.md) + - [`bbr_ssthresh`](../kfuncs/bbr_ssthresh.md) + - [`bbr_undo_cwnd`](../kfuncs/bbr_undo_cwnd.md) + - [`bpf_arena_alloc_pages`](../kfuncs/bpf_arena_alloc_pages.md) + - [`bpf_arena_free_pages`](../kfuncs/bpf_arena_free_pages.md) + - [`bpf_cast_to_kern_ctx`](../kfuncs/bpf_cast_to_kern_ctx.md) + - [`bpf_cgroup_acquire`](../kfuncs/bpf_cgroup_acquire.md) + - [`bpf_cgroup_ancestor`](../kfuncs/bpf_cgroup_ancestor.md) + - [`bpf_cgroup_from_id`](../kfuncs/bpf_cgroup_from_id.md) + - [`bpf_cgroup_release`](../kfuncs/bpf_cgroup_release.md) + - [`bpf_cpumask_acquire`](../kfuncs/bpf_cpumask_acquire.md) + - [`bpf_cpumask_and`](../kfuncs/bpf_cpumask_and.md) + - [`bpf_cpumask_any_and_distribute`](../kfuncs/bpf_cpumask_any_and_distribute.md) + - [`bpf_cpumask_any_distribute`](../kfuncs/bpf_cpumask_any_distribute.md) + - [`bpf_cpumask_clear`](../kfuncs/bpf_cpumask_clear.md) + - [`bpf_cpumask_clear_cpu`](../kfuncs/bpf_cpumask_clear_cpu.md) + - [`bpf_cpumask_copy`](../kfuncs/bpf_cpumask_copy.md) + - [`bpf_cpumask_create`](../kfuncs/bpf_cpumask_create.md) + - [`bpf_cpumask_empty`](../kfuncs/bpf_cpumask_empty.md) + - [`bpf_cpumask_equal`](../kfuncs/bpf_cpumask_equal.md) + - [`bpf_cpumask_first`](../kfuncs/bpf_cpumask_first.md) + - [`bpf_cpumask_first_and`](../kfuncs/bpf_cpumask_first_and.md) + - [`bpf_cpumask_first_zero`](../kfuncs/bpf_cpumask_first_zero.md) + - [`bpf_cpumask_full`](../kfuncs/bpf_cpumask_full.md) + - [`bpf_cpumask_intersects`](../kfuncs/bpf_cpumask_intersects.md) + - [`bpf_cpumask_or`](../kfuncs/bpf_cpumask_or.md) + - [`bpf_cpumask_release`](../kfuncs/bpf_cpumask_release.md) + - [`bpf_cpumask_set_cpu`](../kfuncs/bpf_cpumask_set_cpu.md) + - [`bpf_cpumask_setall`](../kfuncs/bpf_cpumask_setall.md) + - [`bpf_cpumask_subset`](../kfuncs/bpf_cpumask_subset.md) + - [`bpf_cpumask_test_and_clear_cpu`](../kfuncs/bpf_cpumask_test_and_clear_cpu.md) + - [`bpf_cpumask_test_and_set_cpu`](../kfuncs/bpf_cpumask_test_and_set_cpu.md) + - [`bpf_cpumask_test_cpu`](../kfuncs/bpf_cpumask_test_cpu.md) + - [`bpf_cpumask_weight`](../kfuncs/bpf_cpumask_weight.md) + - [`bpf_cpumask_xor`](../kfuncs/bpf_cpumask_xor.md) + - [`bpf_dynptr_adjust`](../kfuncs/bpf_dynptr_adjust.md) + - [`bpf_dynptr_clone`](../kfuncs/bpf_dynptr_clone.md) + - [`bpf_dynptr_is_null`](../kfuncs/bpf_dynptr_is_null.md) + - [`bpf_dynptr_is_rdonly`](../kfuncs/bpf_dynptr_is_rdonly.md) + - [`bpf_dynptr_size`](../kfuncs/bpf_dynptr_size.md) + - [`bpf_dynptr_slice`](../kfuncs/bpf_dynptr_slice.md) + - [`bpf_dynptr_slice_rdwr`](../kfuncs/bpf_dynptr_slice_rdwr.md) + - [`bpf_iter_css_destroy`](../kfuncs/bpf_iter_css_destroy.md) + - [`bpf_iter_css_new`](../kfuncs/bpf_iter_css_new.md) + - [`bpf_iter_css_next`](../kfuncs/bpf_iter_css_next.md) + - [`bpf_iter_css_task_destroy`](../kfuncs/bpf_iter_css_task_destroy.md) + - [`bpf_iter_css_task_new`](../kfuncs/bpf_iter_css_task_new.md) + - [`bpf_iter_css_task_next`](../kfuncs/bpf_iter_css_task_next.md) + - [`bpf_iter_num_destroy`](../kfuncs/bpf_iter_num_destroy.md) + - [`bpf_iter_num_new`](../kfuncs/bpf_iter_num_new.md) + - [`bpf_iter_num_next`](../kfuncs/bpf_iter_num_next.md) + - [`bpf_iter_task_destroy`](../kfuncs/bpf_iter_task_destroy.md) + - [`bpf_iter_task_new`](../kfuncs/bpf_iter_task_new.md) + - [`bpf_iter_task_next`](../kfuncs/bpf_iter_task_next.md) + - [`bpf_iter_task_vma_destroy`](../kfuncs/bpf_iter_task_vma_destroy.md) + - [`bpf_iter_task_vma_new`](../kfuncs/bpf_iter_task_vma_new.md) + - [`bpf_iter_task_vma_next`](../kfuncs/bpf_iter_task_vma_next.md) + - [`bpf_list_pop_back`](../kfuncs/bpf_list_pop_back.md) + - [`bpf_list_pop_front`](../kfuncs/bpf_list_pop_front.md) + - [`bpf_list_push_back_impl`](../kfuncs/bpf_list_push_back_impl.md) + - [`bpf_list_push_front_impl`](../kfuncs/bpf_list_push_front_impl.md) + - [`bpf_map_sum_elem_count`](../kfuncs/bpf_map_sum_elem_count.md) + - [`bpf_obj_drop_impl`](../kfuncs/bpf_obj_drop_impl.md) + - [`bpf_obj_new_impl`](../kfuncs/bpf_obj_new_impl.md) + - [`bpf_percpu_obj_drop_impl`](../kfuncs/bpf_percpu_obj_drop_impl.md) + - [`bpf_percpu_obj_new_impl`](../kfuncs/bpf_percpu_obj_new_impl.md) + - [`bpf_preempt_disable`](../kfuncs/bpf_preempt_disable.md) + - [`bpf_preempt_enable`](../kfuncs/bpf_preempt_enable.md) + - [`bpf_rbtree_add_impl`](../kfuncs/bpf_rbtree_add_impl.md) + - [`bpf_rbtree_first`](../kfuncs/bpf_rbtree_first.md) + - [`bpf_rbtree_remove`](../kfuncs/bpf_rbtree_remove.md) + - [`bpf_rcu_read_lock`](../kfuncs/bpf_rcu_read_lock.md) + - [`bpf_rcu_read_unlock`](../kfuncs/bpf_rcu_read_unlock.md) + - [`bpf_rdonly_cast`](../kfuncs/bpf_rdonly_cast.md) + - [`bpf_refcount_acquire_impl`](../kfuncs/bpf_refcount_acquire_impl.md) + - [`bpf_task_acquire`](../kfuncs/bpf_task_acquire.md) + - [`bpf_task_from_pid`](../kfuncs/bpf_task_from_pid.md) + - [`bpf_task_get_cgroup1`](../kfuncs/bpf_task_get_cgroup1.md) + - [`bpf_task_release`](../kfuncs/bpf_task_release.md) + - [`bpf_task_under_cgroup`](../kfuncs/bpf_task_under_cgroup.md) + - [`bpf_throw`](../kfuncs/bpf_throw.md) + - [`bpf_wq_init`](../kfuncs/bpf_wq_init.md) + - [`bpf_wq_set_callback_impl`](../kfuncs/bpf_wq_set_callback_impl.md) + - [`bpf_wq_start`](../kfuncs/bpf_wq_start.md) + - [`crash_kexec`](../kfuncs/crash_kexec.md) + - [`cubictcp_acked`](../kfuncs/cubictcp_acked.md) + - [`cubictcp_cong_avoid`](../kfuncs/cubictcp_cong_avoid.md) + - [`cubictcp_cwnd_event`](../kfuncs/cubictcp_cwnd_event.md) + - [`cubictcp_init`](../kfuncs/cubictcp_init.md) + - [`cubictcp_recalc_ssthresh`](../kfuncs/cubictcp_recalc_ssthresh.md) + - [`cubictcp_state`](../kfuncs/cubictcp_state.md) + - [`dctcp_cwnd_event`](../kfuncs/dctcp_cwnd_event.md) + - [`dctcp_cwnd_undo`](../kfuncs/dctcp_cwnd_undo.md) + - [`dctcp_init`](../kfuncs/dctcp_init.md) + - [`dctcp_ssthresh`](../kfuncs/dctcp_ssthresh.md) + - [`dctcp_state`](../kfuncs/dctcp_state.md) + - [`dctcp_update_alpha`](../kfuncs/dctcp_update_alpha.md) + - [`tcp_cong_avoid_ai`](../kfuncs/tcp_cong_avoid_ai.md) + - [`tcp_reno_cong_avoid`](../kfuncs/tcp_reno_cong_avoid.md) + - [`tcp_reno_ssthresh`](../kfuncs/tcp_reno_ssthresh.md) + - [`tcp_reno_undo_cwnd`](../kfuncs/tcp_reno_undo_cwnd.md) + - [`tcp_slow_start`](../kfuncs/tcp_slow_start.md) diff --git a/docs/linux/program-type/BPF_PROG_TYPE_SYSCALL.md b/docs/linux/program-type/BPF_PROG_TYPE_SYSCALL.md index d265c2df..4390f2a6 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_SYSCALL.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_SYSCALL.md @@ -70,151 +70,151 @@ Not all helper functions are available in all program types. These are the helpe ??? abstract "Supported helper functions" - * [bpf_sys_bpf](../helper-function/bpf_sys_bpf.md) - * [bpf_btf_find_by_name_kind](../helper-function/bpf_btf_find_by_name_kind.md) - * [bpf_sys_close](../helper-function/bpf_sys_close.md) - * [bpf_kallsyms_lookup_name](../helper-function/bpf_kallsyms_lookup_name.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_get_current_pid_tgid](../helper-function/bpf_get_current_pid_tgid.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_get_current_uid_gid](../helper-function/bpf_get_current_uid_gid.md) - * [bpf_get_current_comm](../helper-function/bpf_get_current_comm.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_perf_event_read](../helper-function/bpf_perf_event_read.md) - * [bpf_current_task_under_cgroup](../helper-function/bpf_current_task_under_cgroup.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_probe_write_user](../helper-function/bpf_probe_write_user.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_probe_read](../helper-function/bpf_probe_read.md) - * [bpf_probe_read_str](../helper-function/bpf_probe_read_str.md) - * [bpf_get_current_cgroup_id](../helper-function/bpf_get_current_cgroup_id.md) - * [bpf_get_current_ancestor_cgroup_id](../helper-function/bpf_get_current_ancestor_cgroup_id.md) - * [bpf_send_signal](../helper-function/bpf_send_signal.md) - * [bpf_send_signal_thread](../helper-function/bpf_send_signal_thread.md) - * [bpf_perf_event_read_value](../helper-function/bpf_perf_event_read_value.md) - * [bpf_get_ns_current_pid_tgid](../helper-function/bpf_get_ns_current_pid_tgid.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_get_task_stack](../helper-function/bpf_get_task_stack.md) - * [bpf_copy_from_user](../helper-function/bpf_copy_from_user.md) - * [bpf_copy_from_user_task](../helper-function/bpf_copy_from_user_task.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_task_storage_get](../helper-function/bpf_task_storage_get.md) - * [bpf_task_storage_delete](../helper-function/bpf_task_storage_delete.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_get_func_ip](../helper-function/bpf_get_func_ip.md) - * [bpf_get_branch_snapshot](../helper-function/bpf_get_branch_snapshot.md) - * [bpf_find_vma](../helper-function/bpf_find_vma.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_loop](../helper-function/bpf_loop.md) - * [bpf_strncmp](../helper-function/bpf_strncmp.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_timer_init](../helper-function/bpf_timer_init.md) - * [bpf_timer_set_callback](../helper-function/bpf_timer_set_callback.md) - * [bpf_timer_start](../helper-function/bpf_timer_start.md) - * [bpf_timer_cancel](../helper-function/bpf_timer_cancel.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) + * [`bpf_sys_bpf`](../helper-function/bpf_sys_bpf.md) + * [`bpf_btf_find_by_name_kind`](../helper-function/bpf_btf_find_by_name_kind.md) + * [`bpf_sys_close`](../helper-function/bpf_sys_close.md) + * [`bpf_kallsyms_lookup_name`](../helper-function/bpf_kallsyms_lookup_name.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_get_current_pid_tgid`](../helper-function/bpf_get_current_pid_tgid.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_get_current_uid_gid`](../helper-function/bpf_get_current_uid_gid.md) + * [`bpf_get_current_comm`](../helper-function/bpf_get_current_comm.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_perf_event_read`](../helper-function/bpf_perf_event_read.md) + * [`bpf_current_task_under_cgroup`](../helper-function/bpf_current_task_under_cgroup.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_probe_write_user`](../helper-function/bpf_probe_write_user.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_probe_read`](../helper-function/bpf_probe_read.md) + * [`bpf_probe_read_str`](../helper-function/bpf_probe_read_str.md) + * [`bpf_get_current_cgroup_id`](../helper-function/bpf_get_current_cgroup_id.md) + * [`bpf_get_current_ancestor_cgroup_id`](../helper-function/bpf_get_current_ancestor_cgroup_id.md) + * [`bpf_send_signal`](../helper-function/bpf_send_signal.md) + * [`bpf_send_signal_thread`](../helper-function/bpf_send_signal_thread.md) + * [`bpf_perf_event_read_value`](../helper-function/bpf_perf_event_read_value.md) + * [`bpf_get_ns_current_pid_tgid`](../helper-function/bpf_get_ns_current_pid_tgid.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_get_task_stack`](../helper-function/bpf_get_task_stack.md) + * [`bpf_copy_from_user`](../helper-function/bpf_copy_from_user.md) + * [`bpf_copy_from_user_task`](../helper-function/bpf_copy_from_user_task.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_task_storage_get`](../helper-function/bpf_task_storage_get.md) + * [`bpf_task_storage_delete`](../helper-function/bpf_task_storage_delete.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_get_func_ip`](../helper-function/bpf_get_func_ip.md) + * [`bpf_get_branch_snapshot`](../helper-function/bpf_get_branch_snapshot.md) + * [`bpf_find_vma`](../helper-function/bpf_find_vma.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_loop`](../helper-function/bpf_loop.md) + * [`bpf_strncmp`](../helper-function/bpf_strncmp.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_timer_init`](../helper-function/bpf_timer_init.md) + * [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) + * [`bpf_timer_start`](../helper-function/bpf_timer_start.md) + * [`bpf_timer_cancel`](../helper-function/bpf_timer_cancel.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) ## KFuncs ??? abstract "Supported kfuncs" - - [bpf_arena_alloc_pages](../kfuncs/bpf_arena_alloc_pages.md) - - [bpf_arena_free_pages](../kfuncs/bpf_arena_free_pages.md) - - [bpf_cast_to_kern_ctx](../kfuncs/bpf_cast_to_kern_ctx.md) - - [bpf_crypto_ctx_acquire](../kfuncs/bpf_crypto_ctx_acquire.md) - - [bpf_crypto_ctx_create](../kfuncs/bpf_crypto_ctx_create.md) - - [bpf_crypto_ctx_release](../kfuncs/bpf_crypto_ctx_release.md) - - [bpf_dynptr_adjust](../kfuncs/bpf_dynptr_adjust.md) - - [bpf_dynptr_clone](../kfuncs/bpf_dynptr_clone.md) - - [bpf_dynptr_is_null](../kfuncs/bpf_dynptr_is_null.md) - - [bpf_dynptr_is_rdonly](../kfuncs/bpf_dynptr_is_rdonly.md) - - [bpf_dynptr_size](../kfuncs/bpf_dynptr_size.md) - - [bpf_dynptr_slice](../kfuncs/bpf_dynptr_slice.md) - - [bpf_dynptr_slice_rdwr](../kfuncs/bpf_dynptr_slice_rdwr.md) - - [bpf_iter_css_destroy](../kfuncs/bpf_iter_css_destroy.md) - - [bpf_iter_css_new](../kfuncs/bpf_iter_css_new.md) - - [bpf_iter_css_next](../kfuncs/bpf_iter_css_next.md) - - [bpf_iter_css_task_destroy](../kfuncs/bpf_iter_css_task_destroy.md) - - [bpf_iter_css_task_new](../kfuncs/bpf_iter_css_task_new.md) - - [bpf_iter_css_task_next](../kfuncs/bpf_iter_css_task_next.md) - - [bpf_iter_num_destroy](../kfuncs/bpf_iter_num_destroy.md) - - [bpf_iter_num_new](../kfuncs/bpf_iter_num_new.md) - - [bpf_iter_num_next](../kfuncs/bpf_iter_num_next.md) - - [bpf_iter_task_destroy](../kfuncs/bpf_iter_task_destroy.md) - - [bpf_iter_task_new](../kfuncs/bpf_iter_task_new.md) - - [bpf_iter_task_next](../kfuncs/bpf_iter_task_next.md) - - [bpf_iter_task_vma_destroy](../kfuncs/bpf_iter_task_vma_destroy.md) - - [bpf_iter_task_vma_new](../kfuncs/bpf_iter_task_vma_new.md) - - [bpf_iter_task_vma_next](../kfuncs/bpf_iter_task_vma_next.md) - - [bpf_map_sum_elem_count](../kfuncs/bpf_map_sum_elem_count.md) - - [bpf_preempt_disable](../kfuncs/bpf_preempt_disable.md) - - [bpf_preempt_enable](../kfuncs/bpf_preempt_enable.md) - - [bpf_rcu_read_lock](../kfuncs/bpf_rcu_read_lock.md) - - [bpf_rcu_read_unlock](../kfuncs/bpf_rcu_read_unlock.md) - - [bpf_rdonly_cast](../kfuncs/bpf_rdonly_cast.md) - - [bpf_wq_init](../kfuncs/bpf_wq_init.md) - - [bpf_wq_set_callback_impl](../kfuncs/bpf_wq_set_callback_impl.md) - - [bpf_wq_start](../kfuncs/bpf_wq_start.md) - - [hid_bpf_allocate_context](../kfuncs/hid_bpf_allocate_context.md) - - [hid_bpf_attach_prog](../kfuncs/hid_bpf_attach_prog.md) - - [hid_bpf_hw_request](../kfuncs/hid_bpf_hw_request.md) - - [hid_bpf_release_context](../kfuncs/hid_bpf_release_context.md) + - [`bpf_arena_alloc_pages`](../kfuncs/bpf_arena_alloc_pages.md) + - [`bpf_arena_free_pages`](../kfuncs/bpf_arena_free_pages.md) + - [`bpf_cast_to_kern_ctx`](../kfuncs/bpf_cast_to_kern_ctx.md) + - [`bpf_crypto_ctx_acquire`](../kfuncs/bpf_crypto_ctx_acquire.md) + - [`bpf_crypto_ctx_create`](../kfuncs/bpf_crypto_ctx_create.md) + - [`bpf_crypto_ctx_release`](../kfuncs/bpf_crypto_ctx_release.md) + - [`bpf_dynptr_adjust`](../kfuncs/bpf_dynptr_adjust.md) + - [`bpf_dynptr_clone`](../kfuncs/bpf_dynptr_clone.md) + - [`bpf_dynptr_is_null`](../kfuncs/bpf_dynptr_is_null.md) + - [`bpf_dynptr_is_rdonly`](../kfuncs/bpf_dynptr_is_rdonly.md) + - [`bpf_dynptr_size`](../kfuncs/bpf_dynptr_size.md) + - [`bpf_dynptr_slice`](../kfuncs/bpf_dynptr_slice.md) + - [`bpf_dynptr_slice_rdwr`](../kfuncs/bpf_dynptr_slice_rdwr.md) + - [`bpf_iter_css_destroy`](../kfuncs/bpf_iter_css_destroy.md) + - [`bpf_iter_css_new`](../kfuncs/bpf_iter_css_new.md) + - [`bpf_iter_css_next`](../kfuncs/bpf_iter_css_next.md) + - [`bpf_iter_css_task_destroy`](../kfuncs/bpf_iter_css_task_destroy.md) + - [`bpf_iter_css_task_new`](../kfuncs/bpf_iter_css_task_new.md) + - [`bpf_iter_css_task_next`](../kfuncs/bpf_iter_css_task_next.md) + - [`bpf_iter_num_destroy`](../kfuncs/bpf_iter_num_destroy.md) + - [`bpf_iter_num_new`](../kfuncs/bpf_iter_num_new.md) + - [`bpf_iter_num_next`](../kfuncs/bpf_iter_num_next.md) + - [`bpf_iter_task_destroy`](../kfuncs/bpf_iter_task_destroy.md) + - [`bpf_iter_task_new`](../kfuncs/bpf_iter_task_new.md) + - [`bpf_iter_task_next`](../kfuncs/bpf_iter_task_next.md) + - [`bpf_iter_task_vma_destroy`](../kfuncs/bpf_iter_task_vma_destroy.md) + - [`bpf_iter_task_vma_new`](../kfuncs/bpf_iter_task_vma_new.md) + - [`bpf_iter_task_vma_next`](../kfuncs/bpf_iter_task_vma_next.md) + - [`bpf_map_sum_elem_count`](../kfuncs/bpf_map_sum_elem_count.md) + - [`bpf_preempt_disable`](../kfuncs/bpf_preempt_disable.md) + - [`bpf_preempt_enable`](../kfuncs/bpf_preempt_enable.md) + - [`bpf_rcu_read_lock`](../kfuncs/bpf_rcu_read_lock.md) + - [`bpf_rcu_read_unlock`](../kfuncs/bpf_rcu_read_unlock.md) + - [`bpf_rdonly_cast`](../kfuncs/bpf_rdonly_cast.md) + - [`bpf_wq_init`](../kfuncs/bpf_wq_init.md) + - [`bpf_wq_set_callback_impl`](../kfuncs/bpf_wq_set_callback_impl.md) + - [`bpf_wq_start`](../kfuncs/bpf_wq_start.md) + - [`hid_bpf_allocate_context`](../kfuncs/hid_bpf_allocate_context.md) + - [`hid_bpf_attach_prog`](../kfuncs/hid_bpf_attach_prog.md) + - [`hid_bpf_hw_request`](../kfuncs/hid_bpf_hw_request.md) + - [`hid_bpf_release_context`](../kfuncs/hid_bpf_release_context.md) diff --git a/docs/linux/program-type/BPF_PROG_TYPE_TRACEPOINT.md b/docs/linux/program-type/BPF_PROG_TYPE_TRACEPOINT.md index feee51ca..34f21800 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_TRACEPOINT.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_TRACEPOINT.md @@ -111,106 +111,106 @@ We call the syscall command with the [`BPF_PERF_EVENT`](../syscall/BPF_LINK_CREA ??? abstract "Supported helper functions" - * [bpf_perf_event_output](../helper-function/bpf_perf_event_output.md) - * [bpf_get_stackid](../helper-function/bpf_get_stackid.md) - * [bpf_get_stack](../helper-function/bpf_get_stack.md) - * [bpf_get_attach_cookie](../helper-function/bpf_get_attach_cookie.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_get_current_pid_tgid](../helper-function/bpf_get_current_pid_tgid.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_get_current_uid_gid](../helper-function/bpf_get_current_uid_gid.md) - * [bpf_get_current_comm](../helper-function/bpf_get_current_comm.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_perf_event_read](../helper-function/bpf_perf_event_read.md) - * [bpf_current_task_under_cgroup](../helper-function/bpf_current_task_under_cgroup.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_probe_write_user](../helper-function/bpf_probe_write_user.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_probe_read](../helper-function/bpf_probe_read.md) - * [bpf_probe_read_str](../helper-function/bpf_probe_read_str.md) - * [bpf_get_current_cgroup_id](../helper-function/bpf_get_current_cgroup_id.md) - * [bpf_get_current_ancestor_cgroup_id](../helper-function/bpf_get_current_ancestor_cgroup_id.md) - * [bpf_send_signal](../helper-function/bpf_send_signal.md) - * [bpf_send_signal_thread](../helper-function/bpf_send_signal_thread.md) - * [bpf_perf_event_read_value](../helper-function/bpf_perf_event_read_value.md) - * [bpf_get_ns_current_pid_tgid](../helper-function/bpf_get_ns_current_pid_tgid.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_get_task_stack](../helper-function/bpf_get_task_stack.md) - * [bpf_copy_from_user](../helper-function/bpf_copy_from_user.md) - * [bpf_copy_from_user_task](../helper-function/bpf_copy_from_user_task.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_task_storage_get](../helper-function/bpf_task_storage_get.md) - * [bpf_task_storage_delete](../helper-function/bpf_task_storage_delete.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_get_func_ip](../helper-function/bpf_get_func_ip.md) - * [bpf_get_branch_snapshot](../helper-function/bpf_get_branch_snapshot.md) - * [bpf_find_vma](../helper-function/bpf_find_vma.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_loop](../helper-function/bpf_loop.md) - * [bpf_strncmp](../helper-function/bpf_strncmp.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_timer_init](../helper-function/bpf_timer_init.md) - * [bpf_timer_set_callback](../helper-function/bpf_timer_set_callback.md) - * [bpf_timer_start](../helper-function/bpf_timer_start.md) - * [bpf_timer_cancel](../helper-function/bpf_timer_cancel.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) + * [`bpf_perf_event_output`](../helper-function/bpf_perf_event_output.md) + * [`bpf_get_stackid`](../helper-function/bpf_get_stackid.md) + * [`bpf_get_stack`](../helper-function/bpf_get_stack.md) + * [`bpf_get_attach_cookie`](../helper-function/bpf_get_attach_cookie.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_get_current_pid_tgid`](../helper-function/bpf_get_current_pid_tgid.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_get_current_uid_gid`](../helper-function/bpf_get_current_uid_gid.md) + * [`bpf_get_current_comm`](../helper-function/bpf_get_current_comm.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_perf_event_read`](../helper-function/bpf_perf_event_read.md) + * [`bpf_current_task_under_cgroup`](../helper-function/bpf_current_task_under_cgroup.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_probe_write_user`](../helper-function/bpf_probe_write_user.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_probe_read`](../helper-function/bpf_probe_read.md) + * [`bpf_probe_read_str`](../helper-function/bpf_probe_read_str.md) + * [`bpf_get_current_cgroup_id`](../helper-function/bpf_get_current_cgroup_id.md) + * [`bpf_get_current_ancestor_cgroup_id`](../helper-function/bpf_get_current_ancestor_cgroup_id.md) + * [`bpf_send_signal`](../helper-function/bpf_send_signal.md) + * [`bpf_send_signal_thread`](../helper-function/bpf_send_signal_thread.md) + * [`bpf_perf_event_read_value`](../helper-function/bpf_perf_event_read_value.md) + * [`bpf_get_ns_current_pid_tgid`](../helper-function/bpf_get_ns_current_pid_tgid.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_get_task_stack`](../helper-function/bpf_get_task_stack.md) + * [`bpf_copy_from_user`](../helper-function/bpf_copy_from_user.md) + * [`bpf_copy_from_user_task`](../helper-function/bpf_copy_from_user_task.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_task_storage_get`](../helper-function/bpf_task_storage_get.md) + * [`bpf_task_storage_delete`](../helper-function/bpf_task_storage_delete.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_get_func_ip`](../helper-function/bpf_get_func_ip.md) + * [`bpf_get_branch_snapshot`](../helper-function/bpf_get_branch_snapshot.md) + * [`bpf_find_vma`](../helper-function/bpf_find_vma.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_loop`](../helper-function/bpf_loop.md) + * [`bpf_strncmp`](../helper-function/bpf_strncmp.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_timer_init`](../helper-function/bpf_timer_init.md) + * [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) + * [`bpf_timer_start`](../helper-function/bpf_timer_start.md) + * [`bpf_timer_cancel`](../helper-function/bpf_timer_cancel.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_TRACING.md b/docs/linux/program-type/BPF_PROG_TYPE_TRACING.md index aae6eb1c..8478952e 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_TRACING.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_TRACING.md @@ -354,196 +354,196 @@ Not all helper functions are available in all program types. These are the helpe ??? abstract "Supported helper functions" - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_get_current_pid_tgid](../helper-function/bpf_get_current_pid_tgid.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_get_current_uid_gid](../helper-function/bpf_get_current_uid_gid.md) - * [bpf_get_current_comm](../helper-function/bpf_get_current_comm.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_perf_event_read](../helper-function/bpf_perf_event_read.md) - * [bpf_current_task_under_cgroup](../helper-function/bpf_current_task_under_cgroup.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_probe_write_user](../helper-function/bpf_probe_write_user.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_probe_read](../helper-function/bpf_probe_read.md) - * [bpf_probe_read_str](../helper-function/bpf_probe_read_str.md) - * [bpf_get_current_cgroup_id](../helper-function/bpf_get_current_cgroup_id.md) - * [bpf_get_current_ancestor_cgroup_id](../helper-function/bpf_get_current_ancestor_cgroup_id.md) - * [bpf_send_signal](../helper-function/bpf_send_signal.md) - * [bpf_send_signal_thread](../helper-function/bpf_send_signal_thread.md) - * [bpf_perf_event_read_value](../helper-function/bpf_perf_event_read_value.md) - * [bpf_get_ns_current_pid_tgid](../helper-function/bpf_get_ns_current_pid_tgid.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_get_task_stack](../helper-function/bpf_get_task_stack.md) - * [bpf_copy_from_user](../helper-function/bpf_copy_from_user.md) - * [bpf_copy_from_user_task](../helper-function/bpf_copy_from_user_task.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_task_storage_get](../helper-function/bpf_task_storage_get.md) - * [bpf_task_storage_delete](../helper-function/bpf_task_storage_delete.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_get_func_ip](../helper-function/bpf_get_func_ip.md) - * [bpf_get_branch_snapshot](../helper-function/bpf_get_branch_snapshot.md) - * [bpf_find_vma](../helper-function/bpf_find_vma.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_loop](../helper-function/bpf_loop.md) - * [bpf_strncmp](../helper-function/bpf_strncmp.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_timer_init](../helper-function/bpf_timer_init.md) - * [bpf_timer_set_callback](../helper-function/bpf_timer_set_callback.md) - * [bpf_timer_start](../helper-function/bpf_timer_start.md) - * [bpf_timer_cancel](../helper-function/bpf_timer_cancel.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_get_current_pid_tgid`](../helper-function/bpf_get_current_pid_tgid.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_get_current_uid_gid`](../helper-function/bpf_get_current_uid_gid.md) + * [`bpf_get_current_comm`](../helper-function/bpf_get_current_comm.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_perf_event_read`](../helper-function/bpf_perf_event_read.md) + * [`bpf_current_task_under_cgroup`](../helper-function/bpf_current_task_under_cgroup.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_probe_write_user`](../helper-function/bpf_probe_write_user.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_probe_read`](../helper-function/bpf_probe_read.md) + * [`bpf_probe_read_str`](../helper-function/bpf_probe_read_str.md) + * [`bpf_get_current_cgroup_id`](../helper-function/bpf_get_current_cgroup_id.md) + * [`bpf_get_current_ancestor_cgroup_id`](../helper-function/bpf_get_current_ancestor_cgroup_id.md) + * [`bpf_send_signal`](../helper-function/bpf_send_signal.md) + * [`bpf_send_signal_thread`](../helper-function/bpf_send_signal_thread.md) + * [`bpf_perf_event_read_value`](../helper-function/bpf_perf_event_read_value.md) + * [`bpf_get_ns_current_pid_tgid`](../helper-function/bpf_get_ns_current_pid_tgid.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_get_task_stack`](../helper-function/bpf_get_task_stack.md) + * [`bpf_copy_from_user`](../helper-function/bpf_copy_from_user.md) + * [`bpf_copy_from_user_task`](../helper-function/bpf_copy_from_user_task.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_task_storage_get`](../helper-function/bpf_task_storage_get.md) + * [`bpf_task_storage_delete`](../helper-function/bpf_task_storage_delete.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_get_func_ip`](../helper-function/bpf_get_func_ip.md) + * [`bpf_get_branch_snapshot`](../helper-function/bpf_get_branch_snapshot.md) + * [`bpf_find_vma`](../helper-function/bpf_find_vma.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_loop`](../helper-function/bpf_loop.md) + * [`bpf_strncmp`](../helper-function/bpf_strncmp.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_timer_init`](../helper-function/bpf_timer_init.md) + * [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) + * [`bpf_timer_start`](../helper-function/bpf_timer_start.md) + * [`bpf_timer_cancel`](../helper-function/bpf_timer_cancel.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) ## KFuncs ??? abstract "Supported kfuncs" - - [bpf_arena_alloc_pages](../kfuncs/bpf_arena_alloc_pages.md) - - [bpf_arena_free_pages](../kfuncs/bpf_arena_free_pages.md) - - [bpf_cast_to_kern_ctx](../kfuncs/bpf_cast_to_kern_ctx.md) - - [bpf_cgroup_acquire](../kfuncs/bpf_cgroup_acquire.md) - - [bpf_cgroup_ancestor](../kfuncs/bpf_cgroup_ancestor.md) - - [bpf_cgroup_from_id](../kfuncs/bpf_cgroup_from_id.md) - - [bpf_cgroup_release](../kfuncs/bpf_cgroup_release.md) - - [bpf_cpumask_acquire](../kfuncs/bpf_cpumask_acquire.md) - - [bpf_cpumask_and](../kfuncs/bpf_cpumask_and.md) - - [bpf_cpumask_any_and_distribute](../kfuncs/bpf_cpumask_any_and_distribute.md) - - [bpf_cpumask_any_distribute](../kfuncs/bpf_cpumask_any_distribute.md) - - [bpf_cpumask_clear](../kfuncs/bpf_cpumask_clear.md) - - [bpf_cpumask_clear_cpu](../kfuncs/bpf_cpumask_clear_cpu.md) - - [bpf_cpumask_copy](../kfuncs/bpf_cpumask_copy.md) - - [bpf_cpumask_create](../kfuncs/bpf_cpumask_create.md) - - [bpf_cpumask_empty](../kfuncs/bpf_cpumask_empty.md) - - [bpf_cpumask_equal](../kfuncs/bpf_cpumask_equal.md) - - [bpf_cpumask_first](../kfuncs/bpf_cpumask_first.md) - - [bpf_cpumask_first_and](../kfuncs/bpf_cpumask_first_and.md) - - [bpf_cpumask_first_zero](../kfuncs/bpf_cpumask_first_zero.md) - - [bpf_cpumask_full](../kfuncs/bpf_cpumask_full.md) - - [bpf_cpumask_intersects](../kfuncs/bpf_cpumask_intersects.md) - - [bpf_cpumask_or](../kfuncs/bpf_cpumask_or.md) - - [bpf_cpumask_release](../kfuncs/bpf_cpumask_release.md) - - [bpf_cpumask_set_cpu](../kfuncs/bpf_cpumask_set_cpu.md) - - [bpf_cpumask_setall](../kfuncs/bpf_cpumask_setall.md) - - [bpf_cpumask_subset](../kfuncs/bpf_cpumask_subset.md) - - [bpf_cpumask_test_and_clear_cpu](../kfuncs/bpf_cpumask_test_and_clear_cpu.md) - - [bpf_cpumask_test_and_set_cpu](../kfuncs/bpf_cpumask_test_and_set_cpu.md) - - [bpf_cpumask_test_cpu](../kfuncs/bpf_cpumask_test_cpu.md) - - [bpf_cpumask_weight](../kfuncs/bpf_cpumask_weight.md) - - [bpf_cpumask_xor](../kfuncs/bpf_cpumask_xor.md) - - [bpf_dynptr_adjust](../kfuncs/bpf_dynptr_adjust.md) - - [bpf_dynptr_clone](../kfuncs/bpf_dynptr_clone.md) - - [bpf_dynptr_is_null](../kfuncs/bpf_dynptr_is_null.md) - - [bpf_dynptr_is_rdonly](../kfuncs/bpf_dynptr_is_rdonly.md) - - [bpf_dynptr_size](../kfuncs/bpf_dynptr_size.md) - - [bpf_dynptr_slice](../kfuncs/bpf_dynptr_slice.md) - - [bpf_dynptr_slice_rdwr](../kfuncs/bpf_dynptr_slice_rdwr.md) - - [bpf_iter_css_destroy](../kfuncs/bpf_iter_css_destroy.md) - - [bpf_iter_css_new](../kfuncs/bpf_iter_css_new.md) - - [bpf_iter_css_next](../kfuncs/bpf_iter_css_next.md) - - [bpf_iter_css_task_destroy](../kfuncs/bpf_iter_css_task_destroy.md) - - [bpf_iter_css_task_new](../kfuncs/bpf_iter_css_task_new.md) - - [bpf_iter_css_task_next](../kfuncs/bpf_iter_css_task_next.md) - - [bpf_iter_num_destroy](../kfuncs/bpf_iter_num_destroy.md) - - [bpf_iter_num_new](../kfuncs/bpf_iter_num_new.md) - - [bpf_iter_num_next](../kfuncs/bpf_iter_num_next.md) - - [bpf_iter_task_destroy](../kfuncs/bpf_iter_task_destroy.md) - - [bpf_iter_task_new](../kfuncs/bpf_iter_task_new.md) - - [bpf_iter_task_next](../kfuncs/bpf_iter_task_next.md) - - [bpf_iter_task_vma_destroy](../kfuncs/bpf_iter_task_vma_destroy.md) - - [bpf_iter_task_vma_new](../kfuncs/bpf_iter_task_vma_new.md) - - [bpf_iter_task_vma_next](../kfuncs/bpf_iter_task_vma_next.md) - - [bpf_key_put](../kfuncs/bpf_key_put.md) - - [bpf_list_pop_back](../kfuncs/bpf_list_pop_back.md) - - [bpf_list_pop_front](../kfuncs/bpf_list_pop_front.md) - - [bpf_list_push_back_impl](../kfuncs/bpf_list_push_back_impl.md) - - [bpf_list_push_front_impl](../kfuncs/bpf_list_push_front_impl.md) - - [bpf_lookup_system_key](../kfuncs/bpf_lookup_system_key.md) - - [bpf_lookup_user_key](../kfuncs/bpf_lookup_user_key.md) - - [bpf_map_sum_elem_count](../kfuncs/bpf_map_sum_elem_count.md) - - [bpf_obj_drop_impl](../kfuncs/bpf_obj_drop_impl.md) - - [bpf_obj_new_impl](../kfuncs/bpf_obj_new_impl.md) - - [bpf_percpu_obj_drop_impl](../kfuncs/bpf_percpu_obj_drop_impl.md) - - [bpf_percpu_obj_new_impl](../kfuncs/bpf_percpu_obj_new_impl.md) - - [bpf_preempt_disable](../kfuncs/bpf_preempt_disable.md) - - [bpf_preempt_enable](../kfuncs/bpf_preempt_enable.md) - - [bpf_rbtree_add_impl](../kfuncs/bpf_rbtree_add_impl.md) - - [bpf_rbtree_first](../kfuncs/bpf_rbtree_first.md) - - [bpf_rbtree_remove](../kfuncs/bpf_rbtree_remove.md) - - [bpf_rcu_read_lock](../kfuncs/bpf_rcu_read_lock.md) - - [bpf_rcu_read_unlock](../kfuncs/bpf_rcu_read_unlock.md) - - [bpf_rdonly_cast](../kfuncs/bpf_rdonly_cast.md) - - [bpf_refcount_acquire_impl](../kfuncs/bpf_refcount_acquire_impl.md) - - [bpf_sock_destroy](../kfuncs/bpf_sock_destroy.md) - - [bpf_task_acquire](../kfuncs/bpf_task_acquire.md) - - [bpf_task_from_pid](../kfuncs/bpf_task_from_pid.md) - - [bpf_task_get_cgroup1](../kfuncs/bpf_task_get_cgroup1.md) - - [bpf_task_release](../kfuncs/bpf_task_release.md) - - [bpf_task_under_cgroup](../kfuncs/bpf_task_under_cgroup.md) - - [bpf_throw](../kfuncs/bpf_throw.md) - - [bpf_verify_pkcs7_signature](../kfuncs/bpf_verify_pkcs7_signature.md) - - [bpf_wq_init](../kfuncs/bpf_wq_init.md) - - [bpf_wq_set_callback_impl](../kfuncs/bpf_wq_set_callback_impl.md) - - [bpf_wq_start](../kfuncs/bpf_wq_start.md) - - [cgroup_rstat_flush](../kfuncs/cgroup_rstat_flush.md) - - [cgroup_rstat_updated](../kfuncs/cgroup_rstat_updated.md) - - [crash_kexec](../kfuncs/crash_kexec.md) - - [hid_bpf_get_data](../kfuncs/hid_bpf_get_data.md) + - [`bpf_arena_alloc_pages`](../kfuncs/bpf_arena_alloc_pages.md) + - [`bpf_arena_free_pages`](../kfuncs/bpf_arena_free_pages.md) + - [`bpf_cast_to_kern_ctx`](../kfuncs/bpf_cast_to_kern_ctx.md) + - [`bpf_cgroup_acquire`](../kfuncs/bpf_cgroup_acquire.md) + - [`bpf_cgroup_ancestor`](../kfuncs/bpf_cgroup_ancestor.md) + - [`bpf_cgroup_from_id`](../kfuncs/bpf_cgroup_from_id.md) + - [`bpf_cgroup_release`](../kfuncs/bpf_cgroup_release.md) + - [`bpf_cpumask_acquire`](../kfuncs/bpf_cpumask_acquire.md) + - [`bpf_cpumask_and`](../kfuncs/bpf_cpumask_and.md) + - [`bpf_cpumask_any_and_distribute`](../kfuncs/bpf_cpumask_any_and_distribute.md) + - [`bpf_cpumask_any_distribute`](../kfuncs/bpf_cpumask_any_distribute.md) + - [`bpf_cpumask_clear`](../kfuncs/bpf_cpumask_clear.md) + - [`bpf_cpumask_clear_cpu`](../kfuncs/bpf_cpumask_clear_cpu.md) + - [`bpf_cpumask_copy`](../kfuncs/bpf_cpumask_copy.md) + - [`bpf_cpumask_create`](../kfuncs/bpf_cpumask_create.md) + - [`bpf_cpumask_empty`](../kfuncs/bpf_cpumask_empty.md) + - [`bpf_cpumask_equal`](../kfuncs/bpf_cpumask_equal.md) + - [`bpf_cpumask_first`](../kfuncs/bpf_cpumask_first.md) + - [`bpf_cpumask_first_and`](../kfuncs/bpf_cpumask_first_and.md) + - [`bpf_cpumask_first_zero`](../kfuncs/bpf_cpumask_first_zero.md) + - [`bpf_cpumask_full`](../kfuncs/bpf_cpumask_full.md) + - [`bpf_cpumask_intersects`](../kfuncs/bpf_cpumask_intersects.md) + - [`bpf_cpumask_or`](../kfuncs/bpf_cpumask_or.md) + - [`bpf_cpumask_release`](../kfuncs/bpf_cpumask_release.md) + - [`bpf_cpumask_set_cpu`](../kfuncs/bpf_cpumask_set_cpu.md) + - [`bpf_cpumask_setall`](../kfuncs/bpf_cpumask_setall.md) + - [`bpf_cpumask_subset`](../kfuncs/bpf_cpumask_subset.md) + - [`bpf_cpumask_test_and_clear_cpu`](../kfuncs/bpf_cpumask_test_and_clear_cpu.md) + - [`bpf_cpumask_test_and_set_cpu`](../kfuncs/bpf_cpumask_test_and_set_cpu.md) + - [`bpf_cpumask_test_cpu`](../kfuncs/bpf_cpumask_test_cpu.md) + - [`bpf_cpumask_weight`](../kfuncs/bpf_cpumask_weight.md) + - [`bpf_cpumask_xor`](../kfuncs/bpf_cpumask_xor.md) + - [`bpf_dynptr_adjust`](../kfuncs/bpf_dynptr_adjust.md) + - [`bpf_dynptr_clone`](../kfuncs/bpf_dynptr_clone.md) + - [`bpf_dynptr_is_null`](../kfuncs/bpf_dynptr_is_null.md) + - [`bpf_dynptr_is_rdonly`](../kfuncs/bpf_dynptr_is_rdonly.md) + - [`bpf_dynptr_size`](../kfuncs/bpf_dynptr_size.md) + - [`bpf_dynptr_slice`](../kfuncs/bpf_dynptr_slice.md) + - [`bpf_dynptr_slice_rdwr`](../kfuncs/bpf_dynptr_slice_rdwr.md) + - [`bpf_iter_css_destroy`](../kfuncs/bpf_iter_css_destroy.md) + - [`bpf_iter_css_new`](../kfuncs/bpf_iter_css_new.md) + - [`bpf_iter_css_next`](../kfuncs/bpf_iter_css_next.md) + - [`bpf_iter_css_task_destroy`](../kfuncs/bpf_iter_css_task_destroy.md) + - [`bpf_iter_css_task_new`](../kfuncs/bpf_iter_css_task_new.md) + - [`bpf_iter_css_task_next`](../kfuncs/bpf_iter_css_task_next.md) + - [`bpf_iter_num_destroy`](../kfuncs/bpf_iter_num_destroy.md) + - [`bpf_iter_num_new`](../kfuncs/bpf_iter_num_new.md) + - [`bpf_iter_num_next`](../kfuncs/bpf_iter_num_next.md) + - [`bpf_iter_task_destroy`](../kfuncs/bpf_iter_task_destroy.md) + - [`bpf_iter_task_new`](../kfuncs/bpf_iter_task_new.md) + - [`bpf_iter_task_next`](../kfuncs/bpf_iter_task_next.md) + - [`bpf_iter_task_vma_destroy`](../kfuncs/bpf_iter_task_vma_destroy.md) + - [`bpf_iter_task_vma_new`](../kfuncs/bpf_iter_task_vma_new.md) + - [`bpf_iter_task_vma_next`](../kfuncs/bpf_iter_task_vma_next.md) + - [`bpf_key_put`](../kfuncs/bpf_key_put.md) + - [`bpf_list_pop_back`](../kfuncs/bpf_list_pop_back.md) + - [`bpf_list_pop_front`](../kfuncs/bpf_list_pop_front.md) + - [`bpf_list_push_back_impl`](../kfuncs/bpf_list_push_back_impl.md) + - [`bpf_list_push_front_impl`](../kfuncs/bpf_list_push_front_impl.md) + - [`bpf_lookup_system_key`](../kfuncs/bpf_lookup_system_key.md) + - [`bpf_lookup_user_key`](../kfuncs/bpf_lookup_user_key.md) + - [`bpf_map_sum_elem_count`](../kfuncs/bpf_map_sum_elem_count.md) + - [`bpf_obj_drop_impl`](../kfuncs/bpf_obj_drop_impl.md) + - [`bpf_obj_new_impl`](../kfuncs/bpf_obj_new_impl.md) + - [`bpf_percpu_obj_drop_impl`](../kfuncs/bpf_percpu_obj_drop_impl.md) + - [`bpf_percpu_obj_new_impl`](../kfuncs/bpf_percpu_obj_new_impl.md) + - [`bpf_preempt_disable`](../kfuncs/bpf_preempt_disable.md) + - [`bpf_preempt_enable`](../kfuncs/bpf_preempt_enable.md) + - [`bpf_rbtree_add_impl`](../kfuncs/bpf_rbtree_add_impl.md) + - [`bpf_rbtree_first`](../kfuncs/bpf_rbtree_first.md) + - [`bpf_rbtree_remove`](../kfuncs/bpf_rbtree_remove.md) + - [`bpf_rcu_read_lock`](../kfuncs/bpf_rcu_read_lock.md) + - [`bpf_rcu_read_unlock`](../kfuncs/bpf_rcu_read_unlock.md) + - [`bpf_rdonly_cast`](../kfuncs/bpf_rdonly_cast.md) + - [`bpf_refcount_acquire_impl`](../kfuncs/bpf_refcount_acquire_impl.md) + - [`bpf_sock_destroy`](../kfuncs/bpf_sock_destroy.md) + - [`bpf_task_acquire`](../kfuncs/bpf_task_acquire.md) + - [`bpf_task_from_pid`](../kfuncs/bpf_task_from_pid.md) + - [`bpf_task_get_cgroup1`](../kfuncs/bpf_task_get_cgroup1.md) + - [`bpf_task_release`](../kfuncs/bpf_task_release.md) + - [`bpf_task_under_cgroup`](../kfuncs/bpf_task_under_cgroup.md) + - [`bpf_throw`](../kfuncs/bpf_throw.md) + - [`bpf_verify_pkcs7_signature`](../kfuncs/bpf_verify_pkcs7_signature.md) + - [`bpf_wq_init`](../kfuncs/bpf_wq_init.md) + - [`bpf_wq_set_callback_impl`](../kfuncs/bpf_wq_set_callback_impl.md) + - [`bpf_wq_start`](../kfuncs/bpf_wq_start.md) + - [`cgroup_rstat_flush`](../kfuncs/cgroup_rstat_flush.md) + - [`cgroup_rstat_updated`](../kfuncs/cgroup_rstat_updated.md) + - [`crash_kexec`](../kfuncs/crash_kexec.md) + - [`hid_bpf_get_data`](../kfuncs/hid_bpf_get_data.md) diff --git a/docs/linux/program-type/BPF_PROG_TYPE_XDP.md b/docs/linux/program-type/BPF_PROG_TYPE_XDP.md index bf6c7dbe..758d6600 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_XDP.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_XDP.md @@ -334,144 +334,144 @@ Not all helper functions are available in all program types. These are the helpe ??? abstract "Supported helper functions" - * [bpf_perf_event_output](../helper-function/bpf_perf_event_output.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_csum_diff](../helper-function/bpf_csum_diff.md) - * [bpf_xdp_adjust_head](../helper-function/bpf_xdp_adjust_head.md) - * [bpf_xdp_adjust_meta](../helper-function/bpf_xdp_adjust_meta.md) - * [bpf_redirect](../helper-function/bpf_redirect.md) - * [bpf_redirect_map](../helper-function/bpf_redirect_map.md) - * [bpf_xdp_adjust_tail](../helper-function/bpf_xdp_adjust_tail.md) - * [bpf_xdp_get_buff_len](../helper-function/bpf_xdp_get_buff_len.md) - * [bpf_xdp_load_bytes](../helper-function/bpf_xdp_load_bytes.md) - * [bpf_xdp_store_bytes](../helper-function/bpf_xdp_store_bytes.md) - * [bpf_fib_lookup](../helper-function/bpf_fib_lookup.md) - * [bpf_check_mtu](../helper-function/bpf_check_mtu.md) - * [bpf_sk_lookup_udp](../helper-function/bpf_sk_lookup_udp.md) - * [bpf_sk_lookup_tcp](../helper-function/bpf_sk_lookup_tcp.md) - * [bpf_sk_release](../helper-function/bpf_sk_release.md) - * [bpf_skc_lookup_tcp](../helper-function/bpf_skc_lookup_tcp.md) - * [bpf_tcp_check_syncookie](../helper-function/bpf_tcp_check_syncookie.md) - * [bpf_tcp_gen_syncookie](../helper-function/bpf_tcp_gen_syncookie.md) - * [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) - * [bpf_map_update_elem](../helper-function/bpf_map_update_elem.md) - * [bpf_map_delete_elem](../helper-function/bpf_map_delete_elem.md) - * [bpf_map_push_elem](../helper-function/bpf_map_push_elem.md) - * [bpf_map_pop_elem](../helper-function/bpf_map_pop_elem.md) - * [bpf_map_peek_elem](../helper-function/bpf_map_peek_elem.md) - * [bpf_map_lookup_percpu_elem](../helper-function/bpf_map_lookup_percpu_elem.md) - * [bpf_get_prandom_u32](../helper-function/bpf_get_prandom_u32.md) - * [bpf_get_smp_processor_id](../helper-function/bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](../helper-function/bpf_get_numa_node_id.md) - * [bpf_tail_call](../helper-function/bpf_tail_call.md) - * [bpf_ktime_get_ns](../helper-function/bpf_ktime_get_ns.md) - * [bpf_ktime_get_boot_ns](../helper-function/bpf_ktime_get_boot_ns.md) - * [bpf_ringbuf_output](../helper-function/bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](../helper-function/bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](../helper-function/bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](../helper-function/bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](../helper-function/bpf_ringbuf_query.md) - * [bpf_for_each_map_elem](../helper-function/bpf_for_each_map_elem.md) - * [bpf_loop](../helper-function/bpf_loop.md) - * [bpf_strncmp](../helper-function/bpf_strncmp.md) - * [bpf_spin_lock](../helper-function/bpf_spin_lock.md) - * [bpf_spin_unlock](../helper-function/bpf_spin_unlock.md) - * [bpf_jiffies64](../helper-function/bpf_jiffies64.md) - * [bpf_per_cpu_ptr](../helper-function/bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](../helper-function/bpf_this_cpu_ptr.md) - * [bpf_timer_init](../helper-function/bpf_timer_init.md) - * [bpf_timer_set_callback](../helper-function/bpf_timer_set_callback.md) - * [bpf_timer_start](../helper-function/bpf_timer_start.md) - * [bpf_timer_cancel](../helper-function/bpf_timer_cancel.md) - * [bpf_trace_printk](../helper-function/bpf_trace_printk.md) - * [bpf_get_current_task](../helper-function/bpf_get_current_task.md) - * [bpf_get_current_task_btf](../helper-function/bpf_get_current_task_btf.md) - * [bpf_probe_read_user](../helper-function/bpf_probe_read_user.md) - * [bpf_probe_read_kernel](../helper-function/bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](../helper-function/bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](../helper-function/bpf_probe_read_kernel_str.md) - * [bpf_snprintf_btf](../helper-function/bpf_snprintf_btf.md) - * [bpf_snprintf](../helper-function/bpf_snprintf.md) - * [bpf_task_pt_regs](../helper-function/bpf_task_pt_regs.md) - * [bpf_trace_vprintk](../helper-function/bpf_trace_vprintk.md) + * [`bpf_perf_event_output`](../helper-function/bpf_perf_event_output.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_csum_diff`](../helper-function/bpf_csum_diff.md) + * [`bpf_xdp_adjust_head`](../helper-function/bpf_xdp_adjust_head.md) + * [`bpf_xdp_adjust_meta`](../helper-function/bpf_xdp_adjust_meta.md) + * [`bpf_redirect`](../helper-function/bpf_redirect.md) + * [`bpf_redirect_map`](../helper-function/bpf_redirect_map.md) + * [`bpf_xdp_adjust_tail`](../helper-function/bpf_xdp_adjust_tail.md) + * [`bpf_xdp_get_buff_len`](../helper-function/bpf_xdp_get_buff_len.md) + * [`bpf_xdp_load_bytes`](../helper-function/bpf_xdp_load_bytes.md) + * [`bpf_xdp_store_bytes`](../helper-function/bpf_xdp_store_bytes.md) + * [`bpf_fib_lookup`](../helper-function/bpf_fib_lookup.md) + * [`bpf_check_mtu`](../helper-function/bpf_check_mtu.md) + * [`bpf_sk_lookup_udp`](../helper-function/bpf_sk_lookup_udp.md) + * [`bpf_sk_lookup_tcp`](../helper-function/bpf_sk_lookup_tcp.md) + * [`bpf_sk_release`](../helper-function/bpf_sk_release.md) + * [`bpf_skc_lookup_tcp`](../helper-function/bpf_skc_lookup_tcp.md) + * [`bpf_tcp_check_syncookie`](../helper-function/bpf_tcp_check_syncookie.md) + * [`bpf_tcp_gen_syncookie`](../helper-function/bpf_tcp_gen_syncookie.md) + * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) + * [`bpf_map_push_elem`](../helper-function/bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](../helper-function/bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](../helper-function/bpf_map_peek_elem.md) + * [`bpf_map_lookup_percpu_elem`](../helper-function/bpf_map_lookup_percpu_elem.md) + * [`bpf_get_prandom_u32`](../helper-function/bpf_get_prandom_u32.md) + * [`bpf_get_smp_processor_id`](../helper-function/bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](../helper-function/bpf_get_numa_node_id.md) + * [`bpf_tail_call`](../helper-function/bpf_tail_call.md) + * [`bpf_ktime_get_ns`](../helper-function/bpf_ktime_get_ns.md) + * [`bpf_ktime_get_boot_ns`](../helper-function/bpf_ktime_get_boot_ns.md) + * [`bpf_ringbuf_output`](../helper-function/bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](../helper-function/bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](../helper-function/bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](../helper-function/bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](../helper-function/bpf_ringbuf_query.md) + * [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) + * [`bpf_loop`](../helper-function/bpf_loop.md) + * [`bpf_strncmp`](../helper-function/bpf_strncmp.md) + * [`bpf_spin_lock`](../helper-function/bpf_spin_lock.md) + * [`bpf_spin_unlock`](../helper-function/bpf_spin_unlock.md) + * [`bpf_jiffies64`](../helper-function/bpf_jiffies64.md) + * [`bpf_per_cpu_ptr`](../helper-function/bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](../helper-function/bpf_this_cpu_ptr.md) + * [`bpf_timer_init`](../helper-function/bpf_timer_init.md) + * [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) + * [`bpf_timer_start`](../helper-function/bpf_timer_start.md) + * [`bpf_timer_cancel`](../helper-function/bpf_timer_cancel.md) + * [`bpf_trace_printk`](../helper-function/bpf_trace_printk.md) + * [`bpf_get_current_task`](../helper-function/bpf_get_current_task.md) + * [`bpf_get_current_task_btf`](../helper-function/bpf_get_current_task_btf.md) + * [`bpf_probe_read_user`](../helper-function/bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](../helper-function/bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](../helper-function/bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](../helper-function/bpf_probe_read_kernel_str.md) + * [`bpf_snprintf_btf`](../helper-function/bpf_snprintf_btf.md) + * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) + * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) + * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) ## KFuncs ??? abstract "Supported kfuncs" - - [bpf_arena_alloc_pages](../kfuncs/bpf_arena_alloc_pages.md) - - [bpf_arena_free_pages](../kfuncs/bpf_arena_free_pages.md) - - [bpf_cast_to_kern_ctx](../kfuncs/bpf_cast_to_kern_ctx.md) - - [bpf_cgroup_acquire](../kfuncs/bpf_cgroup_acquire.md) - - [bpf_cgroup_ancestor](../kfuncs/bpf_cgroup_ancestor.md) - - [bpf_cgroup_from_id](../kfuncs/bpf_cgroup_from_id.md) - - [bpf_cgroup_release](../kfuncs/bpf_cgroup_release.md) - - [bpf_crypto_decrypt](../kfuncs/bpf_crypto_decrypt.md) - - [bpf_crypto_encrypt](../kfuncs/bpf_crypto_encrypt.md) - - [bpf_ct_change_status](../kfuncs/bpf_ct_change_status.md) - - [bpf_ct_change_timeout](../kfuncs/bpf_ct_change_timeout.md) - - [bpf_ct_insert_entry](../kfuncs/bpf_ct_insert_entry.md) - - [bpf_ct_release](../kfuncs/bpf_ct_release.md) - - [bpf_ct_set_nat_info](../kfuncs/bpf_ct_set_nat_info.md) - - [bpf_ct_set_status](../kfuncs/bpf_ct_set_status.md) - - [bpf_ct_set_timeout](../kfuncs/bpf_ct_set_timeout.md) - - [bpf_dynptr_adjust](../kfuncs/bpf_dynptr_adjust.md) - - [bpf_dynptr_clone](../kfuncs/bpf_dynptr_clone.md) - - [bpf_dynptr_from_xdp](../kfuncs/bpf_dynptr_from_xdp.md) - - [bpf_dynptr_is_null](../kfuncs/bpf_dynptr_is_null.md) - - [bpf_dynptr_is_rdonly](../kfuncs/bpf_dynptr_is_rdonly.md) - - [bpf_dynptr_size](../kfuncs/bpf_dynptr_size.md) - - [bpf_dynptr_slice](../kfuncs/bpf_dynptr_slice.md) - - [bpf_dynptr_slice_rdwr](../kfuncs/bpf_dynptr_slice_rdwr.md) - - [bpf_iter_css_destroy](../kfuncs/bpf_iter_css_destroy.md) - - [bpf_iter_css_new](../kfuncs/bpf_iter_css_new.md) - - [bpf_iter_css_next](../kfuncs/bpf_iter_css_next.md) - - [bpf_iter_css_task_destroy](../kfuncs/bpf_iter_css_task_destroy.md) - - [bpf_iter_css_task_new](../kfuncs/bpf_iter_css_task_new.md) - - [bpf_iter_css_task_next](../kfuncs/bpf_iter_css_task_next.md) - - [bpf_iter_num_destroy](../kfuncs/bpf_iter_num_destroy.md) - - [bpf_iter_num_new](../kfuncs/bpf_iter_num_new.md) - - [bpf_iter_num_next](../kfuncs/bpf_iter_num_next.md) - - [bpf_iter_task_destroy](../kfuncs/bpf_iter_task_destroy.md) - - [bpf_iter_task_new](../kfuncs/bpf_iter_task_new.md) - - [bpf_iter_task_next](../kfuncs/bpf_iter_task_next.md) - - [bpf_iter_task_vma_destroy](../kfuncs/bpf_iter_task_vma_destroy.md) - - [bpf_iter_task_vma_new](../kfuncs/bpf_iter_task_vma_new.md) - - [bpf_iter_task_vma_next](../kfuncs/bpf_iter_task_vma_next.md) - - [bpf_list_pop_back](../kfuncs/bpf_list_pop_back.md) - - [bpf_list_pop_front](../kfuncs/bpf_list_pop_front.md) - - [bpf_list_push_back_impl](../kfuncs/bpf_list_push_back_impl.md) - - [bpf_list_push_front_impl](../kfuncs/bpf_list_push_front_impl.md) - - [bpf_map_sum_elem_count](../kfuncs/bpf_map_sum_elem_count.md) - - [bpf_obj_drop_impl](../kfuncs/bpf_obj_drop_impl.md) - - [bpf_obj_new_impl](../kfuncs/bpf_obj_new_impl.md) - - [bpf_percpu_obj_drop_impl](../kfuncs/bpf_percpu_obj_drop_impl.md) - - [bpf_percpu_obj_new_impl](../kfuncs/bpf_percpu_obj_new_impl.md) - - [bpf_preempt_disable](../kfuncs/bpf_preempt_disable.md) - - [bpf_preempt_enable](../kfuncs/bpf_preempt_enable.md) - - [bpf_rbtree_add_impl](../kfuncs/bpf_rbtree_add_impl.md) - - [bpf_rbtree_first](../kfuncs/bpf_rbtree_first.md) - - [bpf_rbtree_remove](../kfuncs/bpf_rbtree_remove.md) - - [bpf_rcu_read_lock](../kfuncs/bpf_rcu_read_lock.md) - - [bpf_rcu_read_unlock](../kfuncs/bpf_rcu_read_unlock.md) - - [bpf_rdonly_cast](../kfuncs/bpf_rdonly_cast.md) - - [bpf_refcount_acquire_impl](../kfuncs/bpf_refcount_acquire_impl.md) - - [bpf_skb_ct_alloc](../kfuncs/bpf_skb_ct_alloc.md) - - [bpf_skb_ct_lookup](../kfuncs/bpf_skb_ct_lookup.md) - - [bpf_task_acquire](../kfuncs/bpf_task_acquire.md) - - [bpf_task_from_pid](../kfuncs/bpf_task_from_pid.md) - - [bpf_task_get_cgroup1](../kfuncs/bpf_task_get_cgroup1.md) - - [bpf_task_release](../kfuncs/bpf_task_release.md) - - [bpf_task_under_cgroup](../kfuncs/bpf_task_under_cgroup.md) - - [bpf_throw](../kfuncs/bpf_throw.md) - - [bpf_wq_init](../kfuncs/bpf_wq_init.md) - - [bpf_wq_set_callback_impl](../kfuncs/bpf_wq_set_callback_impl.md) - - [bpf_wq_start](../kfuncs/bpf_wq_start.md) - - [bpf_xdp_ct_alloc](../kfuncs/bpf_xdp_ct_alloc.md) - - [bpf_xdp_ct_lookup](../kfuncs/bpf_xdp_ct_lookup.md) - - [bpf_xdp_metadata_rx_hash](../kfuncs/bpf_xdp_metadata_rx_hash.md) - - [bpf_xdp_metadata_rx_timestamp](../kfuncs/bpf_xdp_metadata_rx_timestamp.md) - - [bpf_xdp_metadata_rx_vlan_tag](../kfuncs/bpf_xdp_metadata_rx_vlan_tag.md) - - [crash_kexec](../kfuncs/crash_kexec.md) + - [`bpf_arena_alloc_pages`](../kfuncs/bpf_arena_alloc_pages.md) + - [`bpf_arena_free_pages`](../kfuncs/bpf_arena_free_pages.md) + - [`bpf_cast_to_kern_ctx`](../kfuncs/bpf_cast_to_kern_ctx.md) + - [`bpf_cgroup_acquire`](../kfuncs/bpf_cgroup_acquire.md) + - [`bpf_cgroup_ancestor`](../kfuncs/bpf_cgroup_ancestor.md) + - [`bpf_cgroup_from_id`](../kfuncs/bpf_cgroup_from_id.md) + - [`bpf_cgroup_release`](../kfuncs/bpf_cgroup_release.md) + - [`bpf_crypto_decrypt`](../kfuncs/bpf_crypto_decrypt.md) + - [`bpf_crypto_encrypt`](../kfuncs/bpf_crypto_encrypt.md) + - [`bpf_ct_change_status`](../kfuncs/bpf_ct_change_status.md) + - [`bpf_ct_change_timeout`](../kfuncs/bpf_ct_change_timeout.md) + - [`bpf_ct_insert_entry`](../kfuncs/bpf_ct_insert_entry.md) + - [`bpf_ct_release`](../kfuncs/bpf_ct_release.md) + - [`bpf_ct_set_nat_info`](../kfuncs/bpf_ct_set_nat_info.md) + - [`bpf_ct_set_status`](../kfuncs/bpf_ct_set_status.md) + - [`bpf_ct_set_timeout`](../kfuncs/bpf_ct_set_timeout.md) + - [`bpf_dynptr_adjust`](../kfuncs/bpf_dynptr_adjust.md) + - [`bpf_dynptr_clone`](../kfuncs/bpf_dynptr_clone.md) + - [`bpf_dynptr_from_xdp`](../kfuncs/bpf_dynptr_from_xdp.md) + - [`bpf_dynptr_is_null`](../kfuncs/bpf_dynptr_is_null.md) + - [`bpf_dynptr_is_rdonly`](../kfuncs/bpf_dynptr_is_rdonly.md) + - [`bpf_dynptr_size`](../kfuncs/bpf_dynptr_size.md) + - [`bpf_dynptr_slice`](../kfuncs/bpf_dynptr_slice.md) + - [`bpf_dynptr_slice_rdwr`](../kfuncs/bpf_dynptr_slice_rdwr.md) + - [`bpf_iter_css_destroy`](../kfuncs/bpf_iter_css_destroy.md) + - [`bpf_iter_css_new`](../kfuncs/bpf_iter_css_new.md) + - [`bpf_iter_css_next`](../kfuncs/bpf_iter_css_next.md) + - [`bpf_iter_css_task_destroy`](../kfuncs/bpf_iter_css_task_destroy.md) + - [`bpf_iter_css_task_new`](../kfuncs/bpf_iter_css_task_new.md) + - [`bpf_iter_css_task_next`](../kfuncs/bpf_iter_css_task_next.md) + - [`bpf_iter_num_destroy`](../kfuncs/bpf_iter_num_destroy.md) + - [`bpf_iter_num_new`](../kfuncs/bpf_iter_num_new.md) + - [`bpf_iter_num_next`](../kfuncs/bpf_iter_num_next.md) + - [`bpf_iter_task_destroy`](../kfuncs/bpf_iter_task_destroy.md) + - [`bpf_iter_task_new`](../kfuncs/bpf_iter_task_new.md) + - [`bpf_iter_task_next`](../kfuncs/bpf_iter_task_next.md) + - [`bpf_iter_task_vma_destroy`](../kfuncs/bpf_iter_task_vma_destroy.md) + - [`bpf_iter_task_vma_new`](../kfuncs/bpf_iter_task_vma_new.md) + - [`bpf_iter_task_vma_next`](../kfuncs/bpf_iter_task_vma_next.md) + - [`bpf_list_pop_back`](../kfuncs/bpf_list_pop_back.md) + - [`bpf_list_pop_front`](../kfuncs/bpf_list_pop_front.md) + - [`bpf_list_push_back_impl`](../kfuncs/bpf_list_push_back_impl.md) + - [`bpf_list_push_front_impl`](../kfuncs/bpf_list_push_front_impl.md) + - [`bpf_map_sum_elem_count`](../kfuncs/bpf_map_sum_elem_count.md) + - [`bpf_obj_drop_impl`](../kfuncs/bpf_obj_drop_impl.md) + - [`bpf_obj_new_impl`](../kfuncs/bpf_obj_new_impl.md) + - [`bpf_percpu_obj_drop_impl`](../kfuncs/bpf_percpu_obj_drop_impl.md) + - [`bpf_percpu_obj_new_impl`](../kfuncs/bpf_percpu_obj_new_impl.md) + - [`bpf_preempt_disable`](../kfuncs/bpf_preempt_disable.md) + - [`bpf_preempt_enable`](../kfuncs/bpf_preempt_enable.md) + - [`bpf_rbtree_add_impl`](../kfuncs/bpf_rbtree_add_impl.md) + - [`bpf_rbtree_first`](../kfuncs/bpf_rbtree_first.md) + - [`bpf_rbtree_remove`](../kfuncs/bpf_rbtree_remove.md) + - [`bpf_rcu_read_lock`](../kfuncs/bpf_rcu_read_lock.md) + - [`bpf_rcu_read_unlock`](../kfuncs/bpf_rcu_read_unlock.md) + - [`bpf_rdonly_cast`](../kfuncs/bpf_rdonly_cast.md) + - [`bpf_refcount_acquire_impl`](../kfuncs/bpf_refcount_acquire_impl.md) + - [`bpf_skb_ct_alloc`](../kfuncs/bpf_skb_ct_alloc.md) + - [`bpf_skb_ct_lookup`](../kfuncs/bpf_skb_ct_lookup.md) + - [`bpf_task_acquire`](../kfuncs/bpf_task_acquire.md) + - [`bpf_task_from_pid`](../kfuncs/bpf_task_from_pid.md) + - [`bpf_task_get_cgroup1`](../kfuncs/bpf_task_get_cgroup1.md) + - [`bpf_task_release`](../kfuncs/bpf_task_release.md) + - [`bpf_task_under_cgroup`](../kfuncs/bpf_task_under_cgroup.md) + - [`bpf_throw`](../kfuncs/bpf_throw.md) + - [`bpf_wq_init`](../kfuncs/bpf_wq_init.md) + - [`bpf_wq_set_callback_impl`](../kfuncs/bpf_wq_set_callback_impl.md) + - [`bpf_wq_start`](../kfuncs/bpf_wq_start.md) + - [`bpf_xdp_ct_alloc`](../kfuncs/bpf_xdp_ct_alloc.md) + - [`bpf_xdp_ct_lookup`](../kfuncs/bpf_xdp_ct_lookup.md) + - [`bpf_xdp_metadata_rx_hash`](../kfuncs/bpf_xdp_metadata_rx_hash.md) + - [`bpf_xdp_metadata_rx_timestamp`](../kfuncs/bpf_xdp_metadata_rx_timestamp.md) + - [`bpf_xdp_metadata_rx_vlan_tag`](../kfuncs/bpf_xdp_metadata_rx_vlan_tag.md) + - [`crash_kexec`](../kfuncs/crash_kexec.md) diff --git a/tools/helper-ref-gen/main.go b/tools/helper-ref-gen/main.go index 8f8a26dd..f5da88f8 100644 --- a/tools/helper-ref-gen/main.go +++ b/tools/helper-ref-gen/main.go @@ -449,7 +449,7 @@ func renderProgramHelperFuncReference(file *helperFuncDataFile, progType string) sb.WriteString("??? abstract \"Supported helper functions\"\n") for _, item := range group { - fmt.Fprintf(&sb, " * [%s](../helper-function/%s.md)", item.Name, item.Name) + fmt.Fprintf(&sb, " * [`%s`](../helper-function/%s.md)", item.Name, item.Name) if item.Since != nil { fmt.Fprintf(&sb, " [:octicons-tag-24: v%s](https://github.com/torvalds/linux/commit/%s)", item.Since.Version, item.Since.Commit) } @@ -466,7 +466,7 @@ func renderMapHelperFuncReference(file *helperFuncDataFile, progType string) str var sb strings.Builder for _, item := range group { - fmt.Fprintf(&sb, " * [%s](../helper-function/%s.md)", item.Name, item.Name) + fmt.Fprintf(&sb, " * [`%s`](../helper-function/%s.md)", item.Name, item.Name) if item.Since != nil { fmt.Fprintf(&sb, " [:octicons-tag-24: v%s](https://github.com/torvalds/linux/commit/%s)", item.Since.Version, item.Since.Commit) } @@ -480,7 +480,7 @@ func renderHelperFuncProgReference(programTypes []perFunc) string { var sb strings.Builder for _, item := range programTypes { - fmt.Fprintf(&sb, " * [%s](../program-type/%s.md)", item.name, item.name) + fmt.Fprintf(&sb, " * [`%s`](../program-type/%s.md)", item.name, item.name) if item.since != nil { fmt.Fprintf(&sb, " [:octicons-tag-24: v%s](https://github.com/torvalds/linux/commit/%s)", item.since.Version, item.since.Commit) } @@ -494,7 +494,7 @@ func renderHelperFuncMapReference(mapTypes []perFunc) string { var sb strings.Builder for _, item := range mapTypes { - fmt.Fprintf(&sb, " * [%s](../map-type/%s.md)", item.name, item.name) + fmt.Fprintf(&sb, " * [`%s`](../map-type/%s.md)", item.name, item.name) if item.since != nil { fmt.Fprintf(&sb, " [:octicons-tag-24: v%s](https://github.com/torvalds/linux/commit/%s)", item.since.Version, item.since.Commit) } diff --git a/tools/kfunc-gen/main.go b/tools/kfunc-gen/main.go index e88d9407..af6de67f 100644 --- a/tools/kfunc-gen/main.go +++ b/tools/kfunc-gen/main.go @@ -246,7 +246,7 @@ func main() { sort.Strings(kfuncs) for _, kfunc := range kfuncs { - newFile.WriteString(fmt.Sprintf(" - [%s](../kfuncs/%s.md)\n", kfunc, kfunc)) + newFile.WriteString(fmt.Sprintf(" - [`%s`](../kfuncs/%s.md)\n", kfunc, kfunc)) } } else { newFile.WriteString("There are currently no kfuncs supported for this program type\n") From 7b322c4cc255d2f376e8419b56932a7844d0260c Mon Sep 17 00:00:00 2001 From: Dylan Reimerink Date: Sun, 28 Jul 2024 15:52:07 +0200 Subject: [PATCH 2/4] tools: Add spellcheck tool This commit adds a new spellcheck tool. The purpose of which is to be our first CI tooling to check for spelling errors. Due to the use of markdown extensions and code generation, it is difficult to use ready made tools. What our custom tool does is render the markdown files to HTML, parse the HTML with custom logic and exceptions, then feed the text into `aspell` (GNU spell checker) to check for spelling errors, and then do a best effort to find the location of the spelling mistake in the markdown files. Aspell allows to the addition of a personal word list, which will be added in a followup commit. In addition, the tool excludes code blocks, text between tags, generated output, and html which is not from the markdown files. Signed-off-by: Dylan Reimerink --- .gitignore | 2 +- Makefile | 30 +++- go.mod | 3 +- go.sum | 11 +- tools/Dockerfile | 2 +- tools/bin/.gitignore | 2 + tools/spellcheck/main.go | 374 +++++++++++++++++++++++++++++++++++++++ 7 files changed, 413 insertions(+), 11 deletions(-) create mode 100644 tools/bin/.gitignore create mode 100644 tools/spellcheck/main.go diff --git a/.gitignore b/.gitignore index 5cbd6867..f155d8ec 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ .vscode/ -venv/** \ No newline at end of file +venv/** diff --git a/Makefile b/Makefile index 972c6f32..0d5288d8 100644 --- a/Makefile +++ b/Makefile @@ -40,10 +40,28 @@ serve: build-container -e "PROD=${PROD}" -e "GH_TOKEN=${GH_TOKEN}" \ -w /docs -u $$(id -u $${USER}):$$(id -g $${USER}) --entrypoint "bash" "${IMAGE}:${VERSION}" -c "mkdocs serve -a 0.0.0.0:8000 --watch /docs/docs" +.PHONY: build-tools +build-tools: + ${CONTAINER_ENGINE} run --rm -v "${REPODIR}:/docs" -w /docs golang:latest bash -c \ + "CGO_ENABLED=0 go build -buildvcs=false -o /docs/tools/bin/spellcheck /docs/tools/spellcheck/. && \ + CGO_ENABLED=0 go build -buildvcs=false -o /docs/tools/bin/helper-ref-gen /docs/tools/helper-ref-gen/. && \ + CGO_ENABLED=0 go build -buildvcs=false -o /docs/tools/bin/feature-tag-gen /docs/tools/feature-tag-gen/. && \ + CGO_ENABLED=0 go build -buildvcs=false -o /docs/tools/bin/kfunc-gen /docs/tools/spellcheck/. && \ + CGO_ENABLED=0 go build -buildvcs=false -o /docs/tools/bin/mtu-calc /docs/tools/mtu-calc/. && \ + CGO_ENABLED=0 go build -buildvcs=false -o /docs/tools/bin/helper-def-scraper /docs/tools/helper-def-scraper/." + .PHONY: generate-docs -generate-docs: - cd ${REPODIR}/tools/helper-ref-gen; go run main.go --project-root "${REPODIR}" - cd ${REPODIR}/tools/feature-tag-gen; go run main.go --project-root "${REPODIR}" - cd ${REPODIR}/tools/kfunc-gen; go run main.go --project-root "${REPODIR}" - cd ${REPODIR}/tools/mtu-calc; go run . --project-root "${REPODIR}" - cd ${REPODIR}/tools/helper-def-scraper; go run main.go --helper-path "${REPODIR}/docs/linux/helper-function" +generate-docs: build-container build-tools + ${CONTAINER_ENGINE} run --rm -v "${REPODIR}:/docs" \ + -w /docs -u $$(id -u $${USER}):$$(id -g $${USER}) --entrypoint "bash" "${IMAGE}:${VERSION}" -c \ + "/docs/tools/bin/helper-ref-gen --project-root /docs && \ + /docs/tools/bin/feature-tag-gen --project-root /docs && \ + /docs/tools/bin/kfunc-gen --project-root /docs && \ + /docs/tools/bin/mtu-calc --project-root /docs && \ + /docs/tools/bin/helper-def-scraper --helper-path /docs/docs/linux/helper-function" + +.PHONY: spellcheck +spellcheck: build-container build-tools + ${CONTAINER_ENGINE} run --rm -v "${REPODIR}:/docs" \ + -w /docs -u $$(id -u $${USER}):$$(id -g $${USER}) --entrypoint "bash" "${IMAGE}:${VERSION}" -c \ + "/docs/tools/bin/spellcheck --project-root /docs" diff --git a/go.mod b/go.mod index 658792b6..11d1858b 100644 --- a/go.mod +++ b/go.mod @@ -5,10 +5,11 @@ go 1.22 require ( github.com/cilium/ebpf v0.12.3 golang.org/x/exp v0.0.0-20230224173230-c95f2b4c22f2 + golang.org/x/net v0.27.0 gopkg.in/yaml.v3 v3.0.1 ) require ( - golang.org/x/sys v0.14.1-0.20231108175955-e4099bfacb8c // indirect + golang.org/x/sys v0.22.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect ) diff --git a/go.sum b/go.sum index cd69373c..cd7beb30 100644 --- a/go.sum +++ b/go.sum @@ -1,17 +1,24 @@ github.com/cilium/ebpf v0.12.3 h1:8ht6F9MquybnY97at+VDZb3eQQr8ev79RueWeVaEcG4= github.com/cilium/ebpf v0.12.3/go.mod h1:TctK1ivibvI3znr66ljgi4hqOT8EYQjz1KWBfb1UVgM= github.com/frankban/quicktest v1.14.5 h1:dfYrrRyLtiqT9GyKXgdh+k4inNeTvmGbuSgZ3lx3GhA= +github.com/frankban/quicktest v1.14.5/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= golang.org/x/exp v0.0.0-20230224173230-c95f2b4c22f2 h1:Jvc7gsqn21cJHCmAWx0LiimpP18LZmUxkT5Mp7EZ1mI= golang.org/x/exp v0.0.0-20230224173230-c95f2b4c22f2/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= -golang.org/x/sys v0.14.1-0.20231108175955-e4099bfacb8c h1:3kC/TjQ+xzIblQv39bCOyRk8fbEeJcDHwbyxPUU2BpA= -golang.org/x/sys v0.14.1-0.20231108175955-e4099bfacb8c/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= +golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/tools/Dockerfile b/tools/Dockerfile index fe372400..34cfbc4c 100644 --- a/tools/Dockerfile +++ b/tools/Dockerfile @@ -5,7 +5,7 @@ ARG GID=1000 COPY requirements.txt /root/requirements.txt RUN apt update && \ - apt install -y git && \ + apt install -y git aspell && \ pip install -r /root/requirements.txt && \ groupadd -g $GID docs && \ useradd -u $UID -g $GID -m -s /bin/bash docs diff --git a/tools/bin/.gitignore b/tools/bin/.gitignore new file mode 100644 index 00000000..d6b7ef32 --- /dev/null +++ b/tools/bin/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/tools/spellcheck/main.go b/tools/spellcheck/main.go new file mode 100644 index 00000000..375f5244 --- /dev/null +++ b/tools/spellcheck/main.go @@ -0,0 +1,374 @@ +package main + +import ( + "bufio" + "errors" + "flag" + "fmt" + "io" + "log/slog" + "os" + "os/exec" + "strconv" + "strings" + + "golang.org/x/net/html" +) + +var projectroot = flag.String("project-root", "", "Root of the project") +var failFast = flag.Bool("fail-fast", false, "Fail on the first file with misspelled words") + +func main() { + flag.Parse() + + err := checkDir(*projectroot + "/out") + if err != nil { + if errors.Is(err, errMisspelled) { + fmt.Println("Misspelled words found. Please fix them. Or add them to the dictionary (.aspell.en.pws)") + os.Exit(1) + } + } +} + +func checkDir(path string) error { + entry, err := os.ReadDir(path) + if err != nil { + return err + } + + foundMisspelling := false + + for _, e := range entry { + subPath := path + "/" + e.Name() + if e.IsDir() { + if err = checkDir(subPath); err != nil { + if errors.Is(err, errMisspelled) { + foundMisspelling = true + if *failFast { + break + } + } else { + return err + } + } + } else { + if err = checkFile(subPath); err != nil { + if errors.Is(err, errMisspelled) { + foundMisspelling = true + if *failFast { + break + } + } else { + return err + } + } + } + } + + if foundMisspelling { + return errMisspelled + } + + return nil +} + +var errMisspelled = errors.New("misspelled") + +func checkFile(path string) error { + if path[len(path)-5:] != ".html" { + return nil + } + + f, err := os.Open(path) + if err != nil { + return err + } + defer f.Close() + + r := bufio.NewReader(f) + + cmd := aspellCmd() + inPipe, err := cmd.StdinPipe() + if err != nil { + return err + } + + // Enter aspell's terse mode. In this mode aspell will only output misspelled words and suggestions and + // skip printing '*' for each correct word. + _, err = inPipe.Write([]byte("!\n")) + if err != nil { + return err + } + + outPipe, err := cmd.StdoutPipe() + if err != nil { + return err + } + + outScanner := bufio.NewScanner(outPipe) + outScanner.Split(bufio.ScanLines) + + err = cmd.Start() + if err != nil { + return err + } + + root, err := html.Parse(r) + if err != nil { + panic(err) + } + + var misspellings []misspelling + + inGenerated := false + inHead := false + visitNode(root, func(n *html.Node) action { + if inHead { + p := n.Parent + for { + if p.Type == html.ElementNode && p.Data == "head" { + break + } + + if p.Parent == nil { + inHead = false + break + } + + p = p.Parent + } + } + + switch n.Type { + case html.DocumentNode, html.DoctypeNode, html.RawNode: + return next + case html.ErrorNode: + return skipSubtree + case html.CommentNode: + if strings.HasPrefix(n.Data, " [/HELPER_FUNC_DEF]") || + strings.HasPrefix(n.Data, " [/MTU_TABLE]") { + inGenerated = false + return next + } + if strings.HasPrefix(n.Data, " [HELPER_FUNC_DEF]") || + strings.HasPrefix(n.Data, " [MTU_TABLE]") { + inGenerated = true + } + case html.ElementNode: + switch n.Data { + case + // Ignore scripts and style since they don't contain text we own + "script", "style", + // Ignore the navigation, every element has its own page anyway + "nav", + // Ignore code/quotes in code tags + "code", + // Ignore anyting inside the custom tag + "nospell": + return skipSubtree + case "head": + inHead = true + } + + return next + case html.TextNode: + if inGenerated { + return next + } + + for _, line := range strings.Split(n.Data, "\n") { + trimmed := strings.TrimSpace(line) + if trimmed == "" { + return next + } + + // Special case, if in we use '' instead of `` to mark code / keywords. + // So remove anything between single quotes. + if inHead { + for { + start := strings.Index(trimmed, "'") + if start == -1 { + break + } + + end := strings.Index(trimmed[start+1:], "'") + if end == -1 { + break + } + + trimmed = trimmed[:start] + trimmed[start+end+2:] + } + } + + // If the line starts with a special character, add a space so aspell doesn't take it + // as a command + linePadded := false + if strings.ContainsAny(trimmed[:1], "*&@#~+-!%^$") { + trimmed = " " + trimmed + linePadded = true + } + + _, err = inPipe.Write([]byte(trimmed + "\n")) + if err != nil { + slog.Error("Failed to write to aspell", "err", err) + return skipSubtree + } + + for { + if !outScanner.Scan() { + break + } + + line := outScanner.Text() + if line == "" { + break + } + + // We should't get these in terse mode, but just in case + if strings.HasPrefix(line, "*") { + continue + } + + if !strings.HasPrefix(line, "&") { + continue + } + + parts := strings.SplitN(line, " ", 5) + misspelled := parts[1] + offsetInLine, _ := strconv.Atoi(strings.TrimRight(parts[3], ":")) + if linePadded { + offsetInLine -= 1 + } + suggestions := parts[4] + misspellings = append(misspellings, misspelling{ + file: path, + misspelled: misspelled, + context: trimmed, + offset: offsetInLine, + suggestions: strings.Split(suggestions, ", "), + }) + } + } + default: + return next + } + + return next + }) + + // Close the pipe to signal the end of input + err = inPipe.Close() + if err != nil { + return err + } + + // Drain the output + for outScanner.Scan() { + } + + // Wait for the command to finish + err = cmd.Wait() + + if len(misspellings) > 0 { + for _, m := range misspellings { + fmt.Printf("Misspelled '%s' found in %s\n", m.misspelled, m.file) + fmt.Printf("Did you mean one of: %s?\n", strings.Join(m.suggestions, ", ")) + possibleLocations := findPossibleLocations(m.file, m.context) + if (len(possibleLocations)) > 0 { + fmt.Printf("Possible locations in markdown:\n") + + for _, loc := range possibleLocations { + fmt.Printf(" %s:%d:%d\n", loc.file, loc.line, loc.column+m.offset) + } + } + fmt.Println() + } + + return errMisspelled + } + + return nil +} + +type fileLocation struct { + file string + line int + column int +} + +func findPossibleLocations(path string, context string) []fileLocation { + mdPath := strings.Replace(strings.Replace(path, "/out/", "/docs/", 1), "/index.html", ".md", 1) + mdFile, err := os.Open(mdPath) + if err != nil { + mdPath = strings.Replace(strings.Replace(path, "/out/", "/docs/", 1), ".html", ".md", 1) + mdFile, err = os.Open(mdPath) + if err != nil { + return nil + } + } + defer mdFile.Close() + + contentsBytes, err := io.ReadAll(mdFile) + if err != nil { + return nil + } + contents := string(contentsBytes) + + possibleLocations := make([]fileLocation, 0) + + off := 0 + for { + i := strings.Index(contents[off:], context) + if i == -1 { + break + } + + off += i + 1 + + possibleLocations = append(possibleLocations, fileLocation{ + file: mdPath, + line: strings.Count(contents[:off], "\n") + 1, + column: off - strings.LastIndex(contents[:off], "\n") - 1, + }) + } + + return possibleLocations +} + +type misspelling struct { + file string + misspelled string + context string + offset int + suggestions []string +} + +type action int + +const ( + next action = iota + skipSubtree +) + +func visitNode(n *html.Node, cb func(*html.Node) action) { + if act := cb(n); act == skipSubtree { + return + } + + if n.FirstChild != nil { + visitNode(n.FirstChild, cb) + } + + if n.NextSibling != nil { + visitNode(n.NextSibling, cb) + } +} + +func aspellCmd() *exec.Cmd { + return exec.Command( + "aspell", + "-a", + "--lang=en", + "--home-dir="+*projectroot, + ) +} From 00bdf42d20616e7db739d6c917b1353a73087965 Mon Sep 17 00:00:00 2001 From: Dylan Reimerink Date: Sun, 28 Jul 2024 15:58:51 +0200 Subject: [PATCH 3/4] tools/spellcheck: Fix all spelling errors on the existing docs This commit addresses all spelling errors found by the new spellchecker in one of the following ways: * Fixing the spelling in the docs * Adding correct jagron and shorthands to the .aspell.en.pws file * Adding markdown code backticks around code references, names and commands * Adding tags around one-off unrecognized spelling which do not need to be added to the .aspell.en.pws file. Signed-off-by: Dylan Reimerink --- .aspell.en.pws | 203 ++++++++ Makefile | 2 +- data/helpers-functions.yaml | 34 +- docs/SUMMARY.md | 2 +- docs/concepts/btf.md | 4 +- docs/concepts/core.md | 20 +- docs/concepts/elf.md | 2 +- docs/ebpf-library/index.md | 4 +- docs/ebpf-library/libbpf.md | 2 +- docs/ebpf-library/libxdp/SUMMARY.md | 86 ++-- .../xdp_multiprog__get_from_ifindex.md | 2 +- .../functions/xdp_multiprog__hw_prog.md | 2 +- .../libxdp/functions/xdp_program__run_prio.md | 2 +- .../functions/xsk_ring_prod__tx_desc.md | 2 +- .../libxdp/functions/xsk_setup_xdp_prog.md | 2 +- .../libxdp/functions/xsk_socket__create.md | 2 +- .../functions/xsk_socket__create_shared.md | 2 +- .../functions/xsk_socket__update_xskmap.md | 2 +- .../functions/xsk_umem__add_offset_to_addr.md | 2 +- .../libxdp/functions/xsk_umem__create.md | 2 +- .../functions/xsk_umem__create_with_fd.md | 2 +- .../functions/xsk_umem__extract_addr.md | 2 +- .../functions/xsk_umem__extract_offset.md | 2 +- .../libxdp/functions/xsk_umem__get_data.md | 2 +- docs/ebpf-library/libxdp/libxdp.md | 108 ++--- docs/faq.md | 2 +- docs/index.md | 4 +- docs/linux/concepts/SUMMARY.md | 2 +- docs/linux/concepts/af_xdp.md | 34 +- docs/linux/concepts/concurrency.md | 18 +- docs/linux/concepts/index.md | 8 +- docs/linux/concepts/kfuncs.md | 8 +- docs/linux/concepts/maps.md | 6 +- docs/linux/concepts/pinning.md | 4 +- docs/linux/concepts/resource-limit.md | 2 +- docs/linux/concepts/tail-calls.md | 4 +- docs/linux/concepts/timers.md | 16 +- docs/linux/concepts/verifier.md | 16 +- docs/linux/helper-function/SUMMARY.md | 432 +++++++++--------- .../bpf_cgrp_storage_delete.md | 57 +-- .../helper-function/bpf_cgrp_storage_get.md | 57 +-- docs/linux/helper-function/bpf_d_path.md | 2 +- docs/linux/helper-function/bpf_dynptr_data.md | 30 +- .../helper-function/bpf_dynptr_from_mem.md | 30 +- docs/linux/helper-function/bpf_dynptr_read.md | 30 +- .../linux/helper-function/bpf_dynptr_write.md | 30 +- .../helper-function/bpf_for_each_map_elem.md | 4 +- .../helper-function/bpf_get_attach_cookie.md | 2 +- .../linux/helper-function/bpf_get_func_arg.md | 15 +- .../helper-function/bpf_get_func_arg_cnt.md | 15 +- .../linux/helper-function/bpf_get_func_ret.md | 15 +- .../helper-function/bpf_get_socket_cookie.md | 1 + docs/linux/helper-function/bpf_get_stack.md | 1 + docs/linux/helper-function/bpf_get_stackid.md | 9 +- docs/linux/helper-function/bpf_kptr_xchg.md | 30 +- .../helper-function/bpf_ktime_get_tai_ns.md | 30 +- .../helper-function/bpf_map_lookup_elem.md | 2 +- .../helper-function/bpf_perf_event_output.md | 1 + .../bpf_ringbuf_discard_dynptr.md | 40 +- .../helper-function/bpf_ringbuf_output.md | 2 +- .../helper-function/bpf_ringbuf_reserve.md | 4 +- .../bpf_ringbuf_reserve_dynptr.md | 40 +- .../helper-function/bpf_ringbuf_submit.md | 2 +- .../bpf_ringbuf_submit_dynptr.md | 40 +- docs/linux/helper-function/bpf_seq_printf.md | 29 +- .../helper-function/bpf_seq_printf_btf.md | 29 +- docs/linux/helper-function/bpf_seq_write.md | 29 +- docs/linux/helper-function/bpf_sk_assign.md | 2 +- .../helper-function/bpf_sk_redirect_hash.md | 2 +- .../bpf_sk_select_reuseport.md | 4 +- .../helper-function/bpf_sk_storage_delete.md | 1 + .../helper-function/bpf_sk_storage_get.md | 1 + docs/linux/helper-function/bpf_skb_output.md | 2 +- .../helper-function/bpf_skc_to_mptcp_sock.md | 4 +- .../helper-function/bpf_skc_to_tcp6_sock.md | 1 + .../bpf_skc_to_tcp_request_sock.md | 1 + .../helper-function/bpf_skc_to_tcp_sock.md | 1 + .../bpf_skc_to_tcp_timewait_sock.md | 1 + .../helper-function/bpf_skc_to_udp6_sock.md | 1 + .../helper-function/bpf_skc_to_unix_sock.md | 1 + .../helper-function/bpf_sock_from_file.md | 15 +- docs/linux/helper-function/bpf_spin_lock.md | 44 +- .../bpf_tcp_raw_check_syncookie_ipv4.md | 3 +- .../bpf_tcp_raw_check_syncookie_ipv6.md | 3 +- .../bpf_tcp_raw_gen_syncookie_ipv4.md | 2 +- .../bpf_tcp_raw_gen_syncookie_ipv6.md | 3 +- .../linux/helper-function/bpf_timer_cancel.md | 46 +- docs/linux/helper-function/bpf_timer_init.md | 46 +- .../helper-function/bpf_timer_set_callback.md | 46 +- docs/linux/helper-function/bpf_timer_start.md | 46 +- .../linux/helper-function/bpf_trace_printk.md | 2 +- .../helper-function/bpf_user_ringbuf_drain.md | 57 +-- .../helper-function/bpf_xdp_get_buff_len.md | 1 + docs/linux/helper-function/bpf_xdp_output.md | 2 +- docs/linux/helper-function/index.md | 430 ++++++++--------- docs/linux/index.md | 8 +- docs/linux/kfuncs/SUMMARY.md | 316 ++++++------- docs/linux/kfuncs/bbr_cwnd_event.md | 2 +- docs/linux/kfuncs/bbr_init.md | 2 +- docs/linux/kfuncs/bbr_main.md | 2 +- docs/linux/kfuncs/bbr_min_tso_segs.md | 4 +- docs/linux/kfuncs/bbr_set_state.md | 2 +- docs/linux/kfuncs/bbr_sndbuf_expand.md | 6 +- docs/linux/kfuncs/bbr_ssthresh.md | 4 +- docs/linux/kfuncs/bbr_undo_cwnd.md | 4 +- docs/linux/kfuncs/bpf_arena_alloc_pages.md | 32 +- docs/linux/kfuncs/bpf_arena_free_pages.md | 32 +- docs/linux/kfuncs/bpf_cast_to_kern_ctx.md | 34 +- docs/linux/kfuncs/bpf_cgroup_acquire.md | 14 +- docs/linux/kfuncs/bpf_cgroup_ancestor.md | 14 +- docs/linux/kfuncs/bpf_cgroup_from_id.md | 14 +- docs/linux/kfuncs/bpf_cgroup_release.md | 14 +- docs/linux/kfuncs/bpf_cpumask_acquire.md | 10 +- docs/linux/kfuncs/bpf_cpumask_and.md | 10 +- .../kfuncs/bpf_cpumask_any_and_distribute.md | 16 +- .../kfuncs/bpf_cpumask_any_distribute.md | 14 +- docs/linux/kfuncs/bpf_cpumask_clear.md | 10 +- docs/linux/kfuncs/bpf_cpumask_clear_cpu.md | 12 +- docs/linux/kfuncs/bpf_cpumask_copy.md | 12 +- docs/linux/kfuncs/bpf_cpumask_create.md | 12 +- docs/linux/kfuncs/bpf_cpumask_empty.md | 10 +- docs/linux/kfuncs/bpf_cpumask_equal.md | 8 +- docs/linux/kfuncs/bpf_cpumask_first.md | 10 +- docs/linux/kfuncs/bpf_cpumask_first_and.md | 10 +- docs/linux/kfuncs/bpf_cpumask_first_zero.md | 10 +- docs/linux/kfuncs/bpf_cpumask_full.md | 10 +- docs/linux/kfuncs/bpf_cpumask_intersects.md | 8 +- docs/linux/kfuncs/bpf_cpumask_or.md | 10 +- docs/linux/kfuncs/bpf_cpumask_release.md | 12 +- docs/linux/kfuncs/bpf_cpumask_set_cpu.md | 12 +- docs/linux/kfuncs/bpf_cpumask_setall.md | 10 +- docs/linux/kfuncs/bpf_cpumask_subset.md | 12 +- .../kfuncs/bpf_cpumask_test_and_clear_cpu.md | 14 +- .../kfuncs/bpf_cpumask_test_and_set_cpu.md | 14 +- docs/linux/kfuncs/bpf_cpumask_test_cpu.md | 14 +- docs/linux/kfuncs/bpf_cpumask_weight.md | 12 +- docs/linux/kfuncs/bpf_cpumask_xor.md | 10 +- docs/linux/kfuncs/bpf_crypto_ctx_acquire.md | 2 +- docs/linux/kfuncs/bpf_crypto_ctx_create.md | 4 +- docs/linux/kfuncs/bpf_crypto_ctx_release.md | 2 +- docs/linux/kfuncs/bpf_crypto_decrypt.md | 6 +- docs/linux/kfuncs/bpf_crypto_encrypt.md | 6 +- docs/linux/kfuncs/bpf_ct_change_status.md | 10 +- docs/linux/kfuncs/bpf_ct_change_timeout.md | 12 +- docs/linux/kfuncs/bpf_ct_insert_entry.md | 10 +- docs/linux/kfuncs/bpf_ct_release.md | 12 +- docs/linux/kfuncs/bpf_ct_set_nat_info.md | 12 +- docs/linux/kfuncs/bpf_ct_set_status.md | 14 +- docs/linux/kfuncs/bpf_ct_set_timeout.md | 14 +- docs/linux/kfuncs/bpf_dynptr_adjust.md | 32 +- docs/linux/kfuncs/bpf_dynptr_clone.md | 36 +- docs/linux/kfuncs/bpf_dynptr_from_skb.md | 26 +- docs/linux/kfuncs/bpf_dynptr_from_xdp.md | 6 +- docs/linux/kfuncs/bpf_dynptr_is_null.md | 34 +- docs/linux/kfuncs/bpf_dynptr_is_rdonly.md | 34 +- docs/linux/kfuncs/bpf_dynptr_size.md | 34 +- docs/linux/kfuncs/bpf_dynptr_slice.md | 36 +- docs/linux/kfuncs/bpf_dynptr_slice_rdwr.md | 36 +- docs/linux/kfuncs/bpf_get_file_xattr.md | 6 +- docs/linux/kfuncs/bpf_get_fsverity_digest.md | 4 +- docs/linux/kfuncs/bpf_iter_css_destroy.md | 34 +- docs/linux/kfuncs/bpf_iter_css_new.md | 36 +- docs/linux/kfuncs/bpf_iter_css_next.md | 38 +- .../linux/kfuncs/bpf_iter_css_task_destroy.md | 32 +- docs/linux/kfuncs/bpf_iter_css_task_new.md | 36 +- docs/linux/kfuncs/bpf_iter_css_task_next.md | 32 +- docs/linux/kfuncs/bpf_iter_num_destroy.md | 32 +- docs/linux/kfuncs/bpf_iter_num_new.md | 34 +- docs/linux/kfuncs/bpf_iter_num_next.md | 36 +- docs/linux/kfuncs/bpf_iter_task_destroy.md | 32 +- docs/linux/kfuncs/bpf_iter_task_new.md | 32 +- docs/linux/kfuncs/bpf_iter_task_next.md | 32 +- .../linux/kfuncs/bpf_iter_task_vma_destroy.md | 38 +- docs/linux/kfuncs/bpf_iter_task_vma_new.md | 34 +- docs/linux/kfuncs/bpf_iter_task_vma_next.md | 38 +- docs/linux/kfuncs/bpf_key_put.md | 2 +- docs/linux/kfuncs/bpf_list_pop_back.md | 10 +- docs/linux/kfuncs/bpf_list_pop_front.md | 10 +- docs/linux/kfuncs/bpf_list_push_back_impl.md | 10 +- docs/linux/kfuncs/bpf_list_push_front_impl.md | 10 +- docs/linux/kfuncs/bpf_lookup_system_key.md | 2 +- docs/linux/kfuncs/bpf_lookup_user_key.md | 2 +- docs/linux/kfuncs/bpf_map_sum_elem_count.md | 36 +- docs/linux/kfuncs/bpf_obj_drop_impl.md | 10 +- docs/linux/kfuncs/bpf_obj_new_impl.md | 10 +- docs/linux/kfuncs/bpf_percpu_obj_drop_impl.md | 12 +- docs/linux/kfuncs/bpf_percpu_obj_new_impl.md | 16 +- docs/linux/kfuncs/bpf_preempt_disable.md | 32 +- docs/linux/kfuncs/bpf_preempt_enable.md | 34 +- docs/linux/kfuncs/bpf_rbtree_add_impl.md | 14 +- docs/linux/kfuncs/bpf_rbtree_first.md | 12 +- docs/linux/kfuncs/bpf_rbtree_remove.md | 14 +- docs/linux/kfuncs/bpf_rcu_read_lock.md | 46 +- docs/linux/kfuncs/bpf_rcu_read_unlock.md | 34 +- docs/linux/kfuncs/bpf_rdonly_cast.md | 38 +- .../linux/kfuncs/bpf_refcount_acquire_impl.md | 10 +- docs/linux/kfuncs/bpf_session_cookie.md | 2 +- docs/linux/kfuncs/bpf_session_is_return.md | 2 +- docs/linux/kfuncs/bpf_skb_ct_alloc.md | 6 +- docs/linux/kfuncs/bpf_skb_ct_lookup.md | 6 +- docs/linux/kfuncs/bpf_skb_get_fou_encap.md | 10 +- docs/linux/kfuncs/bpf_skb_get_xfrm_info.md | 2 +- docs/linux/kfuncs/bpf_skb_set_fou_encap.md | 10 +- docs/linux/kfuncs/bpf_skb_set_xfrm_info.md | 4 +- .../kfuncs/bpf_sock_addr_set_sun_path.md | 6 +- docs/linux/kfuncs/bpf_sock_destroy.md | 2 +- docs/linux/kfuncs/bpf_task_acquire.md | 10 +- docs/linux/kfuncs/bpf_task_from_pid.md | 10 +- docs/linux/kfuncs/bpf_task_get_cgroup1.md | 16 +- docs/linux/kfuncs/bpf_task_release.md | 10 +- docs/linux/kfuncs/bpf_task_under_cgroup.md | 12 +- docs/linux/kfuncs/bpf_throw.md | 10 +- .../kfuncs/bpf_verify_pkcs7_signature.md | 6 +- docs/linux/kfuncs/bpf_wq_init.md | 40 +- docs/linux/kfuncs/bpf_wq_set_callback_impl.md | 40 +- docs/linux/kfuncs/bpf_wq_start.md | 40 +- docs/linux/kfuncs/bpf_xdp_ct_alloc.md | 8 +- docs/linux/kfuncs/bpf_xdp_ct_lookup.md | 6 +- docs/linux/kfuncs/bpf_xdp_get_xfrm_state.md | 4 +- docs/linux/kfuncs/bpf_xdp_metadata_rx_hash.md | 2 +- .../kfuncs/bpf_xdp_metadata_rx_timestamp.md | 2 +- .../kfuncs/bpf_xdp_metadata_rx_vlan_tag.md | 2 +- .../kfuncs/bpf_xdp_xfrm_state_release.md | 23 +- docs/linux/kfuncs/cgroup_rstat_flush.md | 8 +- docs/linux/kfuncs/cgroup_rstat_updated.md | 8 +- docs/linux/kfuncs/crash_kexec.md | 14 +- docs/linux/kfuncs/cubictcp_acked.md | 2 +- docs/linux/kfuncs/cubictcp_cong_avoid.md | 4 +- docs/linux/kfuncs/cubictcp_cwnd_event.md | 2 +- docs/linux/kfuncs/cubictcp_init.md | 2 +- docs/linux/kfuncs/cubictcp_recalc_ssthresh.md | 2 +- docs/linux/kfuncs/cubictcp_state.md | 2 +- docs/linux/kfuncs/dctcp_cwnd_event.md | 2 +- docs/linux/kfuncs/dctcp_cwnd_undo.md | 2 +- docs/linux/kfuncs/dctcp_init.md | 2 +- docs/linux/kfuncs/dctcp_ssthresh.md | 2 +- docs/linux/kfuncs/dctcp_state.md | 2 +- docs/linux/kfuncs/dctcp_update_alpha.md | 2 +- docs/linux/kfuncs/hid_bpf_allocate_context.md | 2 +- docs/linux/kfuncs/hid_bpf_attach_prog.md | 6 +- docs/linux/kfuncs/hid_bpf_get_data.md | 4 +- docs/linux/kfuncs/hid_bpf_hw_request.md | 2 +- docs/linux/kfuncs/hid_bpf_release_context.md | 2 +- docs/linux/kfuncs/index.md | 322 ++++++------- docs/linux/kfuncs/tcp_cong_avoid_ai.md | 4 +- docs/linux/kfuncs/tcp_reno_cong_avoid.md | 4 +- docs/linux/kfuncs/tcp_reno_ssthresh.md | 2 +- docs/linux/kfuncs/tcp_reno_undo_cwnd.md | 2 +- docs/linux/kfuncs/tcp_slow_start.md | 5 +- .../map-type/BPF_MAP_TYPE_BLOOM_FILTER.md | 4 +- docs/linux/map-type/BPF_MAP_TYPE_DEVMAP.md | 2 +- .../map-type/BPF_MAP_TYPE_DEVMAP_HASH.md | 2 +- docs/linux/map-type/BPF_MAP_TYPE_HASH.md | 2 +- docs/linux/map-type/BPF_MAP_TYPE_LPM_TRIE.md | 2 +- .../map-type/BPF_MAP_TYPE_PERCPU_HASH.md | 2 +- .../map-type/BPF_MAP_TYPE_PERF_EVENT_ARRAY.md | 18 +- .../BPF_MAP_TYPE_REUSEPORT_SOCKARRAY.md | 2 +- docs/linux/map-type/BPF_MAP_TYPE_SOCKHASH.md | 2 +- docs/linux/map-type/BPF_MAP_TYPE_SOCKMAP.md | 2 +- .../linux/map-type/BPF_MAP_TYPE_STRUCT_OPS.md | 4 +- .../map-type/BPF_MAP_TYPE_TASK_STORAGE.md | 2 +- docs/linux/map-type/SUMMARY.md | 66 +-- docs/linux/map-type/index.md | 66 +-- docs/linux/program-context/__sk_buff.md | 7 +- .../BPF_PROG_TYPE_CGROUP_DEVICE.md | 14 +- .../program-type/BPF_PROG_TYPE_CGROUP_SKB.md | 16 +- .../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md | 14 +- .../BPF_PROG_TYPE_CGROUP_SOCKOPT.md | 30 +- .../BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md | 18 +- .../BPF_PROG_TYPE_CGROUP_SYSCTL.md | 26 +- docs/linux/program-type/BPF_PROG_TYPE_EXT.md | 2 +- .../BPF_PROG_TYPE_FLOW_DISSECTOR.md | 16 +- .../program-type/BPF_PROG_TYPE_KPROBE.md | 18 +- docs/linux/program-type/BPF_PROG_TYPE_LSM.md | 16 +- .../program-type/BPF_PROG_TYPE_LWT_IN.md | 22 +- .../program-type/BPF_PROG_TYPE_LWT_OUT.md | 18 +- .../program-type/BPF_PROG_TYPE_LWT_XMIT.md | 20 +- .../program-type/BPF_PROG_TYPE_PERF_EVENT.md | 16 +- .../BPF_PROG_TYPE_RAW_TRACEPOINT.md | 12 + .../BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md | 12 + .../program-type/BPF_PROG_TYPE_SCHED_CLS.md | 24 +- .../program-type/BPF_PROG_TYPE_SK_LOOKUP.md | 12 + .../program-type/BPF_PROG_TYPE_SK_MSG.md | 16 +- .../BPF_PROG_TYPE_SK_REUSEPORT.md | 24 +- .../program-type/BPF_PROG_TYPE_SK_SKB.md | 16 +- .../BPF_PROG_TYPE_SOCKET_FILTER.md | 14 +- .../program-type/BPF_PROG_TYPE_SOCK_OPS.md | 38 +- .../program-type/BPF_PROG_TYPE_STRUCT_OPS.md | 14 +- .../program-type/BPF_PROG_TYPE_SYSCALL.md | 12 + .../program-type/BPF_PROG_TYPE_TRACEPOINT.md | 18 +- .../program-type/BPF_PROG_TYPE_TRACING.md | 38 +- docs/linux/program-type/BPF_PROG_TYPE_XDP.md | 116 +++-- docs/linux/program-type/SUMMARY.md | 64 +-- docs/linux/program-type/index.md | 64 +-- docs/linux/syscall/BPF_ENABLE_STATS.md | 2 +- docs/linux/syscall/BPF_MAP_CREATE.md | 4 +- docs/linux/syscall/BPF_MAP_LOOKUP_BATCH.md | 2 +- docs/linux/syscall/BPF_OBJ_GET.md | 2 +- docs/linux/syscall/BPF_OBJ_GET_INFO_BY_FD.md | 12 +- docs/linux/syscall/BPF_PROG_LOAD.md | 6 +- docs/linux/syscall/SUMMARY.md | 82 ++-- docs/linux/syscall/index.md | 80 ++-- tools/kfunc-gen/main.go | 4 +- 303 files changed, 3485 insertions(+), 2783 deletions(-) create mode 100644 .aspell.en.pws diff --git a/.aspell.en.pws b/.aspell.en.pws new file mode 100644 index 00000000..4c958d02 --- /dev/null +++ b/.aspell.en.pws @@ -0,0 +1,203 @@ +personal_ws-1.1 en 0 +bpf +BPF +eBPF +cBPF +bpftool +bpffs +xdp +XDP +XSK +XSKs +skb +KFuncs +kfuncs +KFunc +kfunc +Kprobe +KProbe +KConfig +kptr +kptrs +KPtr +syscall +syscalls +Syscall +Sysctl +sysctl +Libbpf +libbpf +Libxdp +libxdp +Rlimit +rlimit +cGroup +cGroups +tailcall +tailcalls +Dynptr +dynptr +dynptrs +kprobe +kprobes +kretprobe +kretprobes +uprobe +uprobes +fprobe +ftrace +Fentry +fentry +Fexit +fexit +Fmodify +fmodify +datagram +datagrams +preempt +preemptible +subprog +comparator +vmlinux +ack +acked +xfrm +qdisc +qdiscs +performant +SELinux +ACK +ACKs +BTF +JIT +DDoS +NIC +NICs +UDP +DMA +LLVM +CPUs +RCU +APIs +BGP +DNS +LRU +TTL +TTLs +LWT +LSM +BCC +ABI +PMU +TCP +BBR +XFRM +VRF +FOU +IPIP +GUE +RSS +VLAN +IPsec +LPM +TCI +TOS +MTU +NAPI +IPv +GSO +GRO +LSO +QoS +PID +TPID +OSI +RTO +RTT +ECN +MSS +NUMA +IMM +GPL +MPL +relocation +relocations +signable +accumulatively +inlined +lifecycle +nginx +ethernet +temporality +boolean +namespace +namespaces +netfilter +netlink +prepend +etcetera +polymorphism +deduplication +dereferenced +dereferencing +incrementing +misprediction +sleepable +endian +callee +verifier +verifier's +runtime +userspace +Userspace +refcount +refcounted +bitfield +bitmask +allocator +allocate +deallocate +UAPI +readme +lookups +struct +structs +spinlock +spinlocks +tracepoint +tracepoints +bytecode +crypto +cryptographic +benchmarking +benchmarked +Decrypt +Decrypts +decrypt +Encrypt +encrypt +checksum +checksums +ctx +enum +umem +umems +Umem +iproute +ifindex +Inode +inode +inodes +netdev +netdevs +pre +Perf +perf +EINVAL +EBUSY +ENOENT +EFAULT +ENOMEM +ENOPROTOOPT +Netronome +Mellanox diff --git a/Makefile b/Makefile index 0d5288d8..bff027aa 100644 --- a/Makefile +++ b/Makefile @@ -61,7 +61,7 @@ generate-docs: build-container build-tools /docs/tools/bin/helper-def-scraper --helper-path /docs/docs/linux/helper-function" .PHONY: spellcheck -spellcheck: build-container build-tools +spellcheck: build-container build-tools html ${CONTAINER_ENGINE} run --rm -v "${REPODIR}:/docs" \ -w /docs -u $$(id -u $${USER}):$$(id -g $${USER}) --entrypoint "bash" "${IMAGE}:${VERSION}" -c \ "/docs/tools/bin/spellcheck --project-root /docs" diff --git a/data/helpers-functions.yaml b/data/helpers-functions.yaml index 7b9b8941..e00fa202 100644 --- a/data/helpers-functions.yaml +++ b/data/helpers-functions.yaml @@ -70,6 +70,20 @@ groups: cap: [CAP_BPF, CAP_PERFMON] - name: bpf_trace_vprintk cap: [CAP_BPF, CAP_PERFMON] + - name: bpf_cgrp_storage_get + kconfig: [CONFIG_CGROUPS] + - name: bpf_cgrp_storage_delete + kconfig: [CONFIG_CGROUPS] + - name: bpf_dynptr_data + - name: bpf_dynptr_from_mem + - name: bpf_dynptr_read + - name: bpf_dynptr_write + - name: bpf_kptr_xchg + - name: bpf_ktime_get_tai_ns + - name: bpf_ringbuf_discard_dynptr + - name: bpf_ringbuf_reserve_dynptr + - name: bpf_ringbuf_submit_dynptr + - name: bpf_user_ringbuf_drain # `tracing_prog_func_proto` in `kernel/tracing/bpf_trace.c` tracing_prog: @@ -99,6 +113,8 @@ groups: kconfig: [CONFIG_NET] - name: bpf_xdp_get_buff_len kconfig: [CONFIG_NET] + - name: bpf_skc_to_mptcp_sock + kconfig: [CONFIG_NET] - name: bpf_seq_printf attach_type: [BPF_TRACE_ITER] - name: bpf_seq_write @@ -336,6 +352,14 @@ programs: kconfig: [CONFIG_INET] - name: bpf_skb_set_tstamp kconfig: [CONFIG_INET] + - name: bpf_tcp_raw_gen_syncookie_ipv4 + kconfig: [CONFIG_SYN_COOKIES] + - name: bpf_tcp_raw_gen_syncookie_ipv6 + kconfig: [CONFIG_SYN_COOKIES] + - name: bpf_tcp_raw_check_syncookie_ipv4 + kconfig: [CONFIG_SYN_COOKIES] + - name: bpf_tcp_raw_check_syncookie_ipv6 + kconfig: [CONFIG_SYN_COOKIES] - group: base # `tc_cls_act_func_proto` in `net/core/filter.c` @@ -449,6 +473,14 @@ programs: kconfig: [CONFIG_INET] - name: bpf_tcp_gen_syncookie kconfig: [CONFIG_INET] + - name: bpf_tcp_raw_check_syncookie_ipv4 + kconfig: [CONFIG_SYN_COOKIES] + - name: bpf_tcp_raw_gen_syncookie_ipv6 + kconfig: [CONFIG_SYN_COOKIES] + - name: bpf_tcp_raw_check_syncookie_ipv4 + kconfig: [CONFIG_SYN_COOKIES] + - name: bpf_tcp_raw_check_syncookie_ipv6 + kconfig: [CONFIG_SYN_COOKIES] - group: base # `pe_prog_func_proto` in `kernel/tracing/bpf_trace.c` @@ -759,7 +791,7 @@ programs: # `tracing_prog_func_proto` in `kernel/tracing/bpf_trace.c` BPF_PROG_TYPE_TRACING: - - group: tracing + - group: tracing_prog # TODO struct ops has allowed helpers per struct type, currently only TCP Congestion Algo # but it doesn't fit neatly with the rest :( diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index 04abf741..601ad54c 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -6,7 +6,7 @@ * [Helper functions](linux/helper-function/) * [Syscall commands](linux/syscall/) * [KFuncs](linux/kfuncs/) -* [ePBF librairies](ebpf-library/index.md) +* [eBPF libraries](ebpf-library/index.md) * [Libbpf](ebpf-library/libbpf.md) * [Libxdp](ebpf-library/libxdp/) * [Concepts](concepts/index.md) diff --git a/docs/concepts/btf.md b/docs/concepts/btf.md index bf875b3f..fcff5a77 100644 --- a/docs/concepts/btf.md +++ b/docs/concepts/btf.md @@ -1,14 +1,14 @@ # BTF BTF (BPF Type Format) is a metadata format designed for encoding debug information related to BPF programs and maps. It focus on describing data types, function information for defined subroutines. -This debug information serves various purposes including map visualization, function signature enhancement for BPF programs, and aiding in the generation of annotated source code, JITed code, and verifier logs. +This debug information serves various purposes including map visualization, function signature enhancement for BPF programs, and aiding in the generation of annotated source code, JIT-ed code, and verifier logs. The BTF specification is divided into two main parts: * BTF Kernel API: This defines the interface between user space and the kernel. Before usage, the kernel validates the BTF information provided. * BTF ELF File Format: This establishes the contract between the ELF file and the libbpf loader in user space. -It was created as an alternative to DWARF debug information. The BTF is more space-efficent due to his [deduplication algorithm] while remaining expressive enough to have all the type information of a C programs. +It was created as an alternative to DWARF debug information. The BTF is more space-efficient due to his [deduplication algorithm] while remaining expressive enough to have all the type information of a C programs. !!! example "Docs could be improved" This part of the docs is incomplete, contributions are very welcome diff --git a/docs/concepts/core.md b/docs/concepts/core.md index efec4d12..375c074b 100644 --- a/docs/concepts/core.md +++ b/docs/concepts/core.md @@ -8,31 +8,31 @@ eBPF programs use the memory and data structures from the kernel. Between differ Another problem can be the renaming of a field in the structure. If a BPF application uses one of these modified or renamed fields, the program will no longer be compatible. - -## Export kernel informations -Libbpf relie on the [BTF] information from the actual running Kernel who expose itself BTF information at `/sys/kernel/btf/vmlinux`. +## Export kernel information + +Libbpf relies on the [BTF] information from the actual running Kernel who expose itself BTF information at `/sys/kernel/btf/vmlinux`. It include all kernel types and structures layout. A header file `vmlinux.h`, can be generate using [bpftool] : ```sh bpftool btf dump file /sys/kernel/btf/vmlinux format c > vmlinux.h ``` -This eliminate the depedency of the kernel headers +This eliminate the dependency of the kernel headers + +## Emit BTF relocation's with Clang - -## Emit BTF relocations with Clang -Clang was extended to emit BTF relocations. These relocations capture high-level descriptions of what information the BPF program intends to access. -The compiled BPF program is stored in an ELF (Executable and Linkable Format) object file. This file contains BTF type information and Clang-generated relocations. +Clang was extended to emit BTF relocation's. These relocation's capture high-level descriptions of what information the BPF program intends to access. +The compiled BPF program is stored in an ELF (Executable and Link-able Format) object file. This file contains BTF type information and Clang-generated relocation's. The ELF format allows libbpf to process and adjust the BPF program for the target kernel dynamically. - ## Use Libbpf as CO-RE library and loader + When you run your loader program with libbpf, it serves as the BPF program loader. It takes the compiled BPF ELF object file and post-processing it as necessary. It sets up various kernel objects (maps, programs, etc.) and triggers BPF program loading and verification. Libbpf uses the BTF information to match the types and fields in the BPF program with those in the running kernel, adjusting offsets and other relocatable data to ensure the program functions correctly on the specific kernel. ## Examples -Lists of examples programs using libbpf can be found on Github [libbpf-bootstrap] +Lists of examples programs using libbpf can be found on GitHub [libbpf-bootstrap] !!! example "Docs could be improved" This part of the docs is incomplete, contributions are very welcome diff --git a/docs/concepts/elf.md b/docs/concepts/elf.md index 15330cff..3838faf5 100644 --- a/docs/concepts/elf.md +++ b/docs/concepts/elf.md @@ -1,4 +1,4 @@ -# ELF (Executable Linkable Format) +# ELF (Executable Link-able Format) !!! example "Docs could be improved" This part of the docs is incomplete, contributions are very welcome diff --git a/docs/ebpf-library/index.md b/docs/ebpf-library/index.md index 44143f16..52ea0342 100644 --- a/docs/ebpf-library/index.md +++ b/docs/ebpf-library/index.md @@ -1,6 +1,6 @@ # Kernel/User side libraries -eBPF have multiple libraries to help the eBPF developement +eBPF have multiple libraries to help the eBPF development
@@ -20,4 +20,4 @@ eBPF have multiple libraries to help the eBPF developement [:octicons-arrow-right-24: Concepts](./libxdp/libxdp.md) -
\ No newline at end of file + diff --git a/docs/ebpf-library/libbpf.md b/docs/ebpf-library/libbpf.md index 56f986ea..1832f284 100644 --- a/docs/ebpf-library/libbpf.md +++ b/docs/ebpf-library/libbpf.md @@ -1,4 +1,4 @@ -# LibBPF kernel side library +# Libbpf kernel side library diff --git a/docs/ebpf-library/libxdp/SUMMARY.md b/docs/ebpf-library/libxdp/SUMMARY.md index 91a3ce10..17099451 100644 --- a/docs/ebpf-library/libxdp/SUMMARY.md +++ b/docs/ebpf-library/libxdp/SUMMARY.md @@ -1,55 +1,55 @@ * [Concept](libxdp.md) * Manage programs * Load - * [xdp_program__from_bpf_obj](./functions/xdp_program__from_bpf_obj.md) - * [xdp_program__find_file](./functions/xdp_program__find_file.md) - * [xdp_program__open_file](./functions/xdp_program__open_file.md) - * [xdp_program__from_fd](./functions/xdp_program__from_fd.md) - * [xdp_program__from_id](./functions/xdp_program__from_id.md) - * [xdp_program__from_pin](./functions/xdp_program__from_pin.md) + * [`xdp_program__from_bpf_obj`](./functions/xdp_program__from_bpf_obj.md) + * [`xdp_program__find_file`](./functions/xdp_program__find_file.md) + * [`xdp_program__open_file`](./functions/xdp_program__open_file.md) + * [`xdp_program__from_fd`](./functions/xdp_program__from_fd.md) + * [`xdp_program__from_id`](./functions/xdp_program__from_id.md) + * [`xdp_program__from_pin`](./functions/xdp_program__from_pin.md) * Metadata - * [xdp_program__run_prio](./functions/xdp_program__run_prio.md) - * [xdp_program__set_run_prio](./functions/xdp_program__set_run_prio.md) - * [xdp_program__chain_call_enabled](./functions/xdp_program__chain_call_enabled.md) - * [xdp_program__set_chain_call_enabled](./functions/xdp_program__set_chain_call_enabled.md) - * [xdp_program__print_chain_call_actions](./functions/xdp_program__print_chain_call_actions.md) + * [`xdp_program__run_prio`](./functions/xdp_program__run_prio.md) + * [`xdp_program__set_run_prio`](./functions/xdp_program__set_run_prio.md) + * [`xdp_program__chain_call_enabled`](./functions/xdp_program__chain_call_enabled.md) + * [`xdp_program__set_chain_call_enabled`](./functions/xdp_program__set_chain_call_enabled.md) + * [`xdp_program__print_chain_call_actions`](./functions/xdp_program__print_chain_call_actions.md) * Dispatcher - * [xdp_multiprog__get_from_ifindex](./functions/xdp_multiprog__get_from_ifindex.md) - * [xdp_multiprog__next_prog](./functions/xdp_multiprog__next_prog.md) - * [xdp_multiprog__close](./functions/xdp_multiprog__close.md) - * [xdp_multiprog__detach](./functions/xdp_multiprog__detach.md) - * [xdp_multiprog__attach_mode](./functions/xdp_multiprog__attach_mode.md) - * [xdp_multiprog__main_prog](./functions/xdp_multiprog__main_prog.md) - * [xdp_multiprog__hw_prog](./functions/xdp_multiprog__hw_prog.md) - * [xdp_multiprog__is_legacy](./functions/xdp_multiprog__is_legacy.md) + * [`xdp_multiprog__get_from_ifindex`](./functions/xdp_multiprog__get_from_ifindex.md) + * [`xdp_multiprog__next_prog`](./functions/xdp_multiprog__next_prog.md) + * [`xdp_multiprog__close`](./functions/xdp_multiprog__close.md) + * [`xdp_multiprog__detach`](./functions/xdp_multiprog__detach.md) + * [`xdp_multiprog__attach_mode`](./functions/xdp_multiprog__attach_mode.md) + * [`xdp_multiprog__main_prog`](./functions/xdp_multiprog__main_prog.md) + * [`xdp_multiprog__hw_prog`](./functions/xdp_multiprog__hw_prog.md) + * [`xdp_multiprog__is_legacy`](./functions/xdp_multiprog__is_legacy.md) * AF_XDP sockets * Control path * Umem Area - * [xsk_umem__create](./functions/xsk_umem__create.md) - * [xsk_umem__create_with_fd](./functions/xsk_umem__create_with_fd.md) - * [xsk_umem__delete](./functions/xsk_umem__delete.md) - * [xsk_umem__fd](./functions/xsk_umem__fd.md) - * [xsk_umem__get_data](./functions/xsk_umem__get_data.md) - * [xsk_umem__extract_addr](./functions/xsk_umem__extract_addr.md) - * [xsk_umem__extract_offset](./functions/xsk_umem__extract_offset.md) - * [xsk_umem__add_offset_to_addr](./functions/xsk_umem__add_offset_to_addr.md) + * [`xsk_umem__create`](./functions/xsk_umem__create.md) + * [`xsk_umem__create_with_fd`](./functions/xsk_umem__create_with_fd.md) + * [`xsk_umem__delete`](./functions/xsk_umem__delete.md) + * [`xsk_umem__fd`](./functions/xsk_umem__fd.md) + * [`xsk_umem__get_data`](./functions/xsk_umem__get_data.md) + * [`xsk_umem__extract_addr`](./functions/xsk_umem__extract_addr.md) + * [`xsk_umem__extract_offset`](./functions/xsk_umem__extract_offset.md) + * [`xsk_umem__add_offset_to_addr`](./functions/xsk_umem__add_offset_to_addr.md) * Sockets - * [xsk_socket__create](./functions/xsk_socket__create.md) - * [xsk_socket__create_shared](./functions/xsk_socket__create_shared.md) - * [xsk_socket__delete](./functions/xsk_socket__delete.md) - * [xsk_socket__fd](./functions/xsk_socket__fd.md) - * [xsk_setup_xdp_prog](./functions/xsk_setup_xdp_prog.md) - * [xsk_socket__update_xskmap](./functions/xsk_socket__update_xskmap.md) + * [`xsk_socket__create`](./functions/xsk_socket__create.md) + * [`xsk_socket__create_shared`](./functions/xsk_socket__create_shared.md) + * [`xsk_socket__delete`](./functions/xsk_socket__delete.md) + * [`xsk_socket__fd`](./functions/xsk_socket__fd.md) + * [`xsk_setup_xdp_prog`](./functions/xsk_setup_xdp_prog.md) + * [`xsk_socket__update_xskmap`](./functions/xsk_socket__update_xskmap.md) * Data path * Producer rings - * [xsk_ring_prod__reserve](./functions/xsk_ring_prod__reserve.md) - * [xsk_ring_prod__submit](./functions/xsk_ring_prod__submit.md) - * [xsk_ring_prod__fill_addr](./functions/xsk_ring_prod__fill_addr.md) - * [xsk_ring_prod__tx_desc](./functions/xsk_ring_prod__tx_desc.md) - * [xsk_ring_prod__needs_wakeup](./functions/xsk_ring_prod__needs_wakeup.md) + * [`xsk_ring_prod__reserve`](./functions/xsk_ring_prod__reserve.md) + * [`xsk_ring_prod__submit`](./functions/xsk_ring_prod__submit.md) + * [`xsk_ring_prod__fill_addr`](./functions/xsk_ring_prod__fill_addr.md) + * [`xsk_ring_prod__tx_desc`](./functions/xsk_ring_prod__tx_desc.md) + * [`xsk_ring_prod__needs_wakeup`](./functions/xsk_ring_prod__needs_wakeup.md) * Consumer rings - * [xsk_ring_cons__peek](./functions/xsk_ring_cons__peek.md) - * [xsk_ring_cons__cancel](./functions/xsk_ring_cons__cancel.md) - * [xsk_ring_cons__release](./functions/xsk_ring_cons__release.md) - * [xsk_ring_cons__comp_addr](./functions/xsk_ring_cons__comp_addr.md) - * [xsk_ring_cons__rx_desc](./functions/xsk_ring_cons__rx_desc.md) + * [`xsk_ring_cons__peek`](./functions/xsk_ring_cons__peek.md) + * [`xsk_ring_cons__cancel`](./functions/xsk_ring_cons__cancel.md) + * [`xsk_ring_cons__release`](./functions/xsk_ring_cons__release.md) + * [`xsk_ring_cons__comp_addr`](./functions/xsk_ring_cons__comp_addr.md) + * [`xsk_ring_cons__rx_desc`](./functions/xsk_ring_cons__rx_desc.md) diff --git a/docs/ebpf-library/libxdp/functions/xdp_multiprog__get_from_ifindex.md b/docs/ebpf-library/libxdp/functions/xdp_multiprog__get_from_ifindex.md index 739f4043..1f70673b 100644 --- a/docs/ebpf-library/libxdp/functions/xdp_multiprog__get_from_ifindex.md +++ b/docs/ebpf-library/libxdp/functions/xdp_multiprog__get_from_ifindex.md @@ -14,7 +14,7 @@ This allow to get the `xdp_multiprog`, the dispatcher program, from the index of **-EBUSY** if the dispatcher can't be reach -**-ENOENT** if _ifindex_ dosen't exist +**-ENOENT** if _ifindex_ doesn't exist ## Usage diff --git a/docs/ebpf-library/libxdp/functions/xdp_multiprog__hw_prog.md b/docs/ebpf-library/libxdp/functions/xdp_multiprog__hw_prog.md index 57bbfe1c..46bf35cb 100644 --- a/docs/ebpf-library/libxdp/functions/xdp_multiprog__hw_prog.md +++ b/docs/ebpf-library/libxdp/functions/xdp_multiprog__hw_prog.md @@ -6,7 +6,7 @@ description: "This page documents the 'xdp_multiprog__hw_prog' libxdp function, ## Definition -It return a reference to the program loaded in the interface (useful is it's not the dispacther). +It return a reference to the program loaded in the interface (useful is it's not the dispatcher). ### Returns diff --git a/docs/ebpf-library/libxdp/functions/xdp_program__run_prio.md b/docs/ebpf-library/libxdp/functions/xdp_program__run_prio.md index c6e52878..0d548a3d 100644 --- a/docs/ebpf-library/libxdp/functions/xdp_program__run_prio.md +++ b/docs/ebpf-library/libxdp/functions/xdp_program__run_prio.md @@ -6,7 +6,7 @@ description: "This page documents the 'xdp_program__run_prio' libxdp function, i ## Definition -It allow to retrieve the value of the priorty of the program. +It allow to retrieve the value of the priority of the program. !!! note The higher the value, the later the program will run. diff --git a/docs/ebpf-library/libxdp/functions/xsk_ring_prod__tx_desc.md b/docs/ebpf-library/libxdp/functions/xsk_ring_prod__tx_desc.md index a8ccf9d3..ddbe5f4d 100644 --- a/docs/ebpf-library/libxdp/functions/xsk_ring_prod__tx_desc.md +++ b/docs/ebpf-library/libxdp/functions/xsk_ring_prod__tx_desc.md @@ -6,7 +6,7 @@ description: "This page documents the 'xsk_ring_prod__tx_desc' libxdp function, ## Definition -This function allow to access a specific transmit descriptor in the **Tx** ring. +This function allow to access a specific transmit descriptor in the **TX** ring. ### Returns diff --git a/docs/ebpf-library/libxdp/functions/xsk_setup_xdp_prog.md b/docs/ebpf-library/libxdp/functions/xsk_setup_xdp_prog.md index 174ad105..c7f2d471 100644 --- a/docs/ebpf-library/libxdp/functions/xsk_setup_xdp_prog.md +++ b/docs/ebpf-library/libxdp/functions/xsk_setup_xdp_prog.md @@ -22,7 +22,7 @@ int xsk_setup_xdp_prog(int ifindex, int *xsks_map_fd); ### Example -You can find an exemple at [AF_XDP-example](https://github.com/xdp-project/bpf-examples/tree/master/AF_XDP-example) +You can find an example at [AF_XDP-example](https://github.com/xdp-project/bpf-examples/tree/master/AF_XDP-example) !!! example "Docs could be improved" This part of the docs is incomplete, contributions are very welcome diff --git a/docs/ebpf-library/libxdp/functions/xsk_socket__create.md b/docs/ebpf-library/libxdp/functions/xsk_socket__create.md index e99f435c..a32c841a 100644 --- a/docs/ebpf-library/libxdp/functions/xsk_socket__create.md +++ b/docs/ebpf-library/libxdp/functions/xsk_socket__create.md @@ -16,7 +16,7 @@ Creates an AF_XDP socket with exclusive ownership of a umem. **-EFAULT** if memory address is invalid -**-ENOMEM** if no data space avaible +**-ENOMEM** if no data space available **-ENOPROTOOPT** if option is not supported by the protocol diff --git a/docs/ebpf-library/libxdp/functions/xsk_socket__create_shared.md b/docs/ebpf-library/libxdp/functions/xsk_socket__create_shared.md index 70e1a1bd..617695bc 100644 --- a/docs/ebpf-library/libxdp/functions/xsk_socket__create_shared.md +++ b/docs/ebpf-library/libxdp/functions/xsk_socket__create_shared.md @@ -16,7 +16,7 @@ Creates an AF_XDP socket and share the ownership of the umem between multiple so **-EFAULT** if memory address is invalid -**-ENOMEM** if no data space avaible +**-ENOMEM** if no data space available **-ENOPROTOOPT** if option is not supported by the protocol diff --git a/docs/ebpf-library/libxdp/functions/xsk_socket__update_xskmap.md b/docs/ebpf-library/libxdp/functions/xsk_socket__update_xskmap.md index bcccbd76..64d68f5a 100644 --- a/docs/ebpf-library/libxdp/functions/xsk_socket__update_xskmap.md +++ b/docs/ebpf-library/libxdp/functions/xsk_socket__update_xskmap.md @@ -24,7 +24,7 @@ int xsk_socket__update_xskmap(struct xsk_socket *xsk, int xsks_map_fd); ### Example -You can find an exemple at [AF_XDP-example](https://github.com/xdp-project/bpf-examples/tree/master/AF_XDP-example) +You can find an example at [AF_XDP-example](https://github.com/xdp-project/bpf-examples/tree/master/AF_XDP-example) !!! example "Docs could be improved" This part of the docs is incomplete, contributions are very welcome diff --git a/docs/ebpf-library/libxdp/functions/xsk_umem__add_offset_to_addr.md b/docs/ebpf-library/libxdp/functions/xsk_umem__add_offset_to_addr.md index f754035e..b1340bb5 100644 --- a/docs/ebpf-library/libxdp/functions/xsk_umem__add_offset_to_addr.md +++ b/docs/ebpf-library/libxdp/functions/xsk_umem__add_offset_to_addr.md @@ -9,7 +9,7 @@ description: "This page documents the 'xsk_umem__add_offset_to_addr' libxdp func This function add the offset to the address in **unaligned mode**. !!! note - You need to use this function with these functions [xsk_umem__extract_addr](./xsk_umem__extract_addr.md) [xsk_umem__extract_offset](./xsk_umem__extract_offset.md) + You need to use this function with these functions [`xsk_umem__extract_addr`](./xsk_umem__extract_addr.md) [`xsk_umem__extract_offset`](./xsk_umem__extract_offset.md) !!! note In aligned mode, you need to use [`xsk_umem_get_data`](./xsk_umem__get_data.md). diff --git a/docs/ebpf-library/libxdp/functions/xsk_umem__create.md b/docs/ebpf-library/libxdp/functions/xsk_umem__create.md index 0bfbcccf..43c58207 100644 --- a/docs/ebpf-library/libxdp/functions/xsk_umem__create.md +++ b/docs/ebpf-library/libxdp/functions/xsk_umem__create.md @@ -14,7 +14,7 @@ Create an umem area. **-EINVAL** if arguments are invalid -**-EFAULT** if the memory adress is invalid +**-EFAULT** if the memory address is invalid **-ENOMEM** if no space memory left diff --git a/docs/ebpf-library/libxdp/functions/xsk_umem__create_with_fd.md b/docs/ebpf-library/libxdp/functions/xsk_umem__create_with_fd.md index 6978843d..a40f7feb 100644 --- a/docs/ebpf-library/libxdp/functions/xsk_umem__create_with_fd.md +++ b/docs/ebpf-library/libxdp/functions/xsk_umem__create_with_fd.md @@ -14,7 +14,7 @@ Create an umem area using a file descriptor. **-EINVAL** if arguments are invalid -**-EFAULT** if the memory adress is invalid +**-EFAULT** if the memory address is invalid **-ENOMEM** if no space memory left diff --git a/docs/ebpf-library/libxdp/functions/xsk_umem__extract_addr.md b/docs/ebpf-library/libxdp/functions/xsk_umem__extract_addr.md index c635d2de..3d1d9b64 100644 --- a/docs/ebpf-library/libxdp/functions/xsk_umem__extract_addr.md +++ b/docs/ebpf-library/libxdp/functions/xsk_umem__extract_addr.md @@ -9,7 +9,7 @@ description: "This page documents the 'xsk_umem__extract_addr' libxdp function, This function extract the memory address in **unaligned mode**. !!! note - You need to use this function with these functions [xsk_umem__extract_offset](./xsk_umem__extract_offset.md) [xsk_umem__add_offset_to_addr](./xsk_umem__add_offset_to_addr.md) + You need to use this function with these functions [`xsk_umem__extract_offset`](./xsk_umem__extract_offset.md) [`xsk_umem__add_offset_to_addr`](./xsk_umem__add_offset_to_addr.md) !!! note In aligned mode, you need to use [`xsk_umem_get_data`](./xsk_umem__get_data.md). diff --git a/docs/ebpf-library/libxdp/functions/xsk_umem__extract_offset.md b/docs/ebpf-library/libxdp/functions/xsk_umem__extract_offset.md index 519a056e..db482cdf 100644 --- a/docs/ebpf-library/libxdp/functions/xsk_umem__extract_offset.md +++ b/docs/ebpf-library/libxdp/functions/xsk_umem__extract_offset.md @@ -9,7 +9,7 @@ description: "This page documents the 'xsk_umem__extract_offset' libxdp function This function extract the offset with the address in unaligned mode. !!! note - You need to use this function with these functions [xsk_umem__extract_addr](./xsk_umem__extract_addr.md) [xsk_umem__add_offset_to_addr](./xsk_umem__add_offset_to_addr.md) + You need to use this function with these functions [`xsk_umem__extract_addr`](./xsk_umem__extract_addr.md) [`xsk_umem__add_offset_to_addr`](./xsk_umem__add_offset_to_addr.md) !!! note In aligned mode, you need to use [`xsk_umem_get_data`](./xsk_umem__get_data.md). diff --git a/docs/ebpf-library/libxdp/functions/xsk_umem__get_data.md b/docs/ebpf-library/libxdp/functions/xsk_umem__get_data.md index 55d01e85..76e37bfc 100644 --- a/docs/ebpf-library/libxdp/functions/xsk_umem__get_data.md +++ b/docs/ebpf-library/libxdp/functions/xsk_umem__get_data.md @@ -9,7 +9,7 @@ description: "This page documents the 'xsk_umem__get_data' libxdp function, incl Allow to get a pointer to the packet data with the **Rx** descriptor, in **aligned mode**. !!! note - In unaligned mode, you need to use these functions [xsk_umem__extract_addr](./xsk_umem__extract_addr.md) [xsk_umem__extract_offset](./xsk_umem__extract_offset.md) [xsk_umem__add_offset_to_addr](./xsk_umem__add_offset_to_addr.md) + In unaligned mode, you need to use these functions [`xsk_umem__extract_addr`](./xsk_umem__extract_addr.md) [`xsk_umem__extract_offset`](./xsk_umem__extract_offset.md) [`xsk_umem__add_offset_to_addr`](./xsk_umem__add_offset_to_addr.md) ### Returns diff --git a/docs/ebpf-library/libxdp/libxdp.md b/docs/ebpf-library/libxdp/libxdp.md index cb73dc42..f8deda73 100644 --- a/docs/ebpf-library/libxdp/libxdp.md +++ b/docs/ebpf-library/libxdp/libxdp.md @@ -3,7 +3,7 @@ libxdp is a light eBPF library who add 2 features for [XDP programs](../../linux/program-type/BPF_PROG_TYPE_XDP.md). - Load multiple programs on single network device using a "dispatcher program" thanks to [`freplace`](../../linux/program-type/BPF_PROG_TYPE_EXT.md) -- Configuring [`AF_XDP`](../../linux/concepts/af_xdp) and functions to read and write on theses sockets +- Configuring [`AF_XDP`](../../linux/concepts/af_xdp.md) and functions to read and write on theses sockets You can check more information on the [libxdp readme](https://github.com/xdp-project/xdp-tools/blob/master/lib/libxdp/README.org). @@ -13,12 +13,12 @@ You can check more information on the [libxdp readme](https://github.com/xdp-pro Libxdp can help you to load, attach, unload and manage your XDP program. -- [xdp_program__from_bpf_obj](./functions/xdp_program__from_bpf_obj.md) -- [xdp_program__find_file](./functions/xdp_program__find_file.md) -- [xdp_program__open_file](./functions/xdp_program__open_file.md) -- [xdp_program__from_fd](./functions/xdp_program__from_fd.md) -- [xdp_program__from_id](./functions/xdp_program__from_id.md) -- [xdp_program__from_pin](./functions/xdp_program__from_pin.md) +- [`xdp_program__from_bpf_obj`](./functions/xdp_program__from_bpf_obj.md) +- [`xdp_program__find_file`](./functions/xdp_program__find_file.md) +- [`xdp_program__open_file`](./functions/xdp_program__open_file.md) +- [`xdp_program__from_fd`](./functions/xdp_program__from_fd.md) +- [`xdp_program__from_id`](./functions/xdp_program__from_id.md) +- [`xdp_program__from_pin`](./functions/xdp_program__from_pin.md) !!! note `xdp_program__find_file`, will search the `bpf_object` to the path set by `LIBXDP_OBJECT_PATH`. By default it will be `/usr/lib/bpf`. @@ -40,21 +40,21 @@ struct { } XDP_RUN_CONFIG(my_xdp_func); ``` -Or by using xdp functions : +Or by using xdp functions: This won't modify the BTF file, but these metadata will be stored with the attachment of the program. !!! warning This work **only** before the attachment of the program to the dispatcher. -- [xdp_program__run_prio](./functions/xdp_program__run_prio.md) -- [xdp_program__set_run_prio](./functions/xdp_program__set_run_prio.md) -- [xdp_program__chain_call_enabled](./functions/xdp_program__chain_call_enabled.md) -- [xdp_program__set_chain_call_enabled](./functions/xdp_program__set_chain_call_enabled.md) -- [xdp_program__print_chain_call_actions](./functions/xdp_program__print_chain_call_actions.md) +- [`xdp_program__run_prio`](./functions/xdp_program__run_prio.md) +- [`xdp_program__set_run_prio`](./functions/xdp_program__set_run_prio.md) +- [`xdp_program__chain_call_enabled`](./functions/xdp_program__chain_call_enabled.md) +- [`xdp_program__set_chain_call_enabled`](./functions/xdp_program__set_chain_call_enabled.md) +- [`xdp_program__print_chain_call_actions`](./functions/xdp_program__print_chain_call_actions.md) #### Priority -The priority of a program is an integer used to determine the order in which programs are executed on the interface. -More the priority value is lower, more the program will be executed earlied, so more the value is higher, more the program will be executed later. + +The priority of a program is an integer used to determine the order program execution on the interface. Programs are ordered in increasing priority from low to high. For passing packets to next program in the priority, the program should return a one of [chain call actions]. !!! note @@ -76,18 +76,18 @@ If a different action is returned the processing stop. To support multiple non-offloaded programs on the same network interface, libxdp uses a dispatcher program, a small wrapper that sequentially calls each component program. The dispatcher expects return codes and proceeds to the next program based on the [chain call actions] of the previous program. -- [xdp_multiprog__get_from_ifindex](./functions/xdp_multiprog__get_from_ifindex.md) -- [xdp_multiprog__next_prog](./functions/xdp_multiprog__next_prog.md) -- [xdp_multiprog__close](./functions/xdp_multiprog__close.md) -- [xdp_multiprog__detach](./functions/xdp_multiprog__detach.md) -- [xdp_multiprog__attach_mode](./functions/xdp_multiprog__attach_mode.md) -- [xdp_multiprog__main_prog](./functions/xdp_multiprog__main_prog.md) -- [xdp_multiprog__hw_prog](./functions/xdp_multiprog__hw_prog.md) -- [xdp_multiprog__is_legacy](./functions/xdp_multiprog__is_legacy.md) +- [`xdp_multiprog__get_from_ifindex`](./functions/xdp_multiprog__get_from_ifindex.md) +- [`xdp_multiprog__next_prog`](./functions/xdp_multiprog__next_prog.md) +- [`xdp_multiprog__close`](./functions/xdp_multiprog__close.md) +- [`xdp_multiprog__detach`](./functions/xdp_multiprog__detach.md) +- [`xdp_multiprog__attach_mode`](./functions/xdp_multiprog__attach_mode.md) +- [`xdp_multiprog__main_prog`](./functions/xdp_multiprog__main_prog.md) +- [`xdp_multiprog__hw_prog`](./functions/xdp_multiprog__hw_prog.md) +- [`xdp_multiprog__is_legacy`](./functions/xdp_multiprog__is_legacy.md) ### XDP dispatcher pinning -The kernel will automatically detach component programs from the dispatcher once their last reference disappears. To prevent this, libxdp pins the component program references in bpffs (BPF filesystem) before attaching the dispatcher to the network interface. The generated pathnames for pinning are: +The kernel will automatically detach component programs from the dispatcher once their last reference disappears. To prevent this, libxdp pins the component program references in bpffs (BPF file system) before attaching the dispatcher to the network interface. The generated path names for pinning are: - `/sys/fs/bpf/xdp/dispatch-IFINDEX-DID` : Dispatcher program for IFINDEX with BPF program ID DID. - `/sys/fs/bpf/xdp/dispatch-IFINDEX-DID/prog0-prog` : Component program 0, program reference. @@ -118,14 +118,14 @@ Libxdp provides utility functions to help create and manage umems and AF_XDP soc it's a memory region designated to store packets. It holds the packets that are received and those that need to be sent. `xsk_umem__get_data` is used to access the packet data in the umem area. But in unaligned mode, you need to use the three last function -- [xsk_umem__create](./functions/xsk_umem__create.md) -- [xsk_umem__create_with_fd](./functions/xsk_umem__create_with_fd.md) -- [xsk_umem__delete](./functions/xsk_umem__delete.md) -- [xsk_umem__fd](./functions/xsk_umem__fd.md) -- [xsk_umem__get_data](./functions/xsk_umem__get_data.md) -- [xsk_umem__extract_addr](./functions/xsk_umem__extract_addr.md) -- [xsk_umem__extract_offset](./functions/xsk_umem__extract_offset.md) -- [xsk_umem__add_offset_to_addr](./functions/xsk_umem__add_offset_to_addr.md) +- [`xsk_umem__create`](./functions/xsk_umem__create.md) +- [`xsk_umem__create_with_fd`](./functions/xsk_umem__create_with_fd.md) +- [`xsk_umem__delete`](./functions/xsk_umem__delete.md) +- [`xsk_umem__fd`](./functions/xsk_umem__fd.md) +- [`xsk_umem__get_data`](./functions/xsk_umem__get_data.md) +- [`xsk_umem__extract_addr`](./functions/xsk_umem__extract_addr.md) +- [`xsk_umem__extract_offset`](./functions/xsk_umem__extract_offset.md) +- [`xsk_umem__add_offset_to_addr`](./functions/xsk_umem__add_offset_to_addr.md) #### Sockets @@ -134,12 +134,12 @@ These sockets can either: * Exclusively own the umem: This is done using the function [`xsk_socket__create()`](./functions/xsk_umem__create.md). * Share the umem with other sockets: This is done using the function [`xsk_socket__create_shared()`](./functions/xsk_socket__create_shared.md). -- [xsk_socket__create](./functions/xsk_socket__create.md) -- [xsk_socket__create_shared](./functions/xsk_socket__create_shared.md) -- [xsk_socket__delete](./functions/xsk_socket__delete.md) -- [xsk_socket__fd](./functions/xsk_socket__fd.md) -- [xsk_setup_xdp_prog](./functions/xsk_setup_xdp_prog.md) -- [xsk_socket__update_xskmap](./functions/xsk_socket__update_xskmap.md) +- [`xsk_socket__create`](./functions/xsk_socket__create.md) +- [`xsk_socket__create_shared`](./functions/xsk_socket__create_shared.md) +- [`xsk_socket__delete`](./functions/xsk_socket__delete.md) +- [`xsk_socket__fd`](./functions/xsk_socket__fd.md) +- [`xsk_setup_xdp_prog`](./functions/xsk_setup_xdp_prog.md) +- [`xsk_socket__update_xskmap`](./functions/xsk_socket__update_xskmap.md) The [XSK map](../../linux/map-type/BPF_MAP_TYPE_XSKMAP.md) is used by the XDP program to manage the mapping between the network interface and the user-space sockets. @@ -147,15 +147,15 @@ The [XSK map](../../linux/map-type/BPF_MAP_TYPE_XSKMAP.md) is used by the XDP pr There are four FIFO rings, categorized into two main types : -- Producer Rings: These include the fill and Tx rings, using `xsk_ring_prod*` functions : +- Producer Rings: These include the fill and TX rings, using `xsk_ring_prod*` functions : * _Fill ring_ : Provide buffers to the kernel. - * _Tx ring_ : Send packets. + * _TX ring_ : Send packets. - Consumer Rings: These include the Rx and completion rings, using `xsk_ring_cons*` functions : * _Rx ring_ : Receive packets from the kernel. * _Completion ring_ : Acknowledge completion of transmitted packets. -The producer rings manage the supply of buffers for sending and receiving packets, while the consumer rings manage the recovery and reuse of these buffers after the packets have been processed. You can read more informations about the concept in the [detailed section AF_XDP](../../linux/concepts/af_xdp.md#receiving-and-sending-packets) in this wiki. +The producer rings manage the supply of buffers for sending and receiving packets, while the consumer rings manage the recovery and reuse of these buffers after the packets have been processed. You can read more information about the concept in the [detailed section AF_XDP](../../linux/concepts/af_xdp.md#receiving-and-sending-packets) in this wiki. !!! note All the data path functions are static inline functions. @@ -166,13 +166,13 @@ The producer rings manage the supply of buffers for sending and receiving packet #### Producer rings For producer rings, you start with **reserving** one or more slots in a producer ring and then when they have been filled out, you **submit** them so that the kernel will act on them. After this you **release** them back to the kernel so it can use them for new packets. -Others functions **writes** entries in the fill and Tx rings. +Others functions **writes** entries in the fill and TX rings. -- [xsk_ring_prod__reserve](./functions/xsk_ring_prod__reserve.md) -- [xsk_ring_prod__submit](./functions/xsk_ring_prod__submit.md) -- [xsk_ring_prod__fill_addr](./functions/xsk_ring_prod__fill_addr.md) -- [xsk_ring_prod__tx_desc](./functions/xsk_ring_prod__tx_desc.md) -- [xsk_ring_prod__needs_wakeup](./functions/xsk_ring_prod__needs_wakeup.md) +- [`xsk_ring_prod__reserve`](./functions/xsk_ring_prod__reserve.md) +- [`xsk_ring_prod__submit`](./functions/xsk_ring_prod__submit.md) +- [`xsk_ring_prod__fill_addr`](./functions/xsk_ring_prod__fill_addr.md) +- [`xsk_ring_prod__tx_desc`](./functions/xsk_ring_prod__tx_desc.md) +- [`xsk_ring_prod__needs_wakeup`](./functions/xsk_ring_prod__needs_wakeup.md) #### Consumer rings @@ -180,21 +180,21 @@ For a consumer ring, you **peek** if there are any new packets in the ring and i There is also a **cancel** operation for consumer rings if the application does not want to consume all packets received with the peek operation. Others functions **reads** entries from the completion and Rx rings. -- [xsk_ring_cons__peek](./functions/xsk_ring_cons__peek.md) -- [xsk_ring_cons__cancel](./functions/xsk_ring_cons__cancel.md) -- [xsk_ring_cons__release](./functions/xsk_ring_cons__release.md) -- [xsk_ring_cons__comp_addr](./functions/xsk_ring_cons__comp_addr.md) -- [xsk_ring_cons__rx_desc](./functions/xsk_ring_cons__rx_desc.md) +- [`xsk_ring_cons__peek`](./functions/xsk_ring_cons__peek.md) +- [`xsk_ring_cons__cancel`](./functions/xsk_ring_cons__cancel.md) +- [`xsk_ring_cons__release`](./functions/xsk_ring_cons__release.md) +- [`xsk_ring_cons__comp_addr`](./functions/xsk_ring_cons__comp_addr.md) +- [`xsk_ring_cons__rx_desc`](./functions/xsk_ring_cons__rx_desc.md) ## Examples -You can find exemple in the [bpf examples repository](https://github.com/xdp-project/bpf-examples) +You can find example in the [bpf examples repository](https://github.com/xdp-project/bpf-examples) ## Tools You can use [`xdp-tools`](https://github.com/xdp-project/xdp-tools) (and [bpftool](https://github.com/libbpf/bpftool)) to help you to build XDP programs. -This doc is writen base on the doc provided on [libxdp readme][1] +This doc is written base on the doc provided on [libxdp readme][1] [1]: https://github.com/xdp-project/xdp-tools/tree/master/lib/libxdp "Libxdp readme" diff --git a/docs/faq.md b/docs/faq.md index ea71162f..f335ab33 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -14,7 +14,7 @@ These docs are (ideally) for everyone in the eBPF community, specifically * eBPF library maintainers * eBPF researchers/intellectuals (those who need to or want to know about eBPF without working on or with eBPF directly for a number of reasons) -## What is the scope of the project? Will you add XYZ? +## What is the scope of the project? Will you add `XYZ`? The Linux kernel, libraries maintained alongside the Linux kernel as "reference implementation" (specifically `iproute2`, `libbpf`, `libxdp`), eBPF on Windows (when it matures). diff --git a/docs/index.md b/docs/index.md index 8ca354a1..ce7749dc 100644 --- a/docs/index.md +++ b/docs/index.md @@ -6,7 +6,7 @@ description: Landing page of the eBPF docs, providing a quick overview of the ma Welcome to the eBPF Docs! eBPF is an amazing technology which enables its users to extend the functionality of operating systems in a fast and secure way. eBPF is powerful, but also very complex, especially for newcomers. -This site aims to provide technical documentation for eBPF. If you are looking for specific information, we recommend you to use the search feature in to top right. You can use the navigation bar on the left for a hierarchal view, or use the condensed table of contents below to jump to a particular general topic. +This site aims to provide technical documentation for eBPF. If you are looking for specific information, we recommend you to use the search feature in to top right. You can use the navigation bar on the left for a hierarchical view, or use the condensed table of contents below to jump to a particular general topic. ## Quick links @@ -81,5 +81,5 @@ This site aims to provide technical documentation for eBPF. If you are looking f ## Contributions -This project is meant to provide a common knowledge base of the whole eBPF community, everyone is free to submit changes via Github Pull Requests. +This project is meant to provide a common knowledge base of the whole eBPF community, everyone is free to submit changes via GitHub Pull Requests. diff --git a/docs/linux/concepts/SUMMARY.md b/docs/linux/concepts/SUMMARY.md index 2a3c5888..49e1bd76 100644 --- a/docs/linux/concepts/SUMMARY.md +++ b/docs/linux/concepts/SUMMARY.md @@ -1,4 +1,4 @@ -* [index.md](index.md) +* [`index.md`](index.md) * [Maps](maps.md) * [Verifier](verifier.md) * [Concurrency](concurrency.md) diff --git a/docs/linux/concepts/af_xdp.md b/docs/linux/concepts/af_xdp.md index e8bc49f4..2431aa5e 100644 --- a/docs/linux/concepts/af_xdp.md +++ b/docs/linux/concepts/af_xdp.md @@ -4,15 +4,15 @@ description: "This page explains the concept of AF_XDP in depth, AF_XDP being a --- # AF_XDP -The kernel allows process to create sockets under the Address Family Express DataPath (AF_XDP) address family. This is a special socket type which in combination with an XDP program can perform full or partial kernel bypass. Bypassing the kernel network stack can increase performance in certain use cases. A socket created under the AF_XDP address family is also referred to as a XSK (XDP SocKet). +The kernel allows process to create sockets under the Address Family Express Data Path (AF_XDP) address family. This is a special socket type which in combination with an XDP program can perform full or partial kernel bypass. Bypassing the kernel network stack can increase performance in certain use cases. A socket created under the AF_XDP address family is also referred to as a XSK (XDP Socket). Examples of such use cases are: * Custom protocol implementations - If a kernel does not understand a custom protocol, it will do a lot of unnecessary work, bypassing the kernel and giving the traffic to a process which handles it correctly avoids overhead. -* DDoS protection - If complex processing across multiple packets is required, eBPF programs can't keep up, thus forwarding traffic to userspace for analysis might be needed. +* DDoS protection - If complex processing across multiple packets is required, eBPF programs can't keep up, thus forwarding traffic to user space for analysis might be needed. * Application specific optimization - The Linux network stack by necessity needs to handle a lot of protocols and edge cases which are not applicable to workloads you are running. This means paying performance cost for features you are not using. While not easy, one can implementing a custom network stack specific to their needs, to eke out every drop of performance. -All ingress traffic is first processes by a XDP program, it can make a decision on which traffic to pass to the stack and which to bypass. This is powerful since it allows a user to bypass traffic for very specific applications, ports and/or protocols without disrupting the normal packet processing. Unlike other kernel bypass techniques suck as PACKET_MMAP or PF_RING which require you to handle all traffic and reimplement every protocol needed for the host to function. +All ingress traffic is first processes by a XDP program, it can make a decision on which traffic to pass to the stack and which to bypass. This is powerful since it allows a user to bypass traffic for very specific applications, ports and/or protocols without disrupting the normal packet processing. Unlike other kernel bypass techniques suck as `PACKET_MMAP` or `PF_RING` which require you to handle all traffic and re-implement every protocol needed for the host to function. ## Usage @@ -47,7 +47,7 @@ static const int umem_len = chunk_size * chunk_count; unsigned char[chunk_count][chunk_size] umem = malloc(umem_len); ``` -Now that we have a UMEM, link it to the socket via the setsockopt syscall: +Now that we have a UMEM, link it to the socket via the `setsockopt` syscall: ```c struct xdp_umem_reg { @@ -69,13 +69,13 @@ if (!setsockopt(fd, SOL_XDP, XDP_UMEM_REG, &umem_reg, sizeof(xdp_umem_reg))) // handle error ``` -Next up are our ring buffers. These are allocated by the kernel when we tell the kernel how large we want each ring buffer to be via a setsockopt syscall. After allocation, we can map the ring buffer into the memory of our process via the mmap syscall. +Next up are our ring buffers. These are allocated by the kernel when we tell the kernel how large we want each ring buffer to be via a `setsockopt` syscall. After allocation, we can map the ring buffer into the memory of our process via the `mmap` syscall. The following process should be repeated for each ring buffer (with different options, which will be pointed out): We have to determine the desired ring buffer size, which must be a power of 2 for example `128`, `256`, `512`, `1024` ect. The sizes of the ring buffers can be tweaked and can differ from ring buffer to ring buffer, we will pick `512` for this example. -We inform the kernel of our chosen size via a setsockopt syscall: +We inform the kernel of our chosen size via a `setsockopt` syscall: ```c static const int ring_size = 512; @@ -83,7 +83,7 @@ if (!setsockopt(fd, SOL_XDP, {XDP_RX_RING,XDP_TX_RING,XDP_UMEM_FILL_RING,XDP_UME // handle error ``` -After we have set the sizes for all ring buffers we can request the mmap offsets with a getsockopt syscall: +After we have set the sizes for all ring buffers we can request the `mmap` offsets with a `getsockopt` syscall: ```c struct xdp_ring_offset { @@ -106,7 +106,7 @@ if (!getsockopt(fd, SOL_XDP, XDP_MMAP_OFFSETS, &offsets, sizeof(xdp_ring_offset) // handle error ``` -The final step is to map the ring buffers into process memory with the mmap syscall: +The final step is to map the ring buffers into process memory with the `mmap` syscall: ```c struct xdp_desc { @@ -154,13 +154,13 @@ if(!bind(fd, &sockaddr, sizeof(struct sockaddr_xdp))) A XSK can only bind to a single queue on a NIC. For multi-queue NICs, the procedure of creating a XSK should be repeated for every queue. The UMEM can optionally be shared to save on memory usage, for details see the [Options, variations, and exceptions](#options-variations-and-exceptions) section. -At this point we are ready to send traffic, see [Receiving and sending packets](#receiving-and-sending-packets). But we still need to setup our XDP program and XSKMAP in order to bypass incoming traffic. +At this point we are ready to send traffic, see [Receiving and sending packets](#receiving-and-sending-packets). But we still need to setup our XDP program and `XSKMAP` in order to bypass incoming traffic. ### eBPF program and map -To actually start bypassing ingress traffic we need a XDP program and a [BPF_MAP_TYPE_XSKMAP](../map-type/BPF_MAP_TYPE_XSKMAP.md) map. The map is an array type with numeric keys starting at 0 and going up. The process should populate the values of the map with the file descriptors of the XSK's obtained in the [Setting up a XSK](#setting-up-a-xsk) section. By default, the key of the map should match the queue to which the XSK is attached. +To actually start bypassing ingress traffic we need a XDP program and a [`BPF_MAP_TYPE_XSKMAP`](../map-type/BPF_MAP_TYPE_XSKMAP.md) map. The map is an array type with numeric keys starting at 0 and going up. The process should populate the values of the map with the file descriptors of the XSKs obtained in the [Setting up a XSK](#setting-up-a-xsk) section. By default, the key of the map should match the queue to which the XSK is attached. -So if for example, we are dealing with a 4 queue nic, then the map size should be at least 4, and the fd of the XSK bound to queue#2 should bit assigned to key `2` in the map. If the queue-id mismatches, the packet will be dropped at runtime. (Except when using a shared UMEM, see [Options, variations, and exceptions](#options-variations-and-exceptions)). +So if for example, we are dealing with a 4 queue NIC, then the map size should be at least 4, and the file descriptor of the XSK bound to queue#2 should bit assigned to key `2` in the map. If the queue-id mismatches, the packet will be dropped at runtime. (Except when using a shared UMEM, see [Options, variations, and exceptions](#options-variations-and-exceptions)). Your XDP program can be as simple or complex as your use case requires. The actual bypassing is done with the [`bpf_redirect_map`](../helper-function/bpf_redirect_map.md) helper function. @@ -283,7 +283,7 @@ Once updated, our process should increment the `consumer`/`tail` pointer and do At this point we can do a few things: * We can keep the chunk. If your use case requires the sending of packets without responding (not strictly a request-reply protocol), it might be needed to buffer a few chunks for sending. -* We can give the chunk back via the FILL buffer. Optionally copying the contents for async processing or processing before returning the chunk. +* We can give the chunk back via the FILL buffer. Optionally copying the contents for asynchronous processing or processing before returning the chunk. * We can modify the chuck to turn it into a reply and transmit by adding it to the TX buffer. Our example process makes clever use of this by modifying only the some of the fields, recalculating the hashes and adjusting the sizes. It then updates a descriptor in the TX buffer and increments the `producer`/`head`. @@ -308,7 +308,7 @@ The process of transferring data between the NIC and UMEM can work in copy or ze You can request an explicit mode by specifying the `XDP_COPY` or `XDP_ZEROCOPY` flags when performing the bind syscall. If zero-copy mode is requested but not available, the bind syscall will result in an error. -Additionally, a bound socket can be queried with getsockopt and the `XDP_OPTIONS` option and `struct xdp_options` value. If the flag `XDP_OPTIONS_ZEROCOPY` is set, then the socket operates in zero-copy mode. +Additionally, a bound socket can be queried with `getsockopt` and the `XDP_OPTIONS` option and `struct xdp_options` value. If the flag `XDP_OPTIONS_ZEROCOPY` is set, then the socket operates in zero-copy mode. #### Headroom @@ -320,7 +320,7 @@ This is desirable in situations where the user expects to encapsulate received p If your use-case only requires sending or receiving it might be worthwhile to no instantiate some of the ring buffers. You can create a TX only socket by just creating the TX and COMPLETION ring buffers or a RX only socket by just creating the RX and FILL ring buffers. -#### XDP_USE_NEED_WAKEUP +#### `XDP_USE_NEED_WAKEUP` By default, drivers will pro-actively check the TX and FILL rings to see if work needs to be done. By setting the `XDP_USE_NEED_WAKEUP` flag while binding the socket you tell the driver to never pro-actively checks the ring buffers, rater the process is now responsible for triggering this via syscalls. @@ -348,9 +348,9 @@ In the XSK creation section we mention that the size of UMEM chunks need to be a #### XDP_SHARED_UMEM -This flag enables you to bind multiple sockets to the same UMEM. It works on the same queue id, between queue ids and between netdevs/devices. In this mode, each socket has their own RX and TX rings as usual, but you are going to have one or more FILL and COMPLETION ring pairs. You have to create one of these pairs per unique netdev and queue id tuple that you bind to. +This flag enables you to bind multiple sockets to the same UMEM. It works on the same queue id, between queue ids and between network devices. In this mode, each socket has their own RX and TX rings as usual, but you are going to have one or more FILL and COMPLETION ring pairs. You have to create one of these pairs per unique netdev and queue id tuple that you bind to. -Starting with the case were we would like to share a UMEM between sockets bound to the same netdev and queue id. The UMEM (tied to the first socket created) will only have a single FILL ring and a single COMPLETION ring as there is only on unique netdev,queue_id tuple that we have bound to. To use this mode, create the first socket and bind it in the normal way. Create a second socket and create an RX and a TX ring, or at least one of them, but no FILL or COMPLETION rings as the ones from the first socket will be used. In the bind call, set he XDP_SHARED_UMEM option and provide the initial socket’s fd in the sxdp_shared_umem_fd field. You can attach an arbitrary number of extra sockets this way. +Starting with the case were we would like to share a UMEM between sockets bound to the same netdev and queue id. The UMEM (tied to the first socket created) will only have a single FILL ring and a single COMPLETION ring as there is only on unique netdev,queue_id tuple that we have bound to. To use this mode, create the first socket and bind it in the normal way. Create a second socket and create an RX and a TX ring, or at least one of them, but no FILL or COMPLETION rings as the ones from the first socket will be used. In the bind call, set he `XDP_SHARED_UMEM` option and provide the initial socket’s file descriptor in the `sxdp_shared_umem_fd` field. You can attach an arbitrary number of extra sockets this way. In the non-shared situation, the packet must be redirected to a socket bound to the same queue id. However, when all queues share the same UMEM, the XDP program has the freedom to pick which socket to use. This capability allows for custom RPS. A simple round-robin example of distributing packets is shown below: @@ -380,7 +380,7 @@ SEC("xdp_sock") int xdp_sock_prog(struct xdp_md *ctx) !!! note since there is only a single set of FILL and COMPLETION rings, and they are single producer, single consumer rings, you need to make sure that multiple processes or threads do not use these rings concurrently. The process needs to implement its own synchronization mechanism to manage this. -The second case is when you share a UMEM between sockets that are bound to different queue ids and/or netdevs. In this case you have to create one FILL ring and one COMPLETION ring for each unique netdev,queue_id pair. Let us say you want to create two sockets bound to two different queue ids on the same netdev. Create the first socket and bind it in the normal way. Create a second socket and create an RX and a TX ring, or at least one of them, and then one FILL and COMPLETION ring for this socket. Then in the bind call, set he XDP_SHARED_UMEM option and provide the initial socket’s fd in the sxdp_shared_umem_fd field as you registered the UMEM on that socket. These two sockets will now share one and the same UMEM. +The second case is when you share a UMEM between sockets that are bound to different queue ids and/or netdevs. In this case you have to create one FILL ring and one COMPLETION ring for each unique netdev,queue_id pair. Let us say you want to create two sockets bound to two different queue ids on the same netdev. Create the first socket and bind it in the normal way. Create a second socket and create an RX and a TX ring, or at least one of them, and then one FILL and COMPLETION ring for this socket. Then in the bind call, set he `XDP_SHARED_UMEM` option and provide the initial socket’s file descriptor in the `sxdp_shared_umem_fd` field as you registered the UMEM on that socket. These two sockets will now share one and the same UMEM. !!! note A UMEM can be shared between sockets on the same queue id and device, as well as between queues on the same device and between devices at the same time. However, packets can only be steered between queues on the same netdev. A packet can't be redirected to a XSK bound to a different netdev even if they share a UMEM. diff --git a/docs/linux/concepts/concurrency.md b/docs/linux/concepts/concurrency.md index 9e3af7f6..269073d6 100644 --- a/docs/linux/concepts/concurrency.md +++ b/docs/linux/concepts/concurrency.md @@ -6,13 +6,13 @@ description: "This page explains how to deal with concurrency in eBPF programs. Concurrency in the BPF world is something to be aware of when writing BPF programs. A BPF program can be seen as a function called by the kernel, thus the same program can in theory be invoked concurrently by every kernel thread. The only guarantee given by the kernel is that the same program invocation always runs on the same logical CPU. -This is particularly important when accessing memory that is shared between multiple programs or invocations of the same program such as non-per-cpu maps and kernel memory. Accesses and modifications to such kinds of memory are subject to [race conditions](https://en.wikipedia.org/wiki/Race_condition). Same goes for programs and userspace accessing the same map value at the same time. +This is particularly important when accessing memory that is shared between multiple programs or invocations of the same program such as non-per-CPU maps and kernel memory. Accesses and modifications to such kinds of memory are subject to [race conditions](https://en.wikipedia.org/wiki/Race_condition). Same goes for programs and userspace accessing the same map value at the same time. There are a few methods to avoid race conditions. -## Atomics +## Atomic operations -Atomics refers to atomic CPU instructions. A normal `i += 1` operation will at some level break down into: +Atomic operations refers to atomic CPU instructions. A normal `i += 1` operation will at some level break down into: 1. Read `i` into some CPU register 2. Increment the CPU register with `1` @@ -29,11 +29,11 @@ There is a class of CPU instructions that can perform specific tasks in a single * `__sync_val_compare_and_swap(*a, b, c)` - Read value at `a`, check if it is equal to `b`, if true write `c` to `a` and return the original value of `a`. On fail leave `a` be and return `c`. * `__sync_lock_test_and_set(*a, b)` - Read value at `a`, write `b` to `a`, return original value of `a` -If you want to perform one of the above sequences on a variable you can do so with the atomic-builtins. A common example is to increment a shared counter with `__sync_fetch_and_add`. +If you want to perform one of the above sequences on a variable you can do so with the atomic builtin functions. A common example is to increment a shared counter with `__sync_fetch_and_add`. -Atomic instructions work on variable of 1, 2, 4, or 8 bytes. Any variables larger than that such as multiple struct fields require multiple atomics or other synchronization mechanisms. +Atomic instructions work on variable of 1, 2, 4, or 8 bytes. Any variables larger than that such as multiple struct fields require multiple atomic instructions or other synchronization mechanisms. -Here is a simple example using atomics to count the number of times the `sys_enter` tracepoint is called. +Here is a simple example using atomic instructions to count the number of times the `sys_enter` tracepoint is called. ```c int counter = 0; @@ -46,11 +46,11 @@ int sys_enter_count(void *ctx) { ``` !!! note - Atomics still synchronize at the hardware level, so using atomics will still decrease performance compared to its non-atomic variant. + Atomic instructions still synchronize at the hardware level, so using atomic instructions will still decrease performance compared to its non-atomic variant. ## Spin locks -A common technique in the kernel for synchronization is a [spinlock](https://en.wikipedia.org/wiki/Spinlock). eBPF also provides spinlock capabilities for map values. The main advantage of spinlocks over atomics is that it guarantees multiple fields are updated together. +A common technique in the kernel for synchronization is a [spinlock](https://en.wikipedia.org/wiki/Spinlock). eBPF also provides spinlock capabilities for map values. The main advantage of spinlocks over atomic instructions is that it guarantees multiple fields are updated together. To use spin locks, you first have to include a `struct bpf_spin_lock` at the top of your map value. @@ -109,7 +109,7 @@ This scheme also increases the complexity on the userspace side since more data In niche use-cases it might be possible to get away with the the helper functions built-in RCU logic. This method work by never modifying the map value directly via the pointer you get via the `bpf_map_lookup_elem` helper. But instead copying the map value to the BPF stack, modifying its value there, then calling `bpf_map_update_elem` on the modified copy. The helper functions will guarantee that we transition cleanly from the initial state to the updated state. This property might be important if there exists a relation between fields in the map value. This technique map result in missing updates if multiple updates happen at the same time, but values will never be "mixed". -Performance wise there is a tradeoff. This technique does perform additional memory copies, but is also does not block or synchronize. So this may or may not be faster than spin-locking depending on the size of the values. +Performance wise there is a trade off. This technique does perform additional memory copies, but is also does not block or synchronize. So this may or may not be faster than spin-locking depending on the size of the values. It should be noted that updates via userspace always follow this principle, it is only for BPF programs where this distinction matters. diff --git a/docs/linux/concepts/index.md b/docs/linux/concepts/index.md index 1c4432ba..9892a20a 100644 --- a/docs/linux/concepts/index.md +++ b/docs/linux/concepts/index.md @@ -1,6 +1,10 @@ -# linux eBPF concepts +--- +title: Linux eBPF concepts +description: An index of Linux specific eBPF concepts. +--- +# Linux eBPF concepts -This is an index of linux specific eBPF concepts and features. +This is an index of Linux specific eBPF concepts and features. * [Maps](maps.md) * [Verifier](verifier.md) diff --git a/docs/linux/concepts/kfuncs.md b/docs/linux/concepts/kfuncs.md index 6e345140..fe0f4a27 100644 --- a/docs/linux/concepts/kfuncs.md +++ b/docs/linux/concepts/kfuncs.md @@ -12,7 +12,7 @@ Officially KFuncs are unstable, unlike helper functions, kfuncs have no UAPI gua ## Usage -Using a KFunc is fairly strightforward. The first step is to copy the function signature(return type, name, and parameters) of the kfunc we would like to call. These function signatures are usually found in the kernel source code or in [KFunc pages](../kfuncs/index.md). +Using a KFunc is fairly straightforward. The first step is to copy the function signature(return type, name, and parameters) of the kfunc we would like to call. These function signatures are usually found in the kernel source code or in [KFunc pages](../kfuncs/index.md). Second step is to add the `extern` keyword, this tells the compiler that the function isn't defined in our compilation unit. Lastly we add the `__ksym` attribute which tells the loader that references to the function should be resolved with the address of a kernel symbol (kernel function). After we have done this we can call the kfunc as if it was a normal function. @@ -45,11 +45,11 @@ char _license[] SEC("license") = "GPL"; ``` !!! note - The defintion of `__ksym` is `#define __ksym __attribute__((section(".ksyms")))` + The definition of `__ksym` is `#define __ksym __attribute__((section(".ksyms")))` ### Kernel modules -The [KFunc index](../kfuncs/index.md) includes all KFuncs defined in the linux kernel sources. Depending on the KConfig used to compile the kernel not all of these might be available or might be available via a kernel module. +The [KFunc index](../kfuncs/index.md) includes all KFuncs defined in the Linux kernel sources. Depending on the KConfig used to compile the kernel not all of these might be available or might be available via a kernel module. KFuncs can be dynamically added to the kernel via kernel modules, so both builtin and third party modules can add KFuncs. The usage mechanism is the same, but you might have to handle situations where a module isn't loaded. @@ -95,7 +95,7 @@ A parameter with the `__ign` suffix is used to indicate that this parameter is i A parameter with the `__uninit` suffix is used to indicate that the parameter will be treated as if its uninitialized. Normally, without this annotation, the verifier will enforce that all parameters are initialized before they are used. -So its typically used in situations where a KFunc intializes a object for you. +So its typically used in situations where a KFunc initializes a object for you. ### `__alloc` annotation diff --git a/docs/linux/concepts/maps.md b/docs/linux/concepts/maps.md index 7cea1caf..d29479e3 100644 --- a/docs/linux/concepts/maps.md +++ b/docs/linux/concepts/maps.md @@ -125,9 +125,9 @@ It is common for maps to be declared in the eBPF program, but maps are ultimatel However, it is also possible for users to manually create maps using the [BPF_MAP_CREATE](../syscall/BPF_MAP_CREATE.md) command of the BPF syscall or to use a loader library with such capabilities. -### LibBPF +### Libbpf -LibBPF is such a library, it provides the `bpf_map_create` function to allow for the manual creation of maps. +Libbpf is such a library, it provides the `bpf_map_create` function to allow for the manual creation of maps. [`/tools/lib/bpf/bpf.h`](https://elixir.bootlin.com/linux/v6.2.2/source/tools/lib/bpf/bpf.h#L40) ```c @@ -179,4 +179,4 @@ Besides the single key versions, there are also batch variants of those syscall Most map types support iterating over keys using the [`BPF_MAP_GET_NEXT_KEY`](../syscall/BPF_MAP_GET_NEXT_KEY.md) syscall command. -Some map types like the [`BPF_MAP_TYPE_PERF_EVENT_ARRAY`](../map-type/BPF_MAP_TYPE_PERF_EVENT_ARRAY.md) require the usage of additional mechanisms like perf_event and ring buffers to read the actual data sent via the [`bpf_perf_event_output`](../helper-function/bpf_perf_event_output.md) helper from the kernel side. +Some map types like the [`BPF_MAP_TYPE_PERF_EVENT_ARRAY`](../map-type/BPF_MAP_TYPE_PERF_EVENT_ARRAY.md) require the usage of additional mechanisms like `perf_event` and ring buffers to read the actual data sent via the [`bpf_perf_event_output`](../helper-function/bpf_perf_event_output.md) helper from the kernel side. diff --git a/docs/linux/concepts/pinning.md b/docs/linux/concepts/pinning.md index a7d73214..963183e4 100644 --- a/docs/linux/concepts/pinning.md +++ b/docs/linux/concepts/pinning.md @@ -10,11 +10,11 @@ Pinning is a technique whereby we can make a pseudo-file in the BPF file system A pin can be created by any process that has a file descriptor to a BPF object, but passing it into the [`BPF_OBJ_PIN`](../syscall/BPF_OBJ_PIN.md) syscall command alongside a valid path inside the BPF file system which is typically mounted at `/sys/fs/bpf`. -If your linux distribution does not automatically mount the BPF file system you can do so manually by executing `#!bash mount -t bpf bpffs /sys/fs/bpf` as root or making it part of a setup/initialization script. +If your Linux distribution does not automatically mount the BPF file system you can do so manually by executing `#!bash mount -t bpf bpffs /sys/fs/bpf` as root or making it part of a setup/initialization script. A process can get a file descriptor to a BPF object by calling the [`BPF_OBJ_GET`](../syscall/BPF_OBJ_GET.md) syscall command, passing it a valid path to a pin. -Pins are usually used as an easy method of sharing or transferring a BPF object between processes or applications. Command line tools which have short running processes before existing can for example use them to perform actions on object over multiple invocation. Long running daemons can use pins to ensure resources do not go away while restarting. And tools like iproute2/tc can load a program on behalf of a user and then another program can modify the maps afterwards. +Pins are usually used as an easy method of sharing or transferring a BPF object between processes or applications. Command line tools which have short running processes before existing can for example use them to perform actions on object over multiple invocation. Long running daemons can use pins to ensure resources do not go away while restarting. And tools like `iproute2`/`tc` can load a program on behalf of a user and then another program can modify the maps afterwards. Pins can be removed by using the `rm` cli tool or `unlink` syscall. Pins are ephemeral and do not persist over restarts of the system. diff --git a/docs/linux/concepts/resource-limit.md b/docs/linux/concepts/resource-limit.md index 0a4896bb..6aae8bbf 100644 --- a/docs/linux/concepts/resource-limit.md +++ b/docs/linux/concepts/resource-limit.md @@ -14,7 +14,7 @@ Until kernel version v5.11 this mechanism was used to track and limit the memory ## cGroup memory limit -In the v5.11 kernel update, [this patch set](https://lore.kernel.org/bpf/20201201215900.3569844-1-guro@fb.com/) switched the memory accounting and limiting from rlimit to cgroups. This means that all memory used adds to the "memory used" figure of the cGroup of which the process that creates it is a part. This eliminates the need to grant loaders `CAP_SYS_RESOURCE` capability. If resource limits need to be raised, it should be done so with the `memory.max` setting on the cGroup. +In the v5.11 kernel update, [this patch set](https://lore.kernel.org/bpf/20201201215900.3569844-1-guro@fb.com/) switched the memory accounting and limiting from rlimit to cGroups. This means that all memory used adds to the "memory used" figure of the cGroup of which the process that creates it is a part. This eliminates the need to grant loaders `CAP_SYS_RESOURCE` capability. If resource limits need to be raised, it should be done so with the `memory.max` setting on the cGroup. !!! note Kernel memory accounting and limiting per cGroup can be disabled by disabling the `MEMCG_KMEM` kconfig during kernel compilation which is set to `y` by default. diff --git a/docs/linux/concepts/tail-calls.md b/docs/linux/concepts/tail-calls.md index e5f7fb0c..8fed8727 100644 --- a/docs/linux/concepts/tail-calls.md +++ b/docs/linux/concepts/tail-calls.md @@ -16,9 +16,9 @@ Another use case is for replacing or extending logic. By replacing the contents To prevent infinite loops or very long running programs, the kernel limits the amount of tail calls per initial invocation to `32` so `33` programs can execute in total before the tail call helper will refuse to jump anymore. -If a program array is associated with a program, any program added to the map should "match" the program. So they have to have the same type, expected_attach_type, attached_btf, ect. +If a program array is associated with a program, any program added to the map should "match" the program. So they have to have the same `type`, `expected_attach_type`, `attached_btf`, etc. -While the same stack frame is shared, the verifier will block you from using any existing stack state without re-initializing it, the same goes for the registers. Thus, there is no straightforward way to shared state. Common workarounds for this issue are to use opaque fields in metadata such as [`__sk_buff->cb`](../program-context/__sk_buff.md#cb) or [xdp_md->data_meta](../program-type/BPF_PROG_TYPE_XDP.md#data_meta) memory. Alternatively, a per-CPU map with a single entry can be used to share data, which works since eBPF programs never migrate to a different CPU even between tail calls. However on RT (realtime) kernels eBPF programs might be interrupted and re-started at a later time, so these maps should only be shared between tail calls on the same task, not globally. +While the same stack frame is shared, the verifier will block you from using any existing stack state without re-initializing it, the same goes for the registers. Thus, there is no straightforward way to shared state. Common workarounds for this issue are to use opaque fields in metadata such as [`__sk_buff->cb`](../program-context/__sk_buff.md#cb) or [`xdp_md->data_meta`](../program-type/BPF_PROG_TYPE_XDP.md#data_meta) memory. Alternatively, a per-CPU map with a single entry can be used to share data, which works since eBPF programs never migrate to a different CPU even between tail calls. However on RT (real time) kernels eBPF programs might be interrupted and re-started at a later time, so these maps should only be shared between tail calls on the same task, not globally. When tail calls are combined with BPF-to-BPF function calls, the available stack size per program will shrink from `512` bytes to `256` bytes. This is to limit the stack allocation required by the kernel, as explained by the following comment from the kernel: diff --git a/docs/linux/concepts/timers.md b/docs/linux/concepts/timers.md index 8573223e..265418ff 100644 --- a/docs/linux/concepts/timers.md +++ b/docs/linux/concepts/timers.md @@ -29,7 +29,7 @@ The definition of such a timer is: `#!c struct bpf_timer { __u64 :64; __u64 :64; !!! note Only programs with CAP_BPF are allowed to use bpf_timer. -The timers are attached to the lifecycle of the map, if the map is freed/deleted, the all pending timers in that map will be canceled. +The timers are attached to the life cycle of the map, if the map is freed/deleted, the all pending timers in that map will be canceled. Pending timers will keep a reference to the program containing the callback, so even if no other references exist, programs will stay loaded until all timers have fired or are canceled. @@ -37,13 +37,13 @@ A timer has to be initialized with the [`bpf_timer_init`](../helper-function/bpf These three helper calls do not necessarily have to happen in the same program at the same time. The following use case is valid: -* map1 is shared by prog1, prog2, prog3. -* prog1 calls bpf_timer_init for some map1 elements -* prog2 calls bpf_timer_set_callback for some map1 elements. - * Those that were not bpf_timer_init-ed will return -EINVAL. -* prog3 calls bpf_timer_start for some map1 elements. - * Those that were not both bpf_timer_init-ed and - * bpf_timer_set_callback-ed will return -EINVAL. +* map1 is shared by `prog1`, `prog2`, `prog3`. +* `prog1` calls `bpf_timer_init` for some `map1` elements +* `prog2` calls `bpf_timer_set_callback` for some `map1` elements. + * Those that were not `bpf_timer_init`-ed will return `-EINVAL`. +* `prog3` calls `bpf_timer_start` for some `map1` elements. + * Those that were not both `bpf_timer_init`-ed and + * `bpf_timer_set_callback`-ed will return `-EINVAL`. [`bpf_timer_init`](../helper-function/bpf_timer_init.md) and [`bpf_timer_set_callback`](../helper-function/bpf_timer_set_callback.md) will return `-EPERM` if map doesn't have user references (is not held by open file descriptor from user space and not pinned in bpffs). diff --git a/docs/linux/concepts/verifier.md b/docs/linux/concepts/verifier.md index 129522b0..da3f5f45 100644 --- a/docs/linux/concepts/verifier.md +++ b/docs/linux/concepts/verifier.md @@ -8,11 +8,11 @@ The verifier is a core component of the BPF subsystem. Its main responsibility i The verifier exists because BPF programs are translated into native machine code and executed in kernel mode. This means BPF programs can do really bad things to the system if they are not properly checked such as corrupting memory, leaking sensitive information, causing the kernel to crash or causing the kernel to hang/deadlock. -This model is a tradeoff between ease of use and performance. Once you are able to pass the verifier, there are no expensive runtime checks, so BPF programs can run at native speed. An alternative model with a virtual machine or interpreter would have been much slower. +This model is a trade-off between ease of use and performance. Once you are able to pass the verifier, there are no expensive runtime checks, so BPF programs can run at native speed. An alternative model with a virtual machine or interpreter would have been much slower. ## Basics -So what is this "safe" concept we have been talking about? The general idea is that BPF programs are not allowed to break the kernel in any way and it should not violate the security model of the system. This results in a long list of don'ts. Here is a non-exhaustive list of things that are not allowed to illustrate the point: +So what is this "safe" concept we have been talking about? The general idea is that BPF programs are not allowed to break the kernel in any way and it should not violate the security model of the system. This results in a long list of things to avoid doing. Here is a non-exhaustive list of things that are not allowed to illustrate the point: * Programs must always terminate (within a reasonable amount of time) - So no infinite loops or infinite recursion. * Programs are not allowed to read arbitrary memory - Being able to read any memory would allow a program to leak sensitive information. There are exceptions, tracing programs have access to helpers that allow them to read memory in a controlled way. But these program types require root privileges and thus are not a security risk. @@ -26,7 +26,7 @@ The list goes on. A lot of rules are conditional, there are additional rules per The basic premise is that the verifier checks every possible permutation of a program mathematically. It starts by walking the code and constructing a graph based on branching instructions. It will reject any statically-dead-code unreachable code might be a link in an exploit chain. -Next the verifier starts at the top, setting the initial registers. R1 for example is almost always a pointer to the context. It walks over each instruction and updates the state of the registers and stack. This state contains information like smax32 (what is the largest 32 bit signed integer that could be in this register). It has many such variables which it can use to evaluate if a branch such as "if R1 > 123" is always taken, sometimes taken or never taken. +Next the verifier starts at the top, setting the initial registers. R1 for example is almost always a pointer to the context. It walks over each instruction and updates the state of the registers and stack. This state contains information like `smax32` (what is the largest 32 bit signed integer that could be in this register). It has many such variables which it can use to evaluate if a branch such as "if R1 > 123" is always taken, sometimes taken or never taken. Every time the verifier encounters a branching instruction, it will fork the current state, queue one of the branches+state for later investigation and update states. For example, if I have a register R3 with a value between 10 and 30 and I then encounter a "if R3 > 20" instruction, one fork will have a R3 of 10-20 and the other 21-30. This is a very simple example, but it illustrates the point. @@ -34,7 +34,7 @@ It also keeps track of linked registers. If I go R2 = R3, then do the above exam The verifier also keeps track of data types, before I mentioned the pointer to a context. It also knows when we are dealing with normal numbers or pointers to map values for example. Every time an offset from the context is dereferenced for example it will check that access is allowed for the current program type and that the offset is within bounds of the context. It can also keep track of possible null values, such as those returned from map lookups. And uses that information to enforce that null checks are done before dereferencing pointers. -It uses this same type info tracking to assert that the correct parameters are passed to helper functions or function calls. The verifier can also use BTF to enforce that a map value contains a timer field for example or a spinlock. BTF is also used to enforce that the correct parameters are passed to fkuncs, that BTF func definitions match the actual BPF functions and that these BTF func definitions match callbacks. +It uses this same type info tracking to assert that the correct parameters are passed to helper functions or function calls. The verifier can also use BTF to enforce that a map value contains a timer field for example or a spinlock. BTF is also used to enforce that the correct parameters are passed to KFuncs, that BTF function definitions match the actual BPF functions and that these BTF function definitions match callbacks. The verifier will attempt to asses all queued states and branches. But to protect itself it has limits. It tracks the amount of instructions inspected, this is for any permutation, so the complexity of a program not only depends on the amount of instructions, but also on the amount of branches. The verifier only has a limited amount of storage for states, so infinite recursion doesn't consume to much memory. @@ -45,13 +45,13 @@ The verifier will attempt to asses all queued states and branches. But to protec ### Tail calls -Tail calls allow a BPF program to call another BPF program, basically a GOTO to another program and not a function call. These programs are loaded and verified separately and thus do not count towards the complexity limit of the verifier. Therefore tail calls are a popular method to work around the verifier complexity limit by splitting to logic of a program into multiple programs. +Tail calls allow a BPF program to call another BPF program, basically a `goto` to another program and not a function call. These programs are loaded and verified separately and thus do not count towards the complexity limit of the verifier. Therefore tail calls are a popular method to work around the verifier complexity limit by splitting to logic of a program into multiple programs. For details check out the [Tail calls](tail-calls.md) page. ### Dead code elimination -The first iteration of dead code elimination was added in [:octicons-tag-24: v4.15](https://github.com/torvalds/linux/commit/c131187db2d3fa2f8bf32fdf4e9a4ef805168467). From then on any dynamically dead code (reachable via conditional statement, but the condition is always true or always false) is replaced by NOP instructions. This doesn't yet eliminate dead code but renders it harmless (we don't want to JIT code that isn't checked, even if we never jump to it ourselves). +The first iteration of dead code elimination was added in [:octicons-tag-24: v4.15](https://github.com/torvalds/linux/commit/c131187db2d3fa2f8bf32fdf4e9a4ef805168467). From then on any dynamically dead code (reachable via conditional statement, but the condition is always true or always false) is replaced by `NOP` instructions. This does not yet eliminate dead code but renders it harmless (we don't want to JIT code that is not checked, even if we never jump to it ourselves). In :octicons-tag-24: v5.1 dead code elimination was added. The [first step](https://github.com/torvalds/linux/commit/e2ae4ca266a1c9a0163738129506dbc63d5cca80) was to convert the conditional branching instructions into unconditional jump instructions to avoid misprediction penalties. @@ -79,7 +79,7 @@ Before this feature every BPF-to-BPF function had to be `static`. Static functio This feature allows you to use global functions (functions without the `static` keyword). These have slightly different constraints. The verifier will assume no information about the arguments and will verify the function in isolation. This means that the verifier only needs to verify the function once, no matter how many times it is called. This is much faster and reduces complexity. -Additionally, global functions can be replaced by [freplace](../program-type/BPF_PROG_TYPE_EXT.md) programs because there are assumptions about these functions outside of their signature. +Additionally, global functions can be replaced by [`freplace`](../program-type/BPF_PROG_TYPE_EXT.md) programs because there are assumptions about these functions outside of their signature. ### Callbacks @@ -87,4 +87,4 @@ Additionally, global functions can be replaced by [freplace](../program-type/BPF The [`bpf_for_each_map_elem`](../helper-function/bpf_for_each_map_elem.md) helper also introduced the concept of callbacks. This allows users to declare a static function that is not directly called by the BPF program but is passed as function pointer to a helper to be called. -In later versions this mechanism is also used for [timers](timers.md), bpf_find_vma, and [loops](loops.md). +In later versions this mechanism is also used for [timers](timers.md), `bpf_find_vma`, and [loops](loops.md). diff --git a/docs/linux/helper-function/SUMMARY.md b/docs/linux/helper-function/SUMMARY.md index 8dc34831..c5f22c0a 100644 --- a/docs/linux/helper-function/SUMMARY.md +++ b/docs/linux/helper-function/SUMMARY.md @@ -1,257 +1,257 @@ -* [index.md](index.md) +* [`index.md`](index.md) * Map helpers * Generic map helpers - * [bpf_map_lookup_elem](bpf_map_lookup_elem.md) - * [bpf_map_update_elem](bpf_map_update_elem.md) - * [bpf_map_delete_elem](bpf_map_delete_elem.md) - * [bpf_for_each_map_elem](bpf_for_each_map_elem.md) - * [bpf_map_lookup_percpu_elem](bpf_map_lookup_percpu_elem.md) - * [bpf_spin_lock](bpf_spin_lock.md) - * [bpf_spin_unlock](bpf_spin_unlock.md) + * [`bpf_map_lookup_elem`](bpf_map_lookup_elem.md) + * [`bpf_map_update_elem`](bpf_map_update_elem.md) + * [`bpf_map_delete_elem`](bpf_map_delete_elem.md) + * [`bpf_for_each_map_elem`](bpf_for_each_map_elem.md) + * [`bpf_map_lookup_percpu_elem`](bpf_map_lookup_percpu_elem.md) + * [`bpf_spin_lock`](bpf_spin_lock.md) + * [`bpf_spin_unlock`](bpf_spin_unlock.md) * Perf event array helpers - * [bpf_perf_event_read](bpf_perf_event_read.md) - * [bpf_perf_event_output](bpf_perf_event_output.md) - * [bpf_perf_event_read_value](bpf_perf_event_read_value.md) - * [bpf_skb_output](bpf_skb_output.md) - * [bpf_xdp_output](bpf_xdp_output.md) + * [`bpf_perf_event_read`](bpf_perf_event_read.md) + * [`bpf_perf_event_output`](bpf_perf_event_output.md) + * [`bpf_perf_event_read_value`](bpf_perf_event_read_value.md) + * [`bpf_skb_output`](bpf_skb_output.md) + * [`bpf_xdp_output`](bpf_xdp_output.md) * Tail call helpers - * [bpf_tail_call](bpf_tail_call.md) + * [`bpf_tail_call`](bpf_tail_call.md) * Timer helpers - * [bpf_timer_init](bpf_timer_init.md) - * [bpf_timer_set_callback](bpf_timer_set_callback.md) - * [bpf_timer_start](bpf_timer_start.md) - * [bpf_timer_cancel](bpf_timer_cancel.md) + * [`bpf_timer_init`](bpf_timer_init.md) + * [`bpf_timer_set_callback`](bpf_timer_set_callback.md) + * [`bpf_timer_start`](bpf_timer_start.md) + * [`bpf_timer_cancel`](bpf_timer_cancel.md) * Queue and stack helpers - * [bpf_map_push_elem](bpf_map_push_elem.md) - * [bpf_map_pop_elem](bpf_map_pop_elem.md) - * [bpf_map_peek_elem](bpf_map_peek_elem.md) - * Ringbuffer helper - * [bpf_ringbuf_output](bpf_ringbuf_output.md) - * [bpf_ringbuf_reserve](bpf_ringbuf_reserve.md) - * [bpf_ringbuf_submit](bpf_ringbuf_submit.md) - * [bpf_ringbuf_discard](bpf_ringbuf_discard.md) - * [bpf_ringbuf_query](bpf_ringbuf_query.md) - * [bpf_ringbuf_reserve_dynptr](bpf_ringbuf_reserve_dynptr.md) - * [bpf_ringbuf_submit_dynptr](bpf_ringbuf_submit_dynptr.md) - * [bpf_ringbuf_discard_dynptr](bpf_ringbuf_discard_dynptr.md) + * [`bpf_map_push_elem`](bpf_map_push_elem.md) + * [`bpf_map_pop_elem`](bpf_map_pop_elem.md) + * [`bpf_map_peek_elem`](bpf_map_peek_elem.md) + * Ring buffer helper + * [`bpf_ringbuf_output`](bpf_ringbuf_output.md) + * [`bpf_ringbuf_reserve`](bpf_ringbuf_reserve.md) + * [`bpf_ringbuf_submit`](bpf_ringbuf_submit.md) + * [`bpf_ringbuf_discard`](bpf_ringbuf_discard.md) + * [`bpf_ringbuf_query`](bpf_ringbuf_query.md) + * [`bpf_ringbuf_reserve_dynptr`](bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](bpf_ringbuf_submit_dynptr.md) + * [`bpf_ringbuf_discard_dynptr`](bpf_ringbuf_discard_dynptr.md) * Socket map helpers - * [bpf_sock_map_update](bpf_sock_map_update.md) + * [`bpf_sock_map_update`](bpf_sock_map_update.md) * Socket hash helpers - * [bpf_sock_hash_update](bpf_sock_hash_update.md) + * [`bpf_sock_hash_update`](bpf_sock_hash_update.md) * Task storage helpers - * [bpf_task_storage_get](bpf_task_storage_get.md) - * [bpf_task_storage_delete](bpf_task_storage_delete.md) + * [`bpf_task_storage_get`](bpf_task_storage_get.md) + * [`bpf_task_storage_delete`](bpf_task_storage_delete.md) * Inode storage helpers - * [bpf_inode_storage_get](bpf_inode_storage_get.md) - * [bpf_inode_storage_delete](bpf_inode_storage_delete.md) + * [`bpf_inode_storage_get`](bpf_inode_storage_get.md) + * [`bpf_inode_storage_delete`](bpf_inode_storage_delete.md) * Socket storage helpers - * [bpf_sk_storage_get](bpf_sk_storage_get.md) - * [bpf_sk_storage_delete](bpf_sk_storage_delete.md) + * [`bpf_sk_storage_get`](bpf_sk_storage_get.md) + * [`bpf_sk_storage_delete`](bpf_sk_storage_delete.md) * Local cGroup storage helpers - * [bpf_get_local_storage](bpf_get_local_storage.md) + * [`bpf_get_local_storage`](bpf_get_local_storage.md) * Global cGroup storage helpers - * [bpf_cgrp_storage_get](bpf_cgrp_storage_get.md) - * [bpf_cgrp_storage_delete](bpf_cgrp_storage_delete.md) + * [`bpf_cgrp_storage_get`](bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](bpf_cgrp_storage_delete.md) * User ring buffer - * [bpf_user_ringbuf_drain](bpf_user_ringbuf_drain.md) + * [`bpf_user_ringbuf_drain`](bpf_user_ringbuf_drain.md) * Probe and trace helpers - * [bpf_get_attach_cookie](bpf_get_attach_cookie.md) + * [`bpf_get_attach_cookie`](bpf_get_attach_cookie.md) * Memory helpers - * [bpf_probe_read](bpf_probe_read.md) - * [bpf_probe_write_user](bpf_probe_write_user.md) - * [bpf_probe_read_str](bpf_probe_read_str.md) - * [bpf_get_stack](bpf_get_stack.md) - * [bpf_probe_read_user](bpf_probe_read_user.md) - * [bpf_probe_read_kernel](bpf_probe_read_kernel.md) - * [bpf_probe_read_user_str](bpf_probe_read_user_str.md) - * [bpf_probe_read_kernel_str](bpf_probe_read_kernel_str.md) - * [bpf_copy_from_user](bpf_copy_from_user.md) - * [bpf_copy_from_user_task](bpf_copy_from_user_task.md) - * [bpf_copy_from_user_task](bpf_copy_from_user_task.md) - * [bpf_find_vma](bpf_find_vma.md) + * [`bpf_probe_read`](bpf_probe_read.md) + * [`bpf_probe_write_user`](bpf_probe_write_user.md) + * [`bpf_probe_read_str`](bpf_probe_read_str.md) + * [`bpf_get_stack`](bpf_get_stack.md) + * [`bpf_probe_read_user`](bpf_probe_read_user.md) + * [`bpf_probe_read_kernel`](bpf_probe_read_kernel.md) + * [`bpf_probe_read_user_str`](bpf_probe_read_user_str.md) + * [`bpf_probe_read_kernel_str`](bpf_probe_read_kernel_str.md) + * [`bpf_copy_from_user`](bpf_copy_from_user.md) + * [`bpf_copy_from_user_task`](bpf_copy_from_user_task.md) + * [`bpf_copy_from_user_task`](bpf_copy_from_user_task.md) + * [`bpf_find_vma`](bpf_find_vma.md) * Process influencing helpers - * [bpf_override_return](bpf_override_return.md) - * [bpf_get_retval](bpf_get_retval.md) - * [bpf_set_retval](bpf_set_retval.md) - * [bpf_send_signal](bpf_send_signal.md) - * [bpf_send_signal_thread](bpf_send_signal_thread.md) + * [`bpf_override_return`](bpf_override_return.md) + * [`bpf_get_retval`](bpf_get_retval.md) + * [`bpf_set_retval`](bpf_set_retval.md) + * [`bpf_send_signal`](bpf_send_signal.md) + * [`bpf_send_signal_thread`](bpf_send_signal_thread.md) * Tracing helpers - * [bpf_get_func_ip](bpf_get_func_ip.md) - * [bpf_get_func_arg](bpf_get_func_arg.md) - * [bpf_get_func_ret](bpf_get_func_ret.md) - * [bpf_get_func_arg_cnt](bpf_get_func_arg_cnt.md) - * [bpf_sock_from_file](bpf_sock_from_file.md) + * [`bpf_get_func_ip`](bpf_get_func_ip.md) + * [`bpf_get_func_arg`](bpf_get_func_arg.md) + * [`bpf_get_func_ret`](bpf_get_func_ret.md) + * [`bpf_get_func_arg_cnt`](bpf_get_func_arg_cnt.md) + * [`bpf_sock_from_file`](bpf_sock_from_file.md) * Perf event program helpers - * [bpf_perf_prog_read_value](bpf_perf_prog_read_value.md) + * [`bpf_perf_prog_read_value`](bpf_perf_prog_read_value.md) * Information helpers * Time helpers - * [bpf_ktime_get_ns](bpf_ktime_get_ns.md) - * [bpf_jiffies64](bpf_jiffies64.md) - * [bpf_ktime_get_boot_ns](bpf_ktime_get_boot_ns.md) - * [bpf_ktime_get_coarse_ns](bpf_ktime_get_coarse_ns.md) - * [bpf_ktime_get_tai_ns](bpf_ktime_get_tai_ns.md) + * [`bpf_ktime_get_ns`](bpf_ktime_get_ns.md) + * [`bpf_jiffies64`](bpf_jiffies64.md) + * [`bpf_ktime_get_boot_ns`](bpf_ktime_get_boot_ns.md) + * [`bpf_ktime_get_coarse_ns`](bpf_ktime_get_coarse_ns.md) + * [`bpf_ktime_get_tai_ns`](bpf_ktime_get_tai_ns.md) * Process info helpers - * [bpf_get_current_pid_tgid](bpf_get_current_pid_tgid.md) - * [bpf_get_current_uid_gid](bpf_get_current_uid_gid.md) - * [bpf_get_current_comm](bpf_get_current_comm.md) - * [bpf_get_cgroup_classid](bpf_get_cgroup_classid.md) - * [bpf_get_ns_current_pid_tgid](bpf_get_ns_current_pid_tgid.md) - * [bpf_get_current_task](bpf_get_current_task.md) - * [bpf_get_stackid](bpf_get_stackid.md) - * [bpf_current_task_under_cgroup](bpf_current_task_under_cgroup.md) - * [bpf_get_current_cgroup_id](bpf_get_current_cgroup_id.md) - * [bpf_get_current_ancestor_cgroup_id](bpf_get_current_ancestor_cgroup_id.md) - * [bpf_get_task_stack](bpf_get_task_stack.md) - * [bpf_get_current_task_btf](bpf_get_current_task_btf.md) - * [bpf_task_pt_regs](bpf_task_pt_regs.md) + * [`bpf_get_current_pid_tgid`](bpf_get_current_pid_tgid.md) + * [`bpf_get_current_uid_gid`](bpf_get_current_uid_gid.md) + * [`bpf_get_current_comm`](bpf_get_current_comm.md) + * [`bpf_get_cgroup_classid`](bpf_get_cgroup_classid.md) + * [`bpf_get_ns_current_pid_tgid`](bpf_get_ns_current_pid_tgid.md) + * [`bpf_get_current_task`](bpf_get_current_task.md) + * [`bpf_get_stackid`](bpf_get_stackid.md) + * [`bpf_current_task_under_cgroup`](bpf_current_task_under_cgroup.md) + * [`bpf_get_current_cgroup_id`](bpf_get_current_cgroup_id.md) + * [`bpf_get_current_ancestor_cgroup_id`](bpf_get_current_ancestor_cgroup_id.md) + * [`bpf_get_task_stack`](bpf_get_task_stack.md) + * [`bpf_get_current_task_btf`](bpf_get_current_task_btf.md) + * [`bpf_task_pt_regs`](bpf_task_pt_regs.md) * CPU info helpers - * [bpf_get_smp_processor_id](bpf_get_smp_processor_id.md) - * [bpf_get_numa_node_id](bpf_get_numa_node_id.md) - * [bpf_read_branch_records](bpf_read_branch_records.md) - * [bpf_get_branch_snapshot](bpf_get_branch_snapshot.md) - * [bpf_per_cpu_ptr](bpf_per_cpu_ptr.md) - * [bpf_this_cpu_ptr](bpf_this_cpu_ptr.md) + * [`bpf_get_smp_processor_id`](bpf_get_smp_processor_id.md) + * [`bpf_get_numa_node_id`](bpf_get_numa_node_id.md) + * [`bpf_read_branch_records`](bpf_read_branch_records.md) + * [`bpf_get_branch_snapshot`](bpf_get_branch_snapshot.md) + * [`bpf_per_cpu_ptr`](bpf_per_cpu_ptr.md) + * [`bpf_this_cpu_ptr`](bpf_this_cpu_ptr.md) * Print helpers - * [bpf_trace_printk](bpf_trace_printk.md) - * [bpf_snprintf](bpf_snprintf.md) - * [bpf_snprintf_btf](bpf_snprintf_btf.md) - * [bpf_trace_vprintk](bpf_trace_vprintk.md) + * [`bpf_trace_printk`](bpf_trace_printk.md) + * [`bpf_snprintf`](bpf_snprintf.md) + * [`bpf_snprintf_btf`](bpf_snprintf_btf.md) + * [`bpf_trace_vprintk`](bpf_trace_vprintk.md) * Iterator print helpers - * [bpf_seq_printf](bpf_seq_printf.md) - * [bpf_seq_write](bpf_seq_write.md) - * [bpf_seq_printf_btf](bpf_seq_printf_btf.md) + * [`bpf_seq_printf`](bpf_seq_printf.md) + * [`bpf_seq_write`](bpf_seq_write.md) + * [`bpf_seq_printf_btf`](bpf_seq_printf_btf.md) * Network helpers - * [bpf_get_netns_cookie](bpf_get_netns_cookie.md) - * [bpf_check_mtu](bpf_check_mtu.md) - * [bpf_get_route_realm](bpf_get_route_realm.md) - * [bpf_fib_lookup](bpf_fib_lookup.md) + * [`bpf_get_netns_cookie`](bpf_get_netns_cookie.md) + * [`bpf_check_mtu`](bpf_check_mtu.md) + * [`bpf_get_route_realm`](bpf_get_route_realm.md) + * [`bpf_fib_lookup`](bpf_fib_lookup.md) * Socket buffer helpers - * [bpf_skb_store_bytes](bpf_skb_store_bytes.md) - * [bpf_skb_load_bytes](bpf_skb_load_bytes.md) - * [bpf_skb_vlan_push](bpf_skb_vlan_push.md) - * [bpf_skb_vlan_pop](bpf_skb_vlan_pop.md) - * [bpf_skb_get_tunnel_key](bpf_skb_get_tunnel_key.md) - * [bpf_skb_set_tunnel_key](bpf_skb_set_tunnel_key.md) - * [bpf_skb_get_tunnel_opt](bpf_skb_get_tunnel_opt.md) - * [bpf_skb_set_tunnel_opt](bpf_skb_set_tunnel_opt.md) - * [bpf_skb_change_proto](bpf_skb_change_proto.md) - * [bpf_skb_change_type](bpf_skb_change_type.md) - * [bpf_skb_under_cgroup](bpf_skb_under_cgroup.md) - * [bpf_skb_change_tail](bpf_skb_change_tail.md) - * [bpf_skb_pull_data](bpf_skb_pull_data.md) - * [bpf_skb_adjust_room](bpf_skb_adjust_room.md) - * [bpf_skb_change_head](bpf_skb_change_head.md) - * [bpf_skb_get_xfrm_state](bpf_skb_get_xfrm_state.md) - * [bpf_skb_load_bytes_relative](bpf_skb_load_bytes_relative.md) - * [bpf_skb_cgroup_id](bpf_skb_cgroup_id.md) - * [bpf_skb_ancestor_cgroup_id](bpf_skb_ancestor_cgroup_id.md) - * [bpf_skb_ecn_set_ce](bpf_skb_ecn_set_ce.md) - * [bpf_skb_cgroup_classid](bpf_skb_cgroup_classid.md) - * [bpf_skb_set_tstamp](bpf_skb_set_tstamp.md) - * [bpf_set_hash](bpf_set_hash.md) - * [bpf_get_hash_recalc](bpf_get_hash_recalc.md) - * [bpf_set_hash_invalid](bpf_set_hash_invalid.md) + * [`bpf_skb_store_bytes`](bpf_skb_store_bytes.md) + * [`bpf_skb_load_bytes`](bpf_skb_load_bytes.md) + * [`bpf_skb_vlan_push`](bpf_skb_vlan_push.md) + * [`bpf_skb_vlan_pop`](bpf_skb_vlan_pop.md) + * [`bpf_skb_get_tunnel_key`](bpf_skb_get_tunnel_key.md) + * [`bpf_skb_set_tunnel_key`](bpf_skb_set_tunnel_key.md) + * [`bpf_skb_get_tunnel_opt`](bpf_skb_get_tunnel_opt.md) + * [`bpf_skb_set_tunnel_opt`](bpf_skb_set_tunnel_opt.md) + * [`bpf_skb_change_proto`](bpf_skb_change_proto.md) + * [`bpf_skb_change_type`](bpf_skb_change_type.md) + * [`bpf_skb_under_cgroup`](bpf_skb_under_cgroup.md) + * [`bpf_skb_change_tail`](bpf_skb_change_tail.md) + * [`bpf_skb_pull_data`](bpf_skb_pull_data.md) + * [`bpf_skb_adjust_room`](bpf_skb_adjust_room.md) + * [`bpf_skb_change_head`](bpf_skb_change_head.md) + * [`bpf_skb_get_xfrm_state`](bpf_skb_get_xfrm_state.md) + * [`bpf_skb_load_bytes_relative`](bpf_skb_load_bytes_relative.md) + * [`bpf_skb_cgroup_id`](bpf_skb_cgroup_id.md) + * [`bpf_skb_ancestor_cgroup_id`](bpf_skb_ancestor_cgroup_id.md) + * [`bpf_skb_ecn_set_ce`](bpf_skb_ecn_set_ce.md) + * [`bpf_skb_cgroup_classid`](bpf_skb_cgroup_classid.md) + * [`bpf_skb_set_tstamp`](bpf_skb_set_tstamp.md) + * [`bpf_set_hash`](bpf_set_hash.md) + * [`bpf_get_hash_recalc`](bpf_get_hash_recalc.md) + * [`bpf_set_hash_invalid`](bpf_set_hash_invalid.md) * Checksum helpers - * [bpf_l3_csum_replace](bpf_l3_csum_replace.md) - * [bpf_l4_csum_replace](bpf_l4_csum_replace.md) - * [bpf_csum_diff](bpf_csum_diff.md) - * [bpf_csum_update](bpf_csum_update.md) - * [bpf_csum_level](bpf_csum_level.md) + * [`bpf_l3_csum_replace`](bpf_l3_csum_replace.md) + * [`bpf_l4_csum_replace`](bpf_l4_csum_replace.md) + * [`bpf_csum_diff`](bpf_csum_diff.md) + * [`bpf_csum_update`](bpf_csum_update.md) + * [`bpf_csum_level`](bpf_csum_level.md) * Redirect helpers - * [bpf_clone_redirect](bpf_clone_redirect.md) - * [bpf_redirect](bpf_redirect.md) - * [bpf_redirect_map](bpf_redirect_map.md) - * [bpf_sk_redirect_map](bpf_sk_redirect_map.md) - * [bpf_msg_redirect_map](bpf_msg_redirect_map.md) - * [bpf_redirect_peer](bpf_redirect_peer.md) - * [bpf_sk_redirect_hash](bpf_sk_redirect_hash.md) - * [bpf_msg_redirect_hash](bpf_msg_redirect_hash.md) - * [bpf_redirect_neigh](bpf_redirect_neigh.md) - * [bpf_sk_select_reuseport](bpf_sk_select_reuseport.md) - * [bpf_sk_assign](bpf_sk_assign.md) + * [`bpf_clone_redirect`](bpf_clone_redirect.md) + * [`bpf_redirect`](bpf_redirect.md) + * [`bpf_redirect_map`](bpf_redirect_map.md) + * [`bpf_sk_redirect_map`](bpf_sk_redirect_map.md) + * [`bpf_msg_redirect_map`](bpf_msg_redirect_map.md) + * [`bpf_redirect_peer`](bpf_redirect_peer.md) + * [`bpf_sk_redirect_hash`](bpf_sk_redirect_hash.md) + * [`bpf_msg_redirect_hash`](bpf_msg_redirect_hash.md) + * [`bpf_redirect_neigh`](bpf_redirect_neigh.md) + * [`bpf_sk_select_reuseport`](bpf_sk_select_reuseport.md) + * [`bpf_sk_assign`](bpf_sk_assign.md) * XDP helpers - * [bpf_xdp_adjust_head](bpf_xdp_adjust_head.md) - * [bpf_xdp_adjust_tail](bpf_xdp_adjust_tail.md) - * [bpf_xdp_adjust_meta](bpf_xdp_adjust_meta.md) - * [bpf_xdp_get_buff_len](bpf_xdp_get_buff_len.md) - * [bpf_xdp_load_bytes](bpf_xdp_load_bytes.md) - * [bpf_xdp_store_bytes](bpf_xdp_store_bytes.md) - * SK msg helpers - * [bpf_msg_apply_bytes](bpf_msg_apply_bytes.md) - * [bpf_msg_cork_bytes](bpf_msg_cork_bytes.md) - * [bpf_msg_pull_data](bpf_msg_pull_data.md) - * [bpf_msg_push_data](bpf_msg_push_data.md) - * [bpf_msg_pop_data](bpf_msg_pop_data.md) + * [`bpf_xdp_adjust_head`](bpf_xdp_adjust_head.md) + * [`bpf_xdp_adjust_tail`](bpf_xdp_adjust_tail.md) + * [`bpf_xdp_adjust_meta`](bpf_xdp_adjust_meta.md) + * [`bpf_xdp_get_buff_len`](bpf_xdp_get_buff_len.md) + * [`bpf_xdp_load_bytes`](bpf_xdp_load_bytes.md) + * [`bpf_xdp_store_bytes`](bpf_xdp_store_bytes.md) + * Socket message helpers + * [`bpf_msg_apply_bytes`](bpf_msg_apply_bytes.md) + * [`bpf_msg_cork_bytes`](bpf_msg_cork_bytes.md) + * [`bpf_msg_pull_data`](bpf_msg_pull_data.md) + * [`bpf_msg_push_data`](bpf_msg_push_data.md) + * [`bpf_msg_pop_data`](bpf_msg_pop_data.md) * LWT helpers - * [bpf_lwt_push_encap](bpf_lwt_push_encap.md) - * [bpf_lwt_seg6_store_bytes](bpf_lwt_seg6_store_bytes.md) - * [bpf_lwt_seg6_adjust_srh](bpf_lwt_seg6_adjust_srh.md) - * [bpf_lwt_seg6_action](bpf_lwt_seg6_action.md) - * SYNCookie helpers - * [bpf_tcp_check_syncookie](bpf_tcp_check_syncookie.md) - * [bpf_tcp_gen_syncookie](bpf_tcp_gen_syncookie.md) - * [bpf_tcp_raw_gen_syncookie_ipv4](bpf_tcp_raw_gen_syncookie_ipv4.md) - * [bpf_tcp_raw_gen_syncookie_ipv6](bpf_tcp_raw_gen_syncookie_ipv6.md) - * [bpf_tcp_raw_check_syncookie_ipv4](bpf_tcp_raw_check_syncookie_ipv4.md) - * [bpf_tcp_raw_check_syncookie_ipv6](bpf_tcp_raw_check_syncookie_ipv6.md) + * [`bpf_lwt_push_encap`](bpf_lwt_push_encap.md) + * [`bpf_lwt_seg6_store_bytes`](bpf_lwt_seg6_store_bytes.md) + * [`bpf_lwt_seg6_adjust_srh`](bpf_lwt_seg6_adjust_srh.md) + * [`bpf_lwt_seg6_action`](bpf_lwt_seg6_action.md) + * SYN Cookie helpers + * [`bpf_tcp_check_syncookie`](bpf_tcp_check_syncookie.md) + * [`bpf_tcp_gen_syncookie`](bpf_tcp_gen_syncookie.md) + * [`bpf_tcp_raw_gen_syncookie_ipv4`](bpf_tcp_raw_gen_syncookie_ipv4.md) + * [`bpf_tcp_raw_gen_syncookie_ipv6`](bpf_tcp_raw_gen_syncookie_ipv6.md) + * [`bpf_tcp_raw_check_syncookie_ipv4`](bpf_tcp_raw_check_syncookie_ipv4.md) + * [`bpf_tcp_raw_check_syncookie_ipv6`](bpf_tcp_raw_check_syncookie_ipv6.md) * Socket helpers - * [bpf_sk_lookup_tcp](bpf_sk_lookup_tcp.md) - * [bpf_sk_lookup_udp](bpf_sk_lookup_udp.md) - * [bpf_sk_release](bpf_sk_release.md) - * [bpf_sk_fullsock](bpf_sk_fullsock.md) - * [bpf_sk_cgroup_id](bpf_sk_cgroup_id.md) - * [bpf_sk_ancestor_cgroup_id](bpf_sk_ancestor_cgroup_id.md) - * [bpf_get_socket_cookie](bpf_get_socket_cookie.md) - * [bpf_get_socket_uid](bpf_get_socket_uid.md) - * [bpf_setsockopt](bpf_setsockopt.md) - * [bpf_getsockopt](bpf_getsockopt.md) - * [bpf_sock_ops_cb_flags_set](bpf_sock_ops_cb_flags_set.md) - * [bpf_tcp_sock](bpf_tcp_sock.md) - * [bpf_get_listener_sock](bpf_get_listener_sock.md) - * [bpf_tcp_send_ack](bpf_tcp_send_ack.md) - * [bpf_skc_lookup_tcp](bpf_skc_lookup_tcp.md) - * [bpf_skc_to_tcp6_sock](bpf_skc_to_tcp6_sock.md) - * [bpf_skc_to_tcp_sock](bpf_skc_to_tcp_sock.md) - * [bpf_skc_to_tcp_timewait_sock](bpf_skc_to_tcp_timewait_sock.md) - * [bpf_skc_to_tcp_request_sock](bpf_skc_to_tcp_request_sock.md) - * [bpf_skc_to_udp6_sock](bpf_skc_to_udp6_sock.md) - * [bpf_skc_to_mptcp_sock](bpf_skc_to_mptcp_sock.md) - * [bpf_skc_to_unix_sock](bpf_skc_to_unix_sock.md) - * [bpf_bind](bpf_bind.md) + * [`bpf_sk_lookup_tcp`](bpf_sk_lookup_tcp.md) + * [`bpf_sk_lookup_udp`](bpf_sk_lookup_udp.md) + * [`bpf_sk_release`](bpf_sk_release.md) + * [`bpf_sk_fullsock`](bpf_sk_fullsock.md) + * [`bpf_sk_cgroup_id`](bpf_sk_cgroup_id.md) + * [`bpf_sk_ancestor_cgroup_id`](bpf_sk_ancestor_cgroup_id.md) + * [`bpf_get_socket_cookie`](bpf_get_socket_cookie.md) + * [`bpf_get_socket_uid`](bpf_get_socket_uid.md) + * [`bpf_setsockopt`](bpf_setsockopt.md) + * [`bpf_getsockopt`](bpf_getsockopt.md) + * [`bpf_sock_ops_cb_flags_set`](bpf_sock_ops_cb_flags_set.md) + * [`bpf_tcp_sock`](bpf_tcp_sock.md) + * [`bpf_get_listener_sock`](bpf_get_listener_sock.md) + * [`bpf_tcp_send_ack`](bpf_tcp_send_ack.md) + * [`bpf_skc_lookup_tcp`](bpf_skc_lookup_tcp.md) + * [`bpf_skc_to_tcp6_sock`](bpf_skc_to_tcp6_sock.md) + * [`bpf_skc_to_tcp_sock`](bpf_skc_to_tcp_sock.md) + * [`bpf_skc_to_tcp_timewait_sock`](bpf_skc_to_tcp_timewait_sock.md) + * [`bpf_skc_to_tcp_request_sock`](bpf_skc_to_tcp_request_sock.md) + * [`bpf_skc_to_udp6_sock`](bpf_skc_to_udp6_sock.md) + * [`bpf_skc_to_mptcp_sock`](bpf_skc_to_mptcp_sock.md) + * [`bpf_skc_to_unix_sock`](bpf_skc_to_unix_sock.md) + * [`bpf_bind`](bpf_bind.md) * Socket ops helpers - * [bpf_load_hdr_opt](bpf_load_hdr_opt.md) - * [bpf_store_hdr_opt](bpf_store_hdr_opt.md) - * [bpf_reserve_hdr_opt](bpf_reserve_hdr_opt.md) + * [`bpf_load_hdr_opt`](bpf_load_hdr_opt.md) + * [`bpf_store_hdr_opt`](bpf_store_hdr_opt.md) + * [`bpf_reserve_hdr_opt`](bpf_reserve_hdr_opt.md) * Infrared related helpers - * [bpf_rc_repeat](bpf_rc_repeat.md) - * [bpf_rc_keydown](bpf_rc_keydown.md) - * [bpf_rc_pointer_rel](bpf_rc_pointer_rel.md) + * [`bpf_rc_repeat`](bpf_rc_repeat.md) + * [`bpf_rc_keydown`](bpf_rc_keydown.md) + * [`bpf_rc_pointer_rel`](bpf_rc_pointer_rel.md) * Syscall helpers - * [bpf_sys_bpf](bpf_sys_bpf.md) - * [bpf_btf_find_by_name_kind](bpf_btf_find_by_name_kind.md) - * [bpf_sys_close](bpf_sys_close.md) - * [bpf_kallsyms_lookup_name](bpf_kallsyms_lookup_name.md) + * [`bpf_sys_bpf`](bpf_sys_bpf.md) + * [`bpf_btf_find_by_name_kind`](bpf_btf_find_by_name_kind.md) + * [`bpf_sys_close`](bpf_sys_close.md) + * [`bpf_kallsyms_lookup_name`](bpf_kallsyms_lookup_name.md) * LSM helpers - * [bpf_bprm_opts_set](bpf_bprm_opts_set.md) - * [bpf_ima_inode_hash](bpf_ima_inode_hash.md) - * [bpf_ima_file_hash](bpf_ima_file_hash.md) + * [`bpf_bprm_opts_set`](bpf_bprm_opts_set.md) + * [`bpf_ima_inode_hash`](bpf_ima_inode_hash.md) + * [`bpf_ima_file_hash`](bpf_ima_file_hash.md) * Sysctl helpers - * [bpf_sysctl_get_name](bpf_sysctl_get_name.md) - * [bpf_sysctl_get_current_value](bpf_sysctl_get_current_value.md) - * [bpf_sysctl_get_new_value](bpf_sysctl_get_new_value.md) - * [bpf_sysctl_set_new_value](bpf_sysctl_set_new_value.md) + * [`bpf_sysctl_get_name`](bpf_sysctl_get_name.md) + * [`bpf_sysctl_get_current_value`](bpf_sysctl_get_current_value.md) + * [`bpf_sysctl_get_new_value`](bpf_sysctl_get_new_value.md) + * [`bpf_sysctl_set_new_value`](bpf_sysctl_set_new_value.md) * Dynptr - * [bpf_dynptr_from_mem](bpf_dynptr_from_mem.md) - * [bpf_dynptr_read](bpf_dynptr_read.md) - * [bpf_dynptr_write](bpf_dynptr_write.md) - * [bpf_dynptr_data](bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](bpf_dynptr_read.md) + * [`bpf_dynptr_write`](bpf_dynptr_write.md) + * [`bpf_dynptr_data`](bpf_dynptr_data.md) * Loop helpers - * [bpf_loop](bpf_loop.md) + * [`bpf_loop`](bpf_loop.md) * Utility helpers - * [bpf_get_prandom_u32](bpf_get_prandom_u32.md) - * [bpf_strtol](bpf_strtol.md) - * [bpf_strtoul](bpf_strtoul.md) - * [bpf_strncmp](bpf_strncmp.md) - * [bpf_d_path](bpf_d_path.md) + * [`bpf_get_prandom_u32`](bpf_get_prandom_u32.md) + * [`bpf_strtol`](bpf_strtol.md) + * [`bpf_strtoul`](bpf_strtoul.md) + * [`bpf_strncmp`](bpf_strncmp.md) + * [`bpf_d_path`](bpf_d_path.md) * Misc - * [bpf_kptr_xchg](bpf_kptr_xchg.md) + * [`bpf_kptr_xchg`](bpf_kptr_xchg.md) diff --git a/docs/linux/helper-function/bpf_cgrp_storage_delete.md b/docs/linux/helper-function/bpf_cgrp_storage_delete.md index d4d1088f..2f8be375 100644 --- a/docs/linux/helper-function/bpf_cgrp_storage_delete.md +++ b/docs/linux/helper-function/bpf_cgrp_storage_delete.md @@ -36,34 +36,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Map types diff --git a/docs/linux/helper-function/bpf_cgrp_storage_get.md b/docs/linux/helper-function/bpf_cgrp_storage_get.md index c02bdb6d..a2036e10 100644 --- a/docs/linux/helper-function/bpf_cgrp_storage_get.md +++ b/docs/linux/helper-function/bpf_cgrp_storage_get.md @@ -42,34 +42,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Map types diff --git a/docs/linux/helper-function/bpf_d_path.md b/docs/linux/helper-function/bpf_d_path.md index 555948f3..a9a6c5d2 100644 --- a/docs/linux/helper-function/bpf_d_path.md +++ b/docs/linux/helper-function/bpf_d_path.md @@ -36,7 +36,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_dynptr_data.md b/docs/linux/helper-function/bpf_dynptr_data.md index 547a9f01..180f2c86 100644 --- a/docs/linux/helper-function/bpf_dynptr_data.md +++ b/docs/linux/helper-function/bpf_dynptr_data.md @@ -38,7 +38,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_dynptr_from_mem.md b/docs/linux/helper-function/bpf_dynptr_from_mem.md index 10864087..133a49ac 100644 --- a/docs/linux/helper-function/bpf_dynptr_from_mem.md +++ b/docs/linux/helper-function/bpf_dynptr_from_mem.md @@ -36,7 +36,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_dynptr_read.md b/docs/linux/helper-function/bpf_dynptr_read.md index e31eae4f..ff18b31c 100644 --- a/docs/linux/helper-function/bpf_dynptr_read.md +++ b/docs/linux/helper-function/bpf_dynptr_read.md @@ -34,7 +34,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_dynptr_write.md b/docs/linux/helper-function/bpf_dynptr_write.md index 7f9f507e..180d25f6 100644 --- a/docs/linux/helper-function/bpf_dynptr_write.md +++ b/docs/linux/helper-function/bpf_dynptr_write.md @@ -40,7 +40,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_for_each_map_elem.md b/docs/linux/helper-function/bpf_for_each_map_elem.md index 2eac3fc2..bfc54b1f 100644 --- a/docs/linux/helper-function/bpf_for_each_map_elem.md +++ b/docs/linux/helper-function/bpf_for_each_map_elem.md @@ -27,8 +27,8 @@ The `callback_fn` should be a static function with the following signature: The `flags` is used to control certain aspects of the helper. Currently, the `flags` must be 0. -For per_cpu maps, the map_value is the value on the cpu where the -bpf_prog is running. +For per-CPU maps, the `map_value` is the value on the cpu where the +`bpf_prog` is running. If `callback_fn` return 0, the helper will continue to the next element. If return value is 1, the helper will skip the rest of diff --git a/docs/linux/helper-function/bpf_get_attach_cookie.md b/docs/linux/helper-function/bpf_get_attach_cookie.md index 872afbdb..c0a6c087 100644 --- a/docs/linux/helper-function/bpf_get_attach_cookie.md +++ b/docs/linux/helper-function/bpf_get_attach_cookie.md @@ -32,7 +32,7 @@ Value specified by user at BPF link creation/attachment time or 0, if it was not ## Usage -This is useful for cases when the same BPF program is used for attaching and processing invocation of different tracepoints/kprobes/uprobes in a generic fashion, but such that each invocation is distinguished from each other (e.g., BPF program can look up additional information associated with a specific kernel function without having to rely on function IP lookups). This enables new use cases to be implemented simply and efficiently that previously were possible only through code generation (and thus multiple instances of almost identical BPF program) or compilation at runtime (BCC-style) on target hosts (even more expensive resource-wise). For uprobes it is not even possible in some cases to know function IP before hand (e.g., when attaching to shared library without PID filtering, in which case base load address is not known for a library). +This is useful for cases when the same BPF program is used for attaching and processing invocation of different tracepoints/kprobes/uprobes in a generic fashion, but such that each invocation is distinguished from each other (e.g., BPF program can look up additional information associated with a specific kernel function without having to rely on function IP lookups). This enables new use cases to be implemented simply and efficiently that previously were possible only through code generation (and thus multiple instances of almost identical BPF program) or compilation at runtime (BCC-style) on target hosts (even more expensive resource-wise). For uprobes it is not even possible in some cases to know function IP before hand (e.g., when attaching to shared library without process ID filtering, in which case base load address is not known for a library). ### Program types diff --git a/docs/linux/helper-function/bpf_get_func_arg.md b/docs/linux/helper-function/bpf_get_func_arg.md index 4a931b78..ef570e66 100644 --- a/docs/linux/helper-function/bpf_get_func_arg.md +++ b/docs/linux/helper-function/bpf_get_func_arg.md @@ -36,20 +36,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_func_arg_cnt.md b/docs/linux/helper-function/bpf_get_func_arg_cnt.md index 7b85cc57..b153870d 100644 --- a/docs/linux/helper-function/bpf_get_func_arg_cnt.md +++ b/docs/linux/helper-function/bpf_get_func_arg_cnt.md @@ -36,20 +36,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_func_ret.md b/docs/linux/helper-function/bpf_get_func_ret.md index 20de6cbe..965f111a 100644 --- a/docs/linux/helper-function/bpf_get_func_ret.md +++ b/docs/linux/helper-function/bpf_get_func_ret.md @@ -36,20 +36,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_socket_cookie.md b/docs/linux/helper-function/bpf_get_socket_cookie.md index 8e76f440..bf6a9dff 100644 --- a/docs/linux/helper-function/bpf_get_socket_cookie.md +++ b/docs/linux/helper-function/bpf_get_socket_cookie.md @@ -43,6 +43,7 @@ This helper call can be used in the following program types: * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_stack.md b/docs/linux/helper-function/bpf_get_stack.md index aebc6995..d646c747 100644 --- a/docs/linux/helper-function/bpf_get_stack.md +++ b/docs/linux/helper-function/bpf_get_stack.md @@ -57,6 +57,7 @@ This helper call can be used in the following program types: * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_get_stackid.md b/docs/linux/helper-function/bpf_get_stackid.md index b3e38ccc..8060e977 100644 --- a/docs/linux/helper-function/bpf_get_stackid.md +++ b/docs/linux/helper-function/bpf_get_stackid.md @@ -49,8 +49,8 @@ The positive or null stack id on success, or a negative error in case of failure Call `bpf_get_stackid` to retrieve the stack id of the context in which the program is running, specifying as arguments: -* *ctx*, the pointer to the currenct context on which the program is executing -* *bpf_map*, the pointer to a map of type **BPF_PROG_TYPE_STACK_TRACE** +* *ctx*, the pointer to the current context on which the program is executing +* *bpf_map*, the pointer to a map of type [`BPF_MAP_TYPE_STACK_TRACE`](../map-type/BPF_MAP_TYPE_STACK_TRACE.md) * *flags*, the flags bitmap ```c @@ -68,6 +68,7 @@ This helper call can be used in the following program types: * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example @@ -100,6 +101,6 @@ char _license[] SEC("license") = "GPL"; Complete examples in the Linux source bpf samples: - * [samples/bpf/offwaketime.bpf.c](https://github.com/torvalds/linux/blob/e8f897f4afef0031fe618a8e94127a0934896aba/samples/bpf/offwaketime.bpf.c) - * [samples/bpf/trace_event_kern.c](https://github.com/torvalds/linux/blob/e8f897f4afef0031fe618a8e94127a0934896aba/samples/bpf/trace_event_kern.c) + * [`samples/bpf/offwaketime.bpf.c`](https://github.com/torvalds/linux/blob/e8f897f4afef0031fe618a8e94127a0934896aba/samples/bpf/offwaketime.bpf.c) + * [`samples/bpf/trace_event_kern.c`](https://github.com/torvalds/linux/blob/e8f897f4afef0031fe618a8e94127a0934896aba/samples/bpf/trace_event_kern.c) diff --git a/docs/linux/helper-function/bpf_kptr_xchg.md b/docs/linux/helper-function/bpf_kptr_xchg.md index dde4a002..47df4302 100644 --- a/docs/linux/helper-function/bpf_kptr_xchg.md +++ b/docs/linux/helper-function/bpf_kptr_xchg.md @@ -34,7 +34,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_ktime_get_tai_ns.md b/docs/linux/helper-function/bpf_ktime_get_tai_ns.md index 3dfb72fc..84a5f94b 100644 --- a/docs/linux/helper-function/bpf_ktime_get_tai_ns.md +++ b/docs/linux/helper-function/bpf_ktime_get_tai_ns.md @@ -37,7 +37,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_map_lookup_elem.md b/docs/linux/helper-function/bpf_map_lookup_elem.md index 5f87df52..92096b86 100644 --- a/docs/linux/helper-function/bpf_map_lookup_elem.md +++ b/docs/linux/helper-function/bpf_map_lookup_elem.md @@ -33,7 +33,7 @@ wish to lookup. The return value will be a pointer to the map value or `NULL`. The value is a direct reference to the kernel memory where this map value is stored, not a copy. Therefor any modifications made to the value are automatically persisted without the need to call any additional helpers. !!! warning - modifying map values of non per-CPU maps is subject to race conditions, atomics or spinlocks must be utilized to prevent race conditions if they are detrimental to your use case. + modifying map values of non per-CPU maps is subject to race conditions, atomic instructions or spinlocks must be utilized to prevent race conditions if they are detrimental to your use case. diff --git a/docs/linux/helper-function/bpf_perf_event_output.md b/docs/linux/helper-function/bpf_perf_event_output.md index 86a605e1..1e600797 100644 --- a/docs/linux/helper-function/bpf_perf_event_output.md +++ b/docs/linux/helper-function/bpf_perf_event_output.md @@ -71,6 +71,7 @@ This helper call can be used in the following program types: * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) diff --git a/docs/linux/helper-function/bpf_ringbuf_discard_dynptr.md b/docs/linux/helper-function/bpf_ringbuf_discard_dynptr.md index 60fd2740..4cd1d0ab 100644 --- a/docs/linux/helper-function/bpf_ringbuf_discard_dynptr.md +++ b/docs/linux/helper-function/bpf_ringbuf_discard_dynptr.md @@ -36,17 +36,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_ringbuf_output.md b/docs/linux/helper-function/bpf_ringbuf_output.md index 4a83930b..2af72d19 100644 --- a/docs/linux/helper-function/bpf_ringbuf_output.md +++ b/docs/linux/helper-function/bpf_ringbuf_output.md @@ -29,7 +29,7 @@ An adaptive notification is a notification sent whenever the user-space process The `ringbuf` must be a pointer to the ring buffer map. `data` is a pointer to the data that needs to be copied into the ring buffer. The `size` argument specifies the number of bytes to be copied. The `flags` argument defines how the notification of the new data availability should be handled. -This function incurs an extra memory copy operation in comparison to using [bpf_ringbuf_reserve](./bpf_ringbuf_reserve.md)/[bpf_ringbuf_submit](./bpf_ringbuf_submit.md)/[bpf_ringbuf_discard](./bpf_ringbuf_discard.md), but allows submitting records of lengths unknown to the [verifier](https://www.kernel.org/doc/html/next/bpf/ringbuf.html). +This function incurs an extra memory copy operation in comparison to using [`bpf_ringbuf_reserve`](./bpf_ringbuf_reserve.md)/[`bpf_ringbuf_submit`](./bpf_ringbuf_submit.md)/[`bpf_ringbuf_discard`](./bpf_ringbuf_discard.md), but allows submitting records of lengths unknown to the [verifier](https://www.kernel.org/doc/html/next/bpf/ringbuf.html). ### Program types diff --git a/docs/linux/helper-function/bpf_ringbuf_reserve.md b/docs/linux/helper-function/bpf_ringbuf_reserve.md index a47cda88..a4b2593b 100644 --- a/docs/linux/helper-function/bpf_ringbuf_reserve.md +++ b/docs/linux/helper-function/bpf_ringbuf_reserve.md @@ -29,7 +29,7 @@ The `rinfbuf` argument must be a pointer to a ring buffer definition. The `size` This function is generally used in combination with a `struct` that defines the structure of the data stored in the ring buffer. Hence, in this case, the `size` argument would be set to the size of the struct. The function returns a pointer to the reserved memory, which can be used to write data to the ring buffer. See the example below for more details. -Also check [bpf_ringbuf_submit](./bpf_ringbuf_submit.md) and [bpf_ringbuf_discard](./bpf_ringbuf_discard.md) for more information on how to handle the reserved memory in the ring buffer. +Also check [`bpf_ringbuf_submit`](./bpf_ringbuf_submit.md) and [`bpf_ringbuf_discard`](./bpf_ringbuf_discard.md) for more information on how to handle the reserved memory in the ring buffer. ### Program types @@ -79,4 +79,4 @@ if (! rb_data) { } ``` -Where `my_ringbuf` is the pointer to the ring buffer, and `ringbuf_data` is a struct that defines the structure of the data to be stored in the ring buffer. \ No newline at end of file +Where `my_ringbuf` is the pointer to the ring buffer, and `ringbuf_data` is a struct that defines the structure of the data to be stored in the ring buffer. diff --git a/docs/linux/helper-function/bpf_ringbuf_reserve_dynptr.md b/docs/linux/helper-function/bpf_ringbuf_reserve_dynptr.md index ef4f91b4..f69444ed 100644 --- a/docs/linux/helper-function/bpf_ringbuf_reserve_dynptr.md +++ b/docs/linux/helper-function/bpf_ringbuf_reserve_dynptr.md @@ -36,17 +36,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_ringbuf_submit.md b/docs/linux/helper-function/bpf_ringbuf_submit.md index df506495..5b4f74ab 100644 --- a/docs/linux/helper-function/bpf_ringbuf_submit.md +++ b/docs/linux/helper-function/bpf_ringbuf_submit.md @@ -27,7 +27,7 @@ Nothing. Always succeeds. ## Usage -Submit makes the data reserved in the ringbuf available for reading. The `data` argument must be a pointer to the reserved data in the ring buffer. +Submit makes the data reserved in the ring buffer available for reading. The `data` argument must be a pointer to the reserved data in the ring buffer. The `flags` argument declares how the notification of new data availability should be handled. ### Program types diff --git a/docs/linux/helper-function/bpf_ringbuf_submit_dynptr.md b/docs/linux/helper-function/bpf_ringbuf_submit_dynptr.md index fb174e43..2391c2d5 100644 --- a/docs/linux/helper-function/bpf_ringbuf_submit_dynptr.md +++ b/docs/linux/helper-function/bpf_ringbuf_submit_dynptr.md @@ -36,17 +36,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_seq_printf.md b/docs/linux/helper-function/bpf_seq_printf.md index c3256991..8e94a370 100644 --- a/docs/linux/helper-function/bpf_seq_printf.md +++ b/docs/linux/helper-function/bpf_seq_printf.md @@ -44,34 +44,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_seq_printf_btf.md b/docs/linux/helper-function/bpf_seq_printf_btf.md index 7c96c231..41c4bbe8 100644 --- a/docs/linux/helper-function/bpf_seq_printf_btf.md +++ b/docs/linux/helper-function/bpf_seq_printf_btf.md @@ -34,34 +34,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_seq_write.md b/docs/linux/helper-function/bpf_seq_write.md index 2eb9b411..42dc875d 100644 --- a/docs/linux/helper-function/bpf_seq_write.md +++ b/docs/linux/helper-function/bpf_seq_write.md @@ -36,34 +36,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_sk_assign.md b/docs/linux/helper-function/bpf_sk_assign.md index cc729c63..44f0c972 100644 --- a/docs/linux/helper-function/bpf_sk_assign.md +++ b/docs/linux/helper-function/bpf_sk_assign.md @@ -29,7 +29,7 @@ This helper function is used to direct incoming traffic to a specific socket, ov ### Return value in `BPF_PROG_TYPE_SK_LOOKUP` returns -0 on success, or a negative errno in case of failure. +0 on success, or a negative error number in case of failure. * `-EAFNOSUPPORT` if socket family (`sk->family`) is not compatible with packet family ([`ctx->family`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md#family)). * `-EEXIST` if socket has been already selected, potentially by another program, and `BPF_SK_LOOKUP_F_REPLACE` flag was not specified. diff --git a/docs/linux/helper-function/bpf_sk_redirect_hash.md b/docs/linux/helper-function/bpf_sk_redirect_hash.md index 878dd252..eb9a7566 100644 --- a/docs/linux/helper-function/bpf_sk_redirect_hash.md +++ b/docs/linux/helper-function/bpf_sk_redirect_hash.md @@ -22,7 +22,7 @@ The message redirect hash helper is used to redirect a message to a socket refer ## Usage -This helper is used in programs implementing policies at the skb socket level. If the sk_buff `skb` is allowed to pass (i.e. if the verdict eBPF program returns `SK_PASS`), redirect it to the socket referenced by `map` (of type [`BPF_MAP_TYPE_SOCKHASH`](../map-type/BPF_MAP_TYPE_SOCKHASH.md)) using hash `key`. Both ingress and egress interfaces can be used for redirection. The `BPF_F_INGRESS` value in `flags` is used to make the distinction (ingress path is selected if the flag is present, egress otherwise). This is the only flag supported for now. +This helper is used in programs implementing policies at the skb socket level. If the socket buffer `skb` is allowed to pass (i.e. if the verdict eBPF program returns `SK_PASS`), redirect it to the socket referenced by `map` (of type [`BPF_MAP_TYPE_SOCKHASH`](../map-type/BPF_MAP_TYPE_SOCKHASH.md)) using hash `key`. Both ingress and egress interfaces can be used for redirection. The `BPF_F_INGRESS` value in `flags` is used to make the distinction (ingress path is selected if the flag is present, egress otherwise). This is the only flag supported for now. ### Program types diff --git a/docs/linux/helper-function/bpf_sk_select_reuseport.md b/docs/linux/helper-function/bpf_sk_select_reuseport.md index 4849561c..760bc413 100644 --- a/docs/linux/helper-function/bpf_sk_select_reuseport.md +++ b/docs/linux/helper-function/bpf_sk_select_reuseport.md @@ -26,9 +26,9 @@ In [:octicons-tag-24: v3.9](https://github.com/torvalds/linux/commit/c617f398edd By default, incoming connections and datagrams are distributed to the server sockets using a hash based on the 4-tuple of the connection—that is, the peer IP address and port plus the local IP address and port. -With the introduction of [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) programs and this helper we can replace the default distribution behavior with a BPF program. This helper does the actual assigning of an incoming request to a socket in a [`BPF_MAP_TYPE_REUSEPORT_SOCKARRAY`](../map-type/BPF_MAP_TYPE_REUSEPORT_SOCKARRAY.md) `map`. +With the introduction of [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) programs and this helper we can replace the default distribution behavior with a BPF program. This helper does the actual assigning of an incoming request to a socket in a [`BPF_MAP_TYPE_REUSEPORT_SOCKARRAY`](../map-type/BPF_MAP_TYPE_REUSEPORT_SOCKARRAY.md) `map`. -Since [:octicons-tag-24: v5.8](https://github.com/torvalds/linux/commit/64d85290d79c0677edb5a8ee2295b36c022fa5df) [BPF_MAP_TYPE_SOCKHASH](../map-type/BPF_MAP_TYPE_SOCKHASH.md) and [BPF_MAP_TYPE_SOCKMAP](../map-type/BPF_MAP_TYPE_SOCKMAP.md) maps can also be used with this helper. +Since [:octicons-tag-24: v5.8](https://github.com/torvalds/linux/commit/64d85290d79c0677edb5a8ee2295b36c022fa5df) [`BPF_MAP_TYPE_SOCKHASH`](../map-type/BPF_MAP_TYPE_SOCKHASH.md) and [`BPF_MAP_TYPE_SOCKMAP`](../map-type/BPF_MAP_TYPE_SOCKMAP.md) maps can also be used with this helper. ### Program types diff --git a/docs/linux/helper-function/bpf_sk_storage_delete.md b/docs/linux/helper-function/bpf_sk_storage_delete.md index 766a512a..e8de64ba 100644 --- a/docs/linux/helper-function/bpf_sk_storage_delete.md +++ b/docs/linux/helper-function/bpf_sk_storage_delete.md @@ -45,6 +45,7 @@ This helper call can be used in the following program types: * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_sk_storage_get.md b/docs/linux/helper-function/bpf_sk_storage_get.md index c1e20ef4..9549eb31 100644 --- a/docs/linux/helper-function/bpf_sk_storage_get.md +++ b/docs/linux/helper-function/bpf_sk_storage_get.md @@ -54,6 +54,7 @@ This helper call can be used in the following program types: * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_skb_output.md b/docs/linux/helper-function/bpf_skb_output.md index f5b95e7c..c9c9eb17 100644 --- a/docs/linux/helper-function/bpf_skb_output.md +++ b/docs/linux/helper-function/bpf_skb_output.md @@ -38,7 +38,7 @@ This helper is similar to [`bpf_perf_event_output`](bpf_perf_event_output.md) bu This helper call can be used in the following program types: - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) ### Map types diff --git a/docs/linux/helper-function/bpf_skc_to_mptcp_sock.md b/docs/linux/helper-function/bpf_skc_to_mptcp_sock.md index 4be58fc5..5b35e9b2 100644 --- a/docs/linux/helper-function/bpf_skc_to_mptcp_sock.md +++ b/docs/linux/helper-function/bpf_skc_to_mptcp_sock.md @@ -34,9 +34,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_skc_to_tcp6_sock.md b/docs/linux/helper-function/bpf_skc_to_tcp6_sock.md index 49f1180a..338ac0d2 100644 --- a/docs/linux/helper-function/bpf_skc_to_tcp6_sock.md +++ b/docs/linux/helper-function/bpf_skc_to_tcp6_sock.md @@ -39,6 +39,7 @@ This helper call can be used in the following program types: * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_skc_to_tcp_request_sock.md b/docs/linux/helper-function/bpf_skc_to_tcp_request_sock.md index 276e70f7..7be73880 100644 --- a/docs/linux/helper-function/bpf_skc_to_tcp_request_sock.md +++ b/docs/linux/helper-function/bpf_skc_to_tcp_request_sock.md @@ -39,6 +39,7 @@ This helper call can be used in the following program types: * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_skc_to_tcp_sock.md b/docs/linux/helper-function/bpf_skc_to_tcp_sock.md index 968f9980..a7fecad8 100644 --- a/docs/linux/helper-function/bpf_skc_to_tcp_sock.md +++ b/docs/linux/helper-function/bpf_skc_to_tcp_sock.md @@ -39,6 +39,7 @@ This helper call can be used in the following program types: * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_skc_to_tcp_timewait_sock.md b/docs/linux/helper-function/bpf_skc_to_tcp_timewait_sock.md index f219d3e1..5ac520ba 100644 --- a/docs/linux/helper-function/bpf_skc_to_tcp_timewait_sock.md +++ b/docs/linux/helper-function/bpf_skc_to_tcp_timewait_sock.md @@ -39,6 +39,7 @@ This helper call can be used in the following program types: * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_skc_to_udp6_sock.md b/docs/linux/helper-function/bpf_skc_to_udp6_sock.md index 7b6a5004..a9e4fd7c 100644 --- a/docs/linux/helper-function/bpf_skc_to_udp6_sock.md +++ b/docs/linux/helper-function/bpf_skc_to_udp6_sock.md @@ -39,6 +39,7 @@ This helper call can be used in the following program types: * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_skc_to_unix_sock.md b/docs/linux/helper-function/bpf_skc_to_unix_sock.md index e0b867e4..14bd553a 100644 --- a/docs/linux/helper-function/bpf_skc_to_unix_sock.md +++ b/docs/linux/helper-function/bpf_skc_to_unix_sock.md @@ -39,6 +39,7 @@ This helper call can be used in the following program types: * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_sock_from_file.md b/docs/linux/helper-function/bpf_sock_from_file.md index 190ee9d4..8c7f1733 100644 --- a/docs/linux/helper-function/bpf_sock_from_file.md +++ b/docs/linux/helper-function/bpf_sock_from_file.md @@ -34,20 +34,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/helper-function/bpf_spin_lock.md b/docs/linux/helper-function/bpf_spin_lock.md index 97af00b8..5fae70e5 100644 --- a/docs/linux/helper-function/bpf_spin_lock.md +++ b/docs/linux/helper-function/bpf_spin_lock.md @@ -49,28 +49,28 @@ or more could cause dead locks. This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) !!! note `bpf_spin_lock` also can't be used if the program has been loaded with the `BPF_F_SLEEPABLE` flag. diff --git a/docs/linux/helper-function/bpf_tcp_raw_check_syncookie_ipv4.md b/docs/linux/helper-function/bpf_tcp_raw_check_syncookie_ipv4.md index 9d4067fa..33ecf594 100644 --- a/docs/linux/helper-function/bpf_tcp_raw_check_syncookie_ipv4.md +++ b/docs/linux/helper-function/bpf_tcp_raw_check_syncookie_ipv4.md @@ -42,7 +42,8 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_tcp_raw_check_syncookie_ipv6.md b/docs/linux/helper-function/bpf_tcp_raw_check_syncookie_ipv6.md index fb3e4e15..1826050e 100644 --- a/docs/linux/helper-function/bpf_tcp_raw_check_syncookie_ipv6.md +++ b/docs/linux/helper-function/bpf_tcp_raw_check_syncookie_ipv6.md @@ -44,7 +44,8 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_tcp_raw_gen_syncookie_ipv4.md b/docs/linux/helper-function/bpf_tcp_raw_gen_syncookie_ipv4.md index cc940c71..f427506a 100644 --- a/docs/linux/helper-function/bpf_tcp_raw_gen_syncookie_ipv4.md +++ b/docs/linux/helper-function/bpf_tcp_raw_gen_syncookie_ipv4.md @@ -42,7 +42,7 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/helper-function/bpf_tcp_raw_gen_syncookie_ipv6.md b/docs/linux/helper-function/bpf_tcp_raw_gen_syncookie_ipv6.md index 7fa2c54d..b5a5a82a 100644 --- a/docs/linux/helper-function/bpf_tcp_raw_gen_syncookie_ipv6.md +++ b/docs/linux/helper-function/bpf_tcp_raw_gen_syncookie_ipv6.md @@ -44,7 +44,8 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_timer_cancel.md b/docs/linux/helper-function/bpf_timer_cancel.md index 127f1043..e5100d0e 100644 --- a/docs/linux/helper-function/bpf_timer_cancel.md +++ b/docs/linux/helper-function/bpf_timer_cancel.md @@ -36,29 +36,29 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_timer_init.md b/docs/linux/helper-function/bpf_timer_init.md index 9bd34ee3..7f0b5fa3 100644 --- a/docs/linux/helper-function/bpf_timer_init.md +++ b/docs/linux/helper-function/bpf_timer_init.md @@ -36,29 +36,29 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_timer_set_callback.md b/docs/linux/helper-function/bpf_timer_set_callback.md index 476e3a2a..56b44b7b 100644 --- a/docs/linux/helper-function/bpf_timer_set_callback.md +++ b/docs/linux/helper-function/bpf_timer_set_callback.md @@ -39,29 +39,29 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_timer_start.md b/docs/linux/helper-function/bpf_timer_start.md index 1cf2c0f9..95919037 100644 --- a/docs/linux/helper-function/bpf_timer_start.md +++ b/docs/linux/helper-function/bpf_timer_start.md @@ -48,29 +48,29 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_trace_printk.md b/docs/linux/helper-function/bpf_trace_printk.md index da9c0dad..fb4cbd1b 100644 --- a/docs/linux/helper-function/bpf_trace_printk.md +++ b/docs/linux/helper-function/bpf_trace_printk.md @@ -23,7 +23,7 @@ in case of failure. ## Usage -This helper is a "printk()-like" facility for debugging. It prints a message defined by format `fmt` (of size `fmt_size`) to file `/sys/kernel/tracing/trace` from TraceFS, if available. It can take up to three additional `u64` arguments (as an eBPF helpers, the total number of arguments is limited to five). +This helper is a "printk()-like" facility for debugging. It prints a message defined by format `fmt` (of size `fmt_size`) to file `/sys/kernel/tracing/trace` from TraceFS, if available. It can take up to three additional `u64` arguments (as an eBPF helpers, the total number of arguments is limited to five). !!! warning A commonly made mistake is to call `bpf_trace_printk` with a literal string like diff --git a/docs/linux/helper-function/bpf_user_ringbuf_drain.md b/docs/linux/helper-function/bpf_user_ringbuf_drain.md index 402b0094..192a5e40 100644 --- a/docs/linux/helper-function/bpf_user_ringbuf_drain.md +++ b/docs/linux/helper-function/bpf_user_ringbuf_drain.md @@ -46,34 +46,35 @@ This helper call can be used in the following program types: - * [BPF_PROG_TYPE_CGROUP_DEVICE](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) - * [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) - * [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) - * [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SK_LOOKUP](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_MSG](../program-type/BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SOCK_OPS](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) - * [BPF_PROG_TYPE_TRACEPOINT](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) - * [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](../program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](../program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](../program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](../program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) + * [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](../program-type/BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_MSG`](../program-type/BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](../program-type/BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) + * [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](../program-type/BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) + * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/helper-function/bpf_xdp_get_buff_len.md b/docs/linux/helper-function/bpf_xdp_get_buff_len.md index 770b2114..ea060897 100644 --- a/docs/linux/helper-function/bpf_xdp_get_buff_len.md +++ b/docs/linux/helper-function/bpf_xdp_get_buff_len.md @@ -34,6 +34,7 @@ This helper call can be used in the following program types: + * [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) * [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) diff --git a/docs/linux/helper-function/bpf_xdp_output.md b/docs/linux/helper-function/bpf_xdp_output.md index ce24e078..28661843 100644 --- a/docs/linux/helper-function/bpf_xdp_output.md +++ b/docs/linux/helper-function/bpf_xdp_output.md @@ -36,7 +36,7 @@ This helper is similar to [`bpf_perf_event_output`](bpf_perf_event_output.md) bu This helper call can be used in the following program types: - * [BPF_PROG_TYPE_PERF_EVENT](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](../program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md) ### Map types diff --git a/docs/linux/helper-function/index.md b/docs/linux/helper-function/index.md index 2a2b6ec7..d880c8e6 100644 --- a/docs/linux/helper-function/index.md +++ b/docs/linux/helper-function/index.md @@ -17,160 +17,160 @@ These are helpers with the primary purpose involves the interaction with a map. These helpers can be used on a lot of different maps, especially the generic map types like array and hash maps. -* [bpf_map_lookup_elem](bpf_map_lookup_elem.md) -* [bpf_map_update_elem](bpf_map_update_elem.md) -* [bpf_map_delete_elem](bpf_map_delete_elem.md) -* [bpf_for_each_map_elem](bpf_for_each_map_elem.md) -* [bpf_map_lookup_percpu_elem](bpf_map_lookup_percpu_elem.md) -* [bpf_spin_lock](bpf_spin_lock.md) -* [bpf_spin_unlock](bpf_spin_unlock.md) +* [`bpf_map_lookup_elem`](bpf_map_lookup_elem.md) +* [`bpf_map_update_elem`](bpf_map_update_elem.md) +* [`bpf_map_delete_elem`](bpf_map_delete_elem.md) +* [`bpf_for_each_map_elem`](bpf_for_each_map_elem.md) +* [`bpf_map_lookup_percpu_elem`](bpf_map_lookup_percpu_elem.md) +* [`bpf_spin_lock`](bpf_spin_lock.md) +* [`bpf_spin_unlock`](bpf_spin_unlock.md) ### Perf event array helpers These helpers are used with [`BPF_MAP_TYPE_PERF_EVENT_ARRAY`](../map-type/BPF_MAP_TYPE_PERF_EVENT_ARRAY.md) maps. -* [bpf_perf_event_read](bpf_perf_event_read.md) -* [bpf_perf_event_output](bpf_perf_event_output.md) -* [bpf_perf_event_read_value](bpf_perf_event_read_value.md) -* [bpf_skb_output](bpf_skb_output.md) -* [bpf_xdp_output](bpf_xdp_output.md) +* [`bpf_perf_event_read`](bpf_perf_event_read.md) +* [`bpf_perf_event_output`](bpf_perf_event_output.md) +* [`bpf_perf_event_read_value`](bpf_perf_event_read_value.md) +* [`bpf_skb_output`](bpf_skb_output.md) +* [`bpf_xdp_output`](bpf_xdp_output.md) ### Tail call helpers These helpers are used with [`BPF_MAP_TYPE_PROG_ARRAY`](../map-type/BPF_MAP_TYPE_PROG_ARRAY.md) maps. -* [bpf_tail_call](bpf_tail_call.md) +* [`bpf_tail_call`](bpf_tail_call.md) ### Timer helpers These helpers are used to manage timers. -* [bpf_timer_init](bpf_timer_init.md) -* [bpf_timer_set_callback](bpf_timer_set_callback.md) -* [bpf_timer_start](bpf_timer_start.md) -* [bpf_timer_cancel](bpf_timer_cancel.md) +* [`bpf_timer_init`](bpf_timer_init.md) +* [`bpf_timer_set_callback`](bpf_timer_set_callback.md) +* [`bpf_timer_start`](bpf_timer_start.md) +* [`bpf_timer_cancel`](bpf_timer_cancel.md) ### Queue and stack helpers These helpers are used with [`BPF_MAP_TYPE_QUEUE`](../map-type/BPF_MAP_TYPE_QUEUE.md) and [`BPF_MAP_TYPE_STACK`](../map-type/BPF_MAP_TYPE_STACK.md) maps. -* [bpf_map_push_elem](bpf_map_push_elem.md) -* [bpf_map_pop_elem](bpf_map_pop_elem.md) -* [bpf_map_peek_elem](bpf_map_peek_elem.md) +* [`bpf_map_push_elem`](bpf_map_push_elem.md) +* [`bpf_map_pop_elem`](bpf_map_pop_elem.md) +* [`bpf_map_peek_elem`](bpf_map_peek_elem.md) -### Ringbuffer helper +### Ring buffer helper These helpers are used with `BPF_MAP_TYPE_RINGBUF` maps. -* [bpf_ringbuf_output](bpf_ringbuf_output.md) -* [bpf_ringbuf_reserve](bpf_ringbuf_reserve.md) -* [bpf_ringbuf_submit](bpf_ringbuf_submit.md) -* [bpf_ringbuf_discard](bpf_ringbuf_discard.md) -* [bpf_ringbuf_query](bpf_ringbuf_query.md) -* [bpf_ringbuf_reserve_dynptr](bpf_ringbuf_reserve_dynptr.md) -* [bpf_ringbuf_submit_dynptr](bpf_ringbuf_submit_dynptr.md) -* [bpf_ringbuf_discard_dynptr](bpf_ringbuf_discard_dynptr.md) +* [`bpf_ringbuf_output`](bpf_ringbuf_output.md) +* [`bpf_ringbuf_reserve`](bpf_ringbuf_reserve.md) +* [`bpf_ringbuf_submit`](bpf_ringbuf_submit.md) +* [`bpf_ringbuf_discard`](bpf_ringbuf_discard.md) +* [`bpf_ringbuf_query`](bpf_ringbuf_query.md) +* [`bpf_ringbuf_reserve_dynptr`](bpf_ringbuf_reserve_dynptr.md) +* [`bpf_ringbuf_submit_dynptr`](bpf_ringbuf_submit_dynptr.md) +* [`bpf_ringbuf_discard_dynptr`](bpf_ringbuf_discard_dynptr.md) ### Socket map helpers These helpers are used with [`BPF_MAP_TYPE_SOCKMAP`](../map-type/BPF_MAP_TYPE_SOCKMAP.md) -* [bpf_sock_map_update](bpf_sock_map_update.md) +* [`bpf_sock_map_update`](bpf_sock_map_update.md) ### Socket hash helpers These helpers are used with [`BPF_MAP_TYPE_SOCKHASH`](../map-type/BPF_MAP_TYPE_SOCKHASH.md) -* [bpf_sock_hash_update](bpf_sock_hash_update.md) +* [`bpf_sock_hash_update`](bpf_sock_hash_update.md) ### Task storage helpers These helpers are used with `BPF_MAP_TYPE_TASK_STORAGE` maps. -* [bpf_task_storage_get](bpf_task_storage_get.md) -* [bpf_task_storage_delete](bpf_task_storage_delete.md) +* [`bpf_task_storage_get`](bpf_task_storage_get.md) +* [`bpf_task_storage_delete`](bpf_task_storage_delete.md) ### Inode storage helpers These helpers are used with `BPF_MAP_TYPE_INODE_STORAGE` maps. -* [bpf_inode_storage_get](bpf_inode_storage_get.md) -* [bpf_inode_storage_delete](bpf_inode_storage_delete.md) +* [`bpf_inode_storage_get`](bpf_inode_storage_get.md) +* [`bpf_inode_storage_delete`](bpf_inode_storage_delete.md) ### Socket storage helpers These helpers are used with `BPF_MAP_TYPE_SK_STORAGE` maps. -* [bpf_sk_storage_get](bpf_sk_storage_get.md) -* [bpf_sk_storage_delete](bpf_sk_storage_delete.md) +* [`bpf_sk_storage_get`](bpf_sk_storage_get.md) +* [`bpf_sk_storage_delete`](bpf_sk_storage_delete.md) ### Local cGroup storage helpers These helpers are used with `BPF_MAP_TYPE_CGROUP_STORAGE` and `BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE` maps. -* [bpf_get_local_storage](bpf_get_local_storage.md) +* [`bpf_get_local_storage`](bpf_get_local_storage.md) ### Global cGroup storage helpers These helpers are used with `BPF_MAP_TYPE_CGRP_STORAGE` maps. -* [bpf_cgrp_storage_get](bpf_cgrp_storage_get.md) -* [bpf_cgrp_storage_delete](bpf_cgrp_storage_delete.md) +* [`bpf_cgrp_storage_get`](bpf_cgrp_storage_get.md) +* [`bpf_cgrp_storage_delete`](bpf_cgrp_storage_delete.md) ### User ring buffer These helpers are related to `BPF_MAP_TYPE_USER_RINGBUF` maps. -* [bpf_user_ringbuf_drain](bpf_user_ringbuf_drain.md) +* [`bpf_user_ringbuf_drain`](bpf_user_ringbuf_drain.md) ## Probe and trace helpers These helpers are used in probing and tracing functions like kprobes, tracepoints and uprobes. -* [bpf_get_attach_cookie](bpf_get_attach_cookie.md) +* [`bpf_get_attach_cookie`](bpf_get_attach_cookie.md) ### Memory helpers These helpers are used to read from or write to kernel or userspace memory. -* [bpf_probe_read](bpf_probe_read.md) -* [bpf_probe_write_user](bpf_probe_write_user.md) -* [bpf_probe_read_str](bpf_probe_read_str.md) -* [bpf_get_stack](bpf_get_stack.md) -* [bpf_probe_read_user](bpf_probe_read_user.md) -* [bpf_probe_read_kernel](bpf_probe_read_kernel.md) -* [bpf_probe_read_user_str](bpf_probe_read_user_str.md) -* [bpf_probe_read_kernel_str](bpf_probe_read_kernel_str.md) -* [bpf_copy_from_user](bpf_copy_from_user.md) -* [bpf_copy_from_user_task](bpf_copy_from_user_task.md) -* [bpf_copy_from_user_task](bpf_copy_from_user_task.md) -* [bpf_find_vma](bpf_find_vma.md) +* [`bpf_probe_read`](bpf_probe_read.md) +* [`bpf_probe_write_user`](bpf_probe_write_user.md) +* [`bpf_probe_read_str`](bpf_probe_read_str.md) +* [`bpf_get_stack`](bpf_get_stack.md) +* [`bpf_probe_read_user`](bpf_probe_read_user.md) +* [`bpf_probe_read_kernel`](bpf_probe_read_kernel.md) +* [`bpf_probe_read_user_str`](bpf_probe_read_user_str.md) +* [`bpf_probe_read_kernel_str`](bpf_probe_read_kernel_str.md) +* [`bpf_copy_from_user`](bpf_copy_from_user.md) +* [`bpf_copy_from_user_task`](bpf_copy_from_user_task.md) +* [`bpf_copy_from_user_task`](bpf_copy_from_user_task.md) +* [`bpf_find_vma`](bpf_find_vma.md) ### Process influencing helpers These helpers are used to influence processes. -* [bpf_override_return](bpf_override_return.md) -* [bpf_get_retval](bpf_get_retval.md) -* [bpf_set_retval](bpf_set_retval.md) -* [bpf_send_signal](bpf_send_signal.md) -* [bpf_send_signal_thread](bpf_send_signal_thread.md) +* [`bpf_override_return`](bpf_override_return.md) +* [`bpf_get_retval`](bpf_get_retval.md) +* [`bpf_set_retval`](bpf_set_retval.md) +* [`bpf_send_signal`](bpf_send_signal.md) +* [`bpf_send_signal_thread`](bpf_send_signal_thread.md) ### Tracing helpers These helpers return information specific to `BPF_PROG_TYPE_TRACING` programs. -* [bpf_get_func_ip](bpf_get_func_ip.md) -* [bpf_get_func_arg](bpf_get_func_arg.md) -* [bpf_get_func_ret](bpf_get_func_ret.md) -* [bpf_get_func_arg_cnt](bpf_get_func_arg_cnt.md) -* [bpf_sock_from_file](bpf_sock_from_file.md) +* [`bpf_get_func_ip`](bpf_get_func_ip.md) +* [`bpf_get_func_arg`](bpf_get_func_arg.md) +* [`bpf_get_func_ret`](bpf_get_func_ret.md) +* [`bpf_get_func_arg_cnt`](bpf_get_func_arg_cnt.md) +* [`bpf_sock_from_file`](bpf_sock_from_file.md) ### Perf event helpers These helpers return information specific to `BPF_PROG_TYPE_PERF_EVENT` programs. -* [bpf_perf_prog_read_value](bpf_perf_prog_read_value.md) +* [`bpf_perf_prog_read_value`](bpf_perf_prog_read_value.md) ## Information helpers @@ -180,259 +180,259 @@ These helpers return information from the kernel which is otherwise not availabl These helpers return time information. -* [bpf_ktime_get_ns](bpf_ktime_get_ns.md) -* [bpf_jiffies64](bpf_jiffies64.md) -* [bpf_ktime_get_boot_ns](bpf_ktime_get_boot_ns.md) -* [bpf_ktime_get_coarse_ns](bpf_ktime_get_coarse_ns.md) -* [bpf_ktime_get_tai_ns](bpf_ktime_get_tai_ns.md) +* [`bpf_ktime_get_ns`](bpf_ktime_get_ns.md) +* [`bpf_jiffies64`](bpf_jiffies64.md) +* [`bpf_ktime_get_boot_ns`](bpf_ktime_get_boot_ns.md) +* [`bpf_ktime_get_coarse_ns`](bpf_ktime_get_coarse_ns.md) +* [`bpf_ktime_get_tai_ns`](bpf_ktime_get_tai_ns.md) ### Process info helpers These helpers return information about processes, particularly the one for which the current eBPF program is invoked. -* [bpf_get_current_pid_tgid](bpf_get_current_pid_tgid.md) -* [bpf_get_current_uid_gid](bpf_get_current_uid_gid.md) -* [bpf_get_current_comm](bpf_get_current_comm.md) -* [bpf_get_cgroup_classid](bpf_get_cgroup_classid.md) -* [bpf_get_ns_current_pid_tgid](bpf_get_ns_current_pid_tgid.md) -* [bpf_get_current_task](bpf_get_current_task.md) -* [bpf_get_stackid](bpf_get_stackid.md) -* [bpf_current_task_under_cgroup](bpf_current_task_under_cgroup.md) -* [bpf_get_current_cgroup_id](bpf_get_current_cgroup_id.md) -* [bpf_get_current_ancestor_cgroup_id](bpf_get_current_ancestor_cgroup_id.md) -* [bpf_get_task_stack](bpf_get_task_stack.md) -* [bpf_get_current_task_btf](bpf_get_current_task_btf.md) -* [bpf_task_pt_regs](bpf_task_pt_regs.md) +* [`bpf_get_current_pid_tgid`](bpf_get_current_pid_tgid.md) +* [`bpf_get_current_uid_gid`](bpf_get_current_uid_gid.md) +* [`bpf_get_current_comm`](bpf_get_current_comm.md) +* [`bpf_get_cgroup_classid`](bpf_get_cgroup_classid.md) +* [`bpf_get_ns_current_pid_tgid`](bpf_get_ns_current_pid_tgid.md) +* [`bpf_get_current_task`](bpf_get_current_task.md) +* [`bpf_get_stackid`](bpf_get_stackid.md) +* [`bpf_current_task_under_cgroup`](bpf_current_task_under_cgroup.md) +* [`bpf_get_current_cgroup_id`](bpf_get_current_cgroup_id.md) +* [`bpf_get_current_ancestor_cgroup_id`](bpf_get_current_ancestor_cgroup_id.md) +* [`bpf_get_task_stack`](bpf_get_task_stack.md) +* [`bpf_get_current_task_btf`](bpf_get_current_task_btf.md) +* [`bpf_task_pt_regs`](bpf_task_pt_regs.md) ### CPU info helpers These helpers return information about the current state of the CPU. -* [bpf_get_smp_processor_id](bpf_get_smp_processor_id.md) -* [bpf_get_numa_node_id](bpf_get_numa_node_id.md) -* [bpf_read_branch_records](bpf_read_branch_records.md) -* [bpf_get_branch_snapshot](bpf_get_branch_snapshot.md) -* [bpf_per_cpu_ptr](bpf_per_cpu_ptr.md) -* [bpf_this_cpu_ptr](bpf_this_cpu_ptr.md) +* [`bpf_get_smp_processor_id`](bpf_get_smp_processor_id.md) +* [`bpf_get_numa_node_id`](bpf_get_numa_node_id.md) +* [`bpf_read_branch_records`](bpf_read_branch_records.md) +* [`bpf_get_branch_snapshot`](bpf_get_branch_snapshot.md) +* [`bpf_per_cpu_ptr`](bpf_per_cpu_ptr.md) +* [`bpf_this_cpu_ptr`](bpf_this_cpu_ptr.md) ## Print helpers These helpers are used to print logs from an eBPF program which will appear in the kernel tracing log. -* [bpf_trace_printk](bpf_trace_printk.md) -* [bpf_snprintf](bpf_snprintf.md) -* [bpf_snprintf_btf](bpf_snprintf_btf.md) -* [bpf_trace_vprintk](bpf_trace_vprintk.md) +* [`bpf_trace_printk`](bpf_trace_printk.md) +* [`bpf_snprintf`](bpf_snprintf.md) +* [`bpf_snprintf_btf`](bpf_snprintf_btf.md) +* [`bpf_trace_vprintk`](bpf_trace_vprintk.md) ### Iterator print helpers These helpers are used to print logs to the sequence files used by eBPF iterator programs. -* [bpf_seq_printf](bpf_seq_printf.md) -* [bpf_seq_write](bpf_seq_write.md) -* [bpf_seq_printf_btf](bpf_seq_printf_btf.md) +* [`bpf_seq_printf`](bpf_seq_printf.md) +* [`bpf_seq_write`](bpf_seq_write.md) +* [`bpf_seq_printf_btf`](bpf_seq_printf_btf.md) ## Network helpers These helpers are related to networking. -* [bpf_get_netns_cookie](bpf_get_netns_cookie.md) -* [bpf_check_mtu](bpf_check_mtu.md) -* [bpf_get_route_realm](bpf_get_route_realm.md) -* [bpf_fib_lookup](bpf_fib_lookup.md) +* [`bpf_get_netns_cookie`](bpf_get_netns_cookie.md) +* [`bpf_check_mtu`](bpf_check_mtu.md) +* [`bpf_get_route_realm`](bpf_get_route_realm.md) +* [`bpf_fib_lookup`](bpf_fib_lookup.md) ### Socket buffer helpers These helpers read from, write to, or modify socket buffers in some way. -* [bpf_skb_store_bytes](bpf_skb_store_bytes.md) -* [bpf_skb_load_bytes](bpf_skb_load_bytes.md) -* [bpf_skb_vlan_push](bpf_skb_vlan_push.md) -* [bpf_skb_vlan_pop](bpf_skb_vlan_pop.md) -* [bpf_skb_get_tunnel_key](bpf_skb_get_tunnel_key.md) -* [bpf_skb_set_tunnel_key](bpf_skb_set_tunnel_key.md) -* [bpf_skb_get_tunnel_opt](bpf_skb_get_tunnel_opt.md) -* [bpf_skb_set_tunnel_opt](bpf_skb_set_tunnel_opt.md) -* [bpf_skb_change_proto](bpf_skb_change_proto.md) -* [bpf_skb_change_type](bpf_skb_change_type.md) -* [bpf_skb_under_cgroup](bpf_skb_under_cgroup.md) -* [bpf_skb_change_tail](bpf_skb_change_tail.md) -* [bpf_skb_pull_data](bpf_skb_pull_data.md) -* [bpf_skb_adjust_room](bpf_skb_adjust_room.md) -* [bpf_skb_change_head](bpf_skb_change_head.md) -* [bpf_skb_get_xfrm_state](bpf_skb_get_xfrm_state.md) -* [bpf_skb_load_bytes_relative](bpf_skb_load_bytes_relative.md) -* [bpf_skb_cgroup_id](bpf_skb_cgroup_id.md) -* [bpf_skb_ancestor_cgroup_id](bpf_skb_ancestor_cgroup_id.md) -* [bpf_skb_ecn_set_ce](bpf_skb_ecn_set_ce.md) -* [bpf_skb_cgroup_classid](bpf_skb_cgroup_classid.md) -* [bpf_skb_set_tstamp](bpf_skb_set_tstamp.md) -* [bpf_set_hash](bpf_set_hash.md) -* [bpf_get_hash_recalc](bpf_get_hash_recalc.md) -* [bpf_set_hash_invalid](bpf_set_hash_invalid.md) +* [`bpf_skb_store_bytes`](bpf_skb_store_bytes.md) +* [`bpf_skb_load_bytes`](bpf_skb_load_bytes.md) +* [`bpf_skb_vlan_push`](bpf_skb_vlan_push.md) +* [`bpf_skb_vlan_pop`](bpf_skb_vlan_pop.md) +* [`bpf_skb_get_tunnel_key`](bpf_skb_get_tunnel_key.md) +* [`bpf_skb_set_tunnel_key`](bpf_skb_set_tunnel_key.md) +* [`bpf_skb_get_tunnel_opt`](bpf_skb_get_tunnel_opt.md) +* [`bpf_skb_set_tunnel_opt`](bpf_skb_set_tunnel_opt.md) +* [`bpf_skb_change_proto`](bpf_skb_change_proto.md) +* [`bpf_skb_change_type`](bpf_skb_change_type.md) +* [`bpf_skb_under_cgroup`](bpf_skb_under_cgroup.md) +* [`bpf_skb_change_tail`](bpf_skb_change_tail.md) +* [`bpf_skb_pull_data`](bpf_skb_pull_data.md) +* [`bpf_skb_adjust_room`](bpf_skb_adjust_room.md) +* [`bpf_skb_change_head`](bpf_skb_change_head.md) +* [`bpf_skb_get_xfrm_state`](bpf_skb_get_xfrm_state.md) +* [`bpf_skb_load_bytes_relative`](bpf_skb_load_bytes_relative.md) +* [`bpf_skb_cgroup_id`](bpf_skb_cgroup_id.md) +* [`bpf_skb_ancestor_cgroup_id`](bpf_skb_ancestor_cgroup_id.md) +* [`bpf_skb_ecn_set_ce`](bpf_skb_ecn_set_ce.md) +* [`bpf_skb_cgroup_classid`](bpf_skb_cgroup_classid.md) +* [`bpf_skb_set_tstamp`](bpf_skb_set_tstamp.md) +* [`bpf_set_hash`](bpf_set_hash.md) +* [`bpf_get_hash_recalc`](bpf_get_hash_recalc.md) +* [`bpf_set_hash_invalid`](bpf_set_hash_invalid.md) ### Checksum helpers These helpers calculate and/or update checksums. -* [bpf_l3_csum_replace](bpf_l3_csum_replace.md) -* [bpf_l4_csum_replace](bpf_l4_csum_replace.md) -* [bpf_csum_diff](bpf_csum_diff.md) -* [bpf_csum_update](bpf_csum_update.md) -* [bpf_csum_level](bpf_csum_level.md) +* [`bpf_l3_csum_replace`](bpf_l3_csum_replace.md) +* [`bpf_l4_csum_replace`](bpf_l4_csum_replace.md) +* [`bpf_csum_diff`](bpf_csum_diff.md) +* [`bpf_csum_update`](bpf_csum_update.md) +* [`bpf_csum_level`](bpf_csum_level.md) ### Redirect helpers These helpers redirect the flow of packets in some way. -* [bpf_clone_redirect](bpf_clone_redirect.md) -* [bpf_redirect](bpf_redirect.md) -* [bpf_redirect_map](bpf_redirect_map.md) -* [bpf_sk_redirect_map](bpf_sk_redirect_map.md) -* [bpf_msg_redirect_map](bpf_msg_redirect_map.md) -* [bpf_redirect_peer](bpf_redirect_peer.md) -* [bpf_sk_redirect_hash](bpf_sk_redirect_hash.md) -* [bpf_msg_redirect_hash](bpf_msg_redirect_hash.md) -* [bpf_redirect_neigh](bpf_redirect_neigh.md) -* [bpf_sk_assign](bpf_sk_assign.md) -* [bpf_sk_select_reuseport](bpf_sk_select_reuseport.md) +* [`bpf_clone_redirect`](bpf_clone_redirect.md) +* [`bpf_redirect`](bpf_redirect.md) +* [`bpf_redirect_map`](bpf_redirect_map.md) +* [`bpf_sk_redirect_map`](bpf_sk_redirect_map.md) +* [`bpf_msg_redirect_map`](bpf_msg_redirect_map.md) +* [`bpf_redirect_peer`](bpf_redirect_peer.md) +* [`bpf_sk_redirect_hash`](bpf_sk_redirect_hash.md) +* [`bpf_msg_redirect_hash`](bpf_msg_redirect_hash.md) +* [`bpf_redirect_neigh`](bpf_redirect_neigh.md) +* [`bpf_sk_assign`](bpf_sk_assign.md) +* [`bpf_sk_select_reuseport`](bpf_sk_select_reuseport.md) ### XDP helpers These helpers are specific to `BPF_PROG_TYPE_XDP` programs. -* [bpf_xdp_adjust_head](bpf_xdp_adjust_head.md) -* [bpf_xdp_adjust_tail](bpf_xdp_adjust_tail.md) -* [bpf_xdp_adjust_meta](bpf_xdp_adjust_meta.md) -* [bpf_xdp_get_buff_len](bpf_xdp_get_buff_len.md) -* [bpf_xdp_load_bytes](bpf_xdp_load_bytes.md) -* [bpf_xdp_store_bytes](bpf_xdp_store_bytes.md) +* [`bpf_xdp_adjust_head`](bpf_xdp_adjust_head.md) +* [`bpf_xdp_adjust_tail`](bpf_xdp_adjust_tail.md) +* [`bpf_xdp_adjust_meta`](bpf_xdp_adjust_meta.md) +* [`bpf_xdp_get_buff_len`](bpf_xdp_get_buff_len.md) +* [`bpf_xdp_load_bytes`](bpf_xdp_load_bytes.md) +* [`bpf_xdp_store_bytes`](bpf_xdp_store_bytes.md) -### Sk msg helpers +### Socket message helpers These helpers are specific to `BPF_PROG_TYPE_SK_MSG` programs. -* [bpf_msg_apply_bytes](bpf_msg_apply_bytes.md) -* [bpf_msg_cork_bytes](bpf_msg_cork_bytes.md) -* [bpf_msg_pull_data](bpf_msg_pull_data.md) -* [bpf_msg_push_data](bpf_msg_push_data.md) -* [bpf_msg_pop_data](bpf_msg_pop_data.md) +* [`bpf_msg_apply_bytes`](bpf_msg_apply_bytes.md) +* [`bpf_msg_cork_bytes`](bpf_msg_cork_bytes.md) +* [`bpf_msg_pull_data`](bpf_msg_pull_data.md) +* [`bpf_msg_push_data`](bpf_msg_push_data.md) +* [`bpf_msg_pop_data`](bpf_msg_pop_data.md) ### LWT helpers These helpers are specific to `BPF_PROG_TYPE_LWT_*` programs. -* [bpf_lwt_push_encap](bpf_lwt_push_encap.md) -* [bpf_lwt_seg6_store_bytes](bpf_lwt_seg6_store_bytes.md) -* [bpf_lwt_seg6_adjust_srh](bpf_lwt_seg6_adjust_srh.md) -* [bpf_lwt_seg6_action](bpf_lwt_seg6_action.md) +* [`bpf_lwt_push_encap`](bpf_lwt_push_encap.md) +* [`bpf_lwt_seg6_store_bytes`](bpf_lwt_seg6_store_bytes.md) +* [`bpf_lwt_seg6_adjust_srh`](bpf_lwt_seg6_adjust_srh.md) +* [`bpf_lwt_seg6_action`](bpf_lwt_seg6_action.md) -### SYNCookie helpers +### SYN cookie helpers These helpers are related to syn cookies. -* [bpf_tcp_check_syncookie](bpf_tcp_check_syncookie.md) -* [bpf_tcp_gen_syncookie](bpf_tcp_gen_syncookie.md) -* [bpf_tcp_raw_gen_syncookie_ipv4](bpf_tcp_raw_gen_syncookie_ipv4.md) -* [bpf_tcp_raw_gen_syncookie_ipv6](bpf_tcp_raw_gen_syncookie_ipv6.md) -* [bpf_tcp_raw_check_syncookie_ipv4](bpf_tcp_raw_check_syncookie_ipv4.md) -* [bpf_tcp_raw_check_syncookie_ipv6](bpf_tcp_raw_check_syncookie_ipv6.md) +* [`bpf_tcp_check_syncookie`](bpf_tcp_check_syncookie.md) +* [`bpf_tcp_gen_syncookie`](bpf_tcp_gen_syncookie.md) +* [`bpf_tcp_raw_gen_syncookie_ipv4`](bpf_tcp_raw_gen_syncookie_ipv4.md) +* [`bpf_tcp_raw_gen_syncookie_ipv6`](bpf_tcp_raw_gen_syncookie_ipv6.md) +* [`bpf_tcp_raw_check_syncookie_ipv4`](bpf_tcp_raw_check_syncookie_ipv4.md) +* [`bpf_tcp_raw_check_syncookie_ipv6`](bpf_tcp_raw_check_syncookie_ipv6.md) ### Socket helpers These helpers are related to socket. -* [bpf_sk_lookup_tcp](bpf_sk_lookup_tcp.md) -* [bpf_sk_lookup_udp](bpf_sk_lookup_udp.md) -* [bpf_sk_release](bpf_sk_release.md) -* [bpf_sk_fullsock](bpf_sk_fullsock.md) -* [bpf_sk_cgroup_id](bpf_sk_cgroup_id.md) -* [bpf_sk_ancestor_cgroup_id](bpf_sk_ancestor_cgroup_id.md) -* [bpf_get_socket_cookie](bpf_get_socket_cookie.md) -* [bpf_get_socket_uid](bpf_get_socket_uid.md) -* [bpf_setsockopt](bpf_setsockopt.md) -* [bpf_getsockopt](bpf_getsockopt.md) -* [bpf_sock_ops_cb_flags_set](bpf_sock_ops_cb_flags_set.md) -* [bpf_tcp_sock](bpf_tcp_sock.md) -* [bpf_get_listener_sock](bpf_get_listener_sock.md) -* [bpf_tcp_send_ack](bpf_tcp_send_ack.md) -* [bpf_skc_lookup_tcp](bpf_skc_lookup_tcp.md) -* [bpf_skc_to_tcp6_sock](bpf_skc_to_tcp6_sock.md) -* [bpf_skc_to_tcp_sock](bpf_skc_to_tcp_sock.md) -* [bpf_skc_to_tcp_timewait_sock](bpf_skc_to_tcp_timewait_sock.md) -* [bpf_skc_to_tcp_request_sock](bpf_skc_to_tcp_request_sock.md) -* [bpf_skc_to_udp6_sock](bpf_skc_to_udp6_sock.md) -* [bpf_skc_to_mptcp_sock](bpf_skc_to_mptcp_sock.md) -* [bpf_skc_to_unix_sock](bpf_skc_to_unix_sock.md) -* [bpf_bind](bpf_bind.md) +* [`bpf_sk_lookup_tcp`](bpf_sk_lookup_tcp.md) +* [`bpf_sk_lookup_udp`](bpf_sk_lookup_udp.md) +* [`bpf_sk_release`](bpf_sk_release.md) +* [`bpf_sk_fullsock`](bpf_sk_fullsock.md) +* [`bpf_sk_cgroup_id`](bpf_sk_cgroup_id.md) +* [`bpf_sk_ancestor_cgroup_id`](bpf_sk_ancestor_cgroup_id.md) +* [`bpf_get_socket_cookie`](bpf_get_socket_cookie.md) +* [`bpf_get_socket_uid`](bpf_get_socket_uid.md) +* [`bpf_setsockopt`](bpf_setsockopt.md) +* [`bpf_getsockopt`](bpf_getsockopt.md) +* [`bpf_sock_ops_cb_flags_set`](bpf_sock_ops_cb_flags_set.md) +* [`bpf_tcp_sock`](bpf_tcp_sock.md) +* [`bpf_get_listener_sock`](bpf_get_listener_sock.md) +* [`bpf_tcp_send_ack`](bpf_tcp_send_ack.md) +* [`bpf_skc_lookup_tcp`](bpf_skc_lookup_tcp.md) +* [`bpf_skc_to_tcp6_sock`](bpf_skc_to_tcp6_sock.md) +* [`bpf_skc_to_tcp_sock`](bpf_skc_to_tcp_sock.md) +* [`bpf_skc_to_tcp_timewait_sock`](bpf_skc_to_tcp_timewait_sock.md) +* [`bpf_skc_to_tcp_request_sock`](bpf_skc_to_tcp_request_sock.md) +* [`bpf_skc_to_udp6_sock`](bpf_skc_to_udp6_sock.md) +* [`bpf_skc_to_mptcp_sock`](bpf_skc_to_mptcp_sock.md) +* [`bpf_skc_to_unix_sock`](bpf_skc_to_unix_sock.md) +* [`bpf_bind`](bpf_bind.md) ### Socket ops helpers These helpers are specific to `BPF_PROG_TYPE_SOCK_OPS` programs. -* [bpf_load_hdr_opt](bpf_load_hdr_opt.md) -* [bpf_store_hdr_opt](bpf_store_hdr_opt.md) -* [bpf_reserve_hdr_opt](bpf_reserve_hdr_opt.md) +* [`bpf_load_hdr_opt`](bpf_load_hdr_opt.md) +* [`bpf_store_hdr_opt`](bpf_store_hdr_opt.md) +* [`bpf_reserve_hdr_opt`](bpf_reserve_hdr_opt.md) ## Infrared related helpers These helpers are specific to `BPF_PROG_TYPE_LIRC_MODE2` programs. -* [bpf_rc_repeat](bpf_rc_repeat.md) -* [bpf_rc_keydown](bpf_rc_keydown.md) -* [bpf_rc_pointer_rel](bpf_rc_pointer_rel.md) +* [`bpf_rc_repeat`](bpf_rc_repeat.md) +* [`bpf_rc_keydown`](bpf_rc_keydown.md) +* [`bpf_rc_pointer_rel`](bpf_rc_pointer_rel.md) ## Syscall helpers These helpers are specific to `BPF_PROG_TYPE_SYSCALL` programs. -* [bpf_sys_bpf](bpf_sys_bpf.md) -* [bpf_btf_find_by_name_kind](bpf_btf_find_by_name_kind.md) -* [bpf_sys_close](bpf_sys_close.md) -* [bpf_kallsyms_lookup_name](bpf_kallsyms_lookup_name.md) +* [`bpf_sys_bpf`](bpf_sys_bpf.md) +* [`bpf_btf_find_by_name_kind`](bpf_btf_find_by_name_kind.md) +* [`bpf_sys_close`](bpf_sys_close.md) +* [`bpf_kallsyms_lookup_name`](bpf_kallsyms_lookup_name.md) ## LSM helpers These helpers are specific to `BPF_PROG_TYPE_LSM` programs. -* [bpf_bprm_opts_set](bpf_bprm_opts_set.md) -* [bpf_ima_inode_hash](bpf_ima_inode_hash.md) -* [bpf_ima_file_hash](bpf_ima_file_hash.md) +* [`bpf_bprm_opts_set`](bpf_bprm_opts_set.md) +* [`bpf_ima_inode_hash`](bpf_ima_inode_hash.md) +* [`bpf_ima_file_hash`](bpf_ima_file_hash.md) ## Sysctl helpers These helpers are specific to `BPF_PROG_TYPE_CGROUP_SYSCTL` programs. -* [bpf_sysctl_get_name](bpf_sysctl_get_name.md) -* [bpf_sysctl_get_current_value](bpf_sysctl_get_current_value.md) -* [bpf_sysctl_get_new_value](bpf_sysctl_get_new_value.md) -* [bpf_sysctl_set_new_value](bpf_sysctl_set_new_value.md) +* [`bpf_sysctl_get_name`](bpf_sysctl_get_name.md) +* [`bpf_sysctl_get_current_value`](bpf_sysctl_get_current_value.md) +* [`bpf_sysctl_get_new_value`](bpf_sysctl_get_new_value.md) +* [`bpf_sysctl_set_new_value`](bpf_sysctl_set_new_value.md) ## Dynptr These helpers are related to dynamic pointers -* [bpf_dynptr_from_mem](bpf_dynptr_from_mem.md) -* [bpf_dynptr_read](bpf_dynptr_read.md) -* [bpf_dynptr_write](bpf_dynptr_write.md) -* [bpf_dynptr_data](bpf_dynptr_data.md) +* [`bpf_dynptr_from_mem`](bpf_dynptr_from_mem.md) +* [`bpf_dynptr_read`](bpf_dynptr_read.md) +* [`bpf_dynptr_write`](bpf_dynptr_write.md) +* [`bpf_dynptr_data`](bpf_dynptr_data.md) ## Loop helpers These helpers are used to execute loops. -* [bpf_loop](bpf_loop.md) +* [`bpf_loop`](bpf_loop.md) ## Utility helpers These helpers are smaller utility functions which don't really fit in elsewhere. -* [bpf_get_prandom_u32](bpf_get_prandom_u32.md) -* [bpf_strtol](bpf_strtol.md) -* [bpf_strtoul](bpf_strtoul.md) -* [bpf_strncmp](bpf_strncmp.md) -* [bpf_d_path](bpf_d_path.md) +* [`bpf_get_prandom_u32`](bpf_get_prandom_u32.md) +* [`bpf_strtol`](bpf_strtol.md) +* [`bpf_strtoul`](bpf_strtoul.md) +* [`bpf_strncmp`](bpf_strncmp.md) +* [`bpf_d_path`](bpf_d_path.md) ## Misc -* [bpf_kptr_xchg](bpf_kptr_xchg.md) +* [`bpf_kptr_xchg`](bpf_kptr_xchg.md) diff --git a/docs/linux/index.md b/docs/linux/index.md index de2d1600..b5f20e38 100644 --- a/docs/linux/index.md +++ b/docs/linux/index.md @@ -30,15 +30,15 @@ Helper functions have a large variety of purposes ranging from simply getting so ## KFuncs -KFuncs are the kernel functions that have been annotated so that they can be called from eBPF programs. Its essentially an alternative mechainsm to helper functions. The upstream kernel in principle doesn't accept new helper functions anymore, so any new functionality that needs to be exposed to eBPF programs should be done through KFuncs. +KFuncs are the kernel functions that have been annotated so that they can be called from eBPF programs. Its essentially an alternative mechanism to helper functions. The upstream kernel in principle doesn't accept new helper functions anymore, so any new functionality that needs to be exposed to eBPF programs should be done through KFuncs. -KFuncs are not considered UAPI (User-space API) and are not subject to the same stability guarantees as the UAPI. Users of KFuncs are advices to use defensive programming techniques to handle the case where a KFunc is not available or has changed. +KFuncs are not considered UAPI (User-space API) and are not subject to the same stability guarantees as the UAPI. Users of KFuncs are advised to use defensive programming techniques to handle the case where a KFunc is not available or has changed. For more details checkout the [KFuncs](../linux/concepts/kfuncs.md) page. ## Maps -eBPF maps are datastructures that live in the kernel. Both eBPF programs and userspace programs can access these maps and thus they are the communication layer between eBPF programs and userspace as well as a place to persist data between program calls. Maps like all other BPF objects are shared over the whole host, and multiple programs can access the same maps at the same time. Thus maps can also be used to transfer information between programs of different types at different attached points. +eBPF maps are data structures that live in the kernel. Both eBPF programs and userspace programs can access these maps and thus they are the communication layer between eBPF programs and userspace as well as a place to persist data between program calls. Maps like all other BPF objects are shared over the whole host, and multiple programs can access the same maps at the same time. Thus maps can also be used to transfer information between programs of different types at different attached points. Examples of these maps are [`BPF_MAP_TYPE_ARRAY`](./map-type/BPF_MAP_TYPE_ARRAY.md) which is an array of arbitrary values or a [`BPF_MAP_TYPE_HASH`](./map-type/BPF_MAP_TYPE_HASH.md) which is a hash map with arbitrary key and value types. For more details check out the [map type overview](./map-type/index.md). @@ -48,7 +48,7 @@ For more details on how to use maps, see the [maps concept page](./concepts/maps eBPF programs and maps are BPF objects along with some others we didn't mention yet. All of these objects managed in roughly the same way. Such BPF objects are created by a loader which gets a file descriptor to that object. The file descriptor is used to interact with the object further, but it also is a reference that keeps the object "alive". Objects are free-ed as soon as there exist no more references to that object. -Applications can transfer copies of these file descriptors to other processes via interprocess communication techniques like unix sockets which is quite universal. A more eBPF special technique is called pinning, which allows the loader to reference a BPF object with a special file called a pin. These pins can only be made in the special BPF File System which needs to be mounted somewhere (typically at /sys/bpf but this can change between distros). As long as a pin exists it will keep the object it refers to alive. These pins can be read by any program that has permissions to access the pin file and get a reference of the object that way. Thus, multiple program can share the same objects at the same time. +Applications can transfer copies of these file descriptors to other processes via inter-process communication techniques like UNIX sockets which is quite universal. A more eBPF special technique is called pinning, which allows the loader to reference a BPF object with a special file called a pin. These pins can only be made in the special BPF File System which needs to be mounted somewhere (typically at `/sys/bpf` but this can change between Linux distributions). As long as a pin exists it will keep the object it refers to alive. These pins can be read by any program that has permissions to access the pin file and get a reference of the object that way. Thus, multiple program can share the same objects at the same time. ## Capabilities diff --git a/docs/linux/kfuncs/SUMMARY.md b/docs/linux/kfuncs/SUMMARY.md index 74efa4c2..9fec001b 100644 --- a/docs/linux/kfuncs/SUMMARY.md +++ b/docs/linux/kfuncs/SUMMARY.md @@ -1,189 +1,189 @@ -- [index.md](index.md) -- cGroup RStat KFuncs - - [cgroup_rstat_updated](cgroup_rstat_updated.md) - - [cgroup_rstat_flush](cgroup_rstat_flush.md) +- [`index.md`](index.md) +- cGroup resource stats KFuncs + - [`cgroup_rstat_updated`](cgroup_rstat_updated.md) + - [`cgroup_rstat_flush`](cgroup_rstat_flush.md) - Key signature verification KFuncs - - [bpf_lookup_user_key](bpf_lookup_user_key.md) - - [bpf_lookup_system_key](bpf_lookup_system_key.md) - - [bpf_key_put](bpf_key_put.md) - - [bpf_verify_pkcs7_signature](bpf_verify_pkcs7_signature.md) + - [`bpf_lookup_user_key`](bpf_lookup_user_key.md) + - [`bpf_lookup_system_key`](bpf_lookup_system_key.md) + - [`bpf_key_put`](bpf_key_put.md) + - [`bpf_verify_pkcs7_signature`](bpf_verify_pkcs7_signature.md) - File related kfuncs - - [bpf_get_file_xattr](bpf_get_file_xattr.md) + - [`bpf_get_file_xattr`](bpf_get_file_xattr.md) - CPU mask KFuncs - - [bpf_cpumask_create](bpf_cpumask_create.md) - - [bpf_cpumask_release](bpf_cpumask_release.md) - - [bpf_cpumask_acquire](bpf_cpumask_acquire.md) - - [bpf_cpumask_first](bpf_cpumask_first.md) - - [bpf_cpumask_first_zero](bpf_cpumask_first_zero.md) - - [bpf_cpumask_first_and](bpf_cpumask_first_and.md) - - [bpf_cpumask_set_cpu](bpf_cpumask_set_cpu.md) - - [bpf_cpumask_clear_cpu](bpf_cpumask_clear_cpu.md) - - [bpf_cpumask_test_cpu](bpf_cpumask_test_cpu.md) - - [bpf_cpumask_test_and_set_cpu](bpf_cpumask_test_and_set_cpu.md) - - [bpf_cpumask_test_and_clear_cpu](bpf_cpumask_test_and_clear_cpu.md) - - [bpf_cpumask_setall](bpf_cpumask_setall.md) - - [bpf_cpumask_clear](bpf_cpumask_clear.md) - - [bpf_cpumask_and](bpf_cpumask_and.md) - - [bpf_cpumask_or](bpf_cpumask_or.md) - - [bpf_cpumask_xor](bpf_cpumask_xor.md) - - [bpf_cpumask_equal](bpf_cpumask_equal.md) - - [bpf_cpumask_intersects](bpf_cpumask_intersects.md) - - [bpf_cpumask_subset](bpf_cpumask_subset.md) - - [bpf_cpumask_empty](bpf_cpumask_empty.md) - - [bpf_cpumask_full](bpf_cpumask_full.md) - - [bpf_cpumask_copy](bpf_cpumask_copy.md) - - [bpf_cpumask_any_distribute](bpf_cpumask_any_distribute.md) - - [bpf_cpumask_any_and_distribute](bpf_cpumask_any_and_distribute.md) - - [bpf_cpumask_weight](bpf_cpumask_weight.md) + - [`bpf_cpumask_create`](bpf_cpumask_create.md) + - [`bpf_cpumask_release`](bpf_cpumask_release.md) + - [`bpf_cpumask_acquire`](bpf_cpumask_acquire.md) + - [`bpf_cpumask_first`](bpf_cpumask_first.md) + - [`bpf_cpumask_first_zero`](bpf_cpumask_first_zero.md) + - [`bpf_cpumask_first_and`](bpf_cpumask_first_and.md) + - [`bpf_cpumask_set_cpu`](bpf_cpumask_set_cpu.md) + - [`bpf_cpumask_clear_cpu`](bpf_cpumask_clear_cpu.md) + - [`bpf_cpumask_test_cpu`](bpf_cpumask_test_cpu.md) + - [`bpf_cpumask_test_and_set_cpu`](bpf_cpumask_test_and_set_cpu.md) + - [`bpf_cpumask_test_and_clear_cpu`](bpf_cpumask_test_and_clear_cpu.md) + - [`bpf_cpumask_setall`](bpf_cpumask_setall.md) + - [`bpf_cpumask_clear`](bpf_cpumask_clear.md) + - [`bpf_cpumask_and`](bpf_cpumask_and.md) + - [`bpf_cpumask_or`](bpf_cpumask_or.md) + - [`bpf_cpumask_xor`](bpf_cpumask_xor.md) + - [`bpf_cpumask_equal`](bpf_cpumask_equal.md) + - [`bpf_cpumask_intersects`](bpf_cpumask_intersects.md) + - [`bpf_cpumask_subset`](bpf_cpumask_subset.md) + - [`bpf_cpumask_empty`](bpf_cpumask_empty.md) + - [`bpf_cpumask_full`](bpf_cpumask_full.md) + - [`bpf_cpumask_copy`](bpf_cpumask_copy.md) + - [`bpf_cpumask_any_distribute`](bpf_cpumask_any_distribute.md) + - [`bpf_cpumask_any_and_distribute`](bpf_cpumask_any_and_distribute.md) + - [`bpf_cpumask_weight`](bpf_cpumask_weight.md) - Generic KFuncs - - [crash_kexec](crash_kexec.md) - - [bpf_throw](bpf_throw.md) + - [`crash_kexec`](crash_kexec.md) + - [`bpf_throw`](bpf_throw.md) - Object allocation KFuncs - - [bpf_obj_new_impl](bpf_obj_new_impl.md) - - [bpf_percpu_obj_new_impl](bpf_percpu_obj_new_impl.md) - - [bpf_obj_drop_impl](bpf_obj_drop_impl.md) - - [bpf_percpu_obj_drop_impl](bpf_percpu_obj_drop_impl.md) - - [bpf_refcount_acquire_impl](bpf_refcount_acquire_impl.md) - - [bpf_list_push_front_impl](bpf_list_push_front_impl.md) - - [bpf_list_push_back_impl](bpf_list_push_back_impl.md) - - [bpf_list_pop_front](bpf_list_pop_front.md) - - [bpf_list_pop_back](bpf_list_pop_back.md) + - [`bpf_obj_new_impl`](bpf_obj_new_impl.md) + - [`bpf_percpu_obj_new_impl`](bpf_percpu_obj_new_impl.md) + - [`bpf_obj_drop_impl`](bpf_obj_drop_impl.md) + - [`bpf_percpu_obj_drop_impl`](bpf_percpu_obj_drop_impl.md) + - [`bpf_refcount_acquire_impl`](bpf_refcount_acquire_impl.md) + - [`bpf_list_push_front_impl`](bpf_list_push_front_impl.md) + - [`bpf_list_push_back_impl`](bpf_list_push_back_impl.md) + - [`bpf_list_pop_front`](bpf_list_pop_front.md) + - [`bpf_list_pop_back`](bpf_list_pop_back.md) - BPF Arena KFuncs - - [bpf_arena_alloc_pages](bpf_arena_alloc_pages.md) - - [bpf_arena_free_pages](bpf_arena_free_pages.md) + - [`bpf_arena_alloc_pages`](bpf_arena_alloc_pages.md) + - [`bpf_arena_free_pages`](bpf_arena_free_pages.md) - BPF task KFuncs - - [bpf_task_acquire](bpf_task_acquire.md) - - [bpf_task_release](bpf_task_release.md) -- BPF cgroup KFuncs - - [bpf_rbtree_add_impl](bpf_rbtree_add_impl.md) - - [bpf_rbtree_first](bpf_rbtree_first.md) - - [bpf_rbtree_remove](bpf_rbtree_remove.md) -- Kfuncs for aquiring and releasing cgroup references - - [bpf_cgroup_acquire](bpf_cgroup_acquire.md) - - [bpf_cgroup_release](bpf_cgroup_release.md) - - [bpf_cgroup_ancestor](bpf_cgroup_ancestor.md) - - [bpf_cgroup_from_id](bpf_cgroup_from_id.md) + - [`bpf_task_acquire`](bpf_task_acquire.md) + - [`bpf_task_release`](bpf_task_release.md) +- BPF cGroup KFuncs + - [`bpf_rbtree_add_impl`](bpf_rbtree_add_impl.md) + - [`bpf_rbtree_first`](bpf_rbtree_first.md) + - [`bpf_rbtree_remove`](bpf_rbtree_remove.md) +- Kfuncs for acquiring and releasing cGroup references + - [`bpf_cgroup_acquire`](bpf_cgroup_acquire.md) + - [`bpf_cgroup_release`](bpf_cgroup_release.md) + - [`bpf_cgroup_ancestor`](bpf_cgroup_ancestor.md) + - [`bpf_cgroup_from_id`](bpf_cgroup_from_id.md) - Kfuncs for querying tasks - - [bpf_task_under_cgroup](bpf_task_under_cgroup.md) - - [bpf_task_get_cgroup1](bpf_task_get_cgroup1.md) - - [bpf_task_from_pid](bpf_task_from_pid.md) + - [`bpf_task_under_cgroup`](bpf_task_under_cgroup.md) + - [`bpf_task_get_cgroup1`](bpf_task_get_cgroup1.md) + - [`bpf_task_from_pid`](bpf_task_from_pid.md) - Kfuncs for casting pointers - - [bpf_cast_to_kern_ctx](bpf_cast_to_kern_ctx.md) - - [bpf_rdonly_cast](bpf_rdonly_cast.md) + - [`bpf_cast_to_kern_ctx`](bpf_cast_to_kern_ctx.md) + - [`bpf_rdonly_cast`](bpf_rdonly_cast.md) - Kfuncs for taking and releasing RCU read locks - - [bpf_rcu_read_lock](bpf_rcu_read_lock.md) - - [bpf_rcu_read_unlock](bpf_rcu_read_unlock.md) + - [`bpf_rcu_read_lock`](bpf_rcu_read_lock.md) + - [`bpf_rcu_read_unlock`](bpf_rcu_read_unlock.md) - Kfuncs for dynamic pointer slices - - [bpf_dynptr_slice](bpf_dynptr_slice.md) - - [bpf_dynptr_slice_rdwr](bpf_dynptr_slice_rdwr.md) + - [`bpf_dynptr_slice`](bpf_dynptr_slice.md) + - [`bpf_dynptr_slice_rdwr`](bpf_dynptr_slice_rdwr.md) - Kfuncs for open coded numeric iterators - - [bpf_iter_num_new](bpf_iter_num_new.md) - - [bpf_iter_num_next](bpf_iter_num_next.md) - - [bpf_iter_num_destroy](bpf_iter_num_destroy.md) -- Kfuncs for open coded VMA iterators - - [bpf_iter_task_vma_new](bpf_iter_task_vma_new.md) - - [bpf_iter_task_vma_next](bpf_iter_task_vma_next.md) - - [bpf_iter_task_vma_destroy](bpf_iter_task_vma_destroy.md) + - [`bpf_iter_num_new`](bpf_iter_num_new.md) + - [`bpf_iter_num_next`](bpf_iter_num_next.md) + - [`bpf_iter_num_destroy`](bpf_iter_num_destroy.md) +- Kfuncs for open coded virtual memory area iterators + - [`bpf_iter_task_vma_new`](bpf_iter_task_vma_new.md) + - [`bpf_iter_task_vma_next`](bpf_iter_task_vma_next.md) + - [`bpf_iter_task_vma_destroy`](bpf_iter_task_vma_destroy.md) - Kfuncs for open coded task cGroup iterators - - [bpf_iter_css_task_new](bpf_iter_css_task_new.md) - - [bpf_iter_css_task_next](bpf_iter_css_task_next.md) - - [bpf_iter_css_task_destroy](bpf_iter_css_task_destroy.md) + - [`bpf_iter_css_task_new`](bpf_iter_css_task_new.md) + - [`bpf_iter_css_task_next`](bpf_iter_css_task_next.md) + - [`bpf_iter_css_task_destroy`](bpf_iter_css_task_destroy.md) - Kfuncs for open coded cGroup iterators - - [bpf_iter_css_new](bpf_iter_css_new.md) - - [bpf_iter_css_next](bpf_iter_css_next.md) - - [bpf_iter_css_destroy](bpf_iter_css_destroy.md) + - [`bpf_iter_css_new`](bpf_iter_css_new.md) + - [`bpf_iter_css_next`](bpf_iter_css_next.md) + - [`bpf_iter_css_destroy`](bpf_iter_css_destroy.md) - Kfuncs for open coded task iterators - - [bpf_iter_task_new](bpf_iter_task_new.md) - - [bpf_iter_task_next](bpf_iter_task_next.md) - - [bpf_iter_task_destroy](bpf_iter_task_destroy.md) + - [`bpf_iter_task_new`](bpf_iter_task_new.md) + - [`bpf_iter_task_next`](bpf_iter_task_next.md) + - [`bpf_iter_task_destroy`](bpf_iter_task_destroy.md) - Kfuncs for dynamic pointers - - [bpf_dynptr_adjust](bpf_dynptr_adjust.md) - - [bpf_dynptr_is_null](bpf_dynptr_is_null.md) - - [bpf_dynptr_is_rdonly](bpf_dynptr_is_rdonly.md) - - [bpf_dynptr_size](bpf_dynptr_size.md) - - [bpf_dynptr_clone](bpf_dynptr_clone.md) + - [`bpf_dynptr_adjust`](bpf_dynptr_adjust.md) + - [`bpf_dynptr_is_null`](bpf_dynptr_is_null.md) + - [`bpf_dynptr_is_rdonly`](bpf_dynptr_is_rdonly.md) + - [`bpf_dynptr_size`](bpf_dynptr_size.md) + - [`bpf_dynptr_clone`](bpf_dynptr_clone.md) - Misc KFuncs - - [bpf_map_sum_elem_count](bpf_map_sum_elem_count.md) - - [bpf_get_fsverity_digest](bpf_get_fsverity_digest.md) + - [`bpf_map_sum_elem_count`](bpf_map_sum_elem_count.md) + - [`bpf_get_fsverity_digest`](bpf_get_fsverity_digest.md) - Preemption kfuncs - - [bpf_preempt_disable](bpf_preempt_disable.md) - - [bpf_preempt_enable](bpf_preempt_enable.md) -- Workqueue KFuncs - - [bpf_wq_init](bpf_wq_init.md) - - [bpf_wq_set_callback_impl](bpf_wq_set_callback_impl.md) - - [bpf_wq_start](bpf_wq_start.md) + - [`bpf_preempt_disable`](bpf_preempt_disable.md) + - [`bpf_preempt_enable`](bpf_preempt_enable.md) +- Work-queue KFuncs + - [`bpf_wq_init`](bpf_wq_init.md) + - [`bpf_wq_set_callback_impl`](bpf_wq_set_callback_impl.md) + - [`bpf_wq_start`](bpf_wq_start.md) - XDP metadata kfuncs - - [bpf_xdp_metadata_rx_timestamp](bpf_xdp_metadata_rx_timestamp.md) - - [bpf_xdp_metadata_rx_hash](bpf_xdp_metadata_rx_hash.md) - - [bpf_xdp_metadata_rx_vlan_tag](bpf_xdp_metadata_rx_vlan_tag.md) + - [`bpf_xdp_metadata_rx_timestamp`](bpf_xdp_metadata_rx_timestamp.md) + - [`bpf_xdp_metadata_rx_hash`](bpf_xdp_metadata_rx_hash.md) + - [`bpf_xdp_metadata_rx_vlan_tag`](bpf_xdp_metadata_rx_vlan_tag.md) - XDP/SKB dynamic pointer kfuncs - - [bpf_dynptr_from_skb](bpf_dynptr_from_skb.md) - - [bpf_dynptr_from_xdp](bpf_dynptr_from_xdp.md) + - [`bpf_dynptr_from_skb`](bpf_dynptr_from_skb.md) + - [`bpf_dynptr_from_xdp`](bpf_dynptr_from_xdp.md) - Socket related kfuncs - - [bpf_sock_addr_set_sun_path](bpf_sock_addr_set_sun_path.md) - - [bpf_sock_destroy](bpf_sock_destroy.md) + - [`bpf_sock_addr_set_sun_path`](bpf_sock_addr_set_sun_path.md) + - [`bpf_sock_destroy`](bpf_sock_destroy.md) - Network crypto kfuncs - - [bpf_crypto_ctx_create](bpf_crypto_ctx_create.md) - - [bpf_crypto_ctx_acquire](bpf_crypto_ctx_acquire.md) - - [bpf_crypto_ctx_release](bpf_crypto_ctx_release.md) - - [bpf_crypto_decrypt](bpf_crypto_decrypt.md) - - [bpf_crypto_encrypt](bpf_crypto_encrypt.md) + - [`bpf_crypto_ctx_create`](bpf_crypto_ctx_create.md) + - [`bpf_crypto_ctx_acquire`](bpf_crypto_ctx_acquire.md) + - [`bpf_crypto_ctx_release`](bpf_crypto_ctx_release.md) + - [`bpf_crypto_decrypt`](bpf_crypto_decrypt.md) + - [`bpf_crypto_encrypt`](bpf_crypto_encrypt.md) - BBR congestion control kfuncs - - [bbr_init](bbr_init.md) - - [bbr_main](bbr_main.md) - - [bbr_sndbuf_expand](bbr_sndbuf_expand.md) - - [bbr_undo_cwnd](bbr_undo_cwnd.md) - - [bbr_cwnd_event](bbr_cwnd_event.md) - - [bbr_ssthresh](bbr_ssthresh.md) - - [bbr_min_tso_segs](bbr_min_tso_segs.md) - - [bbr_set_state](bbr_set_state.md) + - [`bbr_init`](bbr_init.md) + - [`bbr_main`](bbr_main.md) + - [`bbr_sndbuf_expand`](bbr_sndbuf_expand.md) + - [`bbr_undo_cwnd`](bbr_undo_cwnd.md) + - [`bbr_cwnd_event`](bbr_cwnd_event.md) + - [`bbr_ssthresh`](bbr_ssthresh.md) + - [`bbr_min_tso_segs`](bbr_min_tso_segs.md) + - [`bbr_set_state`](bbr_set_state.md) - Cubic TCP congestion control kfuncs - - [cubictcp_init](cubictcp_init.md) - - [cubictcp_recalc_ssthresh](cubictcp_recalc_ssthresh.md) - - [cubictcp_cong_avoid](cubictcp_cong_avoid.md) - - [cubictcp_state](cubictcp_state.md) - - [cubictcp_cwnd_event](cubictcp_cwnd_event.md) - - [cubictcp_acked](cubictcp_acked.md) + - [`cubictcp_init`](cubictcp_init.md) + - [`cubictcp_recalc_ssthresh`](cubictcp_recalc_ssthresh.md) + - [`cubictcp_cong_avoid`](cubictcp_cong_avoid.md) + - [`cubictcp_state`](cubictcp_state.md) + - [`cubictcp_cwnd_event`](cubictcp_cwnd_event.md) + - [`cubictcp_acked`](cubictcp_acked.md) - DC TCP congestion control kfuncs - - [dctcp_init](dctcp_init.md) - - [dctcp_update_alpha](dctcp_update_alpha.md) - - [dctcp_cwnd_event](dctcp_cwnd_event.md) - - [dctcp_ssthresh](dctcp_ssthresh.md) - - [dctcp_cwnd_undo](dctcp_cwnd_undo.md) - - [dctcp_state](dctcp_state.md) + - [`dctcp_init`](dctcp_init.md) + - [`dctcp_update_alpha`](dctcp_update_alpha.md) + - [`dctcp_cwnd_event`](dctcp_cwnd_event.md) + - [`dctcp_ssthresh`](dctcp_ssthresh.md) + - [`dctcp_cwnd_undo`](dctcp_cwnd_undo.md) + - [`dctcp_state`](dctcp_state.md) - TCP Reno congestion control kfuncs - - [tcp_reno_ssthresh](tcp_reno_ssthresh.md) - - [tcp_reno_cong_avoid](tcp_reno_cong_avoid.md) - - [tcp_reno_undo_cwnd](tcp_reno_undo_cwnd.md) - - [tcp_slow_start](tcp_slow_start.md) - - [tcp_cong_avoid_ai](tcp_cong_avoid_ai.md) + - [`tcp_reno_ssthresh`](tcp_reno_ssthresh.md) + - [`tcp_reno_cong_avoid`](tcp_reno_cong_avoid.md) + - [`tcp_reno_undo_cwnd`](tcp_reno_undo_cwnd.md) + - [`tcp_slow_start`](tcp_slow_start.md) + - [`tcp_cong_avoid_ai`](tcp_cong_avoid_ai.md) - Foo over UDP KFuncs - - [bpf_skb_set_fou_encap](bpf_skb_set_fou_encap.md) - - [bpf_skb_get_fou_encap](bpf_skb_get_fou_encap.md) -- Contrack KFuncs - - [bpf_ct_set_nat_info](bpf_ct_set_nat_info.md) - - [bpf_xdp_ct_alloc](bpf_xdp_ct_alloc.md) - - [bpf_xdp_ct_lookup](bpf_xdp_ct_lookup.md) - - [bpf_skb_ct_alloc](bpf_skb_ct_alloc.md) - - [bpf_skb_ct_lookup](bpf_skb_ct_lookup.md) - - [bpf_ct_insert_entry](bpf_ct_insert_entry.md) - - [bpf_ct_release](bpf_ct_release.md) - - [bpf_ct_set_timeout](bpf_ct_set_timeout.md) - - [bpf_ct_change_timeout](bpf_ct_change_timeout.md) - - [bpf_ct_set_status](bpf_ct_set_status.md) - - [bpf_ct_change_status](bpf_ct_change_status.md) + - [`bpf_skb_set_fou_encap`](bpf_skb_set_fou_encap.md) + - [`bpf_skb_get_fou_encap`](bpf_skb_get_fou_encap.md) +- Connection tracking KFuncs + - [`bpf_ct_set_nat_info`](bpf_ct_set_nat_info.md) + - [`bpf_xdp_ct_alloc`](bpf_xdp_ct_alloc.md) + - [`bpf_xdp_ct_lookup`](bpf_xdp_ct_lookup.md) + - [`bpf_skb_ct_alloc`](bpf_skb_ct_alloc.md) + - [`bpf_skb_ct_lookup`](bpf_skb_ct_lookup.md) + - [`bpf_ct_insert_entry`](bpf_ct_insert_entry.md) + - [`bpf_ct_release`](bpf_ct_release.md) + - [`bpf_ct_set_timeout`](bpf_ct_set_timeout.md) + - [`bpf_ct_change_timeout`](bpf_ct_change_timeout.md) + - [`bpf_ct_set_status`](bpf_ct_set_status.md) + - [`bpf_ct_change_status`](bpf_ct_change_status.md) - XFRM KFuncs - - [bpf_skb_get_xfrm_info](bpf_skb_get_xfrm_info.md) - - [bpf_skb_set_xfrm_info](bpf_skb_set_xfrm_info.md) - - [bpf_xdp_get_xfrm_state](bpf_xdp_get_xfrm_state.md) - - [bpf_xdp_xfrm_state_release](bpf_xdp_xfrm_state_release.md) + - [`bpf_skb_get_xfrm_info`](bpf_skb_get_xfrm_info.md) + - [`bpf_skb_set_xfrm_info`](bpf_skb_set_xfrm_info.md) + - [`bpf_xdp_get_xfrm_state`](bpf_xdp_get_xfrm_state.md) + - [`bpf_xdp_xfrm_state_release`](bpf_xdp_xfrm_state_release.md) - HID Kfuncs - - [hid_bpf_get_data](hid_bpf_get_data.md) - - [hid_bpf_attach_prog](hid_bpf_attach_prog.md) - - [hid_bpf_allocate_context](hid_bpf_allocate_context.md) - - [hid_bpf_release_context](hid_bpf_release_context.md) - - [hid_bpf_hw_request](hid_bpf_hw_request.md) + - [`hid_bpf_get_data`](hid_bpf_get_data.md) + - [`hid_bpf_attach_prog`](hid_bpf_attach_prog.md) + - [`hid_bpf_allocate_context`](hid_bpf_allocate_context.md) + - [`hid_bpf_release_context`](hid_bpf_release_context.md) + - [`hid_bpf_hw_request`](hid_bpf_hw_request.md) - KProbe session Kfuncs - - [bpf_session_cookie](bpf_session_cookie.md) - - [bpf_session_is_return](bpf_session_is_return.md) + - [`bpf_session_cookie`](bpf_session_cookie.md) + - [`bpf_session_is_return`](bpf_session_is_return.md) diff --git a/docs/linux/kfuncs/bbr_cwnd_event.md b/docs/linux/kfuncs/bbr_cwnd_event.md index af3389d0..ff8a9173 100644 --- a/docs/linux/kfuncs/bbr_cwnd_event.md +++ b/docs/linux/kfuncs/bbr_cwnd_event.md @@ -26,7 +26,7 @@ Call when congestion window event occurs. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/kfuncs/bbr_init.md b/docs/linux/kfuncs/bbr_init.md index 293a4e06..468061b0 100644 --- a/docs/linux/kfuncs/bbr_init.md +++ b/docs/linux/kfuncs/bbr_init.md @@ -26,7 +26,7 @@ Initialise BBR congestion control algorithm on a socket. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/kfuncs/bbr_main.md b/docs/linux/kfuncs/bbr_main.md index bcf39075..1fae9269 100644 --- a/docs/linux/kfuncs/bbr_main.md +++ b/docs/linux/kfuncs/bbr_main.md @@ -29,7 +29,7 @@ Notify BBR congestion control algorithm of newly delivered packets. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/kfuncs/bbr_min_tso_segs.md b/docs/linux/kfuncs/bbr_min_tso_segs.md index effa4a34..279223cb 100644 --- a/docs/linux/kfuncs/bbr_min_tso_segs.md +++ b/docs/linux/kfuncs/bbr_min_tso_segs.md @@ -8,7 +8,7 @@ description: "This page documents the 'bbr_min_tso_segs' eBPF kfunc, including i [:octicons-tag-24: v5.13](https://github.com/torvalds/linux/commit/e78aea8b2170be1b88c96a4d138422986a737336) -Override sysctl_tcp_min_tso_segs +Override `sysctl_tcp_min_tso_segs` ## Definition @@ -26,7 +26,7 @@ Override sysctl_tcp_min_tso_segs The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/kfuncs/bbr_set_state.md b/docs/linux/kfuncs/bbr_set_state.md index 21d9aa74..3350d4e8 100644 --- a/docs/linux/kfuncs/bbr_set_state.md +++ b/docs/linux/kfuncs/bbr_set_state.md @@ -26,7 +26,7 @@ Call before changing ca_state The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/kfuncs/bbr_sndbuf_expand.md b/docs/linux/kfuncs/bbr_sndbuf_expand.md index 563ec9f0..6cacc202 100644 --- a/docs/linux/kfuncs/bbr_sndbuf_expand.md +++ b/docs/linux/kfuncs/bbr_sndbuf_expand.md @@ -8,11 +8,11 @@ description: "This page documents the 'bbr_sndbuf_expand' eBPF kfunc, including [:octicons-tag-24: v5.13](https://github.com/torvalds/linux/commit/e78aea8b2170be1b88c96a4d138422986a737336) -Returns the multiplier used in tcp_sndbuf_expand +Returns the multiplier used in `tcp_sndbuf_expand` ## Definition -Provision 3 * cwnd since BBR may slow-start even during recovery. +Provision 3 * `cwnd` since BBR may slow-start even during recovery. `#!c u32 bbr_sndbuf_expand(struct sock *sk)` @@ -28,7 +28,7 @@ Provision 3 * cwnd since BBR may slow-start even during recovery. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/kfuncs/bbr_ssthresh.md b/docs/linux/kfuncs/bbr_ssthresh.md index d0c0d4ba..b0a363d0 100644 --- a/docs/linux/kfuncs/bbr_ssthresh.md +++ b/docs/linux/kfuncs/bbr_ssthresh.md @@ -12,7 +12,7 @@ Returns slow start threshold ## Definition -Entering loss recovery, so save cwnd for when we exit or undo recovery. +Entering loss recovery, so save `cwnd` for when we exit or undo recovery. `#!c u32 bbr_ssthresh(struct sock *sk)` @@ -28,7 +28,7 @@ Entering loss recovery, so save cwnd for when we exit or undo recovery. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/kfuncs/bbr_undo_cwnd.md b/docs/linux/kfuncs/bbr_undo_cwnd.md index 39f9957d..4e173432 100644 --- a/docs/linux/kfuncs/bbr_undo_cwnd.md +++ b/docs/linux/kfuncs/bbr_undo_cwnd.md @@ -12,7 +12,7 @@ Return new value of congestion window after loss. ## Definition -In theory BBR does not need to undo the cwnd since it does not always reduce cwnd on losses (see bbr_main()). +In theory BBR does not need to undo the `cwnd` since it does not always reduce `cwnd` on losses (see `bbr_main()`). `#!c u32 bbr_undo_cwnd(struct sock *sk)` @@ -28,7 +28,7 @@ In theory BBR does not need to undo the cwnd since it does not always reduce cwn The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/kfuncs/bpf_arena_alloc_pages.md b/docs/linux/kfuncs/bpf_arena_alloc_pages.md index 7f84b99b..5089f169 100644 --- a/docs/linux/kfuncs/bpf_arena_alloc_pages.md +++ b/docs/linux/kfuncs/bpf_arena_alloc_pages.md @@ -42,22 +42,22 @@ The kfunc is used to allocate these pages. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_arena_free_pages.md b/docs/linux/kfuncs/bpf_arena_free_pages.md index 82c66fc4..ee35481d 100644 --- a/docs/linux/kfuncs/bpf_arena_free_pages.md +++ b/docs/linux/kfuncs/bpf_arena_free_pages.md @@ -38,22 +38,22 @@ The kfunc is used to free these pages. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cast_to_kern_ctx.md b/docs/linux/kfuncs/bpf_cast_to_kern_ctx.md index 941bd1d9..b8211eb3 100644 --- a/docs/linux/kfuncs/bpf_cast_to_kern_ctx.md +++ b/docs/linux/kfuncs/bpf_cast_to_kern_ctx.md @@ -16,7 +16,7 @@ description: "This page documents the 'bpf_cast_to_kern_ctx' eBPF kfunc, includi ## Usage -The purpose of this kfunc is to cast the uAPI context programs get by default, into a kernel pointer +The purpose of this kfunc is to cast the UAPI context programs get by default, into a kernel pointer that is allowed to access the kernel type. So for example an `BPF_PROG_TYPE_SCHED_CLS` program would get a `struct __sk_buff*` as the context, passing it to this kfunc would return a `struct sk_buff*` which is less stable but has more fields. CO-RE should be used to access the fields of the `struct sk_buff*` to ensure the program is compatible with different kernel versions. @@ -26,22 +26,22 @@ So for example an `BPF_PROG_TYPE_SCHED_CLS` program would get a `struct __sk_buf The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cgroup_acquire.md b/docs/linux/kfuncs/bpf_cgroup_acquire.md index a173411d..8f7847d8 100644 --- a/docs/linux/kfuncs/bpf_cgroup_acquire.md +++ b/docs/linux/kfuncs/bpf_cgroup_acquire.md @@ -8,11 +8,11 @@ description: "This page documents the 'bpf_cgroup_acquire' eBPF kfunc, including [:octicons-tag-24: v6.2](https://github.com/torvalds/linux/commit/fda01efc61605af7c6fa03c4109f14d59c9228b7) -Acquire a reference to a cgroup. +Acquire a reference to a cGroup. ## Definition -A cgroup acquired by this kfunc which is not stored in a map as a kptr, must be released by calling [`bpf_cgroup_release()`](bpf_cgroup_release.md). +A cGroup acquired by this kfunc which is not stored in a map as a kptr, must be released by calling [`bpf_cgroup_release()`](bpf_cgroup_release.md). `#!c struct cgroup *bpf_cgroup_acquire(struct cgroup *cgrp)` @@ -38,11 +38,11 @@ A cgroup acquired by this kfunc which is not stored in a map as a kptr, must be The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cgroup_ancestor.md b/docs/linux/kfuncs/bpf_cgroup_ancestor.md index 90635b98..eae4b8d9 100644 --- a/docs/linux/kfuncs/bpf_cgroup_ancestor.md +++ b/docs/linux/kfuncs/bpf_cgroup_ancestor.md @@ -8,11 +8,11 @@ description: "This page documents the 'bpf_cgroup_ancestor' eBPF kfunc, includin [:octicons-tag-24: v6.2](https://github.com/torvalds/linux/commit/5ca7867078296cfa9c100f9a3b2d24be1e139825) -Perform a lookup on an entry in a cgroup's ancestor array. +Perform a lookup on an entry in a cGroups ancestor array. ## Definition -A cgroup returned by this kfunc which is not subsequently stored in a map, must be released by calling [`bpf_cgroup_release()`](bpf_cgroup_release.md). +A cGroup returned by this kfunc which is not subsequently stored in a map, must be released by calling [`bpf_cgroup_release()`](bpf_cgroup_release.md). `#!c struct cgroup *bpf_cgroup_ancestor(struct cgroup *cgrp, int level)` @@ -38,11 +38,11 @@ A cgroup returned by this kfunc which is not subsequently stored in a map, must The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cgroup_from_id.md b/docs/linux/kfuncs/bpf_cgroup_from_id.md index e43ee39f..39096e77 100644 --- a/docs/linux/kfuncs/bpf_cgroup_from_id.md +++ b/docs/linux/kfuncs/bpf_cgroup_from_id.md @@ -8,11 +8,11 @@ description: "This page documents the 'bpf_cgroup_from_id' eBPF kfunc, including [:octicons-tag-24: v6.4](https://github.com/torvalds/linux/commit/332ea1f697be148bd5e66475d82b5ecc5084da65) -Find a cgroup from its ID. +Find a cGroup from its ID. ## Definition -cgroup returned by this kfunc which is not subsequently stored in a map, must be released by calling [`bpf_cgroup_release()`](bpf_cgroup_release.md). +cGroup returned by this kfunc which is not subsequently stored in a map, must be released by calling [`bpf_cgroup_release()`](bpf_cgroup_release.md). `#!c struct cgroup *bpf_cgroup_from_id(u64 cgid)` @@ -38,11 +38,11 @@ cgroup returned by this kfunc which is not subsequently stored in a map, must be The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cgroup_release.md b/docs/linux/kfuncs/bpf_cgroup_release.md index 4747a6c7..6fe6ca84 100644 --- a/docs/linux/kfuncs/bpf_cgroup_release.md +++ b/docs/linux/kfuncs/bpf_cgroup_release.md @@ -8,11 +8,11 @@ description: "This page documents the 'bpf_cgroup_release' eBPF kfunc, including [:octicons-tag-24: v6.2](https://github.com/torvalds/linux/commit/fda01efc61605af7c6fa03c4109f14d59c9228b7) -Release the reference acquired on a cgroup. +Release the reference acquired on a cGroup. ## Definition -If this kfunc is invoked in an RCU read region, the cgroup is guaranteed to not be freed until the current grace period has ended, even if its refcount drops to `0`. +If this kfunc is invoked in an RCU read region, the cGroup is guaranteed to not be freed until the current grace period has ended, even if its refcount drops to `0`. `#!c void bpf_cgroup_release(struct cgroup *cgrp)` @@ -32,11 +32,11 @@ If this kfunc is invoked in an RCU read region, the cgroup is guaranteed to not The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cpumask_acquire.md b/docs/linux/kfuncs/bpf_cpumask_acquire.md index 5a9b0104..5920d455 100644 --- a/docs/linux/kfuncs/bpf_cpumask_acquire.md +++ b/docs/linux/kfuncs/bpf_cpumask_acquire.md @@ -8,11 +8,11 @@ description: "This page documents the 'bpf_cpumask_acquire' eBPF kfunc, includin [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/516f4d3397c9e90f4da04f59986c856016269aa1) -Acquire a reference to a BPF cpumask. +Acquire a reference to a BPF CPU-mask. ## Definition -Acquires a reference to a BPF cpumask. The cpumask returned by this function +Acquires a reference to a BPF CPU-mask. The CPU-mask returned by this function must either be embedded in a map as a kptr, or freed with [`bpf_cpumask_release()`](bpf_cpumask_release.md). @@ -36,9 +36,9 @@ must either be embedded in a map as a kptr, or freed with The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cpumask_and.md b/docs/linux/kfuncs/bpf_cpumask_and.md index c81dfa42..8f0c0faf 100644 --- a/docs/linux/kfuncs/bpf_cpumask_and.md +++ b/docs/linux/kfuncs/bpf_cpumask_and.md @@ -8,11 +8,11 @@ description: "This page documents the 'bpf_cpumask_and' eBPF kfunc, including it [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/516f4d3397c9e90f4da04f59986c856016269aa1) -AND two cpumasks and store the result. +AND two CPU-masks and store the result. ## Definition -`dst`: The BPF cpumask where the result is being stored. +`dst`: The BPF CPU-mask where the result is being stored. `src1`: The first input. `src2`: The second input. @@ -36,9 +36,9 @@ Return: The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cpumask_any_and_distribute.md b/docs/linux/kfuncs/bpf_cpumask_any_and_distribute.md index e7bf6304..1e65d595 100644 --- a/docs/linux/kfuncs/bpf_cpumask_any_and_distribute.md +++ b/docs/linux/kfuncs/bpf_cpumask_any_and_distribute.md @@ -8,17 +8,17 @@ description: "This page documents the 'bpf_cpumask_any_and_distribute' eBPF kfun [:octicons-tag-24: v6.5](https://github.com/torvalds/linux/commit/f983be917332ea5e03f689e12c6668be48cb4cfe) -Return a random set CPU from the AND of two cpumasks. +Return a random set CPU from the AND of two CPU-masks. ## Definition -`src1`: The first cpumask. -`src2`: The second cpumask. +`src1`: The first CPU-mask. +`src2`: The second CPU-mask. Return: -* A random set bit within [0, num_cpus) from the AND of two cpumasks, if at +* A random set bit within [0, `num_cpus`) from the AND of two CPU-mask, if at least one bit is set. -* >= num_cpus if no bit is set. +* >= `num_cpus` if no bit is set. `struct bpf_cpumask` pointers may be safely passed to `src1` and `src2`. @@ -36,9 +36,9 @@ Return: The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cpumask_any_distribute.md b/docs/linux/kfuncs/bpf_cpumask_any_distribute.md index 7dad40af..cad97192 100644 --- a/docs/linux/kfuncs/bpf_cpumask_any_distribute.md +++ b/docs/linux/kfuncs/bpf_cpumask_any_distribute.md @@ -8,15 +8,15 @@ description: "This page documents the 'bpf_cpumask_any_distribute' eBPF kfunc, i [:octicons-tag-24: v6.5](https://github.com/torvalds/linux/commit/f983be917332ea5e03f689e12c6668be48cb4cfe) -Return a random set CPU from a cpumask. +Return a random set CPU from a CPU-mask. ## Definition -`cpumask`: The cpumask being queried. +`cpumask`: The CPU-mask being queried. Return: -* A random set bit within [0, num_cpus) if at least one bit is set. -* >= num_cpus if no bit is set. +* A random set bit within [0, `num_cpus`) if at least one bit is set. +* >= `num_cpus` if no bit is set. A `struct bpf_cpumask` pointer may be safely passed to `src`. @@ -34,9 +34,9 @@ A `struct bpf_cpumask` pointer may be safely passed to `src`. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cpumask_clear.md b/docs/linux/kfuncs/bpf_cpumask_clear.md index 3b684374..48752294 100644 --- a/docs/linux/kfuncs/bpf_cpumask_clear.md +++ b/docs/linux/kfuncs/bpf_cpumask_clear.md @@ -8,11 +8,11 @@ description: "This page documents the 'bpf_cpumask_clear' eBPF kfunc, including [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/516f4d3397c9e90f4da04f59986c856016269aa1) -Clear all of the bits in a BPF cpumask. +Clear all of the bits in a BPF CPU-mask. ## Definition -`cpumask`: The BPF cpumask being cleared. +`cpumask`: The BPF CPU-mask being cleared. `#!c void bpf_cpumask_clear(struct bpf_cpumask *cpumask)` @@ -28,9 +28,9 @@ Clear all of the bits in a BPF cpumask. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cpumask_clear_cpu.md b/docs/linux/kfuncs/bpf_cpumask_clear_cpu.md index 2f98bb46..66fe6dfa 100644 --- a/docs/linux/kfuncs/bpf_cpumask_clear_cpu.md +++ b/docs/linux/kfuncs/bpf_cpumask_clear_cpu.md @@ -8,13 +8,13 @@ description: "This page documents the 'bpf_cpumask_clear_cpu' eBPF kfunc, includ [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/516f4d3397c9e90f4da04f59986c856016269aa1) -Clear a bit for a CPU in a BPF cpumask. +Clear a bit for a CPU in a BPF CPU-mask. ## Definition -`cpu`: The CPU to be cleared from the cpumask. +`cpu`: The CPU to be cleared from the CPU-mask. -`cpumask`: The BPF cpumask in which a bit is being cleared. +`cpumask`: The BPF CPU-mask in which a bit is being cleared. `#!c void bpf_cpumask_clear_cpu(u32 cpu, struct bpf_cpumask *cpumask)` @@ -30,9 +30,9 @@ Clear a bit for a CPU in a BPF cpumask. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cpumask_copy.md b/docs/linux/kfuncs/bpf_cpumask_copy.md index 14182804..f749d883 100644 --- a/docs/linux/kfuncs/bpf_cpumask_copy.md +++ b/docs/linux/kfuncs/bpf_cpumask_copy.md @@ -8,12 +8,12 @@ description: "This page documents the 'bpf_cpumask_copy' eBPF kfunc, including i [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/516f4d3397c9e90f4da04f59986c856016269aa1) -Copy the contents of a cpumask into a BPF cpumask. +Copy the contents of a CPU-mask into a BPF CPU-mask. ## Definition -`dst`: The BPF cpumask being copied into. -`src`: The cpumask being copied. +`dst`: The BPF CPU-mask being copied into. +`src`: The CPU-mask being copied. A `struct bpf_cpumask` pointer may be safely passed to `src`. @@ -31,9 +31,9 @@ A `struct bpf_cpumask` pointer may be safely passed to `src`. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cpumask_create.md b/docs/linux/kfuncs/bpf_cpumask_create.md index 508d0dd3..a79b26ed 100644 --- a/docs/linux/kfuncs/bpf_cpumask_create.md +++ b/docs/linux/kfuncs/bpf_cpumask_create.md @@ -8,12 +8,12 @@ description: "This page documents the 'bpf_cpumask_create' eBPF kfunc, including [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/516f4d3397c9e90f4da04f59986c856016269aa1) -Create a mutable BPF cpumask. +Create a mutable BPF CPU-mask. ## Definition -Allocates a cpumask that can be queried, mutated, acquired, and released by -a BPF program. The cpumask returned by this function must either be embedded +Allocates a CPU-mask that can be queried, mutated, acquired, and released by +a BPF program. The CPU-mask returned by this function must either be embedded in a map as a kptr, or freed with [`bpf_cpumask_release()`](bpf_cpumask_release.md). `bpf_cpumask_create()` allocates memory using the BPF memory allocator, and @@ -43,9 +43,9 @@ will not block. It may return NULL if no memory is available. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cpumask_empty.md b/docs/linux/kfuncs/bpf_cpumask_empty.md index 513732ad..4ecd1f40 100644 --- a/docs/linux/kfuncs/bpf_cpumask_empty.md +++ b/docs/linux/kfuncs/bpf_cpumask_empty.md @@ -8,11 +8,11 @@ description: "This page documents the 'bpf_cpumask_empty' eBPF kfunc, including [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/516f4d3397c9e90f4da04f59986c856016269aa1) -Check if a cpumask is empty. +Check if a CPU-mask is empty. ## Definition -`cpumask`: The cpumask being checked. +`cpumask`: The CPU-mask being checked. Return: * `true` - None of the bits in `cpumask` are set. @@ -34,9 +34,9 @@ A `struct bpf_cpumask` pointer may be safely passed to `cpumask`. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cpumask_equal.md b/docs/linux/kfuncs/bpf_cpumask_equal.md index 00054196..574d4470 100644 --- a/docs/linux/kfuncs/bpf_cpumask_equal.md +++ b/docs/linux/kfuncs/bpf_cpumask_equal.md @@ -8,7 +8,7 @@ description: "This page documents the 'bpf_cpumask_equal' eBPF kfunc, including [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/516f4d3397c9e90f4da04f59986c856016269aa1) -Check two cpumasks for equality. +Check two CPU-masks for equality. ## Definition @@ -35,9 +35,9 @@ Return: The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cpumask_first.md b/docs/linux/kfuncs/bpf_cpumask_first.md index 38f34a35..5e8b00d8 100644 --- a/docs/linux/kfuncs/bpf_cpumask_first.md +++ b/docs/linux/kfuncs/bpf_cpumask_first.md @@ -8,11 +8,11 @@ description: "This page documents the 'bpf_cpumask_first' eBPF kfunc, including [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/516f4d3397c9e90f4da04f59986c856016269aa1) -Get the index of the first nonzero bit in the cpumask. +Get the index of the first nonzero bit in the CPU-mask. ## Definition -Find the index of the first nonzero bit of the cpumask. A `struct bpf_cpumask` +Find the index of the first nonzero bit of the CPU-mask. A `struct bpf_cpumask` pointer may be safely passed to this function. @@ -29,9 +29,9 @@ pointer may be safely passed to this function. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cpumask_first_and.md b/docs/linux/kfuncs/bpf_cpumask_first_and.md index fe062590..ac6082af 100644 --- a/docs/linux/kfuncs/bpf_cpumask_first_and.md +++ b/docs/linux/kfuncs/bpf_cpumask_first_and.md @@ -8,11 +8,11 @@ description: "This page documents the 'bpf_cpumask_first_and' eBPF kfunc, includ [:octicons-tag-24: v6.5](https://github.com/torvalds/linux/commit/5ba3a7a851e3ebffc4cb8f052a4581c4d8af3ae3) -Return the index of the first nonzero bit from the AND of two cpumasks. +Return the index of the first nonzero bit from the AND of two CPU-masks. ## Definition -Find the index of the first nonzero bit of the AND of two cpumasks. +Find the index of the first nonzero bit of the AND of two CPU-masks. `struct bpf_cpumask` pointers may be safely passed to `src1` and `src2`. @@ -29,9 +29,9 @@ Find the index of the first nonzero bit of the AND of two cpumasks. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cpumask_first_zero.md b/docs/linux/kfuncs/bpf_cpumask_first_zero.md index e233a82e..a364e3d3 100644 --- a/docs/linux/kfuncs/bpf_cpumask_first_zero.md +++ b/docs/linux/kfuncs/bpf_cpumask_first_zero.md @@ -8,11 +8,11 @@ description: "This page documents the 'bpf_cpumask_first_zero' eBPF kfunc, inclu [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/516f4d3397c9e90f4da04f59986c856016269aa1) -Get the index of the first unset bit in the cpumask. +Get the index of the first unset bit in the CPU-mask. ## Definition -Find the index of the first unset bit of the cpumask. A `struct bpf_cpumask` +Find the index of the first unset bit of the CPU-mask. A `struct bpf_cpumask` pointer may be safely passed to this function. @@ -29,9 +29,9 @@ pointer may be safely passed to this function. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cpumask_full.md b/docs/linux/kfuncs/bpf_cpumask_full.md index ec07aa5c..357e11b6 100644 --- a/docs/linux/kfuncs/bpf_cpumask_full.md +++ b/docs/linux/kfuncs/bpf_cpumask_full.md @@ -8,11 +8,11 @@ description: "This page documents the 'bpf_cpumask_full' eBPF kfunc, including i [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/516f4d3397c9e90f4da04f59986c856016269aa1) -Check if a cpumask has all bits set. +Check if a CPU-mask has all bits set. ## Definition -`cpumask`: The cpumask being checked. +`cpumask`: The CPU-mask being checked. Return: * `true` - All of the bits in `cpumask` are set. @@ -34,9 +34,9 @@ A `struct bpf_cpumask` pointer may be safely passed to `cpumask`. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cpumask_intersects.md b/docs/linux/kfuncs/bpf_cpumask_intersects.md index c6ce703e..f9b4c911 100644 --- a/docs/linux/kfuncs/bpf_cpumask_intersects.md +++ b/docs/linux/kfuncs/bpf_cpumask_intersects.md @@ -8,7 +8,7 @@ description: "This page documents the 'bpf_cpumask_intersects' eBPF kfunc, inclu [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/516f4d3397c9e90f4da04f59986c856016269aa1) -Check two cpumasks for overlap. +Check two CPU-masks for overlap. ## Definition @@ -35,9 +35,9 @@ Return: The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cpumask_or.md b/docs/linux/kfuncs/bpf_cpumask_or.md index 4590ba38..641ba860 100644 --- a/docs/linux/kfuncs/bpf_cpumask_or.md +++ b/docs/linux/kfuncs/bpf_cpumask_or.md @@ -8,11 +8,11 @@ description: "This page documents the 'bpf_cpumask_or' eBPF kfunc, including its [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/516f4d3397c9e90f4da04f59986c856016269aa1) -OR two cpumasks and store the result. +OR two CPU-masks and store the result. ## Definition -`dst`: The BPF cpumask where the result is being stored. +`dst`: The BPF CPU-mask where the result is being stored. `src1`: The first input. `src2`: The second input. @@ -32,9 +32,9 @@ OR two cpumasks and store the result. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cpumask_release.md b/docs/linux/kfuncs/bpf_cpumask_release.md index 04fe414a..4ae1c756 100644 --- a/docs/linux/kfuncs/bpf_cpumask_release.md +++ b/docs/linux/kfuncs/bpf_cpumask_release.md @@ -8,12 +8,12 @@ description: "This page documents the 'bpf_cpumask_release' eBPF kfunc, includin [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/516f4d3397c9e90f4da04f59986c856016269aa1) -Release a previously acquired BPF cpumask. +Release a previously acquired BPF CPU-mask. ## Definition -Releases a previously acquired reference to a BPF cpumask. When the final -reference of the BPF cpumask has been released, it is subsequently freed in +Releases a previously acquired reference to a BPF CPU-mask. When the final +reference of the BPF CPU-mask has been released, it is subsequently freed in an RCU callback in the BPF memory allocator. @@ -34,9 +34,9 @@ an RCU callback in the BPF memory allocator. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cpumask_set_cpu.md b/docs/linux/kfuncs/bpf_cpumask_set_cpu.md index 23e6ec6a..ba742f10 100644 --- a/docs/linux/kfuncs/bpf_cpumask_set_cpu.md +++ b/docs/linux/kfuncs/bpf_cpumask_set_cpu.md @@ -8,13 +8,13 @@ description: "This page documents the 'bpf_cpumask_set_cpu' eBPF kfunc, includin [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/516f4d3397c9e90f4da04f59986c856016269aa1) -Set a bit for a CPU in a BPF cpumask. +Set a bit for a CPU in a BPF CPU-mask. ## Definition -`cpu`: The CPU to be set in the cpumask. +`cpu`: The CPU to be set in the CPU-mask. -`cpumask`: The BPF cpumask in which a bit is being set. +`cpumask`: The BPF CPU-mask in which a bit is being set. `#!c void bpf_cpumask_set_cpu(u32 cpu, struct bpf_cpumask *cpumask)` @@ -30,9 +30,9 @@ Set a bit for a CPU in a BPF cpumask. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cpumask_setall.md b/docs/linux/kfuncs/bpf_cpumask_setall.md index 8783eab8..93890f0c 100644 --- a/docs/linux/kfuncs/bpf_cpumask_setall.md +++ b/docs/linux/kfuncs/bpf_cpumask_setall.md @@ -8,11 +8,11 @@ description: "This page documents the 'bpf_cpumask_setall' eBPF kfunc, including [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/516f4d3397c9e90f4da04f59986c856016269aa1) -Set all of the bits in a BPF cpumask. +Set all of the bits in a BPF CPU-mask. ## Definition -`cpumask`: The BPF cpumask having all of its bits set. +`cpumask`: The BPF CPU-mask having all of its bits set. `#!c void bpf_cpumask_setall(struct bpf_cpumask *cpumask)` @@ -28,9 +28,9 @@ Set all of the bits in a BPF cpumask. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cpumask_subset.md b/docs/linux/kfuncs/bpf_cpumask_subset.md index dc44f6a4..5c2e2adb 100644 --- a/docs/linux/kfuncs/bpf_cpumask_subset.md +++ b/docs/linux/kfuncs/bpf_cpumask_subset.md @@ -8,12 +8,12 @@ description: "This page documents the 'bpf_cpumask_subset' eBPF kfunc, including [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/516f4d3397c9e90f4da04f59986c856016269aa1) -Check if a cpumask is a subset of another. +Check if a CPU-mask is a subset of another. ## Definition -`src1`: The first cpumask being checked as a subset. -`src2`: The second cpumask being checked as a superset. +`src1`: The first CPU-mask being checked as a subset. +`src2`: The second CPU-mask being checked as a superset. Return: * `true` - All of the bits of `src1` are set in `src2`. @@ -35,9 +35,9 @@ Return: The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cpumask_test_and_clear_cpu.md b/docs/linux/kfuncs/bpf_cpumask_test_and_clear_cpu.md index 2d81a57c..0fe75256 100644 --- a/docs/linux/kfuncs/bpf_cpumask_test_and_clear_cpu.md +++ b/docs/linux/kfuncs/bpf_cpumask_test_and_clear_cpu.md @@ -8,16 +8,16 @@ description: "This page documents the 'bpf_cpumask_test_and_clear_cpu' eBPF kfun [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/516f4d3397c9e90f4da04f59986c856016269aa1) -Atomically test and clear a CPU in a BPF cpumask. +Atomically test and clear a CPU in a BPF CPU-mask. ## Definition `cpu`: The CPU being cleared and queried for. -`cpumask`: The BPF cpumask being cleared and queried for containing a CPU. +`cpumask`: The BPF CPU-mask being cleared and queried for containing a CPU. Return: -* `true` - `cpu` is set in the cpumask -* `false` - `cpu` was not set in the cpumask, or `cpu` is invalid. +* `true` - `cpu` is set in the CPU-mask +* `false` - `cpu` was not set in the CPU-mask, or `cpu` is invalid. `#!c bool bpf_cpumask_test_and_clear_cpu(u32 cpu, struct bpf_cpumask *cpumask)` @@ -33,9 +33,9 @@ Return: The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cpumask_test_and_set_cpu.md b/docs/linux/kfuncs/bpf_cpumask_test_and_set_cpu.md index 4ea20951..28d3a21a 100644 --- a/docs/linux/kfuncs/bpf_cpumask_test_and_set_cpu.md +++ b/docs/linux/kfuncs/bpf_cpumask_test_and_set_cpu.md @@ -8,16 +8,16 @@ description: "This page documents the 'bpf_cpumask_test_and_set_cpu' eBPF kfunc, [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/516f4d3397c9e90f4da04f59986c856016269aa1) -Atomically test and set a CPU in a BPF cpumask. +Atomically test and set a CPU in a BPF CPU-mask. ## Definition `cpu`: The CPU being set and queried for. -`cpumask`: The BPF cpumask being set and queried for containing a CPU. +`cpumask`: The BPF CPU-mask being set and queried for containing a CPU. Return: -* `true` - `cpu` is set in the cpumask -* `false` - `cpu` was not set in the cpumask, or `cpu` is invalid. +* `true` - `cpu` is set in the CPU-mask +* `false` - `cpu` was not set in the CPU-mask, or `cpu` is invalid. `#!c bool bpf_cpumask_test_and_set_cpu(u32 cpu, struct bpf_cpumask *cpumask)` @@ -33,9 +33,9 @@ Return: The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cpumask_test_cpu.md b/docs/linux/kfuncs/bpf_cpumask_test_cpu.md index a693133e..12cb9c02 100644 --- a/docs/linux/kfuncs/bpf_cpumask_test_cpu.md +++ b/docs/linux/kfuncs/bpf_cpumask_test_cpu.md @@ -8,17 +8,17 @@ description: "This page documents the 'bpf_cpumask_test_cpu' eBPF kfunc, includi [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/516f4d3397c9e90f4da04f59986c856016269aa1) -Test whether a CPU is set in a cpumask. +Test whether a CPU is set in a CPU-mask. ## Definition `cpu`: The CPU being queried for. -`cpumask`: The cpumask being queried for containing a CPU. +`cpumask`: The CPU-mask being queried for containing a CPU. Return: -* `true` - `cpu` is set in the cpumask -* `false` - `cpu` was not set in the cpumask, or `cpu` is an invalid cpu. +* `true` - `cpu` is set in the CPU-mask +* `false` - `cpu` was not set in the CPU-mask, or `cpu` is an invalid cpu. @@ -35,9 +35,9 @@ Return: The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cpumask_weight.md b/docs/linux/kfuncs/bpf_cpumask_weight.md index 1f7a525e..633bb799 100644 --- a/docs/linux/kfuncs/bpf_cpumask_weight.md +++ b/docs/linux/kfuncs/bpf_cpumask_weight.md @@ -8,13 +8,13 @@ description: "This page documents the 'bpf_cpumask_weight' eBPF kfunc, including [:octicons-tag-24: v6.8](https://github.com/torvalds/linux/commit/a6de18f310a511278c1ff16b96eb2d500eada725) -Return the number of bits in cpumask. +Return the number of bits in CPU-mask. ## Definition -`cpumask`: The cpumask being queried. +`cpumask`: The CPU-mask being queried. -Count the number of set bits in the given cpumask. +Count the number of set bits in the given CPU-mask. `#!c u32 bpf_cpumask_weight(const struct cpumask *cpumask)` @@ -30,9 +30,9 @@ Count the number of set bits in the given cpumask. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_cpumask_xor.md b/docs/linux/kfuncs/bpf_cpumask_xor.md index 1192e8b8..1c1dec12 100644 --- a/docs/linux/kfuncs/bpf_cpumask_xor.md +++ b/docs/linux/kfuncs/bpf_cpumask_xor.md @@ -8,11 +8,11 @@ description: "This page documents the 'bpf_cpumask_xor' eBPF kfunc, including it [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/516f4d3397c9e90f4da04f59986c856016269aa1) -XOR two cpumasks and store the result. +XOR two CPU-masks and store the result. ## Definition -`dst`: The BPF cpumask where the result is being stored. +`dst`: The BPF CPU-mask where the result is being stored. `src1`: The first input. `src2`: The second input. @@ -32,9 +32,9 @@ XOR two cpumasks and store the result. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_crypto_ctx_acquire.md b/docs/linux/kfuncs/bpf_crypto_ctx_acquire.md index 1380822f..6c6fba88 100644 --- a/docs/linux/kfuncs/bpf_crypto_ctx_acquire.md +++ b/docs/linux/kfuncs/bpf_crypto_ctx_acquire.md @@ -43,7 +43,7 @@ This kfunc can be used to acquire a reference to a BPF crypto context that was p The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) ### Example diff --git a/docs/linux/kfuncs/bpf_crypto_ctx_create.md b/docs/linux/kfuncs/bpf_crypto_ctx_create.md index e2ac45ce..c1a103fc 100644 --- a/docs/linux/kfuncs/bpf_crypto_ctx_create.md +++ b/docs/linux/kfuncs/bpf_crypto_ctx_create.md @@ -12,7 +12,7 @@ Create a mutable BPF crypto context. ## Definition -Allocates a crypto context that can be used, acquired, and released by a BPF program. The crypto context returned by this function must either be embedded in a map as a kptr, or freed with [`bpf_crypto_ctx_release`](bpf_crypto_ctx_release.md). As crypto API functions use GFP_KERNEL allocations, this function can only be used in sleepable BPF programs. +Allocates a crypto context that can be used, acquired, and released by a BPF program. The crypto context returned by this function must either be embedded in a map as a kptr, or freed with [`bpf_crypto_ctx_release`](bpf_crypto_ctx_release.md). As crypto API functions use `GFP_KERNEL` allocations, this function can only be used in sleepable BPF programs. `params`: pointer to struct bpf_crypto_params which contains all the details needed to initialise crypto context. @@ -52,7 +52,7 @@ The created context can be stored and shared with network programs via a map con The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) ### Example diff --git a/docs/linux/kfuncs/bpf_crypto_ctx_release.md b/docs/linux/kfuncs/bpf_crypto_ctx_release.md index 3ff0bc73..5ba2cc90 100644 --- a/docs/linux/kfuncs/bpf_crypto_ctx_release.md +++ b/docs/linux/kfuncs/bpf_crypto_ctx_release.md @@ -33,7 +33,7 @@ This kfunc is used to release a reference held on a BPF crypto context previousl The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) ### Example diff --git a/docs/linux/kfuncs/bpf_crypto_decrypt.md b/docs/linux/kfuncs/bpf_crypto_decrypt.md index 36f52308..5d4f61ad 100644 --- a/docs/linux/kfuncs/bpf_crypto_decrypt.md +++ b/docs/linux/kfuncs/bpf_crypto_decrypt.md @@ -39,9 +39,9 @@ This kfunc allows network programs to decrypt network packets using the kernels The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_crypto_encrypt.md b/docs/linux/kfuncs/bpf_crypto_encrypt.md index de5492fb..1203bee0 100644 --- a/docs/linux/kfuncs/bpf_crypto_encrypt.md +++ b/docs/linux/kfuncs/bpf_crypto_encrypt.md @@ -39,9 +39,9 @@ This kfunc allows network programs to encrypt network packets using the kernels The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_ct_change_status.md b/docs/linux/kfuncs/bpf_ct_change_status.md index 0b3fde19..3a994439 100644 --- a/docs/linux/kfuncs/bpf_ct_change_status.md +++ b/docs/linux/kfuncs/bpf_ct_change_status.md @@ -8,12 +8,12 @@ description: "This page documents the 'bpf_ct_change_status' eBPF kfunc, includi [:octicons-tag-24: v6.0](https://github.com/torvalds/linux/commit/ef69aa3a986ef94f01ce8b5b619f550db54432fe) -Change status of inserted nf_conn +Change status of inserted `nf_conn` ## Definition Change the status field of the provided connection tracking entry. -This must be invoked for referenced PTR_TO_BTF_ID to nf_conn. +This must be invoked for referenced `PTR_TO_BTF_ID` to `nf_conn`. **Parameters** @@ -35,10 +35,10 @@ This must be invoked for referenced PTR_TO_BTF_ID to nf_conn. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example -See [bpf_ct_set_nat_info](bpf_ct_set_nat_info.md#example) for an example of how to use this kfunc. +See [`bpf_ct_set_nat_info`](bpf_ct_set_nat_info.md#example) for an example of how to use this kfunc. diff --git a/docs/linux/kfuncs/bpf_ct_change_timeout.md b/docs/linux/kfuncs/bpf_ct_change_timeout.md index 38adb629..589104f9 100644 --- a/docs/linux/kfuncs/bpf_ct_change_timeout.md +++ b/docs/linux/kfuncs/bpf_ct_change_timeout.md @@ -8,12 +8,12 @@ description: "This page documents the 'bpf_ct_change_timeout' eBPF kfunc, includ [:octicons-tag-24: v6.0](https://github.com/torvalds/linux/commit/0b3892364431684e883682b85d008979e08d4ce6) -Change timeout of inserted nf_conn +Change timeout of inserted `nf_conn` ## Definition -Change timeout associated of the inserted or looked up nf_conn. -This helper must be invoked for refcounted pointer to nf_conn. +Change timeout associated of the inserted or looked up `nf_conn`. +This helper must be invoked for refcounted pointer to `nf_conn`. **Parameters** @@ -35,10 +35,10 @@ This helper must be invoked for refcounted pointer to nf_conn. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example -See [bpf_ct_set_nat_info](bpf_ct_set_nat_info.md#example) for an example of how to use this kfunc. +See [`bpf_ct_set_nat_info`](bpf_ct_set_nat_info.md#example) for an example of how to use this kfunc. diff --git a/docs/linux/kfuncs/bpf_ct_insert_entry.md b/docs/linux/kfuncs/bpf_ct_insert_entry.md index 0599f227..8e433289 100644 --- a/docs/linux/kfuncs/bpf_ct_insert_entry.md +++ b/docs/linux/kfuncs/bpf_ct_insert_entry.md @@ -12,11 +12,11 @@ Add the provided entry into a CT map ## Definition -This must be invoked for referenced PTR_TO_BTF_ID. +This must be invoked for referenced `PTR_TO_BTF_ID`. **Parameters** -`nfct__ref`: Pointer to referenced nf_conn___init object, obtained using bpf_xdp_ct_alloc or bpf_skb_ct_alloc. +`nfct__ref`: Pointer to referenced `nf_conn___init` object, obtained using `bpf_xdp_ct_alloc` or `bpf_skb_ct_alloc`. `#!c struct nf_conn *bpf_ct_insert_entry(struct nf_conn___init *nfct_i)` @@ -46,10 +46,10 @@ This must be invoked for referenced PTR_TO_BTF_ID. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example -See [bpf_ct_set_nat_info](bpf_ct_set_nat_info.md#example) for an example of how to use this kfunc. +See [`bpf_ct_set_nat_info`](bpf_ct_set_nat_info.md#example) for an example of how to use this kfunc. diff --git a/docs/linux/kfuncs/bpf_ct_release.md b/docs/linux/kfuncs/bpf_ct_release.md index 7707e588..60a04d8d 100644 --- a/docs/linux/kfuncs/bpf_ct_release.md +++ b/docs/linux/kfuncs/bpf_ct_release.md @@ -8,15 +8,15 @@ description: "This page documents the 'bpf_ct_release' eBPF kfunc, including its [:octicons-tag-24: v5.18](https://github.com/torvalds/linux/commit/b4c2b9593a1c4c3a718370e34af28e817fd5e5c6) -Release acquired nf_conn object +Release acquired `nf_conn` object ## Definition -This must be invoked for referenced PTR_TO_BTF_ID, and the verifier rejects the program if any references remain in the program in all of the explored states. +This must be invoked for referenced `PTR_TO_BTF_ID`, and the verifier rejects the program if any references remain in the program in all of the explored states. **Parameters** -`nf_conn`: Pointer to referenced nf_conn object, obtained using [`bpf_xdp_ct_lookup`](bpf_xdp_ct_lookup.md) or [`bpf_skb_ct_lookup`](bpf_skb_ct_alloc.md). +`nf_conn`: Pointer to referenced `nf_conn` object, obtained using [`bpf_xdp_ct_lookup`](bpf_xdp_ct_lookup.md) or [`bpf_skb_ct_lookup`](bpf_skb_ct_alloc.md). `#!c void bpf_ct_release(struct nf_conn *nfct)` @@ -36,10 +36,10 @@ This must be invoked for referenced PTR_TO_BTF_ID, and the verifier rejects the The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example -See [bpf_ct_set_nat_info](bpf_ct_set_nat_info.md#example) for an example of how to use this kfunc. +See [`bpf_ct_set_nat_info`](bpf_ct_set_nat_info.md#example) for an example of how to use this kfunc. diff --git a/docs/linux/kfuncs/bpf_ct_set_nat_info.md b/docs/linux/kfuncs/bpf_ct_set_nat_info.md index 87ccddce..cee61fc8 100644 --- a/docs/linux/kfuncs/bpf_ct_set_nat_info.md +++ b/docs/linux/kfuncs/bpf_ct_set_nat_info.md @@ -8,15 +8,15 @@ description: "This page documents the 'bpf_ct_set_nat_info' eBPF kfunc, includin [:octicons-tag-24: v6.1](https://github.com/torvalds/linux/commit/0fabd2aa199faeb8754aee94658f2c48ccb2c8c3) -Set source or destination nat address +Set source or destination network address translation address ## Definition -Set source or destination nat address of the newly allocated nf_conn before insertion. This must be invoked for referenced PTR_TO_BTF_ID to nf_conn___init. +Set source or destination address network translation address of the newly allocated `nf_conn` before insertion. This must be invoked for referenced `PTR_TO_BTF_ID` to `nf_conn___init`. **Parameters** -`nfct`: Pointer to referenced nf_conn object, obtained using [`bpf_xdp_ct_alloc`](bpf_xdp_ct_alloc.md) or [`bpf_skb_ct_alloc`](bpf_skb_ct_alloc.md). +`nfct`: Pointer to referenced `nf_conn` object, obtained using [`bpf_xdp_ct_alloc`](bpf_xdp_ct_alloc.md) or [`bpf_skb_ct_alloc`](bpf_skb_ct_alloc.md). `addr`: Nat source/destination address @@ -30,15 +30,15 @@ Set source or destination nat address of the newly allocated nf_conn before inse ## Usage -The bpf_ct_set_nat_info kfunc helper in order to set source and destination nat addresses/ports in a new allocated ct entry not inserted in the connection tracking table yet. +The `bpf_ct_set_nat_info` kfunc helper in order to set source and destination nat addresses/ports in a new allocated connection tracking entry not inserted in the connection tracking table yet. ### Program types The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_ct_set_status.md b/docs/linux/kfuncs/bpf_ct_set_status.md index 8367c3c3..8d0bd7b1 100644 --- a/docs/linux/kfuncs/bpf_ct_set_status.md +++ b/docs/linux/kfuncs/bpf_ct_set_status.md @@ -8,16 +8,16 @@ description: "This page documents the 'bpf_ct_set_status' eBPF kfunc, including [:octicons-tag-24: v6.0](https://github.com/torvalds/linux/commit/ef69aa3a986ef94f01ce8b5b619f550db54432fe) -Set status field of allocated nf_conn +Set status field of allocated `nf_conn` ## Definition -Set the status field of the newly allocated nf_conn before insertion. -This must be invoked for referenced PTR_TO_BTF_ID to nf_conn___init. +Set the status field of the newly allocated `nf_conn` before insertion. +This must be invoked for referenced `PTR_TO_BTF_ID` to `nf_conn___init`. **Parameters** -`nfct`: Pointer to referenced nf_conn object, obtained using [`bpf_xdp_ct_alloc`](bpf_xdp_ct_alloc.md) or [`bpf_skb_ct_alloc`](bpf_skb_ct_alloc.md). +`nfct`: Pointer to referenced `nf_conn` object, obtained using [`bpf_xdp_ct_alloc`](bpf_xdp_ct_alloc.md) or [`bpf_skb_ct_alloc`](bpf_skb_ct_alloc.md). `status`: New status value. @@ -35,10 +35,10 @@ This must be invoked for referenced PTR_TO_BTF_ID to nf_conn___init. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example -See [bpf_ct_set_nat_info](bpf_ct_set_nat_info.md#example) for an example of how to use this kfunc. +See [`bpf_ct_set_nat_info`](bpf_ct_set_nat_info.md#example) for an example of how to use this kfunc. diff --git a/docs/linux/kfuncs/bpf_ct_set_timeout.md b/docs/linux/kfuncs/bpf_ct_set_timeout.md index 885bb070..59028f36 100644 --- a/docs/linux/kfuncs/bpf_ct_set_timeout.md +++ b/docs/linux/kfuncs/bpf_ct_set_timeout.md @@ -8,16 +8,16 @@ description: "This page documents the 'bpf_ct_set_timeout' eBPF kfunc, including [:octicons-tag-24: v6.0](https://github.com/torvalds/linux/commit/0b3892364431684e883682b85d008979e08d4ce6) -Set timeout of allocated nf_conn +Set timeout of allocated `nf_conn` ## Definition -Sets the default timeout of newly allocated nf_conn before insertion. -This helper must be invoked for refcounted pointer to nf_conn___init. +Sets the default timeout of newly allocated `nf_conn` before insertion. +This helper must be invoked for refcounted pointer to `nf_conn___init`. **Parameters** -`nfct`: Pointer to referenced nf_conn object, obtained using [`bpf_xdp_ct_alloc`](bpf_xdp_ct_alloc.md) or [`bpf_skb_ct_alloc`](bpf_skb_ct_alloc.md). +`nfct`: Pointer to referenced `nf_conn` object, obtained using [`bpf_xdp_ct_alloc`](bpf_xdp_ct_alloc.md) or [`bpf_skb_ct_alloc`](bpf_skb_ct_alloc.md). `timeout`: Timeout in msecs. @@ -35,10 +35,10 @@ This helper must be invoked for refcounted pointer to nf_conn___init. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example -See [bpf_ct_set_nat_info](bpf_ct_set_nat_info.md#example) for an example of how to use this kfunc. +See [`bpf_ct_set_nat_info`](bpf_ct_set_nat_info.md#example) for an example of how to use this kfunc. diff --git a/docs/linux/kfuncs/bpf_dynptr_adjust.md b/docs/linux/kfuncs/bpf_dynptr_adjust.md index 75a54cc7..bd9cdd79 100644 --- a/docs/linux/kfuncs/bpf_dynptr_adjust.md +++ b/docs/linux/kfuncs/bpf_dynptr_adjust.md @@ -27,22 +27,22 @@ Adjusting the dynptr interval may be useful in certain situations. For example, The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_dynptr_clone.md b/docs/linux/kfuncs/bpf_dynptr_clone.md index c2711450..808eb97a 100644 --- a/docs/linux/kfuncs/bpf_dynptr_clone.md +++ b/docs/linux/kfuncs/bpf_dynptr_clone.md @@ -17,9 +17,9 @@ The cloned dynptr will point to the same data as its parent dynptr, with the sam Any writes to a dynptr will be reflected across all instances (by 'instance', this means any dynptrs that point to the same underlying data). !!! note - data slice and dynptr invalidations will affect all instances as well. For example, if bpf_dynptr_write() is called on an skb-type dynptr, all data slices of dynptr instances to that skb will be invalidated as well (eg data slices of any clones, parents, grandparents, ...). Another example is if a ringbuf dynptr is submitted, any instance of that dynptr will be invalidated. + data slice and dynptr invalidation will affect all instances as well. For example, if bpf_dynptr_write() is called on an skb-type dynptr, all data slices of dynptr instances to that skb will be invalidated as well (for example data slices of any clones, parents, grandparents, ...). Another example is if a ring buffer dynptr is submitted, any instance of that dynptr will be invalidated. -Changing the view of the dynptr (eg advancing the offset or trimming the size) will only affect that dynptr and not affect any other instances. +Changing the view of the dynptr (for example advancing the offset or trimming the size) will only affect that dynptr and not affect any other instances. `#!c int bpf_dynptr_clone(struct bpf_dynptr_kern *ptr, struct bpf_dynptr_kern *clone__uninit)` @@ -34,22 +34,22 @@ One example use case where cloning may be helpful is for hashing or iterating th The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_dynptr_from_skb.md b/docs/linux/kfuncs/bpf_dynptr_from_skb.md index fff94acb..fad462e5 100644 --- a/docs/linux/kfuncs/bpf_dynptr_from_skb.md +++ b/docs/linux/kfuncs/bpf_dynptr_from_skb.md @@ -12,7 +12,7 @@ Get dynptrs whose underlying pointer points to a skb. ## Definition -For bpf prog types that don't support writes on skb data, the dynptr is read-only ([`bpf_dynptr_write()`](../helper-function/bpf_dynptr_write.md) will return an error) +For bpf program types that don't support writes on skb data, the dynptr is read-only ([`bpf_dynptr_write()`](../helper-function/bpf_dynptr_write.md) will return an error) For reads and writes through the [`bpf_dynptr_read()`](../helper-function/bpf_dynptr_read.md) and [`bpf_dynptr_write()`](../helper-function/bpf_dynptr_write.md) interfaces, reading and writing from/to data in the head as well as from/to non-linear paged buffers is supported. Data slices through the bpf_dynptr_data API are not supported; instead [`bpf_dynptr_slice()`](bpf_dynptr_slice.md) and [`bpf_dynptr_slice_rdwr()`](bpf_dynptr_slice_rdwr.md) should be used. @@ -22,28 +22,28 @@ For reads and writes through the [`bpf_dynptr_read()`](../helper-function/bpf_dy ## Usage -The dynptr acts on skb data. skb dynptrs have two main benefits. One is that they allow operations on sizes that are not statically known at compile-time (eg variable-sized accesses). Another is that parsing the packet data through dynptrs (instead of through direct access of skb->data and skb->data_end) can be more ergonomic and less brittle (eg does not need manual if checking for being within bounds of data_end). +The dynptr acts on skb data. skb dynptrs have two main benefits. One is that they allow operations on sizes that are not statically known at compile-time (for example variable-sized accesses). Another is that parsing the packet data through dynptrs (instead of through direct access of skb->data and skb->data_end) can be more ergonomic and less brittle (does not need manual if checking for being within bounds of data_end). ### Program types The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) ### Example -??? example "L4LB noinline dynptr" +??? example "L4LB no inline dynptr" ```c // SPDX-License-Identifier: GPL-2.0 // Copyright (c) 2017 Facebook diff --git a/docs/linux/kfuncs/bpf_dynptr_from_xdp.md b/docs/linux/kfuncs/bpf_dynptr_from_xdp.md index e536e383..e7d10096 100644 --- a/docs/linux/kfuncs/bpf_dynptr_from_xdp.md +++ b/docs/linux/kfuncs/bpf_dynptr_from_xdp.md @@ -20,14 +20,14 @@ For reads and writes on the dynptr, this includes reading/writing from/to and ac ## Usage -The dynptr acts on xdp data. xdp dynptrs have two main benefits. One is that they allow operations on sizes that are not statically known at compile-time (eg variable-sized accesses). Another is that parsing the packet data through dynptrs (instead of through direct access of xdp->data and xdp->data_end) can be more ergonomic and less brittle (eg does not need manual if checking for being within bounds of data_end). +The dynptr acts on xdp data. xdp dynptrs have two main benefits. One is that they allow operations on sizes that are not statically known at compile-time (for example variable-sized accesses). Another is that parsing the packet data through dynptrs (instead of through direct access of xdp->data and xdp->data_end) can be more ergonomic and less brittle (for example does not need manual if checking for being within bounds of data_end). ### Program types The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example @@ -150,7 +150,7 @@ The following program types can make use of this kfunc: } ``` -??? example "Tunnel encap with dynamic point" +??? example "Tunnel encapsulate with dynamic point" ```c // SPDX-License-Identifier: GPL-2.0 /* Copyright (c) 2022 Meta */ diff --git a/docs/linux/kfuncs/bpf_dynptr_is_null.md b/docs/linux/kfuncs/bpf_dynptr_is_null.md index 62665f0f..90300691 100644 --- a/docs/linux/kfuncs/bpf_dynptr_is_null.md +++ b/docs/linux/kfuncs/bpf_dynptr_is_null.md @@ -12,7 +12,7 @@ Returns true if the dynptr is null / invalid. ## Definition -Returns true if the dynptr is null / invalid (determined by whether ptr->data is NULL), else false if +Returns true if the dynptr is `null` / invalid (determined by whether `ptr->data` is `NULL`), else false if the dynptr is a valid dynptr. @@ -29,22 +29,22 @@ the dynptr is a valid dynptr. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_dynptr_is_rdonly.md b/docs/linux/kfuncs/bpf_dynptr_is_rdonly.md index f445cb4e..9a18f94f 100644 --- a/docs/linux/kfuncs/bpf_dynptr_is_rdonly.md +++ b/docs/linux/kfuncs/bpf_dynptr_is_rdonly.md @@ -12,7 +12,7 @@ Returns true if the dynptr is read-only ## Definition -bpf_dynptr_is_rdonly returns true if the dynptr is read-only, else false if the dynptr is read-writable. If the dynptr is null / invalid, false is returned by default. +`bpf_dynptr_is_rdonly` returns true if the dynptr is read-only, else false if the dynptr is read-writable. If the dynptr is null / invalid, false is returned by default. `#!c bool bpf_dynptr_is_rdonly(struct bpf_dynptr_kern *ptr)` @@ -28,22 +28,22 @@ bpf_dynptr_is_rdonly returns true if the dynptr is read-only, else false if the The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_dynptr_size.md b/docs/linux/kfuncs/bpf_dynptr_size.md index 75264b4e..b373b54c 100644 --- a/docs/linux/kfuncs/bpf_dynptr_size.md +++ b/docs/linux/kfuncs/bpf_dynptr_size.md @@ -8,7 +8,7 @@ description: "This page documents the 'bpf_dynptr_size' eBPF kfunc, including it [:octicons-tag-24: v6.5](https://github.com/torvalds/linux/commit/26662d7347a058ca497792c4b22ac91cc415cbf6) -Returns the number of useable bytes in a dynptr. +Returns the number of usable bytes in a dynptr. ## Definition @@ -26,22 +26,22 @@ Returns the number of useable bytes in a dynptr. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_dynptr_slice.md b/docs/linux/kfuncs/bpf_dynptr_slice.md index 4ab418b7..348951dc 100644 --- a/docs/linux/kfuncs/bpf_dynptr_slice.md +++ b/docs/linux/kfuncs/bpf_dynptr_slice.md @@ -8,11 +8,11 @@ description: "This page documents the 'bpf_dynptr_slice' eBPF kfunc, including i [:octicons-tag-24: v6.4](https://github.com/torvalds/linux/commit/b5964b968ac64c2ec2debee7518499113b27c34e) -Get a pointer to dynptr data up to len bytes for read only access. +Get a pointer to dynptr data up to `len` bytes for read only access. ## Definition -If the dynptr doesn't have continuous data up to len bytes, return NULL. +If the dynptr doesn't have continuous data up to `len` bytes, return NULL. `#!c void *bpf_dynptr_slice(const struct bpf_dynptr_kern *ptr, u32 offset, void *buffer__opt, u32 buffer__szk)` @@ -32,22 +32,22 @@ If the dynptr doesn't have continuous data up to len bytes, return NULL. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_dynptr_slice_rdwr.md b/docs/linux/kfuncs/bpf_dynptr_slice_rdwr.md index 16541d94..7c923d7c 100644 --- a/docs/linux/kfuncs/bpf_dynptr_slice_rdwr.md +++ b/docs/linux/kfuncs/bpf_dynptr_slice_rdwr.md @@ -8,11 +8,11 @@ description: "This page documents the 'bpf_dynptr_slice_rdwr' eBPF kfunc, includ [:octicons-tag-24: v6.4](https://github.com/torvalds/linux/commit/b5964b968ac64c2ec2debee7518499113b27c34e) -Get a pointer to dynptr data up to len bytes for read write access. +Get a pointer to dynptr data up to `len` bytes for read write access. ## Definition -If the dynptr doesn't have continuous data up to len bytes, or the dynptr is read only, return NULL. +If the dynptr doesn't have continuous data up to `len` bytes, or the dynptr is read only, return `NULL`. `#!c void *bpf_dynptr_slice_rdwr(const struct bpf_dynptr_kern *ptr, u32 offset, void *buffer__opt, u32 buffer__szk)` @@ -32,22 +32,22 @@ If the dynptr doesn't have continuous data up to len bytes, or the dynptr is rea The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_get_file_xattr.md b/docs/linux/kfuncs/bpf_get_file_xattr.md index 169edc9a..1f34362c 100644 --- a/docs/linux/kfuncs/bpf_get_file_xattr.md +++ b/docs/linux/kfuncs/bpf_get_file_xattr.md @@ -8,11 +8,11 @@ description: "This page documents the 'bpf_get_file_xattr' eBPF kfunc, including [:octicons-tag-24: v6.8](https://github.com/torvalds/linux/commit/ac9c05e0e453cfcab2866f6d28f257590e4f66e5) -Get xattr of a file +Get extended attributed of a file ## Definition -Get xattr `name__str` of `file` and store the output in `value_ptr`. +Get extended attributed `name__str` of `file` and store the output in `value_ptr`. For security reasons, only `name__str` with prefix "user." is allowed. @@ -37,7 +37,7 @@ For security reasons, only `name__str` with prefix "user." is allowed. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) ### Example diff --git a/docs/linux/kfuncs/bpf_get_fsverity_digest.md b/docs/linux/kfuncs/bpf_get_fsverity_digest.md index 3c781610..615d30d4 100644 --- a/docs/linux/kfuncs/bpf_get_fsverity_digest.md +++ b/docs/linux/kfuncs/bpf_get_fsverity_digest.md @@ -8,7 +8,7 @@ description: "This page documents the 'bpf_get_fsverity_digest' eBPF kfunc, incl [:octicons-tag-24: v6.8](https://github.com/torvalds/linux/commit/67814c00de3161181cddd06c77aeaf86ac4cc584) -Get the fs-verity digest of a file. +Get the `fs-verity` digest of a file. ## Definition @@ -26,7 +26,7 @@ Get the fs-verity digest of a file. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) ### Example diff --git a/docs/linux/kfuncs/bpf_iter_css_destroy.md b/docs/linux/kfuncs/bpf_iter_css_destroy.md index f8c73a10..de0afa16 100644 --- a/docs/linux/kfuncs/bpf_iter_css_destroy.md +++ b/docs/linux/kfuncs/bpf_iter_css_destroy.md @@ -8,7 +8,7 @@ description: "This page documents the 'bpf_iter_css_destroy' eBPF kfunc, includi [:octicons-tag-24: v6.7](https://github.com/torvalds/linux/commit/7251d0905e7518bcb990c8e9a3615b1bb23c78f2) -Destroy a cgroup iterator. +Destroy a cGroup iterator. ## Definition @@ -25,22 +25,22 @@ See [`bpf_iter_css_new`](bpf_iter_css_new.md#usage) for usage details. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_iter_css_new.md b/docs/linux/kfuncs/bpf_iter_css_new.md index 22290118..00143b86 100644 --- a/docs/linux/kfuncs/bpf_iter_css_new.md +++ b/docs/linux/kfuncs/bpf_iter_css_new.md @@ -8,11 +8,11 @@ description: "This page documents the 'bpf_iter_css_new' eBPF kfunc, including i [:octicons-tag-24: v6.7](https://github.com/torvalds/linux/commit/7251d0905e7518bcb990c8e9a3615b1bb23c78f2) -Initialize a cgroup iterator. +Initialize a cGroup iterator. ## Definition -`it` should be a stack allocated `struct bpf_iter_css` that is used to iterate over cgroups. The `start` parameter is the cgroup subsystem state to start the iteration from. The `flags` parameter is a bitmask of flags that control the behavior of the iterator. The following flags are supported: +`it` should be a stack allocated `struct bpf_iter_css` that is used to iterate over cGroups. The `start` parameter is the cGroup subsystem state to start the iteration from. The `flags` parameter is a bitmask of flags that control the behavior of the iterator. The following flags are supported: - `BPF_CGROUP_ITER_DESCENDANTS_PRE`: Walk descendants of the cgroup in pre-order. - `BPF_CGROUP_ITER_DESCENDANTS_POST`: Walk descendants of the cgroup in post-order. @@ -38,22 +38,22 @@ Initialize a cgroup iterator. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_iter_css_next.md b/docs/linux/kfuncs/bpf_iter_css_next.md index 8a006e4f..9e23af78 100644 --- a/docs/linux/kfuncs/bpf_iter_css_next.md +++ b/docs/linux/kfuncs/bpf_iter_css_next.md @@ -8,7 +8,7 @@ description: "This page documents the 'bpf_iter_css_next' eBPF kfunc, including [:octicons-tag-24: v6.7](https://github.com/torvalds/linux/commit/7251d0905e7518bcb990c8e9a3615b1bb23c78f2) -Iterate over cgroup subsystem states. +Iterate over cGroup subsystem states. ## Definition @@ -22,31 +22,31 @@ Iterate over cgroup subsystem states. ## Usage -See [bpf_iter_css_new](bpf_iter_css_new.md#usage) for usage details. +See [`bpf_iter_css_new`](bpf_iter_css_new.md#usage) for usage details. ### Program types The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example -See [bpf_iter_css_new](bpf_iter_css_new.md#example) an example. +See [`bpf_iter_css_new`](bpf_iter_css_new.md#example) an example. diff --git a/docs/linux/kfuncs/bpf_iter_css_task_destroy.md b/docs/linux/kfuncs/bpf_iter_css_task_destroy.md index e3e2efa8..fa915c5f 100644 --- a/docs/linux/kfuncs/bpf_iter_css_task_destroy.md +++ b/docs/linux/kfuncs/bpf_iter_css_task_destroy.md @@ -24,22 +24,22 @@ description: "This page documents the 'bpf_iter_css_task_destroy' eBPF kfunc, in The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_iter_css_task_new.md b/docs/linux/kfuncs/bpf_iter_css_task_new.md index 3009f58c..0e66887f 100644 --- a/docs/linux/kfuncs/bpf_iter_css_task_new.md +++ b/docs/linux/kfuncs/bpf_iter_css_task_new.md @@ -8,11 +8,11 @@ description: "This page documents the 'bpf_iter_css_task_new' eBPF kfunc, includ [:octicons-tag-24: v6.7](https://github.com/torvalds/linux/commit/9c66dc94b62aef23300f05f63404afb8990920b4) -Initialize a task iterator for a cgroup. +Initialize a task iterator for a cGroup. ## Definition -`it` should be a stack allocated `struct bpf_iter_css_task` that is used to iterate over tasks in a cgroup. The `css` parameter is the cgroup subsystem state to iterate over. The `flags` parameter is a bitmask of flags that control the behavior of the iterator. The following flags are supported: +`it` should be a stack allocated `struct bpf_iter_css_task` that is used to iterate over tasks in a cGroup. The `css` parameter is the cGroup subsystem state to iterate over. The `flags` parameter is a bitmask of flags that control the behavior of the iterator. The following flags are supported: - `0`: Walk all tasks in the domain. - `CSS_TASK_ITER_PROCS`: Walk only threadgroup leaders. @@ -32,22 +32,22 @@ Initialize a task iterator for a cgroup. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_iter_css_task_next.md b/docs/linux/kfuncs/bpf_iter_css_task_next.md index 64138a6f..5ca4eb63 100644 --- a/docs/linux/kfuncs/bpf_iter_css_task_next.md +++ b/docs/linux/kfuncs/bpf_iter_css_task_next.md @@ -29,22 +29,22 @@ See [`bpf_iter_css_task_new`](bpf_iter_css_task_new.md#usage) for usage details. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_iter_num_destroy.md b/docs/linux/kfuncs/bpf_iter_num_destroy.md index bc65820e..59a54bbe 100644 --- a/docs/linux/kfuncs/bpf_iter_num_destroy.md +++ b/docs/linux/kfuncs/bpf_iter_num_destroy.md @@ -27,22 +27,22 @@ See [`bpf_iter_num_new`](bpf_iter_num_new.md#usage) for usage details. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_iter_num_new.md b/docs/linux/kfuncs/bpf_iter_num_new.md index a2d3baad..33831379 100644 --- a/docs/linux/kfuncs/bpf_iter_num_new.md +++ b/docs/linux/kfuncs/bpf_iter_num_new.md @@ -14,7 +14,7 @@ Initialize a new number iterator. This kfunc initializes the iterator `it`, priming it to do a numeric iteration from `start` to `end` where `start <= i < end`. -If any of the input arguments are invalid, constructor should make sure to still initialize it such that subsequent bpf_iter_num_next() calls will return NULL. I.e., on error, return error and construct empty iterator. +If any of the input arguments are invalid, constructor should make sure to still initialize it such that subsequent `bpf_iter_num_next()` calls will return `NULL`. I.e., on error, return error and construct empty iterator. `#!c int bpf_iter_num_new(struct bpf_iter_num *it, int start, int end)` @@ -33,22 +33,22 @@ The advantages over the [`bpf_loop`](../helper-function/bpf_loop.md) is that we The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_iter_num_next.md b/docs/linux/kfuncs/bpf_iter_num_next.md index 99c1864a..75a32b2b 100644 --- a/docs/linux/kfuncs/bpf_iter_num_next.md +++ b/docs/linux/kfuncs/bpf_iter_num_next.md @@ -24,32 +24,32 @@ This kfunc returns the next number from the iterator `it`. If the iterator is ex ## Usage -See [bpf_iter_num_new](bpf_iter_num_new.md#usage) for usage details. +See [``bpf_iter_num_new``](bpf_iter_num_new.md#usage) for usage details. ### Program types The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example -See [bpf_iter_num_new](bpf_iter_num_new.md#example) for examples. +See [``bpf_iter_num_new``](bpf_iter_num_new.md#example) for examples. diff --git a/docs/linux/kfuncs/bpf_iter_task_destroy.md b/docs/linux/kfuncs/bpf_iter_task_destroy.md index db96322b..5edba09a 100644 --- a/docs/linux/kfuncs/bpf_iter_task_destroy.md +++ b/docs/linux/kfuncs/bpf_iter_task_destroy.md @@ -26,22 +26,22 @@ Destroy a task iterator. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_iter_task_new.md b/docs/linux/kfuncs/bpf_iter_task_new.md index 23426e76..5f27a2d8 100644 --- a/docs/linux/kfuncs/bpf_iter_task_new.md +++ b/docs/linux/kfuncs/bpf_iter_task_new.md @@ -38,22 +38,22 @@ Initialize a task iterator. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_iter_task_next.md b/docs/linux/kfuncs/bpf_iter_task_next.md index 7c1c35d0..0437c3e0 100644 --- a/docs/linux/kfuncs/bpf_iter_task_next.md +++ b/docs/linux/kfuncs/bpf_iter_task_next.md @@ -30,22 +30,22 @@ Iterate over tasks (processes or threads). The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_iter_task_vma_destroy.md b/docs/linux/kfuncs/bpf_iter_task_vma_destroy.md index 4f3ea7b1..fa1cf368 100644 --- a/docs/linux/kfuncs/bpf_iter_task_vma_destroy.md +++ b/docs/linux/kfuncs/bpf_iter_task_vma_destroy.md @@ -8,7 +8,7 @@ description: "This page documents the 'bpf_iter_task_vma_destroy' eBPF kfunc, in [:octicons-tag-24: v6.7](https://github.com/torvalds/linux/commit/4ac4546821584736798aaa9e97da9f6eaf689ea3) -Destroy the task vma iterator. +Destroy the task virtual memory area iterator. ## Definition @@ -18,31 +18,31 @@ Destroy the task vma iterator. ## Usage -See [bpf_iter_task_vma_new](bpf_iter_task_vma_new.md#usage) for usage details. +See [`bpf_iter_task_vma_new`](bpf_iter_task_vma_new.md#usage) for usage details. ### Program types The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example -See [bpf_iter_task_vma_new](bpf_iter_task_vma_new.md#example) for examples. +See [`bpf_iter_task_vma_new`](bpf_iter_task_vma_new.md#example) for examples. diff --git a/docs/linux/kfuncs/bpf_iter_task_vma_new.md b/docs/linux/kfuncs/bpf_iter_task_vma_new.md index 0f317d75..5a5c8d6c 100644 --- a/docs/linux/kfuncs/bpf_iter_task_vma_new.md +++ b/docs/linux/kfuncs/bpf_iter_task_vma_new.md @@ -8,7 +8,7 @@ description: "This page documents the 'bpf_iter_task_vma_new' eBPF kfunc, includ [:octicons-tag-24: v6.7](https://github.com/torvalds/linux/commit/4ac4546821584736798aaa9e97da9f6eaf689ea3) -Create a new task vma iterator. +Create a new task virtual memory area iterator. ## Definition @@ -26,22 +26,22 @@ Create a new task vma iterator. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_iter_task_vma_next.md b/docs/linux/kfuncs/bpf_iter_task_vma_next.md index 5a471435..ab02ed14 100644 --- a/docs/linux/kfuncs/bpf_iter_task_vma_next.md +++ b/docs/linux/kfuncs/bpf_iter_task_vma_next.md @@ -8,7 +8,7 @@ description: "This page documents the 'bpf_iter_task_vma_next' eBPF kfunc, inclu [:octicons-tag-24: v6.7](https://github.com/torvalds/linux/commit/4ac4546821584736798aaa9e97da9f6eaf689ea3) -Get the next vma from the iterator. +Get the next virtual memory area from the iterator. ## Definition @@ -22,31 +22,31 @@ Get the next vma from the iterator. ## Usage -See [bpf_iter_task_vma_new](bpf_iter_task_vma_new.md#usage) for usage details. +See [`bpf_iter_task_vma_new`](bpf_iter_task_vma_new.md#usage) for usage details. ### Program types The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example -See [bpf_iter_task_vma_new](bpf_iter_task_vma_new.md#example) for examples. +See [`bpf_iter_task_vma_new`](bpf_iter_task_vma_new.md#example) for examples. diff --git a/docs/linux/kfuncs/bpf_key_put.md b/docs/linux/kfuncs/bpf_key_put.md index 9df8b8be..33b520b5 100644 --- a/docs/linux/kfuncs/bpf_key_put.md +++ b/docs/linux/kfuncs/bpf_key_put.md @@ -32,7 +32,7 @@ Decrement the reference count of the key inside `bkey`, if the pointer is valid, The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_list_pop_back.md b/docs/linux/kfuncs/bpf_list_pop_back.md index a8a61fc1..0a272812 100644 --- a/docs/linux/kfuncs/bpf_list_pop_back.md +++ b/docs/linux/kfuncs/bpf_list_pop_back.md @@ -39,11 +39,11 @@ Pointer to bpf_list_node of deleted entry, or NULL if list is empty. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_list_pop_front.md b/docs/linux/kfuncs/bpf_list_pop_front.md index 18973ef6..22a8a4e6 100644 --- a/docs/linux/kfuncs/bpf_list_pop_front.md +++ b/docs/linux/kfuncs/bpf_list_pop_front.md @@ -40,11 +40,11 @@ Pointer to bpf_list_node of deleted entry, or NULL if list is empty. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_list_push_back_impl.md b/docs/linux/kfuncs/bpf_list_push_back_impl.md index 8630395f..d5d42cd3 100644 --- a/docs/linux/kfuncs/bpf_list_push_back_impl.md +++ b/docs/linux/kfuncs/bpf_list_push_back_impl.md @@ -33,11 +33,11 @@ The `meta` and `off` parameters are rewritten by the verifier, no need for BPF p The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_list_push_front_impl.md b/docs/linux/kfuncs/bpf_list_push_front_impl.md index e7b574d0..26fe2394 100644 --- a/docs/linux/kfuncs/bpf_list_push_front_impl.md +++ b/docs/linux/kfuncs/bpf_list_push_front_impl.md @@ -33,11 +33,11 @@ The `meta` and `off` parameters are rewritten by the verifier, no need for BPF p The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_lookup_system_key.md b/docs/linux/kfuncs/bpf_lookup_system_key.md index d81bf455..b3f58852 100644 --- a/docs/linux/kfuncs/bpf_lookup_system_key.md +++ b/docs/linux/kfuncs/bpf_lookup_system_key.md @@ -56,7 +56,7 @@ a bpf_key pointer with an invalid key pointer set from the pre-determined ID on The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_lookup_user_key.md b/docs/linux/kfuncs/bpf_lookup_user_key.md index fd37bf74..fff23c07 100644 --- a/docs/linux/kfuncs/bpf_lookup_user_key.md +++ b/docs/linux/kfuncs/bpf_lookup_user_key.md @@ -53,7 +53,7 @@ a bpf_key pointer with a valid key pointer if the key is found, a NULL pointer o The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_map_sum_elem_count.md b/docs/linux/kfuncs/bpf_map_sum_elem_count.md index 0cc5ad39..b98665a7 100644 --- a/docs/linux/kfuncs/bpf_map_sum_elem_count.md +++ b/docs/linux/kfuncs/bpf_map_sum_elem_count.md @@ -8,11 +8,11 @@ description: "This page documents the 'bpf_map_sum_elem_count' eBPF kfunc, inclu [:octicons-tag-24: v6.6](https://github.com/torvalds/linux/commit/803370d3d37579e080e8c59f2360a072d0e45aff) -Get the sum of a map per-cpu element counters. +Get the sum of a map per-CPU element counters. ## Definition -Get the sum of a map per-cpu element counters. If a map doesn't implement the counter, then the +Get the sum of a map per-CPU element counters. If a map doesn't implement the counter, then the function will always return 0. @@ -29,22 +29,22 @@ function will always return 0. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_obj_drop_impl.md b/docs/linux/kfuncs/bpf_obj_drop_impl.md index 56141ea1..06aad288 100644 --- a/docs/linux/kfuncs/bpf_obj_drop_impl.md +++ b/docs/linux/kfuncs/bpf_obj_drop_impl.md @@ -35,11 +35,11 @@ program to set it. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_obj_new_impl.md b/docs/linux/kfuncs/bpf_obj_new_impl.md index beb10c2f..d50e7e70 100644 --- a/docs/linux/kfuncs/bpf_obj_new_impl.md +++ b/docs/linux/kfuncs/bpf_obj_new_impl.md @@ -48,11 +48,11 @@ A pointer to an object of the type corresponding to the passed in `local_type_id The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_percpu_obj_drop_impl.md b/docs/linux/kfuncs/bpf_percpu_obj_drop_impl.md index 98b4fd0a..32e8a44d 100644 --- a/docs/linux/kfuncs/bpf_percpu_obj_drop_impl.md +++ b/docs/linux/kfuncs/bpf_percpu_obj_drop_impl.md @@ -8,7 +8,7 @@ description: "This page documents the 'bpf_percpu_obj_drop_impl' eBPF kfunc, inc [:octicons-tag-24: v6.7](https://github.com/torvalds/linux/commit/36d8bdf75a93190e5669b9d1d95994e13e15ba1d) -Free an allocated percpu object. +Free an allocated per-CPU object. ## Definition @@ -34,11 +34,11 @@ The `meta` parameter is rewritten by the verifier, no need for BPF program to se The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_percpu_obj_new_impl.md b/docs/linux/kfuncs/bpf_percpu_obj_new_impl.md index f059b61f..b14a22de 100644 --- a/docs/linux/kfuncs/bpf_percpu_obj_new_impl.md +++ b/docs/linux/kfuncs/bpf_percpu_obj_new_impl.md @@ -8,17 +8,17 @@ description: "This page documents the 'bpf_percpu_obj_new_impl' eBPF kfunc, incl [:octicons-tag-24: v6.7](https://github.com/torvalds/linux/commit/36d8bdf75a93190e5669b9d1d95994e13e15ba1d) -Allocates a percpu object. +Allocates a pre-CPU object. ## Definition -Allocates a percpu object of the type represented by `local_type_id` in program BTF. User may use the bpf_core_type_id_local macro to pass the type ID of a struct in program BTF. +Allocates a pre-CPU object of the type represented by `local_type_id` in program BTF. User may use the bpf_core_type_id_local macro to pass the type ID of a struct in program BTF. The `local_type_id` parameter must be a known constant. The 'meta' parameter is rewritten by the verifier, no need for BPF program to set it. **Returns** -A pointer to a percpu object of the type corresponding to the passed in `local_type_id`, or NULL on failure. +A pointer to a pre-CPU object of the type corresponding to the passed in `local_type_id`, or NULL on failure. `#!c void *bpf_percpu_obj_new_impl(u64 local_type_id__k, void *meta__ign)` @@ -44,11 +44,11 @@ A pointer to a percpu object of the type corresponding to the passed in `local_t The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_preempt_disable.md b/docs/linux/kfuncs/bpf_preempt_disable.md index f2769a26..7378f3ca 100644 --- a/docs/linux/kfuncs/bpf_preempt_disable.md +++ b/docs/linux/kfuncs/bpf_preempt_disable.md @@ -27,22 +27,22 @@ Global functions are disallowed from being called in non-preemptible regions. St The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_preempt_enable.md b/docs/linux/kfuncs/bpf_preempt_enable.md index 54d5bac1..560050bc 100644 --- a/docs/linux/kfuncs/bpf_preempt_enable.md +++ b/docs/linux/kfuncs/bpf_preempt_enable.md @@ -8,7 +8,7 @@ description: "This page documents the 'bpf_preempt_enable' eBPF kfunc, including [:octicons-tag-24: v6.10](https://github.com/torvalds/linux/commit/fc7566ad0a826cdc8886c5dbbb39ce72a0dc6333) -Eanble preemption in eBPF programs. +Enable preemption in eBPF programs. ## Definition @@ -25,22 +25,22 @@ This kfunc re-enables preemption in BPF programs. Nesting is allowed. See [`bpf_ The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_rbtree_add_impl.md b/docs/linux/kfuncs/bpf_rbtree_add_impl.md index 22283206..e610131a 100644 --- a/docs/linux/kfuncs/bpf_rbtree_add_impl.md +++ b/docs/linux/kfuncs/bpf_rbtree_add_impl.md @@ -8,11 +8,11 @@ description: "This page documents the 'bpf_rbtree_add_impl' eBPF kfunc, includin [:octicons-tag-24: v6.4](https://github.com/torvalds/linux/commit/d2dcc67df910dd85253a701b6a5b747f955d28f5) -Add 'node' to rbtree with root 'root' using comparator 'less' +Add `node` to red-black-tree with root `root` using comparator `less` ## Definition -The 'meta' and 'off' parameters are rewritten by the verifier, no need for BPF programs to set them +The `meta` and `off` parameters are rewritten by the verifier, no need for BPF programs to set them **Returns** @@ -33,11 +33,11 @@ The 'meta' and 'off' parameters are rewritten by the verifier, no need for BPF p The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_rbtree_first.md b/docs/linux/kfuncs/bpf_rbtree_first.md index 4458d6c4..0cacd293 100644 --- a/docs/linux/kfuncs/bpf_rbtree_first.md +++ b/docs/linux/kfuncs/bpf_rbtree_first.md @@ -14,7 +14,7 @@ Return the first (leftmost) node in input tree **Returns** -Pointer to the node, which is _not_ removed from the tree. If the tree contains no nodes, returns NULL. +Pointer to the node, which is _not_ removed from the tree. If the tree contains no nodes, returns `NULL`. `#!c struct bpf_rb_node *bpf_rbtree_first(struct bpf_rb_root *root)` @@ -34,11 +34,11 @@ Pointer to the node, which is _not_ removed from the tree. If the tree contains The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_rbtree_remove.md b/docs/linux/kfuncs/bpf_rbtree_remove.md index e4434e59..2ac4ff9d 100644 --- a/docs/linux/kfuncs/bpf_rbtree_remove.md +++ b/docs/linux/kfuncs/bpf_rbtree_remove.md @@ -8,13 +8,13 @@ description: "This page documents the 'bpf_rbtree_remove' eBPF kfunc, including [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/bd1279ae8a691d7ec75852c6d0a22139afb034a4) -Remove 'node' from rbtree with root 'root' +Remove `node` from red-black-tree with root `root` ## Definition **Returns** -Pointer to the removed node, or NULL if 'root' didn't contain 'node' +Pointer to the removed node, or `NULL` if `root` didn't contain `node` `#!c struct bpf_rb_node *bpf_rbtree_remove(struct bpf_rb_root *root, struct bpf_rb_node *node)` @@ -40,11 +40,11 @@ Pointer to the removed node, or NULL if 'root' didn't contain 'node' The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_rcu_read_lock.md b/docs/linux/kfuncs/bpf_rcu_read_lock.md index 345f92fc..66e25de3 100644 --- a/docs/linux/kfuncs/bpf_rcu_read_lock.md +++ b/docs/linux/kfuncs/bpf_rcu_read_lock.md @@ -13,8 +13,8 @@ description: "This page documents the 'bpf_rcu_read_lock' eBPF kfunc, including This kfunc is used to define a RCU read lock region in the BPF program. The end of such a region is marked by [`bpf_rcu_read_unlock`](bpf_rcu_read_unlock.md) -The current implementation does not support nested rcu read lock -region in the prog. +The current implementation does not support nested RCU read lock +region in the program. `#!c void bpf_rcu_read_lock()` @@ -31,18 +31,18 @@ region in the prog. }; ``` -Let us say prog does `task = bpf_get_current_task_btf()` to get a +Let us say the program executes `task = bpf_get_current_task_btf()` to get a `task` pointer. The basic rules are: - '`real_parent = task->real_parent` should be inside `bpf_rcu_read_lock` region. This is to simulate `rcu_dereference()` operation. The `real_parent` is marked as `MEM_RCU` only if (1). `task->real_parent` is - inside `bpf_rcu_read_lock` region, and (2). task is a trusted ptr. So - MEM_RCU marked ptr can be 'trusted' inside the `bpf_rcu_read_lock` region. + inside `bpf_rcu_read_lock` region, and (2). task is a `trusted_ptr`. So + `MEM_RCU` marked pointer can be "trusted" inside the `bpf_rcu_read_lock` region. - `last_wakee = real_parent->last_wakee` should be inside `bpf_rcu_read_lock` region since it tries to access rcu protected memory. - - the ptr 'last_wakee' will be marked as PTR_UNTRUSTED since in general - it is not clear whether the object pointed by 'last_wakee' is valid or + - the `last_wakee` pointer will be marked as `PTR_UNTRUSTED` since in general + it is not clear whether the object pointed by `last_wakee` is valid or not even inside `bpf_rcu_read_lock` region. ### Program types @@ -50,22 +50,22 @@ Let us say prog does `task = bpf_get_current_task_btf()` to get a The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_rcu_read_unlock.md b/docs/linux/kfuncs/bpf_rcu_read_unlock.md index c1844734..7620aa51 100644 --- a/docs/linux/kfuncs/bpf_rcu_read_unlock.md +++ b/docs/linux/kfuncs/bpf_rcu_read_unlock.md @@ -18,29 +18,29 @@ Release a RCU read lock region in the BPF program. ## Usage -See [bpf_rcu_read_lock](bpf_rcu_read_lock.md) for the usage of this kfunc. +See [`bpf_rcu_read_lock`](bpf_rcu_read_lock.md) for the usage of this kfunc. ### Program types The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_rdonly_cast.md b/docs/linux/kfuncs/bpf_rdonly_cast.md index 51825582..9f29874c 100644 --- a/docs/linux/kfuncs/bpf_rdonly_cast.md +++ b/docs/linux/kfuncs/bpf_rdonly_cast.md @@ -12,11 +12,11 @@ description: "This page documents the 'bpf_rdonly_cast' eBPF kfunc, including it This kfunc tries to cast the object to a specified type. -The function returns the same `obj` but with PTR_TO_BTF_ID with -btf_id. The verifier will ensure btf_id being a struct type. +The function returns the same `obj` but with `PTR_TO_BTF_ID` with +`btf_id`. The verifier will ensure btf_id being a struct type. Since the supported type cast may not reflect what the 'obj' -represents, the returned btf_id is marked as PTR_UNTRUSTED, so +represents, the returned `btf_id` is marked as `PTR_UNTRUSTED`, so the return value and subsequent pointer chasing cannot be used as helper/kfunc arguments. @@ -42,22 +42,22 @@ be casted to `struct skb_shared_info *`. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_refcount_acquire_impl.md b/docs/linux/kfuncs/bpf_refcount_acquire_impl.md index 7bf0aff7..087f49d6 100644 --- a/docs/linux/kfuncs/bpf_refcount_acquire_impl.md +++ b/docs/linux/kfuncs/bpf_refcount_acquire_impl.md @@ -42,11 +42,11 @@ An owning reference to the object pointed to by `kptr` The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_session_cookie.md b/docs/linux/kfuncs/bpf_session_cookie.md index 778de5d3..53b4d75d 100644 --- a/docs/linux/kfuncs/bpf_session_cookie.md +++ b/docs/linux/kfuncs/bpf_session_cookie.md @@ -29,7 +29,7 @@ The session cookie is u64 value, implemented via fprobe feature that allows to s The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) +- [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) ### Example diff --git a/docs/linux/kfuncs/bpf_session_is_return.md b/docs/linux/kfuncs/bpf_session_is_return.md index 4cfa868e..4de4ddec 100644 --- a/docs/linux/kfuncs/bpf_session_is_return.md +++ b/docs/linux/kfuncs/bpf_session_is_return.md @@ -30,7 +30,7 @@ Returns `true` if the bpf program is executed from the exit probe of the kprobe The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_KPROBE](../program-type/BPF_PROG_TYPE_KPROBE.md) +- [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md) ### Example diff --git a/docs/linux/kfuncs/bpf_skb_ct_alloc.md b/docs/linux/kfuncs/bpf_skb_ct_alloc.md index 1eddb72f..38fc4804 100644 --- a/docs/linux/kfuncs/bpf_skb_ct_alloc.md +++ b/docs/linux/kfuncs/bpf_skb_ct_alloc.md @@ -70,11 +70,11 @@ Allocate a new CT entry The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example -See [bpf_ct_set_nat_info](bpf_ct_set_nat_info.md#example) for an example of how to use this kfunc. +See [`bpf_ct_set_nat_info`](bpf_ct_set_nat_info.md#example) for an example of how to use this kfunc. diff --git a/docs/linux/kfuncs/bpf_skb_ct_lookup.md b/docs/linux/kfuncs/bpf_skb_ct_lookup.md index 7e11d0fe..aab717cd 100644 --- a/docs/linux/kfuncs/bpf_skb_ct_lookup.md +++ b/docs/linux/kfuncs/bpf_skb_ct_lookup.md @@ -68,11 +68,11 @@ Lookup CT entry for the given tuple, and acquire a reference to it. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example -See [bpf_ct_set_nat_info](bpf_ct_set_nat_info.md#example) for an example of how to use this kfunc. +See [`bpf_ct_set_nat_info`](bpf_ct_set_nat_info.md#example) for an example of how to use this kfunc. diff --git a/docs/linux/kfuncs/bpf_skb_get_fou_encap.md b/docs/linux/kfuncs/bpf_skb_get_fou_encap.md index 0116b74a..372fbeef 100644 --- a/docs/linux/kfuncs/bpf_skb_get_fou_encap.md +++ b/docs/linux/kfuncs/bpf_skb_get_fou_encap.md @@ -8,17 +8,17 @@ description: "This page documents the 'bpf_skb_get_fou_encap' eBPF kfunc, includ [:octicons-tag-24: v6.4](https://github.com/torvalds/linux/commit/c50e96099edb134bf107fafc02715fbc4aa2277f) -Get FOU (Foo over UDP) encap parameters +Get FOU (Foo over UDP) encapsulation parameters ## Definition -This function allows for reading encap metadata from a packet received on an ipip device in collect-metadata mode. +This function allows for reading encapsulation metadata from a packet received on an IPIP device in collect-metadata mode. **Parameters** `skb_ctx`: Pointer to ctx (__sk_buff) in TC program. Cannot be NULL -`encap`: Pointer to a struct bpf_fou_encap storing UDP source and destination port. Cannot be NULL +`encap`: Pointer to a struct `bpf_fou_encap` storing UDP source and destination port. Cannot be NULL **Returns** @@ -31,14 +31,14 @@ This function allows for reading encap metadata from a packet received on an ipi ## Usage -On the ingress path bpf_skb_get_fou_encap can be used to read UDP source and destination ports from the receiver's point of view and allows for packet multiplexing across different destination ports within a single BPF program and ipip device. +On the ingress path `bpf_skb_get_fou_encap` can be used to read UDP source and destination ports from the receiver's point of view and allows for packet multiplexing across different destination ports within a single BPF program and IPIP device. ### Program types The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/kfuncs/bpf_skb_get_xfrm_info.md b/docs/linux/kfuncs/bpf_skb_get_xfrm_info.md index 18d0fca9..7f06318f 100644 --- a/docs/linux/kfuncs/bpf_skb_get_xfrm_info.md +++ b/docs/linux/kfuncs/bpf_skb_get_xfrm_info.md @@ -44,7 +44,7 @@ Get XFRM metadata The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/kfuncs/bpf_skb_set_fou_encap.md b/docs/linux/kfuncs/bpf_skb_set_fou_encap.md index 067c5239..28f5bb5d 100644 --- a/docs/linux/kfuncs/bpf_skb_set_fou_encap.md +++ b/docs/linux/kfuncs/bpf_skb_set_fou_encap.md @@ -8,13 +8,13 @@ description: "This page documents the 'bpf_skb_set_fou_encap' eBPF kfunc, includ [:octicons-tag-24: v6.4](https://github.com/torvalds/linux/commit/c50e96099edb134bf107fafc02715fbc4aa2277f) -Set FOU (Foo Over UDP) encap parameters +Set FOU (Foo Over UDP) encapsulation parameters ## Definition -This function allows for using GUE or FOU encapsulation together with an ipip device in collect-metadata mode. +This function allows for using GUE or FOU encapsulation together with an IPIP device in collect-metadata mode. -It is meant to be used in BPF tc-hooks and after a call to the [`bpf_skb_set_tunnel_key`](../helper-function/bpf_skb_set_tunnel_key.md) helper, responsible for setting IP addresses. +It is meant to be used in BPF traffic control hooks and after a call to the [`bpf_skb_set_tunnel_key`](../helper-function/bpf_skb_set_tunnel_key.md) helper, responsible for setting IP addresses. **Parameters** `skb_ctx`: Pointer to ctx (__sk_buff) in TC program. Cannot be NULL @@ -37,14 +37,14 @@ It is meant to be used in BPF tc-hooks and after a call to the [`bpf_skb_set_tun ## Usage -The bpf_skb_set_fou_encap kfunc is supposed to be used in tandem and after a successful call to the [`bpf_skb_set_tunnel_key`](../helper-function/bpf_skb_set_tunnel_key.md) bpf-helper. UDP source and destination ports can be controlled by passing a `struct bpf_fou_encap`. A source port of zero will auto-assign a source port. `enum bpf_fou_encap_type` is used to specify if the egress path should FOU or GUE encap the packet. +The `bpf_skb_set_fou_encap` kfunc is supposed to be used in tandem and after a successful call to the [`bpf_skb_set_tunnel_key`](../helper-function/bpf_skb_set_tunnel_key.md) bpf-helper. UDP source and destination ports can be controlled by passing a `struct bpf_fou_encap`. A source port of zero will auto-assign a source port. `enum bpf_fou_encap_type` is used to specify if the egress path should FOU or GUE encap the packet. ### Program types The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/kfuncs/bpf_skb_set_xfrm_info.md b/docs/linux/kfuncs/bpf_skb_set_xfrm_info.md index 66378f1e..8661a358 100644 --- a/docs/linux/kfuncs/bpf_skb_set_xfrm_info.md +++ b/docs/linux/kfuncs/bpf_skb_set_xfrm_info.md @@ -40,14 +40,14 @@ This kfunc allows steering traffic towards different IPsec connections based on This object is built based on the availability of BTF debug info. -When setting the xfrm metadata, percpu metadata dsts are used in order to avoid allocating a metadata dst per packet. +When setting the xfrm metadata, per-CPU metadata destinations are used in order to avoid allocating a metadata destination per packet. ### Program types The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/kfuncs/bpf_sock_addr_set_sun_path.md b/docs/linux/kfuncs/bpf_sock_addr_set_sun_path.md index 2a63e855..72b82832 100644 --- a/docs/linux/kfuncs/bpf_sock_addr_set_sun_path.md +++ b/docs/linux/kfuncs/bpf_sock_addr_set_sun_path.md @@ -8,7 +8,7 @@ description: "This page documents the 'bpf_sock_addr_set_sun_path' eBPF kfunc, i [:octicons-tag-24: v6.7](https://github.com/torvalds/linux/commit/53e380d21441909b12b6e0782b77187ae4b971c4) -Modify the sockaddr of a socket. +Modify the socket address of a socket. ## Definition @@ -26,8 +26,8 @@ Modify the sockaddr of a socket. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) ### Example diff --git a/docs/linux/kfuncs/bpf_sock_destroy.md b/docs/linux/kfuncs/bpf_sock_destroy.md index 24849555..e276f6b6 100644 --- a/docs/linux/kfuncs/bpf_sock_destroy.md +++ b/docs/linux/kfuncs/bpf_sock_destroy.md @@ -37,7 +37,7 @@ Another use case is on-the-fly policy enforcement where existing socket connecti The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_task_acquire.md b/docs/linux/kfuncs/bpf_task_acquire.md index 33230eeb..de0eca35 100644 --- a/docs/linux/kfuncs/bpf_task_acquire.md +++ b/docs/linux/kfuncs/bpf_task_acquire.md @@ -40,11 +40,11 @@ A task acquired by this kfunc which is not stored in a map as a kptr, must be re The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_task_from_pid.md b/docs/linux/kfuncs/bpf_task_from_pid.md index a87ba28a..4da1812a 100644 --- a/docs/linux/kfuncs/bpf_task_from_pid.md +++ b/docs/linux/kfuncs/bpf_task_from_pid.md @@ -38,11 +38,11 @@ If a task is returned, it must either be stored in a map, or released with [`bpf The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_task_get_cgroup1.md b/docs/linux/kfuncs/bpf_task_get_cgroup1.md index 9fb3306e..6ff5b849 100644 --- a/docs/linux/kfuncs/bpf_task_get_cgroup1.md +++ b/docs/linux/kfuncs/bpf_task_get_cgroup1.md @@ -8,15 +8,15 @@ description: "This page documents the 'bpf_task_get_cgroup1' eBPF kfunc, includi [:octicons-tag-24: v6.8](https://github.com/torvalds/linux/commit/fe977716b40cb98cf9c91a66454adf3dc2f8c59a) -Acquires the associated cgroup of a task within a specific cgroup1 hierarchy. +Acquires the associated cGroup of a task within a specific cGroup1 hierarchy. ## Definition -The cgroup1 hierarchy is identified by its hierarchy ID. +The cGroup1 hierarchy is identified by its hierarchy ID. **Returns** -On success, the cgroup is returen. On failure, NULL is returned. +On success, the cGroup is returned. On failure, NULL is returned. `#!c struct cgroup *bpf_task_get_cgroup1(struct task_struct *task, int hierarchy_id)` @@ -42,11 +42,11 @@ On success, the cgroup is returen. On failure, NULL is returned. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_task_release.md b/docs/linux/kfuncs/bpf_task_release.md index f71737e5..e4038092 100644 --- a/docs/linux/kfuncs/bpf_task_release.md +++ b/docs/linux/kfuncs/bpf_task_release.md @@ -32,11 +32,11 @@ Release the reference acquired on a task. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_task_under_cgroup.md b/docs/linux/kfuncs/bpf_task_under_cgroup.md index 8bc8e161..d8382efd 100644 --- a/docs/linux/kfuncs/bpf_task_under_cgroup.md +++ b/docs/linux/kfuncs/bpf_task_under_cgroup.md @@ -8,7 +8,7 @@ description: "This page documents the 'bpf_task_under_cgroup' eBPF kfunc, includ [:octicons-tag-24: v6.5](https://github.com/torvalds/linux/commit/b5ad4cdc46c7d6e7f8d2c9e24b6c9a1edec95154) -Wrap task_under_cgroup_hierarchy() as a kfunc, test task's membership of cgroup ancestry. +Wrap `task_under_cgroup_hierarchy()` as a kfunc, test task's membership of cGroup ancestry. ## Definition @@ -28,11 +28,11 @@ Tests whether `task`'s default cgroup hierarchy is a descendant of `ancestor`. I The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_throw.md b/docs/linux/kfuncs/bpf_throw.md index 59a99286..90f35579 100644 --- a/docs/linux/kfuncs/bpf_throw.md +++ b/docs/linux/kfuncs/bpf_throw.md @@ -44,11 +44,11 @@ An exception with the specified `cookie` value. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_verify_pkcs7_signature.md b/docs/linux/kfuncs/bpf_verify_pkcs7_signature.md index fe03660c..5a0ae234 100644 --- a/docs/linux/kfuncs/bpf_verify_pkcs7_signature.md +++ b/docs/linux/kfuncs/bpf_verify_pkcs7_signature.md @@ -8,11 +8,11 @@ description: "This page documents the 'bpf_verify_pkcs7_signature' eBPF kfunc, i [:octicons-tag-24: v6.1](https://github.com/torvalds/linux/commit/865b0566d8f1a0c3937e5eb4bd6ba4ef03e7e98c) -Verify a PKCS#7 signature +Verify a PKCS#7 signature ## Definition -Verify the PKCS#7 signature `sig_ptr` against the supplied `data_ptr` with keys in a keyring referenced by `trusted_keyring`. +Verify the PKCS#7 signature `sig_ptr` against the supplied `data_ptr` with keys in a keyring referenced by `trusted_keyring`. `#!c int bpf_verify_pkcs7_signature(struct bpf_dynptr_kern *data_ptr, struct bpf_dynptr_kern *sig_ptr, struct bpf_key *trusted_keyring)` @@ -31,7 +31,7 @@ Verify the PKCS#7 signature `sig_ptr` against the supplied `data_ptr` with keys The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/bpf_wq_init.md b/docs/linux/kfuncs/bpf_wq_init.md index fe5f4c7d..b7ba1e67 100644 --- a/docs/linux/kfuncs/bpf_wq_init.md +++ b/docs/linux/kfuncs/bpf_wq_init.md @@ -8,11 +8,11 @@ description: "This page documents the 'bpf_wq_init' eBPF kfunc, including its de [:octicons-tag-24: v6.10](https://github.com/torvalds/linux/commit/eb48f6cd41a0f7803770a76bbffb6bd5b1b2ae2f) -Initialize a workqueue. +Initialize a work-queue. ## Definition -This kfunc initializes a workqueue which allows eBPF programs to schedule work to be executed asynchronously. +This kfunc initializes a work-queue which allows eBPF programs to schedule work to be executed asynchronously. `wq`: A pointer to a `struct bpf_wq` which must reside in a map value. @@ -30,31 +30,31 @@ Return `0` on success, or a negative error code on failure. ## Usage -This is the first step in using a workqueue. A workqueue is a mechanism to schedule work to be executed asynchronously. After initialization a callback function can be associated with the workqueue using the [`bpf_wq_set_callback_impl`](bpf_wq_set_callback_impl.md) kfunc and the work can be started using the [`bpf_wq_start`](bpf_wq_start.md) kfunc. +This is the first step in using a work-queue. A work-queue is a mechanism to schedule work to be executed asynchronously. After initialization a callback function can be associated with the work-queue using the [`bpf_wq_set_callback_impl`](bpf_wq_set_callback_impl.md) kfunc and the work can be started using the [`bpf_wq_start`](bpf_wq_start.md) kfunc. -The callback will be called asynchronously sometime after the current eBPF program has finished executing whenever the scheduler decides to run the workqueue. +The callback will be called asynchronously sometime after the current eBPF program has finished executing whenever the scheduler decides to run the work-queue. ### Program types The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_wq_set_callback_impl.md b/docs/linux/kfuncs/bpf_wq_set_callback_impl.md index e4ce87b0..1e381add 100644 --- a/docs/linux/kfuncs/bpf_wq_set_callback_impl.md +++ b/docs/linux/kfuncs/bpf_wq_set_callback_impl.md @@ -8,17 +8,17 @@ description: "This page documents the 'bpf_wq_set_callback_impl' eBPF kfunc, inc [:octicons-tag-24: v6.10](https://github.com/torvalds/linux/commit/81f1d7a583fa1fa14f0c4e6140d34b5e3d08d227) -Set a callback function for a workqueue. +Set a callback function for a work-queue. ## Definition -This kfunc associates a callback function with a workqueue. The workqueue must be initialized with the [`bpf_wq_init`](bpf_wq_init.md) kfunc before calling this function. After the callback function is set, work can be scheduled using the [`bpf_wq_start`](bpf_wq_start.md) kfunc. +This kfunc associates a callback function with a work-queue. The work-queue must be initialized with the [`bpf_wq_init`](bpf_wq_init.md) kfunc before calling this function. After the callback function is set, work can be scheduled using the [`bpf_wq_start`](bpf_wq_start.md) kfunc. -The callback will be called asynchronously sometime after the current eBPF program has finished executing whenever the scheduler decides to run the workqueue. +The callback will be called asynchronously sometime after the current eBPF program has finished executing whenever the scheduler decides to run the work-queue. `wq`: A pointer to a `struct bpf_wq` which must reside in a map value. -`callback_fn`: The callback function to be called when the workqueue is run. The callback function must have the following signature: `#!c int (callback_fn)(void *map, int *key, struct bpf_wq *wq)` +`callback_fn`: The callback function to be called when the work-queue is run. The callback function must have the following signature: `#!c int (callback_fn)(void *map, int *key, struct bpf_wq *wq)` **Returns** @@ -38,22 +38,22 @@ Return `0` on success, or a negative error code on failure. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_wq_start.md b/docs/linux/kfuncs/bpf_wq_start.md index 404552b7..cebbf329 100644 --- a/docs/linux/kfuncs/bpf_wq_start.md +++ b/docs/linux/kfuncs/bpf_wq_start.md @@ -8,11 +8,11 @@ description: "This page documents the 'bpf_wq_start' eBPF kfunc, including its d [:octicons-tag-24: v6.10](https://github.com/torvalds/linux/commit/8e83da9732d91c60fdc651b2486c8e5935eb0ca2) -Start a workqueue. +Start a work-queue. ## Definition -This kfunc starts a workqueue which allows eBPF programs to schedule work to be executed asynchronously. +This kfunc starts a work-queue which allows eBPF programs to schedule work to be executed asynchronously. `wq`: A pointer to a `struct bpf_wq` which must reside in a map value. @@ -28,31 +28,31 @@ Return `0` on success, or a negative error code on failure. ## Usage -Once a workqueue has been initialized with the [`bpf_wq_init`](bpf_wq_init.md) kfunc and a callback function has been associated with it using the [`bpf_wq_set_callback_impl`](bpf_wq_set_callback_impl.md) kfunc, work can be scheduled using this function. +Once a work-queue has been initialized with the [`bpf_wq_init`](bpf_wq_init.md) kfunc and a callback function has been associated with it using the [`bpf_wq_set_callback_impl`](bpf_wq_set_callback_impl.md) kfunc, work can be scheduled using this function. -The callback will be called asynchronously sometime after the current eBPF program has finished executing whenever the scheduler decides to run the workqueue. +The callback will be called asynchronously sometime after the current eBPF program has finished executing whenever the scheduler decides to run the work-queue. ### Program types The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_CGROUP_SKB](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) -- [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_LWT_IN](../program-type/BPF_PROG_TYPE_LWT_IN.md) -- [BPF_PROG_TYPE_LWT_OUT](../program-type/BPF_PROG_TYPE_LWT_OUT.md) -- [BPF_PROG_TYPE_LWT_SEG6LOCAL](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) -- [BPF_PROG_TYPE_LWT_XMIT](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) -- [BPF_PROG_TYPE_NETFILTER](../program-type/BPF_PROG_TYPE_NETFILTER.md) -- [BPF_PROG_TYPE_SCHED_ACT](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_SK_SKB](../program-type/BPF_PROG_TYPE_SK_SKB.md) -- [BPF_PROG_TYPE_SOCKET_FILTER](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_CGROUP_SKB`](../program-type/BPF_PROG_TYPE_CGROUP_SKB.md) +- [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](../program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_LWT_IN`](../program-type/BPF_PROG_TYPE_LWT_IN.md) +- [`BPF_PROG_TYPE_LWT_OUT`](../program-type/BPF_PROG_TYPE_LWT_OUT.md) +- [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](../program-type/BPF_PROG_TYPE_LWT_SEG6LOCAL.md) +- [`BPF_PROG_TYPE_LWT_XMIT`](../program-type/BPF_PROG_TYPE_LWT_XMIT.md) +- [`BPF_PROG_TYPE_NETFILTER`](../program-type/BPF_PROG_TYPE_NETFILTER.md) +- [`BPF_PROG_TYPE_SCHED_ACT`](../program-type/BPF_PROG_TYPE_SCHED_ACT.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SK_SKB`](../program-type/BPF_PROG_TYPE_SK_SKB.md) +- [`BPF_PROG_TYPE_SOCKET_FILTER`](../program-type/BPF_PROG_TYPE_SOCKET_FILTER.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_xdp_ct_alloc.md b/docs/linux/kfuncs/bpf_xdp_ct_alloc.md index 9ac54211..e9de79d0 100644 --- a/docs/linux/kfuncs/bpf_xdp_ct_alloc.md +++ b/docs/linux/kfuncs/bpf_xdp_ct_alloc.md @@ -8,7 +8,7 @@ description: "This page documents the 'bpf_xdp_ct_alloc' eBPF kfunc, including i [:octicons-tag-24: v6.0](https://github.com/torvalds/linux/commit/d7e79c97c00ca82dace0e3b645d4b3b02fa273c2) -Allocate a new CT (ConnTrack) entry +Allocate a new CT (connection tracking) entry ## Definition @@ -70,11 +70,11 @@ Allocate a new CT (ConnTrack) entry The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example -See [bpf_ct_set_nat_info](bpf_ct_set_nat_info.md#example) for an example of how to use this kfunc. +See [`bpf_ct_set_nat_info`](bpf_ct_set_nat_info.md#example) for an example of how to use this kfunc. diff --git a/docs/linux/kfuncs/bpf_xdp_ct_lookup.md b/docs/linux/kfuncs/bpf_xdp_ct_lookup.md index 792ee92b..744cf8e6 100644 --- a/docs/linux/kfuncs/bpf_xdp_ct_lookup.md +++ b/docs/linux/kfuncs/bpf_xdp_ct_lookup.md @@ -71,11 +71,11 @@ Lookup CT entry for the given tuple, and acquire a reference to it The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example -See [bpf_ct_set_nat_info](bpf_ct_set_nat_info.md#example) for an example of how to use this kfunc. +See [`bpf_ct_set_nat_info`](bpf_ct_set_nat_info.md#example) for an example of how to use this kfunc. diff --git a/docs/linux/kfuncs/bpf_xdp_get_xfrm_state.md b/docs/linux/kfuncs/bpf_xdp_get_xfrm_state.md index 254f2258..00a35a27 100644 --- a/docs/linux/kfuncs/bpf_xdp_get_xfrm_state.md +++ b/docs/linux/kfuncs/bpf_xdp_get_xfrm_state.md @@ -62,7 +62,7 @@ A `struct xfrm_state *`, if found, must be released with a corresponding bpf_xdp ## Usage -This kfunc helper accesses internal xfrm_state associated with an SA. This is intended to be used for the assigning of special pcpu SAs to a particular CPU. In other words: for custom software RSS. [^1] +This kfunc helper accesses internal `xfrm_state` associated with an SA(Security Association). This is intended to be used for the assigning of special per-CPU SAs to a particular CPU. In other words: for custom software RSS. [^1] [^1]: [https://datatracker.ietf.org/doc/draft-ietf-ipsecme-multi-sa-performance/03/](https://datatracker.ietf.org/doc/draft-ietf-ipsecme-multi-sa-performance/03/) @@ -71,7 +71,7 @@ This kfunc helper accesses internal xfrm_state associated with an SA. This is in The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/kfuncs/bpf_xdp_metadata_rx_hash.md b/docs/linux/kfuncs/bpf_xdp_metadata_rx_hash.md index 771f59ef..a7b55175 100644 --- a/docs/linux/kfuncs/bpf_xdp_metadata_rx_hash.md +++ b/docs/linux/kfuncs/bpf_xdp_metadata_rx_hash.md @@ -28,7 +28,7 @@ If `bpf_xdp_metadata_rx_hash` is not supported by the target device, the default The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_xdp_metadata_rx_timestamp.md b/docs/linux/kfuncs/bpf_xdp_metadata_rx_timestamp.md index 6ee06cb5..f80d5e25 100644 --- a/docs/linux/kfuncs/bpf_xdp_metadata_rx_timestamp.md +++ b/docs/linux/kfuncs/bpf_xdp_metadata_rx_timestamp.md @@ -28,7 +28,7 @@ If `bpf_xdp_metadata_rx_timestamp` is not supported by the target device, the de The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_xdp_metadata_rx_vlan_tag.md b/docs/linux/kfuncs/bpf_xdp_metadata_rx_vlan_tag.md index c7459a4c..e6c27eb4 100644 --- a/docs/linux/kfuncs/bpf_xdp_metadata_rx_vlan_tag.md +++ b/docs/linux/kfuncs/bpf_xdp_metadata_rx_vlan_tag.md @@ -51,7 +51,7 @@ For detailed meaning of DEI and PCP, please refer to other sources. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/bpf_xdp_xfrm_state_release.md b/docs/linux/kfuncs/bpf_xdp_xfrm_state_release.md index 0ac17fed..6d6ad17e 100644 --- a/docs/linux/kfuncs/bpf_xdp_xfrm_state_release.md +++ b/docs/linux/kfuncs/bpf_xdp_xfrm_state_release.md @@ -8,18 +8,15 @@ description: "This page documents the 'bpf_xdp_xfrm_state_release' eBPF kfunc, i [:octicons-tag-24: v6.8](https://github.com/torvalds/linux/commit/8f0ec8c681755f523cf842bfe350ea40609b83a9) +Release acquired `xfrm_state` object + ## Definition -/* bpf_xdp_xfrm_state_release - Release acquired xfrm_state object - * - * This must be invoked for referenced PTR_TO_BTF_ID, and the verifier rejects - * the program if any references remain in the program in all of the explored - * states. - * - * Parameters: - * @x - Pointer to referenced xfrm_state object, obtained using - * bpf_xdp_get_xfrm_state. - */ +This must be invoked for referenced `PTR_TO_BTF_ID`, and the verifier rejects the program if any references remain in the program in all of the explored states. + +**Parameters** + +`x`: Pointer to referenced `xfrm_state` object, obtained using `bpf_xdp_get_xfrm_state` `#!c void bpf_xdp_xfrm_state_release(struct xfrm_state *x)` @@ -31,16 +28,16 @@ description: "This page documents the 'bpf_xdp_xfrm_state_release' eBPF kfunc, i ## Usage -The intent for this kfunc is to support software RSS (via XDP) for the ongoing/upcoming ipsec pcpu work. [^1] +The intent for this kfunc is to support software RSS (via XDP) for the ongoing/upcoming IPsec per-CPU work. [^1] -[^1]: [https://datatracker.ietf.org/doc/draft-ietf-ipsecme-multi-sa-performance/03/](https://datatracker.ietf.org/doc/draft-ietf-ipsecme-multi-sa-performance/03/) +[^1]: [`https://datatracker.ietf.org/doc/draft-ietf-ipsecme-multi-sa-performance/03/`](https://datatracker.ietf.org/doc/draft-ietf-ipsecme-multi-sa-performance/03/) ### Program types The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) ### Example diff --git a/docs/linux/kfuncs/cgroup_rstat_flush.md b/docs/linux/kfuncs/cgroup_rstat_flush.md index 9636f278..80f98688 100644 --- a/docs/linux/kfuncs/cgroup_rstat_flush.md +++ b/docs/linux/kfuncs/cgroup_rstat_flush.md @@ -12,9 +12,9 @@ Flush stats in `cgrp`'s subtree ## Definition -Collect all per-cpu stats in `cgrp`'s subtree into the global countersand propagate them upwards. After this function returns, all cgroups in the subtree have up-to-date ->stat. +Collect all per-CPU stats in `cgrp`'s sub-tree into the global countersand propagate them upwards. After this function returns, all cGroups in the sub-tree have up-to-date `->stat`. -This also gets all cgroups in the subtree including `cgrp` off the ->updated_children lists. +This also gets all cGroups in the sub-tree including `cgrp` off the `->updated_children` lists. This function may block. @@ -39,8 +39,8 @@ This function may block. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/cgroup_rstat_updated.md b/docs/linux/kfuncs/cgroup_rstat_updated.md index a13df8d0..8646e5a5 100644 --- a/docs/linux/kfuncs/cgroup_rstat_updated.md +++ b/docs/linux/kfuncs/cgroup_rstat_updated.md @@ -8,11 +8,11 @@ description: "This page documents the 'cgroup_rstat_updated' eBPF kfunc, includi [:octicons-tag-24: v6.1](https://github.com/torvalds/linux/commit/a319185be9f5ad13c2a296d448ac52ffe45d194c) -Keep track of updated rstat_cpu +Keep track of updated `rstat_cpu` ## Definition -`cgrp`'s rstat_cpu on `cpu` was updated. Put it on the parent's matching rstat_cpu->updated_children list. See the comment on top of cgroup_rstat_cpu definition for details. +`cgrp`'s rstat_cpu on `cpu` was updated. Put it on the parent's matching `rstat_cpu->updated_children` list. See the comment on top of `cgroup_rstat_cpu` definition for details. **Parameters** @@ -35,8 +35,8 @@ Keep track of updated rstat_cpu The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/crash_kexec.md b/docs/linux/kfuncs/crash_kexec.md index 4e404664..9cc940c1 100644 --- a/docs/linux/kfuncs/crash_kexec.md +++ b/docs/linux/kfuncs/crash_kexec.md @@ -17,14 +17,14 @@ Crash the kernel at a specific point in the code. !!! warning This kfunc is destructive to the system. For example such a call can result in system rebooting or panicking. - Due to this additional restrictions apply to these calls. At the moment they only require CAP_SYS_BOOT capability, + Due to this additional restrictions apply to these calls. At the moment they only require `CAP_SYS_BOOT`capability, but more can be added later. ## Usage eBPF is often used for kernel debugging, and one of the widely used and -powerful debugging techniques is post-mortem debugging with a full memory dump. +powerful debugging techniques is postmortem debugging with a full memory dump. This kfunc allows to trigger a kernel panic at a specific point in the kernels execution, this allows for the inspection of the memory dump at the exact point @@ -35,11 +35,11 @@ a program detected a certain condition. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_SCHED_CLS](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) -- [BPF_PROG_TYPE_XDP](../program-type/BPF_PROG_TYPE_XDP.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_SCHED_CLS`](../program-type/BPF_PROG_TYPE_SCHED_CLS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_XDP`](../program-type/BPF_PROG_TYPE_XDP.md) ### Example diff --git a/docs/linux/kfuncs/cubictcp_acked.md b/docs/linux/kfuncs/cubictcp_acked.md index 6e325c53..fe2380cd 100644 --- a/docs/linux/kfuncs/cubictcp_acked.md +++ b/docs/linux/kfuncs/cubictcp_acked.md @@ -26,7 +26,7 @@ Hook for packet ack accounting The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/kfuncs/cubictcp_cong_avoid.md b/docs/linux/kfuncs/cubictcp_cong_avoid.md index 43b1fd63..2e277c7a 100644 --- a/docs/linux/kfuncs/cubictcp_cong_avoid.md +++ b/docs/linux/kfuncs/cubictcp_cong_avoid.md @@ -8,7 +8,7 @@ description: "This page documents the 'cubictcp_cong_avoid' eBPF kfunc, includin [:octicons-tag-24: v5.13](https://github.com/torvalds/linux/commit/e78aea8b2170be1b88c96a4d138422986a737336) -Do new cwnd calculation +Do new `cwnd` calculation ## Definition @@ -26,7 +26,7 @@ Do new cwnd calculation The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/kfuncs/cubictcp_cwnd_event.md b/docs/linux/kfuncs/cubictcp_cwnd_event.md index da6f4ad3..24b3f5da 100644 --- a/docs/linux/kfuncs/cubictcp_cwnd_event.md +++ b/docs/linux/kfuncs/cubictcp_cwnd_event.md @@ -26,7 +26,7 @@ Call when congestion window event occurs. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/kfuncs/cubictcp_init.md b/docs/linux/kfuncs/cubictcp_init.md index 0348b865..2f81e914 100644 --- a/docs/linux/kfuncs/cubictcp_init.md +++ b/docs/linux/kfuncs/cubictcp_init.md @@ -26,7 +26,7 @@ Initialise TCP Cubic congestion control algorithm on a socket. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/kfuncs/cubictcp_recalc_ssthresh.md b/docs/linux/kfuncs/cubictcp_recalc_ssthresh.md index a150fe62..1d76db71 100644 --- a/docs/linux/kfuncs/cubictcp_recalc_ssthresh.md +++ b/docs/linux/kfuncs/cubictcp_recalc_ssthresh.md @@ -26,7 +26,7 @@ Returns slow start threshold The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/kfuncs/cubictcp_state.md b/docs/linux/kfuncs/cubictcp_state.md index d815ce3a..720dce69 100644 --- a/docs/linux/kfuncs/cubictcp_state.md +++ b/docs/linux/kfuncs/cubictcp_state.md @@ -26,7 +26,7 @@ Call before changing ca_state The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/kfuncs/dctcp_cwnd_event.md b/docs/linux/kfuncs/dctcp_cwnd_event.md index 8749ddec..64e1c6f0 100644 --- a/docs/linux/kfuncs/dctcp_cwnd_event.md +++ b/docs/linux/kfuncs/dctcp_cwnd_event.md @@ -26,7 +26,7 @@ Call when congestion window event occurs. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/kfuncs/dctcp_cwnd_undo.md b/docs/linux/kfuncs/dctcp_cwnd_undo.md index e9577bbb..8dcbda59 100644 --- a/docs/linux/kfuncs/dctcp_cwnd_undo.md +++ b/docs/linux/kfuncs/dctcp_cwnd_undo.md @@ -26,7 +26,7 @@ Return new value of congestion window after loss. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/kfuncs/dctcp_init.md b/docs/linux/kfuncs/dctcp_init.md index b39fcc26..b8e7ac93 100644 --- a/docs/linux/kfuncs/dctcp_init.md +++ b/docs/linux/kfuncs/dctcp_init.md @@ -26,7 +26,7 @@ Initialise DC TCP congestion control algorithm on a socket. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/kfuncs/dctcp_ssthresh.md b/docs/linux/kfuncs/dctcp_ssthresh.md index c9b7a764..e915b9d9 100644 --- a/docs/linux/kfuncs/dctcp_ssthresh.md +++ b/docs/linux/kfuncs/dctcp_ssthresh.md @@ -26,7 +26,7 @@ Returns slow start threshold The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/kfuncs/dctcp_state.md b/docs/linux/kfuncs/dctcp_state.md index d065dab1..feb230b3 100644 --- a/docs/linux/kfuncs/dctcp_state.md +++ b/docs/linux/kfuncs/dctcp_state.md @@ -26,7 +26,7 @@ Call before changing ca_state The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/kfuncs/dctcp_update_alpha.md b/docs/linux/kfuncs/dctcp_update_alpha.md index 5e00fb72..1615d0aa 100644 --- a/docs/linux/kfuncs/dctcp_update_alpha.md +++ b/docs/linux/kfuncs/dctcp_update_alpha.md @@ -26,7 +26,7 @@ Call when ack arrives The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/kfuncs/hid_bpf_allocate_context.md b/docs/linux/kfuncs/hid_bpf_allocate_context.md index 2f8c2724..94ebb3a2 100644 --- a/docs/linux/kfuncs/hid_bpf_allocate_context.md +++ b/docs/linux/kfuncs/hid_bpf_allocate_context.md @@ -44,7 +44,7 @@ A pointer to &struct hid_bpf_ctx on success, `NULL` on error. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) ### Example diff --git a/docs/linux/kfuncs/hid_bpf_attach_prog.md b/docs/linux/kfuncs/hid_bpf_attach_prog.md index cfd46773..cded593f 100644 --- a/docs/linux/kfuncs/hid_bpf_attach_prog.md +++ b/docs/linux/kfuncs/hid_bpf_attach_prog.md @@ -8,7 +8,7 @@ description: "This page documents the 'hid_bpf_attach_prog' eBPF kfunc, includin [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/f5c27da4e3c8a2e42fb4f41a0c685debcb9af294) -Attach the given @prog_fd to the given HID device +Attach the given `prog_fd` to the given HID device ## Definition @@ -22,7 +22,7 @@ Attach the given @prog_fd to the given HID device **Returns** -an fd of a bpf_link object on success (> %0), an error code otherwise. Closing this fd will detach the program from the HID device (unless the bpf_link is pinned to the BPF file system). +A file descriptor of a `bpf_link` object on success (> %0), an error code otherwise. Closing this file descriptor will detach the program from the HID device (unless the `bpf_link` is pinned to the BPF file system). `#!c int hid_bpf_attach_prog(unsigned int hid_id, int prog_fd, __u32 flags)` @@ -37,7 +37,7 @@ This kfunc is used to attach a BPF program to the jump-table in the BPF-HID subs The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) ### Example diff --git a/docs/linux/kfuncs/hid_bpf_get_data.md b/docs/linux/kfuncs/hid_bpf_get_data.md index 537dcceb..786d6628 100644 --- a/docs/linux/kfuncs/hid_bpf_get_data.md +++ b/docs/linux/kfuncs/hid_bpf_get_data.md @@ -41,8 +41,8 @@ The goal of HID-BPF is to partially replace drivers, so this situation can be pr The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_LSM](../program-type/BPF_PROG_TYPE_LSM.md) -- [BPF_PROG_TYPE_TRACING](../program-type/BPF_PROG_TYPE_TRACING.md) +- [`BPF_PROG_TYPE_LSM`](../program-type/BPF_PROG_TYPE_LSM.md) +- [`BPF_PROG_TYPE_TRACING`](../program-type/BPF_PROG_TYPE_TRACING.md) ### Example diff --git a/docs/linux/kfuncs/hid_bpf_hw_request.md b/docs/linux/kfuncs/hid_bpf_hw_request.md index 5a9f97aa..ca145ffb 100644 --- a/docs/linux/kfuncs/hid_bpf_hw_request.md +++ b/docs/linux/kfuncs/hid_bpf_hw_request.md @@ -42,7 +42,7 @@ Communicate with a HID device The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) ### Example diff --git a/docs/linux/kfuncs/hid_bpf_release_context.md b/docs/linux/kfuncs/hid_bpf_release_context.md index 9b0c1977..0ac2870c 100644 --- a/docs/linux/kfuncs/hid_bpf_release_context.md +++ b/docs/linux/kfuncs/hid_bpf_release_context.md @@ -32,7 +32,7 @@ Release the previously allocated context @ctx The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_SYSCALL](../program-type/BPF_PROG_TYPE_SYSCALL.md) +- [`BPF_PROG_TYPE_SYSCALL`](../program-type/BPF_PROG_TYPE_SYSCALL.md) ### Example diff --git a/docs/linux/kfuncs/index.md b/docs/linux/kfuncs/index.md index fe0c2bca..f6eb8ae6 100644 --- a/docs/linux/kfuncs/index.md +++ b/docs/linux/kfuncs/index.md @@ -6,275 +6,275 @@ hide: toc # KFuncs (Linux) -## cGroup RStat KFuncs +## cGroup resource statistic KFuncs -These KFuncs are used to update or flush cgroup rstats efficiently. +These KFuncs are used to update or flush cGroup resource statistics efficiently. -- [cgroup_rstat_updated](cgroup_rstat_updated.md) -- [cgroup_rstat_flush](cgroup_rstat_flush.md) +- [`cgroup_rstat_updated`](cgroup_rstat_updated.md) +- [`cgroup_rstat_flush`](cgroup_rstat_flush.md) ## Key signature verification KFuncs -These KFuncs are used to verify PKCS#7 signed data against keys from a keyring. +These KFuncs are used to verify PKCS#7 signed data against keys from a key-ring. -- [bpf_lookup_user_key](bpf_lookup_user_key.md) -- [bpf_lookup_system_key](bpf_lookup_system_key.md) -- [bpf_key_put](bpf_key_put.md) -- [bpf_verify_pkcs7_signature](bpf_verify_pkcs7_signature.md) +- [`bpf_lookup_user_key`](bpf_lookup_user_key.md) +- [`bpf_lookup_system_key`](bpf_lookup_system_key.md) +- [`bpf_key_put`](bpf_key_put.md) +- [`bpf_verify_pkcs7_signature`](bpf_verify_pkcs7_signature.md) ## File related kfuncs -- [bpf_get_file_xattr](bpf_get_file_xattr.md) +- [`bpf_get_file_xattr`](bpf_get_file_xattr.md) ## CPU mask KFuncs -- [bpf_cpumask_create](bpf_cpumask_create.md) -- [bpf_cpumask_release](bpf_cpumask_release.md) -- [bpf_cpumask_acquire](bpf_cpumask_acquire.md) -- [bpf_cpumask_first](bpf_cpumask_first.md) -- [bpf_cpumask_first_zero](bpf_cpumask_first_zero.md) -- [bpf_cpumask_first_and](bpf_cpumask_first_and.md) -- [bpf_cpumask_set_cpu](bpf_cpumask_set_cpu.md) -- [bpf_cpumask_clear_cpu](bpf_cpumask_clear_cpu.md) -- [bpf_cpumask_test_cpu](bpf_cpumask_test_cpu.md) -- [bpf_cpumask_test_and_set_cpu](bpf_cpumask_test_and_set_cpu.md) -- [bpf_cpumask_test_and_clear_cpu](bpf_cpumask_test_and_clear_cpu.md) -- [bpf_cpumask_setall](bpf_cpumask_setall.md) -- [bpf_cpumask_clear](bpf_cpumask_clear.md) -- [bpf_cpumask_and](bpf_cpumask_and.md) -- [bpf_cpumask_or](bpf_cpumask_or.md) -- [bpf_cpumask_xor](bpf_cpumask_xor.md) -- [bpf_cpumask_equal](bpf_cpumask_equal.md) -- [bpf_cpumask_intersects](bpf_cpumask_intersects.md) -- [bpf_cpumask_subset](bpf_cpumask_subset.md) -- [bpf_cpumask_empty](bpf_cpumask_empty.md) -- [bpf_cpumask_full](bpf_cpumask_full.md) -- [bpf_cpumask_copy](bpf_cpumask_copy.md) -- [bpf_cpumask_any_distribute](bpf_cpumask_any_distribute.md) -- [bpf_cpumask_any_and_distribute](bpf_cpumask_any_and_distribute.md) -- [bpf_cpumask_weight](bpf_cpumask_weight.md) +- [`bpf_cpumask_create`](bpf_cpumask_create.md) +- [`bpf_cpumask_release`](bpf_cpumask_release.md) +- [`bpf_cpumask_acquire`](bpf_cpumask_acquire.md) +- [`bpf_cpumask_first`](bpf_cpumask_first.md) +- [`bpf_cpumask_first_zero`](bpf_cpumask_first_zero.md) +- [`bpf_cpumask_first_and`](bpf_cpumask_first_and.md) +- [`bpf_cpumask_set_cpu`](bpf_cpumask_set_cpu.md) +- [`bpf_cpumask_clear_cpu`](bpf_cpumask_clear_cpu.md) +- [`bpf_cpumask_test_cpu`](bpf_cpumask_test_cpu.md) +- [`bpf_cpumask_test_and_set_cpu`](bpf_cpumask_test_and_set_cpu.md) +- [`bpf_cpumask_test_and_clear_cpu`](bpf_cpumask_test_and_clear_cpu.md) +- [`bpf_cpumask_setall`](bpf_cpumask_setall.md) +- [`bpf_cpumask_clear`](bpf_cpumask_clear.md) +- [`bpf_cpumask_and`](bpf_cpumask_and.md) +- [`bpf_cpumask_or`](bpf_cpumask_or.md) +- [`bpf_cpumask_xor`](bpf_cpumask_xor.md) +- [`bpf_cpumask_equal`](bpf_cpumask_equal.md) +- [`bpf_cpumask_intersects`](bpf_cpumask_intersects.md) +- [`bpf_cpumask_subset`](bpf_cpumask_subset.md) +- [`bpf_cpumask_empty`](bpf_cpumask_empty.md) +- [`bpf_cpumask_full`](bpf_cpumask_full.md) +- [`bpf_cpumask_copy`](bpf_cpumask_copy.md) +- [`bpf_cpumask_any_distribute`](bpf_cpumask_any_distribute.md) +- [`bpf_cpumask_any_and_distribute`](bpf_cpumask_any_and_distribute.md) +- [`bpf_cpumask_weight`](bpf_cpumask_weight.md) ## Generic KFuncs -- [crash_kexec](crash_kexec.md) -- [bpf_throw](bpf_throw.md) +- [`crash_kexec`](crash_kexec.md) +- [`bpf_throw`](bpf_throw.md) ## Object allocation KFuncs A set of KFuncs to allocate and deallocate custom objects for the purposes of building custom data structures. -- [bpf_obj_new_impl](bpf_obj_new_impl.md) -- [bpf_percpu_obj_new_impl](bpf_percpu_obj_new_impl.md) -- [bpf_obj_drop_impl](bpf_obj_drop_impl.md) -- [bpf_percpu_obj_drop_impl](bpf_percpu_obj_drop_impl.md) -- [bpf_refcount_acquire_impl](bpf_refcount_acquire_impl.md) -- [bpf_list_push_front_impl](bpf_list_push_front_impl.md) -- [bpf_list_push_back_impl](bpf_list_push_back_impl.md) -- [bpf_list_pop_front](bpf_list_pop_front.md) -- [bpf_list_pop_back](bpf_list_pop_back.md) +- [`bpf_obj_new_impl`](bpf_obj_new_impl.md) +- [`bpf_percpu_obj_new_impl`](bpf_percpu_obj_new_impl.md) +- [`bpf_obj_drop_impl`](bpf_obj_drop_impl.md) +- [`bpf_percpu_obj_drop_impl`](bpf_percpu_obj_drop_impl.md) +- [`bpf_refcount_acquire_impl`](bpf_refcount_acquire_impl.md) +- [`bpf_list_push_front_impl`](bpf_list_push_front_impl.md) +- [`bpf_list_push_back_impl`](bpf_list_push_back_impl.md) +- [`bpf_list_pop_front`](bpf_list_pop_front.md) +- [`bpf_list_pop_back`](bpf_list_pop_back.md) ## BPF Arena KFuncs KFuncs used to allocate and free pages from an arena. -- [bpf_arena_alloc_pages](bpf_arena_alloc_pages.md) -- [bpf_arena_free_pages](bpf_arena_free_pages.md) +- [`bpf_arena_alloc_pages`](bpf_arena_alloc_pages.md) +- [`bpf_arena_free_pages`](bpf_arena_free_pages.md) ## BPF task KFuncs -Kfuncs used to aquire and release task reference. +Kfuncs used to acquire and release task reference. -- [bpf_task_acquire](bpf_task_acquire.md) -- [bpf_task_release](bpf_task_release.md) +- [`bpf_task_acquire`](bpf_task_acquire.md) +- [`bpf_task_release`](bpf_task_release.md) -## BPF cgroup KFuncs +## BPF cGroup KFuncs Kfuncs used to create and modify red-black trees. -- [bpf_rbtree_add_impl](bpf_rbtree_add_impl.md) -- [bpf_rbtree_first](bpf_rbtree_first.md) -- [bpf_rbtree_remove](bpf_rbtree_remove.md) +- [`bpf_rbtree_add_impl`](bpf_rbtree_add_impl.md) +- [`bpf_rbtree_first`](bpf_rbtree_first.md) +- [`bpf_rbtree_remove`](bpf_rbtree_remove.md) -## Kfuncs for aquiring and releasing cgroup references +## Kfuncs for acquiring and releasing cGroup references -These kfuncs allow you to take a reference to a cgroup and store them as kptrs in maps. +These kfuncs allow you to take a reference to a cGroup and store them as kptrs in maps. -- [bpf_cgroup_acquire](bpf_cgroup_acquire.md) -- [bpf_cgroup_release](bpf_cgroup_release.md) -- [bpf_cgroup_ancestor](bpf_cgroup_ancestor.md) -- [bpf_cgroup_from_id](bpf_cgroup_from_id.md) +- [`bpf_cgroup_acquire`](bpf_cgroup_acquire.md) +- [`bpf_cgroup_release`](bpf_cgroup_release.md) +- [`bpf_cgroup_ancestor`](bpf_cgroup_ancestor.md) +- [`bpf_cgroup_from_id`](bpf_cgroup_from_id.md) ## Kfuncs for querying tasks -- [bpf_task_under_cgroup](bpf_task_under_cgroup.md) -- [bpf_task_get_cgroup1](bpf_task_get_cgroup1.md) -- [bpf_task_from_pid](bpf_task_from_pid.md) +- [`bpf_task_under_cgroup`](bpf_task_under_cgroup.md) +- [`bpf_task_get_cgroup1`](bpf_task_get_cgroup1.md) +- [`bpf_task_from_pid`](bpf_task_from_pid.md) ## Kfuncs for casting pointers -- [bpf_cast_to_kern_ctx](bpf_cast_to_kern_ctx.md) -- [bpf_rdonly_cast](bpf_rdonly_cast.md) +- [`bpf_cast_to_kern_ctx`](bpf_cast_to_kern_ctx.md) +- [`bpf_rdonly_cast`](bpf_rdonly_cast.md) ## Kfuncs for taking and releasing RCU read locks -- [bpf_rcu_read_lock](bpf_rcu_read_lock.md) -- [bpf_rcu_read_unlock](bpf_rcu_read_unlock.md) +- [`bpf_rcu_read_lock`](bpf_rcu_read_lock.md) +- [`bpf_rcu_read_unlock`](bpf_rcu_read_unlock.md) ## Kfuncs for dynamic pointer slices -- [bpf_dynptr_slice](bpf_dynptr_slice.md) -- [bpf_dynptr_slice_rdwr](bpf_dynptr_slice_rdwr.md) +- [`bpf_dynptr_slice`](bpf_dynptr_slice.md) +- [`bpf_dynptr_slice_rdwr`](bpf_dynptr_slice_rdwr.md) ## Kfuncs for open coded numeric iterators -- [bpf_iter_num_new](bpf_iter_num_new.md) -- [bpf_iter_num_next](bpf_iter_num_next.md) -- [bpf_iter_num_destroy](bpf_iter_num_destroy.md) +- [`bpf_iter_num_new`](bpf_iter_num_new.md) +- [`bpf_iter_num_next`](bpf_iter_num_next.md) +- [`bpf_iter_num_destroy`](bpf_iter_num_destroy.md) -## Kfuncs for open coded VMA iterators +## Kfuncs for open coded virtual memory area iterators -- [bpf_iter_task_vma_new](bpf_iter_task_vma_new.md) -- [bpf_iter_task_vma_next](bpf_iter_task_vma_next.md) -- [bpf_iter_task_vma_destroy](bpf_iter_task_vma_destroy.md) +- [`bpf_iter_task_vma_new`](bpf_iter_task_vma_new.md) +- [`bpf_iter_task_vma_next`](bpf_iter_task_vma_next.md) +- [`bpf_iter_task_vma_destroy`](bpf_iter_task_vma_destroy.md) ## Kfuncs for open coded task cGroup iterators -- [bpf_iter_css_task_new](bpf_iter_css_task_new.md) -- [bpf_iter_css_task_next](bpf_iter_css_task_next.md) -- [bpf_iter_css_task_destroy](bpf_iter_css_task_destroy.md) +- [`bpf_iter_css_task_new`](bpf_iter_css_task_new.md) +- [`bpf_iter_css_task_next`](bpf_iter_css_task_next.md) +- [`bpf_iter_css_task_destroy`](bpf_iter_css_task_destroy.md) ## Kfuncs for open coded cGroup iterators -- [bpf_iter_css_new](bpf_iter_css_new.md) -- [bpf_iter_css_next](bpf_iter_css_next.md) -- [bpf_iter_css_destroy](bpf_iter_css_destroy.md) +- [`bpf_iter_css_new`](bpf_iter_css_new.md) +- [`bpf_iter_css_next`](bpf_iter_css_next.md) +- [`bpf_iter_css_destroy`](bpf_iter_css_destroy.md) ## Kfuncs for open coded task iterators -- [bpf_iter_task_new](bpf_iter_task_new.md) -- [bpf_iter_task_next](bpf_iter_task_next.md) -- [bpf_iter_task_destroy](bpf_iter_task_destroy.md) +- [`bpf_iter_task_new`](bpf_iter_task_new.md) +- [`bpf_iter_task_next`](bpf_iter_task_next.md) +- [`bpf_iter_task_destroy`](bpf_iter_task_destroy.md) ## Kfuncs for dynamic pointers -- [bpf_dynptr_adjust](bpf_dynptr_adjust.md) -- [bpf_dynptr_is_null](bpf_dynptr_is_null.md) -- [bpf_dynptr_is_rdonly](bpf_dynptr_is_rdonly.md) -- [bpf_dynptr_size](bpf_dynptr_size.md) -- [bpf_dynptr_clone](bpf_dynptr_clone.md) +- [`bpf_dynptr_adjust`](bpf_dynptr_adjust.md) +- [`bpf_dynptr_is_null`](bpf_dynptr_is_null.md) +- [`bpf_dynptr_is_rdonly`](bpf_dynptr_is_rdonly.md) +- [`bpf_dynptr_size`](bpf_dynptr_size.md) +- [`bpf_dynptr_clone`](bpf_dynptr_clone.md) ## Preemption KFuncs -- [bpf_preempt_disable](bpf_preempt_disable.md) -- [bpf_preempt_enable](bpf_preempt_enable.md) +- [`bpf_preempt_disable`](bpf_preempt_disable.md) +- [`bpf_preempt_enable`](bpf_preempt_enable.md) -## Workqueue KFuncs +## Work-queue KFuncs -- [bpf_wq_init](bpf_wq_init.md) -- [bpf_wq_set_callback_impl](bpf_wq_set_callback_impl.md) -- [bpf_wq_start](bpf_wq_start.md) +- [`bpf_wq_init`](bpf_wq_init.md) +- [`bpf_wq_set_callback_impl`](bpf_wq_set_callback_impl.md) +- [`bpf_wq_start`](bpf_wq_start.md) ## Misc KFuncs -- [bpf_map_sum_elem_count](bpf_map_sum_elem_count.md) -- [bpf_get_fsverity_digest](bpf_get_fsverity_digest.md) +- [`bpf_map_sum_elem_count`](bpf_map_sum_elem_count.md) +- [`bpf_get_fsverity_digest`](bpf_get_fsverity_digest.md) ## XDP metadata kfuncs -- [bpf_xdp_metadata_rx_timestamp](bpf_xdp_metadata_rx_timestamp.md) -- [bpf_xdp_metadata_rx_hash](bpf_xdp_metadata_rx_hash.md) -- [bpf_xdp_metadata_rx_vlan_tag](bpf_xdp_metadata_rx_vlan_tag.md) +- [`bpf_xdp_metadata_rx_timestamp`](bpf_xdp_metadata_rx_timestamp.md) +- [`bpf_xdp_metadata_rx_hash`](bpf_xdp_metadata_rx_hash.md) +- [`bpf_xdp_metadata_rx_vlan_tag`](bpf_xdp_metadata_rx_vlan_tag.md) ## XDP/SKB dynamic pointer kfuncs -- [bpf_dynptr_from_skb](bpf_dynptr_from_skb.md) -- [bpf_dynptr_from_xdp](bpf_dynptr_from_xdp.md) +- [`bpf_dynptr_from_skb`](bpf_dynptr_from_skb.md) +- [`bpf_dynptr_from_xdp`](bpf_dynptr_from_xdp.md) ## Socket related kfuncs -- [bpf_sock_addr_set_sun_path](bpf_sock_addr_set_sun_path.md) -- [bpf_sock_destroy](bpf_sock_destroy.md) +- [`bpf_sock_addr_set_sun_path`](bpf_sock_addr_set_sun_path.md) +- [`bpf_sock_destroy`](bpf_sock_destroy.md) ## Network crypto kfuncs -- [bpf_crypto_ctx_create](bpf_crypto_ctx_create.md) -- [bpf_crypto_ctx_acquire](bpf_crypto_ctx_acquire.md) -- [bpf_crypto_ctx_release](bpf_crypto_ctx_release.md) -- [bpf_crypto_decrypt](bpf_crypto_decrypt.md) -- [bpf_crypto_encrypt](bpf_crypto_encrypt.md) +- [`bpf_crypto_ctx_create`](bpf_crypto_ctx_create.md) +- [`bpf_crypto_ctx_acquire`](bpf_crypto_ctx_acquire.md) +- [`bpf_crypto_ctx_release`](bpf_crypto_ctx_release.md) +- [`bpf_crypto_decrypt`](bpf_crypto_decrypt.md) +- [`bpf_crypto_encrypt`](bpf_crypto_encrypt.md) ## BBR congestion control kfuncs -- [bbr_init](bbr_init.md) -- [bbr_main](bbr_main.md) -- [bbr_sndbuf_expand](bbr_sndbuf_expand.md) -- [bbr_undo_cwnd](bbr_undo_cwnd.md) -- [bbr_cwnd_event](bbr_cwnd_event.md) -- [bbr_ssthresh](bbr_ssthresh.md) -- [bbr_min_tso_segs](bbr_min_tso_segs.md) -- [bbr_set_state](bbr_set_state.md) +- [`bbr_init`](bbr_init.md) +- [`bbr_main`](bbr_main.md) +- [`bbr_sndbuf_expand`](bbr_sndbuf_expand.md) +- [`bbr_undo_cwnd`](bbr_undo_cwnd.md) +- [`bbr_cwnd_event`](bbr_cwnd_event.md) +- [`bbr_ssthresh`](bbr_ssthresh.md) +- [`bbr_min_tso_segs`](bbr_min_tso_segs.md) +- [`bbr_set_state`](bbr_set_state.md) ## Cubic TCP congestion control kfuncs -- [cubictcp_init](cubictcp_init.md) -- [cubictcp_recalc_ssthresh](cubictcp_recalc_ssthresh.md) -- [cubictcp_cong_avoid](cubictcp_cong_avoid.md) -- [cubictcp_state](cubictcp_state.md) -- [cubictcp_cwnd_event](cubictcp_cwnd_event.md) -- [cubictcp_acked](cubictcp_acked.md) +- [`cubictcp_init`](cubictcp_init.md) +- [`cubictcp_recalc_ssthresh`](cubictcp_recalc_ssthresh.md) +- [`cubictcp_cong_avoid`](cubictcp_cong_avoid.md) +- [`cubictcp_state`](cubictcp_state.md) +- [`cubictcp_cwnd_event`](cubictcp_cwnd_event.md) +- [`cubictcp_acked`](cubictcp_acked.md) ## DC TCP congestion control kfuncs -- [dctcp_init](dctcp_init.md) -- [dctcp_update_alpha](dctcp_update_alpha.md) -- [dctcp_cwnd_event](dctcp_cwnd_event.md) -- [dctcp_ssthresh](dctcp_ssthresh.md) -- [dctcp_cwnd_undo](dctcp_cwnd_undo.md) -- [dctcp_state](dctcp_state.md) +- [`dctcp_init`](dctcp_init.md) +- [`dctcp_update_alpha`](dctcp_update_alpha.md) +- [`dctcp_cwnd_event`](dctcp_cwnd_event.md) +- [`dctcp_ssthresh`](dctcp_ssthresh.md) +- [`dctcp_cwnd_undo`](dctcp_cwnd_undo.md) +- [`dctcp_state`](dctcp_state.md) ## TCP Reno congestion control kfuncs -- [tcp_reno_ssthresh](tcp_reno_ssthresh.md) -- [tcp_reno_cong_avoid](tcp_reno_cong_avoid.md) -- [tcp_reno_undo_cwnd](tcp_reno_undo_cwnd.md) -- [tcp_slow_start](tcp_slow_start.md) -- [tcp_cong_avoid_ai](tcp_cong_avoid_ai.md) +- [`tcp_reno_ssthresh`](tcp_reno_ssthresh.md) +- [`tcp_reno_cong_avoid`](tcp_reno_cong_avoid.md) +- [`tcp_reno_undo_cwnd`](tcp_reno_undo_cwnd.md) +- [`tcp_slow_start`](tcp_slow_start.md) +- [`tcp_cong_avoid_ai`](tcp_cong_avoid_ai.md) ## Foo over UDP KFuncs -- [bpf_skb_set_fou_encap](bpf_skb_set_fou_encap.md) -- [bpf_skb_get_fou_encap](bpf_skb_get_fou_encap.md) +- [`bpf_skb_set_fou_encap`](bpf_skb_set_fou_encap.md) +- [`bpf_skb_get_fou_encap`](bpf_skb_get_fou_encap.md) -## Contrack KFuncs +## Connection tracking KFuncs -- [bpf_ct_set_nat_info](bpf_ct_set_nat_info.md) -- [bpf_xdp_ct_alloc](bpf_xdp_ct_alloc.md) -- [bpf_xdp_ct_lookup](bpf_xdp_ct_lookup.md) -- [bpf_skb_ct_alloc](bpf_skb_ct_alloc.md) -- [bpf_skb_ct_lookup](bpf_skb_ct_lookup.md) -- [bpf_ct_insert_entry](bpf_ct_insert_entry.md) -- [bpf_ct_release](bpf_ct_release.md) -- [bpf_ct_set_timeout](bpf_ct_set_timeout.md) -- [bpf_ct_change_timeout](bpf_ct_change_timeout.md) -- [bpf_ct_set_status](bpf_ct_set_status.md) -- [bpf_ct_change_status](bpf_ct_change_status.md) +- [`bpf_ct_set_nat_info`](bpf_ct_set_nat_info.md) +- [`bpf_xdp_ct_alloc`](bpf_xdp_ct_alloc.md) +- [`bpf_xdp_ct_lookup`](bpf_xdp_ct_lookup.md) +- [`bpf_skb_ct_alloc`](bpf_skb_ct_alloc.md) +- [`bpf_skb_ct_lookup`](bpf_skb_ct_lookup.md) +- [`bpf_ct_insert_entry`](bpf_ct_insert_entry.md) +- [`bpf_ct_release`](bpf_ct_release.md) +- [`bpf_ct_set_timeout`](bpf_ct_set_timeout.md) +- [`bpf_ct_change_timeout`](bpf_ct_change_timeout.md) +- [`bpf_ct_set_status`](bpf_ct_set_status.md) +- [`bpf_ct_change_status`](bpf_ct_change_status.md) ## XFRM KFuncs -- [bpf_skb_get_xfrm_info](bpf_skb_get_xfrm_info.md) -- [bpf_skb_set_xfrm_info](bpf_skb_set_xfrm_info.md) -- [bpf_xdp_get_xfrm_state](bpf_xdp_get_xfrm_state.md) -- [bpf_xdp_xfrm_state_release](bpf_xdp_xfrm_state_release.md) +- [`bpf_skb_get_xfrm_info`](bpf_skb_get_xfrm_info.md) +- [`bpf_skb_set_xfrm_info`](bpf_skb_set_xfrm_info.md) +- [`bpf_xdp_get_xfrm_state`](bpf_xdp_get_xfrm_state.md) +- [`bpf_xdp_xfrm_state_release`](bpf_xdp_xfrm_state_release.md) ## HID Kfuncs -- [hid_bpf_get_data](hid_bpf_get_data.md) -- [hid_bpf_attach_prog](hid_bpf_attach_prog.md) -- [hid_bpf_allocate_context](hid_bpf_allocate_context.md) -- [hid_bpf_release_context](hid_bpf_release_context.md) -- [hid_bpf_hw_request](hid_bpf_hw_request.md) +- [`hid_bpf_get_data`](hid_bpf_get_data.md) +- [`hid_bpf_attach_prog`](hid_bpf_attach_prog.md) +- [`hid_bpf_allocate_context`](hid_bpf_allocate_context.md) +- [`hid_bpf_release_context`](hid_bpf_release_context.md) +- [`hid_bpf_hw_request`](hid_bpf_hw_request.md) ## KProbe session Kfuncs - - [bpf_session_cookie](bpf_session_cookie.md) - - [bpf_session_is_return](bpf_session_is_return.md) +- [`bpf_session_cookie`](bpf_session_cookie.md) +- [`bpf_session_is_return`](bpf_session_is_return.md) diff --git a/docs/linux/kfuncs/tcp_cong_avoid_ai.md b/docs/linux/kfuncs/tcp_cong_avoid_ai.md index 88aec7ee..dd1cfc08 100644 --- a/docs/linux/kfuncs/tcp_cong_avoid_ai.md +++ b/docs/linux/kfuncs/tcp_cong_avoid_ai.md @@ -10,7 +10,7 @@ description: "This page documents the 'tcp_cong_avoid_ai' eBPF kfunc, including ## Definition -In theory this is tp->snd_cwnd += 1 / tp->snd_cwnd (or alternative w), for every packet that was ACKed. +In theory this is `tp->snd_cwnd += 1 / tp->snd_cwnd` (or alternative w), for every packet that was ACK-ed. `#!c void tcp_cong_avoid_ai(struct tcp_sock *tp, u32 w, u32 acked)` @@ -26,7 +26,7 @@ In theory this is tp->snd_cwnd += 1 / tp->snd_cwnd (or alternative w), for every The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/kfuncs/tcp_reno_cong_avoid.md b/docs/linux/kfuncs/tcp_reno_cong_avoid.md index d2deb6c4..d9dbbed3 100644 --- a/docs/linux/kfuncs/tcp_reno_cong_avoid.md +++ b/docs/linux/kfuncs/tcp_reno_cong_avoid.md @@ -12,7 +12,7 @@ Do new congestion window calculation ## Definition -This is Jacobson's slow start and congestion avoidance. SIGCOMM '88, p. 328. +This is Jacobson's slow start and congestion avoidance. SIGCOMM '88, p. 328. `#!c void tcp_reno_cong_avoid(struct sock *sk, u32 ack, u32 acked)` @@ -28,7 +28,7 @@ This is Jacobson's slow start and congestion avoidance. SIGCOMM '88, p. 328. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/kfuncs/tcp_reno_ssthresh.md b/docs/linux/kfuncs/tcp_reno_ssthresh.md index 7ce2a00d..43f276d3 100644 --- a/docs/linux/kfuncs/tcp_reno_ssthresh.md +++ b/docs/linux/kfuncs/tcp_reno_ssthresh.md @@ -28,7 +28,7 @@ Slow start threshold is half the congestion window (min 2) The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/kfuncs/tcp_reno_undo_cwnd.md b/docs/linux/kfuncs/tcp_reno_undo_cwnd.md index c1138449..a2e55873 100644 --- a/docs/linux/kfuncs/tcp_reno_undo_cwnd.md +++ b/docs/linux/kfuncs/tcp_reno_undo_cwnd.md @@ -26,7 +26,7 @@ Return new value of congestion window after loss. The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/kfuncs/tcp_slow_start.md b/docs/linux/kfuncs/tcp_slow_start.md index d336259f..719d4d94 100644 --- a/docs/linux/kfuncs/tcp_slow_start.md +++ b/docs/linux/kfuncs/tcp_slow_start.md @@ -9,9 +9,10 @@ description: "This page documents the 'tcp_slow_start' eBPF kfunc, including its Slow start is used when congestion window is no greater than the slow start threshold. + ## Definition -Slow start is used when congestion window is no greater than the slow start threshold. We base on RFC2581 and also handle stretch ACKs properly. We do not implement RFC3465 Appropriate Byte Counting (ABC) per se but something better;) a packet is only considered (s)acked in its entirety to defend the ACK attacks described in the RFC. Slow start processes a stretch ACK of degree N as if N acks of degree 1 are received back to back except ABC caps N to 2. Slow start exits when cwnd grows over ssthresh and returns the leftover acks to adjust cwnd in congestion avoidance mode. +Slow start is used when congestion window is no greater than the slow start threshold. We base on RFC2581 and also handle stretch ACKs properly. We do not implement RFC3465 Appropriate Byte Counting (ABC) per se but something better;) a packet is only considered (s)acked in its entirety to defend the ACK attacks described in the RFC. Slow start processes a stretch ACK of degree N as if N ACKs of degree 1 are received back to back except ABC caps N to 2. Slow start exits when `cwnd` grows over `ssthresh` and returns the leftover ACKs to adjust `cwnd` in congestion avoidance mode. `#!c u32 tcp_slow_start(struct tcp_sock *tp, u32 acked)` @@ -27,7 +28,7 @@ Slow start is used when congestion window is no greater than the slow start thre The following program types can make use of this kfunc: -- [BPF_PROG_TYPE_STRUCT_OPS](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) +- [`BPF_PROG_TYPE_STRUCT_OPS`](../program-type/BPF_PROG_TYPE_STRUCT_OPS.md) ### Example diff --git a/docs/linux/map-type/BPF_MAP_TYPE_BLOOM_FILTER.md b/docs/linux/map-type/BPF_MAP_TYPE_BLOOM_FILTER.md index 5dc50f8f..8d19c7dd 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_BLOOM_FILTER.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_BLOOM_FILTER.md @@ -20,7 +20,7 @@ Due to its implementation a bloom filter does not take up much memory compared t ### Implementation -A bloom filter is a bitfield (array of bits). When querying the bloom filter we take our key and hash it so the result is an index into the bitfield. The result the value of the bit, 1 or 0. When writing a value we use the same hash and set the bit to 1. This deliberately causes hash collisions. So when the result of a query is 0, you know 100% that the key was never written to the bloom filter. But when the result is a 1, that may be because the key was written or due to hash collision. +A bloom filter is a bit-field (array of bits). When querying the bloom filter we take our key and hash it so the result is an index into the bit-field. The result the value of the bit, 1 or 0. When writing a value we use the same hash and set the bit to 1. This deliberately causes hash collisions. So when the result of a query is 0, you know 100% that the key was never written to the bloom filter. But when the result is a 1, that may be because the key was written or due to hash collision. In practice we use multiple hash methods for example 5, and see if all 5 indices are 1 to decrease false positives without increasing the size of the bitfield. @@ -38,7 +38,7 @@ The bloom filter map does not have keys, only values. When the bloom filter map The [`max_entries`](../syscall/BPF_MAP_CREATE.md#max_entries) size that is specified at map creation time is used to approximate a reasonable bitmap size for the bloom filter, and is not otherwise strictly enforced. If the user wishes to insert more entries into the bloom filter than [`max_entries`](../syscall/BPF_MAP_CREATE.md#max_entries), this may lead to a higher false positive rate. -The number of hashes to use for the bloom filter is configurable using the lower 4 bits of [`map_extra`](../syscall/BPF_MAP_CREATE.md#map_extra) in union bpf_attr at map creation time. If no number is specified, the default used will be 5 hash functions. In general, using more hashes decreases both the false positive rate and the speed of a lookup. +The number of hashes to use for the bloom filter is configurable using the lower 4 bits of [`map_extra`](../syscall/BPF_MAP_CREATE.md#map_extra) in union `bpf_attr` at map creation time. If no number is specified, the default used will be 5 hash functions. In general, using more hashes decreases both the false positive rate and the speed of a lookup. ## Syscall commands diff --git a/docs/linux/map-type/BPF_MAP_TYPE_DEVMAP.md b/docs/linux/map-type/BPF_MAP_TYPE_DEVMAP.md index 33844eac..ff3e3e5b 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_DEVMAP.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_DEVMAP.md @@ -31,7 +31,7 @@ struct bpf_devmap_val { The `fd`/`id` refers to an XDP program optionally set by userspace. If set, the referred XDP program will execute on the packet, in the context of the new network device after the packet has been redirected but before it egresses the network interface. !!! note - Programs attached to a devmap must be loaded with the `BPF_XDP_DEVMAP` expected attach type. + Programs attached to a devmap must be loaded with the `BPF_XDP_DEVMAP` expected attach type. ## Attributes diff --git a/docs/linux/map-type/BPF_MAP_TYPE_DEVMAP_HASH.md b/docs/linux/map-type/BPF_MAP_TYPE_DEVMAP_HASH.md index 0347a10f..58f5c929 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_DEVMAP_HASH.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_DEVMAP_HASH.md @@ -31,7 +31,7 @@ struct bpf_devmap_val { The `fd`/`id` refers to an XDP program optionally set by userspace. If set, the referred XDP program will execute on the packet, in the context of the new network device after the packet has been redirected but before it egresses the network interface. !!! note - Programs attached to a devmap must be loaded with the `BPF_XDP_DEVMAP` expected attach type. + Programs attached to a devmap must be loaded with the `BPF_XDP_DEVMAP` expected attach type. ## Attributes diff --git a/docs/linux/map-type/BPF_MAP_TYPE_HASH.md b/docs/linux/map-type/BPF_MAP_TYPE_HASH.md index 8ffabbc3..0cf6a8df 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_HASH.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_HASH.md @@ -8,7 +8,7 @@ description: "This page documents the 'BPF_MAP_TYPE_HASH' eBPF map type, includi [:octicons-tag-24: v3.19](https://github.com/torvalds/linux/commit/0f8e4bd8a1fc8c4185f1630061d0a1f2d197a475) -The hash map type is a generic map type with no restrictions on the structure of the key and value. Hashmaps are implemented using a hash table, allowing for lookups with arbitrary keys. +The hash map type is a generic map type with no restrictions on the structure of the key and value. Hash-maps are implemented using a hash table, allowing for lookups with arbitrary keys. ## Attributes diff --git a/docs/linux/map-type/BPF_MAP_TYPE_LPM_TRIE.md b/docs/linux/map-type/BPF_MAP_TYPE_LPM_TRIE.md index dd5206cc..caea1cb1 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_LPM_TRIE.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_LPM_TRIE.md @@ -53,7 +53,7 @@ struct lpm_key { LPM tries may be created with a maximum prefix length that is a multiple of 8, in the range from 8 to 2048. So the `data` part of the key can't be larger than 256 bytes (4 or 16 is normal for IPv4 and IPv6 addresses). -> Data stored in @data of struct bpf_lpm_key and struct lpm_trie_node is interpreted as big endian, so data[0] stores the most significant byte. [...] one single element that matches 192.168.0.0/16. The data array would hence contain [0xc0, 0xa8, 0x00, 0x00] in big-endian notation. +> Data stored in @data of struct `bpf_lpm_key` and struct `lpm_trie_node` is interpreted as big endian, so data[0] stores the most significant byte. [...] one single element that matches 192.168.0.0/16. The data array would hence contain `[0xc0, 0xa8, 0x00, 0x00]` in big-endian notation. !!! note The `BPF_F_NO_PREALLOC` flag must always be set when creating this map type since the implementation cannot pre-allocate the map. diff --git a/docs/linux/map-type/BPF_MAP_TYPE_PERCPU_HASH.md b/docs/linux/map-type/BPF_MAP_TYPE_PERCPU_HASH.md index 33a434f2..82eb9061 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_PERCPU_HASH.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_PERCPU_HASH.md @@ -10,7 +10,7 @@ description: "This page documents the 'BPF_MAP_TYPE_PERCPU_HASH' eBPF map type, This is the per-CPU variant of the [`BPF_MAP_TYPE_HASH`](BPF_MAP_TYPE_HASH.md) map type. -This map type is a generic map type with no restrictions on the structure of the key and value. Hashmaps are implemented using a hash table, allowing for lookups with arbitrary keys. +This map type is a generic map type with no restrictions on the structure of the key and value. Hash-maps are implemented using a hash table, allowing for lookups with arbitrary keys. This per-CPU version has a separate hash map for each logical CPU. When accessing the map using most [helper function](../helper-function/index.md), the hash map assigned to the CPU the eBPF program is currently running on is accessed implicitly. diff --git a/docs/linux/map-type/BPF_MAP_TYPE_PERF_EVENT_ARRAY.md b/docs/linux/map-type/BPF_MAP_TYPE_PERF_EVENT_ARRAY.md index ceeada04..eb0201cd 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_PERF_EVENT_ARRAY.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_PERF_EVENT_ARRAY.md @@ -12,13 +12,13 @@ This is a specialized map type which holds file descriptors to perf events. It i ## Usage -There are two different ways to use this map type. The first and most popular way is to allows programs to send arbitrary data, for example debug messages, network flows, parts of the program context, ect. +There are two different ways to use this map type. The first and most popular way is to allows programs to send arbitrary data, for example debug messages, network flows, parts of the program context, etcetera. The second way is with the [bpf_perf_event_read](../helper-function/bpf_perf_event_read.md) and [bpf_perf_event_read_value](../helper-function/bpf_perf_event_read_value.md) helpers to allow tracing programs to read performance counters. ### Data transfer -This usage scenario allows eBPF logic to piggy-back on the existing perf-subsystem implementation of ringbuffers to transfer data from the kernel to userspace. Sending data from an eBPF program is simple. Define a `BPF_MAP_TYPE_PERF_EVENT_ARRAY`, prepare some data to be sent, then call the [bpf_perf_event_output](../helper-function/bpf_perf_event_output.md) helper. +This usage scenario allows eBPF logic to piggy-back on the existing perf-subsystem implementation of ring-buffers to transfer data from the kernel to userspace. Sending data from an eBPF program is simple. Define a `BPF_MAP_TYPE_PERF_EVENT_ARRAY`, prepare some data to be sent, then call the [bpf_perf_event_output](../helper-function/bpf_perf_event_output.md) helper. Receiving this data on the userspace side will need to do some initial setup work. @@ -52,7 +52,7 @@ Note that `{watermark}` and `{cpu}` are not pre-set. In this example we set `.wa After creating the perf event, it is recommended to make it non-blocking, if using used with a signaling mechanism such as `epoll`. This can be done by calling [`fcntl`](https://man7.org/linux/man-pages/man2/fcntl.2.html) with the `O_NONBLOCK` option on the file descriptor. -Next, we need to setup the actual ringbuffer which we will use to read data from the perf event. To do so we first have to request a shared memory region from the kernel using [`mmap`](https://man7.org/linux/man-pages/man2/mmap.2.html) `#!c mmap(nil, length, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0)`. `length` can be picked and tuned depending on the use case but should always be `1+2^n` memory pages and `n` should not be `0`. So Assuming a 4k page size, valid values would be `12288`, `20480`, `28672` and so on. The `fd` should be the file descriptor of the perf event. +Next, we need to setup the actual ring-buffer which we will use to read data from the perf event. To do so we first have to request a shared memory region from the kernel using [`mmap`](https://man7.org/linux/man-pages/man2/mmap.2.html) `#!c mmap(nil, length, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0)`. `length` can be picked and tuned depending on the use case but should always be `1+2^n` memory pages and `n` should not be `0`. So Assuming a 4k page size, valid values would be `12288`, `20480`, `28672` and so on. The `fd` should be the file descriptor of the perf event. The `mmap` call, if all is well, should return a pointer to a memory address. The first page will contain the following data structure populated by the perf subsystem: @@ -252,15 +252,15 @@ The `mmap` call, if all is well, should return a pointer to a memory address. Th This structure contains a lot of additional data, but for consuming the data, we interested in the `perf_event_mmap_page->head`, `perf_event_mmap_page->tail`, `perf_event_mmap_page->data_offset` and `perf_event_mmap_page->data_size` fields. -The `data_offset` and `data_size` indicate the offset from the `addr` pointer where the ringbuffer data starts, and `data_size` where it ends. The region between these two locations will be written to by the kernel. To avoid race conditions, we should avoid reading and writing the same location at the same time. The `head` and `tail` are used to coordinate access. The `head` will be written to by the kernel and should be read by userspace, it moves if new data is available. The `tail` will be written to by userspace to indicate data has been consumed. So if `head` and `tail` are equal, no data is pending. If `head` == `tail-1` then the buffer is full. +The `data_offset` and `data_size` indicate the offset from the `addr` pointer where the ring-buffer data starts, and `data_size` where it ends. The region between these two locations will be written to by the kernel. To avoid race conditions, we should avoid reading and writing the same location at the same time. The `head` and `tail` are used to coordinate access. The `head` will be written to by the kernel and should be read by userspace, it moves if new data is available. The `tail` will be written to by userspace to indicate data has been consumed. So if `head` and `tail` are equal, no data is pending. If `head` == `tail-1` then the buffer is full. -To recap, we create a perf event for every logical CPU, and every perf event gets its own ringbuffer. +To recap, we create a perf event for every logical CPU, and every perf event gets its own ring-buffer. -Once setup, userspace can busy-poll the ringbuffers, but this might cause significant overhead or data loss during spikes. It is recommended to use [`epoll`](https://man7.org/linux/man-pages/man7/epoll.7.html) to setup signalling in combination with the watermark settings for optimal result. Allowing a reader thread to wake-up when there is data, read from all buffers indicated to have pending data by `epoll` and then go back to blocking mode/sleep. This avoids CPU usage when nothing happens and wakes up the thread more frequently when more data is sent. +Once setup, userspace can busy-poll the ring-buffers, but this might cause significant overhead or data loss during spikes. It is recommended to use [`epoll`](https://man7.org/linux/man-pages/man7/epoll.7.html) to setup signalling in combination with the watermark settings for optimal result. Allowing a reader thread to wake-up when there is data, read from all buffers indicated to have pending data by `epoll` and then go back to blocking mode/sleep. This avoids CPU usage when nothing happens and wakes up the thread more frequently when more data is sent. -Depending on the use case, a author might want to dedicate more threads to reading concurrently, not use watermarks, or still do busy polling, it all depends on optimizing thruput, latency (between eBPF sending and userspace consuming), memory usage, and CPU usage. +Depending on the use case, a author might want to dedicate more threads to reading concurrently, not use watermarks, or still do busy polling, it all depends on optimizing throughput, latency (between eBPF sending and userspace consuming), memory usage, and CPU usage. -Every entry on the ringbuffer will start with the same header: +Every entry on the ring-buffer will start with the same header: ```c struct perf_event_header { @@ -294,7 +294,7 @@ struct { The `lost` field indicates how many samples have been lost. This might happen when the ringbuffer is full or nearly full. The kernel will keep track of the amount of samples it can't write and will populate the ring buffer with record lost messages after there is room on the ringbuffer again. -For further reading, checkout [tools/perf/design.txt](https://github.com/torvalds/linux/blob/v6.2/tools/perf/design.txt) which goes into the design and logic behind the above instructions. +For further reading, checkout [`tools/perf/design.txt`](https://github.com/torvalds/linux/blob/v6.2/tools/perf/design.txt) which goes into the design and logic behind the above instructions. ### Performance counters diff --git a/docs/linux/map-type/BPF_MAP_TYPE_REUSEPORT_SOCKARRAY.md b/docs/linux/map-type/BPF_MAP_TYPE_REUSEPORT_SOCKARRAY.md index ec77a5ff..90576f25 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_REUSEPORT_SOCKARRAY.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_REUSEPORT_SOCKARRAY.md @@ -12,7 +12,7 @@ This is a special purpose map type which holds references to sockets with the `S ## Usage -This map is used together with the [bpf_sk_select_reuseport](../helper-function/bpf_sk_select_reuseport.md) helper function to select a socket from a reuse port socket group to handle traffic. +This map is used together with the [`bpf_sk_select_reuseport`](../helper-function/bpf_sk_select_reuseport.md) helper function to select a socket from a reuse port socket group to handle traffic. ## Attributes diff --git a/docs/linux/map-type/BPF_MAP_TYPE_SOCKHASH.md b/docs/linux/map-type/BPF_MAP_TYPE_SOCKHASH.md index 51f9aecb..afa623c2 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_SOCKHASH.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_SOCKHASH.md @@ -12,7 +12,7 @@ The socket map is a specialized map type which hold network sockets as value. ## Usage -This map type can be use too lookup a pointer to a socket with the [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) helper function, which then can be passed to helpers such as [`bpf_sk_assign`](../helper-function/bpf_sk_assign.md) or the a map reference can be used directly in a range of helpers such as [bpf_sk_redirect_map](../helper-function/bpf_sk_redirect_map.md), [bpf_msg_redirect_map](../helper-function/bpf_msg_redirect_map.md) and [bpf_sk_select_reuseport](../helper-function/bpf_sk_select_reuseport.md). All of the above cases redirect a packet or connection in some way, the details differ depending on the program type and the helper function, so please visit the specific pages for details. +This map type can be use too lookup a pointer to a socket with the [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) helper function, which then can be passed to helpers such as [`bpf_sk_assign`](../helper-function/bpf_sk_assign.md) or the a map reference can be used directly in a range of helpers such as [`bpf_sk_redirect_map`](../helper-function/bpf_sk_redirect_map.md), [`bpf_msg_redirect_map`](../helper-function/bpf_msg_redirect_map.md) and [`bpf_sk_select_reuseport`](../helper-function/bpf_sk_select_reuseport.md). All of the above cases redirect a packet or connection in some way, the details differ depending on the program type and the helper function, so please visit the specific pages for details. !!! note Sockets returned by `bpf_map_lookup_elem` are ref-counted, so the caller must call [`bpf_sk_release`](../helper-function/bpf_sk_release.md) in all code paths where the returned socket is not NULL before exiting the program. This is enforced by the verifier which will throw a `Unreleased reference` error if socket pointers are not released. diff --git a/docs/linux/map-type/BPF_MAP_TYPE_SOCKMAP.md b/docs/linux/map-type/BPF_MAP_TYPE_SOCKMAP.md index a6af1fa7..bd5e4955 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_SOCKMAP.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_SOCKMAP.md @@ -12,7 +12,7 @@ The socket map is a specialized map type which hold network sockets as value. ## Usage -This map type can be use too lookup a pointer to a socket with the [bpf_map_lookup_elem](../helper-function/bpf_map_lookup_elem.md) helper function, which then can be passed to helpers such as [`bpf_sk_assign`](../helper-function/bpf_sk_assign.md) or the a map reference can be used directly in a range of helpers such as [bpf_sk_redirect_map](../helper-function/bpf_sk_redirect_map.md), [bpf_msg_redirect_map](../helper-function/bpf_msg_redirect_map.md) and [bpf_sk_select_reuseport](../helper-function/bpf_sk_select_reuseport.md). All of the above cases redirect a packet or connection in some way, the details differ depending on the program type and the helper function, so please visit the specific pages for details. +This map type can be use too lookup a pointer to a socket with the [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) helper function, which then can be passed to helpers such as [`bpf_sk_assign`](../helper-function/bpf_sk_assign.md) or the a map reference can be used directly in a range of helpers such as [`bpf_sk_redirect_map`](../helper-function/bpf_sk_redirect_map.md), [`bpf_msg_redirect_map`](../helper-function/bpf_msg_redirect_map.md) and [`bpf_sk_select_reuseport`](../helper-function/bpf_sk_select_reuseport.md). All of the above cases redirect a packet or connection in some way, the details differ depending on the program type and the helper function, so please visit the specific pages for details. !!! note Sockets returned by `bpf_map_lookup_elem` are ref-counted, so the caller must call [`bpf_sk_release`](../helper-function/bpf_sk_release.md) in all code paths where the returned socket is not NULL before exiting the program. This is enforced by the verifier which will throw a `Unreleased reference` error if socket pointers are not released. diff --git a/docs/linux/map-type/BPF_MAP_TYPE_STRUCT_OPS.md b/docs/linux/map-type/BPF_MAP_TYPE_STRUCT_OPS.md index 31f34f04..b8128e7d 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_STRUCT_OPS.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_STRUCT_OPS.md @@ -12,7 +12,7 @@ Struct ops maps are specialized maps that act as implementations of "struct ops" ## Usage -The kernel has the concept of of "struct ops" which are function pointers inside a struct, this is the kernels way of implementing polymorphism. A callsite defines a structure and contract for how the implementations should behave. A new implementation can then create an instance of this struct and set its own functions. +The kernel has the concept of of "struct ops" which are function pointers inside a struct, this is the kernels way of implementing polymorphism. A call site defines a structure and contract for how the implementations should behave. A new implementation can then create an instance of this struct and set its own functions. The struct ops map type is meant to serve as a way to allocate memory for an instant of struct ops. BPF programs are then set as field values to implement the functions in the struct ops. @@ -46,7 +46,7 @@ The following helper functions work with this map type: [:octicons-tag-24: v6.4](https://github.com/torvalds/linux/commit/68b04864ca425d1894c96b8141d4fba1181f11cb) -If this flag is specified, the defined struct ops isn't directly attached to the callsite of the struct ops. Instead, a BPF link must be used to attach the struct ops to the callsite. +If this flag is specified, the defined struct ops isn't directly attached to the call site of the struct ops. Instead, a BPF link must be used to attach the struct ops to the call site. ### `BPF_F_VTYPE_BTF_OBJ_FD` diff --git a/docs/linux/map-type/BPF_MAP_TYPE_TASK_STORAGE.md b/docs/linux/map-type/BPF_MAP_TYPE_TASK_STORAGE.md index 5045bad6..ea2817f9 100644 --- a/docs/linux/map-type/BPF_MAP_TYPE_TASK_STORAGE.md +++ b/docs/linux/map-type/BPF_MAP_TYPE_TASK_STORAGE.md @@ -10,7 +10,7 @@ description: "This page documents the 'BPF_MAP_TYPE_TASK_STORAGE' eBPF map type, This map type stores data keyed on a task. The user can only create, update or delete entries for existing tasks. When a task is deleted, the entry for that task is automatically removed. -Userspace can read or update values for any task, granted they have a PID file descriptor for that task. +Userspace can read or update values for any task, granted they have a process ID file descriptor for that task. ## Attributes diff --git a/docs/linux/map-type/SUMMARY.md b/docs/linux/map-type/SUMMARY.md index 4d4a9c9a..b9157d3d 100644 --- a/docs/linux/map-type/SUMMARY.md +++ b/docs/linux/map-type/SUMMARY.md @@ -1,40 +1,40 @@ -* [index.md](index.md) +* [`index.md`](index.md) * Generic map types - * [BPF_MAP_TYPE_HASH](BPF_MAP_TYPE_HASH.md) - * [BPF_MAP_TYPE_ARRAY](BPF_MAP_TYPE_ARRAY.md) - * [BPF_MAP_TYPE_PERCPU_HASH](BPF_MAP_TYPE_PERCPU_HASH.md) - * [BPF_MAP_TYPE_PERCPU_ARRAY](BPF_MAP_TYPE_PERCPU_ARRAY.md) - * [BPF_MAP_TYPE_QUEUE](BPF_MAP_TYPE_QUEUE.md) - * [BPF_MAP_TYPE_STACK](BPF_MAP_TYPE_STACK.md) - * [BPF_MAP_TYPE_LRU_HASH](BPF_MAP_TYPE_LRU_HASH.md) - * [BPF_MAP_TYPE_LRU_PERCPU_HASH](BPF_MAP_TYPE_LRU_PERCPU_HASH.md) - * [BPF_MAP_TYPE_LPM_TRIE](BPF_MAP_TYPE_LPM_TRIE.md) - * [BPF_MAP_TYPE_BLOOM_FILTER](BPF_MAP_TYPE_BLOOM_FILTER.md) + * [`BPF_MAP_TYPE_HASH`](BPF_MAP_TYPE_HASH.md) + * [`BPF_MAP_TYPE_ARRAY`](BPF_MAP_TYPE_ARRAY.md) + * [`BPF_MAP_TYPE_PERCPU_HASH`](BPF_MAP_TYPE_PERCPU_HASH.md) + * [`BPF_MAP_TYPE_PERCPU_ARRAY`](BPF_MAP_TYPE_PERCPU_ARRAY.md) + * [`BPF_MAP_TYPE_QUEUE`](BPF_MAP_TYPE_QUEUE.md) + * [`BPF_MAP_TYPE_STACK`](BPF_MAP_TYPE_STACK.md) + * [`BPF_MAP_TYPE_LRU_HASH`](BPF_MAP_TYPE_LRU_HASH.md) + * [`BPF_MAP_TYPE_LRU_PERCPU_HASH`](BPF_MAP_TYPE_LRU_PERCPU_HASH.md) + * [`BPF_MAP_TYPE_LPM_TRIE`](BPF_MAP_TYPE_LPM_TRIE.md) + * [`BPF_MAP_TYPE_BLOOM_FILTER`](BPF_MAP_TYPE_BLOOM_FILTER.md) * Map in map - * [BPF_MAP_TYPE_ARRAY_OF_MAPS](BPF_MAP_TYPE_ARRAY_OF_MAPS.md) - * [BPF_MAP_TYPE_HASH_OF_MAPS](BPF_MAP_TYPE_HASH_OF_MAPS.md) + * [`BPF_MAP_TYPE_ARRAY_OF_MAPS`](BPF_MAP_TYPE_ARRAY_OF_MAPS.md) + * [`BPF_MAP_TYPE_HASH_OF_MAPS`](BPF_MAP_TYPE_HASH_OF_MAPS.md) * Streaming - * [BPF_MAP_TYPE_PERF_EVENT_ARRAY](BPF_MAP_TYPE_PERF_EVENT_ARRAY.md) - * [BPF_MAP_TYPE_RINGBUF](BPF_MAP_TYPE_RINGBUF.md) - * [BPF_MAP_TYPE_USER_RINGBUF](BPF_MAP_TYPE_USER_RINGBUF.md) + * [`BPF_MAP_TYPE_PERF_EVENT_ARRAY`](BPF_MAP_TYPE_PERF_EVENT_ARRAY.md) + * [`BPF_MAP_TYPE_RINGBUF`](BPF_MAP_TYPE_RINGBUF.md) + * [`BPF_MAP_TYPE_USER_RINGBUF`](BPF_MAP_TYPE_USER_RINGBUF.md) * Packet redirection - * [BPF_MAP_TYPE_DEVMAP](BPF_MAP_TYPE_DEVMAP.md) - * [BPF_MAP_TYPE_SOCKMAP](BPF_MAP_TYPE_SOCKMAP.md) - * [BPF_MAP_TYPE_CPUMAP](BPF_MAP_TYPE_CPUMAP.md) - * [BPF_MAP_TYPE_XSKMAP](BPF_MAP_TYPE_XSKMAP.md) - * [BPF_MAP_TYPE_SOCKHASH](BPF_MAP_TYPE_SOCKHASH.md) - * [BPF_MAP_TYPE_DEVMAP_HASH](BPF_MAP_TYPE_DEVMAP_HASH.md) - * [BPF_MAP_TYPE_REUSEPORT_SOCKARRAY](BPF_MAP_TYPE_REUSEPORT_SOCKARRAY.md) + * [`BPF_MAP_TYPE_DEVMAP`](BPF_MAP_TYPE_DEVMAP.md) + * [`BPF_MAP_TYPE_SOCKMAP`](BPF_MAP_TYPE_SOCKMAP.md) + * [`BPF_MAP_TYPE_CPUMAP`](BPF_MAP_TYPE_CPUMAP.md) + * [`BPF_MAP_TYPE_XSKMAP`](BPF_MAP_TYPE_XSKMAP.md) + * [`BPF_MAP_TYPE_SOCKHASH`](BPF_MAP_TYPE_SOCKHASH.md) + * [`BPF_MAP_TYPE_DEVMAP_HASH`](BPF_MAP_TYPE_DEVMAP_HASH.md) + * [`BPF_MAP_TYPE_REUSEPORT_SOCKARRAY`](BPF_MAP_TYPE_REUSEPORT_SOCKARRAY.md) * Flow redirection - * [BPF_MAP_TYPE_PROG_ARRAY](BPF_MAP_TYPE_PROG_ARRAY.md) + * [`BPF_MAP_TYPE_PROG_ARRAY`](BPF_MAP_TYPE_PROG_ARRAY.md) * Object attached storage - * [BPF_MAP_TYPE_CGROUP_STORAGE](BPF_MAP_TYPE_CGROUP_STORAGE.md) - * [BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE](BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE.md) - * [BPF_MAP_TYPE_SK_STORAGE](BPF_MAP_TYPE_SK_STORAGE.md) - * [BPF_MAP_TYPE_INODE_STORAGE](BPF_MAP_TYPE_INODE_STORAGE.md) - * [BPF_MAP_TYPE_TASK_STORAGE](BPF_MAP_TYPE_TASK_STORAGE.md) - * [BPF_MAP_TYPE_CGRP_STORAGE](BPF_MAP_TYPE_CGRP_STORAGE.md) + * [`BPF_MAP_TYPE_CGROUP_STORAGE`](BPF_MAP_TYPE_CGROUP_STORAGE.md) + * [`BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE`](BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE.md) + * [`BPF_MAP_TYPE_SK_STORAGE`](BPF_MAP_TYPE_SK_STORAGE.md) + * [`BPF_MAP_TYPE_INODE_STORAGE`](BPF_MAP_TYPE_INODE_STORAGE.md) + * [`BPF_MAP_TYPE_TASK_STORAGE`](BPF_MAP_TYPE_TASK_STORAGE.md) + * [`BPF_MAP_TYPE_CGRP_STORAGE`](BPF_MAP_TYPE_CGRP_STORAGE.md) * Misc - * [BPF_MAP_TYPE_CGROUP_ARRAY](BPF_MAP_TYPE_CGROUP_ARRAY.md) - * [BPF_MAP_TYPE_STACK_TRACE](BPF_MAP_TYPE_STACK_TRACE.md) - * [BPF_MAP_TYPE_STRUCT_OPS](BPF_MAP_TYPE_STRUCT_OPS.md) + * [`BPF_MAP_TYPE_CGROUP_ARRAY`](BPF_MAP_TYPE_CGROUP_ARRAY.md) + * [`BPF_MAP_TYPE_STACK_TRACE`](BPF_MAP_TYPE_STACK_TRACE.md) + * [`BPF_MAP_TYPE_STRUCT_OPS`](BPF_MAP_TYPE_STRUCT_OPS.md) diff --git a/docs/linux/map-type/index.md b/docs/linux/map-type/index.md index 440fff60..cf9524a1 100644 --- a/docs/linux/map-type/index.md +++ b/docs/linux/map-type/index.md @@ -10,84 +10,84 @@ hide: toc These map types are not limited to a very specific use case but can be used in a number of different use cases to store data. - * [BPF_MAP_TYPE_HASH](BPF_MAP_TYPE_HASH.md) - * [BPF_MAP_TYPE_ARRAY](BPF_MAP_TYPE_ARRAY.md) - * [BPF_MAP_TYPE_PERCPU_HASH](BPF_MAP_TYPE_PERCPU_HASH.md) - * [BPF_MAP_TYPE_PERCPU_ARRAY](BPF_MAP_TYPE_PERCPU_ARRAY.md) - * [BPF_MAP_TYPE_QUEUE](BPF_MAP_TYPE_QUEUE.md) - * [BPF_MAP_TYPE_STACK](BPF_MAP_TYPE_STACK.md) - * BPF_MAP_TYPE_LRU_HASH - * BPF_MAP_TYPE_LRU_PERCPU_HASH - * [BPF_MAP_TYPE_LPM_TRIE](BPF_MAP_TYPE_LPM_TRIE.md) - * [BPF_MAP_TYPE_BLOOM_FILTER](BPF_MAP_TYPE_BLOOM_FILTER.md) + * [`BPF_MAP_TYPE_HASH`](BPF_MAP_TYPE_HASH.md) + * [`BPF_MAP_TYPE_ARRAY`](BPF_MAP_TYPE_ARRAY.md) + * [`BPF_MAP_TYPE_PERCPU_HASH`](BPF_MAP_TYPE_PERCPU_HASH.md) + * [`BPF_MAP_TYPE_PERCPU_ARRAY`](BPF_MAP_TYPE_PERCPU_ARRAY.md) + * [`BPF_MAP_TYPE_QUEUE`](BPF_MAP_TYPE_QUEUE.md) + * [`BPF_MAP_TYPE_STACK`](BPF_MAP_TYPE_STACK.md) + * `BPF_MAP_TYPE_LRU_HASH` + * `BPF_MAP_TYPE_LRU_PERCPU_HASH` + * [`BPF_MAP_TYPE_LPM_TRIE`](BPF_MAP_TYPE_LPM_TRIE.md) + * [`BPF_MAP_TYPE_BLOOM_FILTER`](BPF_MAP_TYPE_BLOOM_FILTER.md) ## Map in map These map types hold references to other map types as their values. - * [BPF_MAP_TYPE_ARRAY_OF_MAPS](BPF_MAP_TYPE_ARRAY_OF_MAPS.md) - * BPF_MAP_TYPE_HASH_OF_MAPS + * [`BPF_MAP_TYPE_ARRAY_OF_MAPS`](BPF_MAP_TYPE_ARRAY_OF_MAPS.md) + * `BPF_MAP_TYPE_HASH_OF_MAPS` ## Streaming These map types allow for the streaming of large amounts of data across the kernel-userspace boundary. - * [BPF_MAP_TYPE_PERF_EVENT_ARRAY](BPF_MAP_TYPE_PERF_EVENT_ARRAY.md) - * BPF_MAP_TYPE_RINGBUF - * BPF_MAP_TYPE_USER_RINGBUF + * [`BPF_MAP_TYPE_PERF_EVENT_ARRAY`](BPF_MAP_TYPE_PERF_EVENT_ARRAY.md) + * `BPF_MAP_TYPE_RINGBUF` + * `BPF_MAP_TYPE_USER_RINGBUF` ## Packet redirection These map types facilitate the steering or redirection of packets, between network devices, logical CPUs, or sockets. - * [BPF_MAP_TYPE_DEVMAP](BPF_MAP_TYPE_DEVMAP.md) - * [BPF_MAP_TYPE_SOCKMAP](BPF_MAP_TYPE_SOCKMAP.md) - * [BPF_MAP_TYPE_CPUMAP](BPF_MAP_TYPE_CPUMAP.md) - * [BPF_MAP_TYPE_XSKMAP](BPF_MAP_TYPE_XSKMAP.md) - * [BPF_MAP_TYPE_SOCKHASH](BPF_MAP_TYPE_SOCKHASH.md) - * [BPF_MAP_TYPE_DEVMAP_HASH](BPF_MAP_TYPE_DEVMAP_HASH.md) - * [BPF_MAP_TYPE_REUSEPORT_SOCKARRAY](BPF_MAP_TYPE_REUSEPORT_SOCKARRAY.md) + * [`BPF_MAP_TYPE_DEVMAP`](BPF_MAP_TYPE_DEVMAP.md) + * [`BPF_MAP_TYPE_SOCKMAP`](BPF_MAP_TYPE_SOCKMAP.md) + * [`BPF_MAP_TYPE_CPUMAP`](BPF_MAP_TYPE_CPUMAP.md) + * [`BPF_MAP_TYPE_XSKMAP`](BPF_MAP_TYPE_XSKMAP.md) + * [`BPF_MAP_TYPE_SOCKHASH`](BPF_MAP_TYPE_SOCKHASH.md) + * [`BPF_MAP_TYPE_DEVMAP_HASH`](BPF_MAP_TYPE_DEVMAP_HASH.md) + * [`BPF_MAP_TYPE_REUSEPORT_SOCKARRAY`](BPF_MAP_TYPE_REUSEPORT_SOCKARRAY.md) ## Tail call map This map types is used to perform tail calls. - * [BPF_MAP_TYPE_PROG_ARRAY](BPF_MAP_TYPE_PROG_ARRAY.md) + * [`BPF_MAP_TYPE_PROG_ARRAY`](BPF_MAP_TYPE_PROG_ARRAY.md) ## Object attached storage These map types provide storage related to kernel objects for/on which a BPF program is called. - * [BPF_MAP_TYPE_CGROUP_STORAGE](BPF_MAP_TYPE_CGROUP_STORAGE.md) - * [BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE](BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE.md) - * [BPF_MAP_TYPE_SK_STORAGE](BPF_MAP_TYPE_SK_STORAGE.md) - * [BPF_MAP_TYPE_INODE_STORAGE](BPF_MAP_TYPE_INODE_STORAGE.md) - * [BPF_MAP_TYPE_TASK_STORAGE](BPF_MAP_TYPE_TASK_STORAGE.md) - * [BPF_MAP_TYPE_CGRP_STORAGE](BPF_MAP_TYPE_CGRP_STORAGE.md) + * [`BPF_MAP_TYPE_CGROUP_STORAGE`](BPF_MAP_TYPE_CGROUP_STORAGE.md) + * [`BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE`](BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE.md) + * [`BPF_MAP_TYPE_SK_STORAGE`](BPF_MAP_TYPE_SK_STORAGE.md) + * [`BPF_MAP_TYPE_INODE_STORAGE`](BPF_MAP_TYPE_INODE_STORAGE.md) + * [`BPF_MAP_TYPE_TASK_STORAGE`](BPF_MAP_TYPE_TASK_STORAGE.md) + * [`BPF_MAP_TYPE_CGRP_STORAGE`](BPF_MAP_TYPE_CGRP_STORAGE.md) ## cGroup array This map type contains references to cGroups. - * BPF_MAP_TYPE_CGROUP_ARRAY + * `BPF_MAP_TYPE_CGROUP_ARRAY` ## Stack trace This map type allows eBPF programs to read the stack trace. - * BPF_MAP_TYPE_STACK_TRACE + * `BPF_MAP_TYPE_STACK_TRACE` ## Struct ops This map type replaces a structure containing function pointers in the kernel and allows authors to replace existing function pointers with pointers to BPF programs. - * [BPF_MAP_TYPE_STRUCT_OPS](BPF_MAP_TYPE_STRUCT_OPS.md) + * [`BPF_MAP_TYPE_STRUCT_OPS`](BPF_MAP_TYPE_STRUCT_OPS.md) ## Per CPU maps There are a number of per-CPU map types like `BPF_MAP_TYPE_PERCPU_HASH` and `BPF_MAP_TYPE_PERCPU_ARRAY`. These are per-CPU variants of their base map types. Like the name implies these maps consists of multiple copies, one for each logical CPU on the host. Programs running in the context of CPU#0 for example will see different map contents as a program running on CPU#2. -Since multiple CPUs will never read or write to memory being accessed by another CPU, it is impossible for race conditions to occur, and thus programs don't need to waste cycles on mechanisms like spin-locks or atomics to synchronize access. It also improves speed due to better cache locality. +Since multiple CPUs will never read or write to memory being accessed by another CPU, it is impossible for race conditions to occur, and thus programs don't need to waste cycles on mechanisms like spin-locks or atomic instructions to synchronize access. It also improves speed due to better cache locality. Another interesting use of these map types are as scratch buffers. Since eBPF programs always execute on the same logical CPU for their entire execution including tail calls, these maps can be used to transfer information between tail calls, something that is difficult to do otherwise. In the same spirit, these maps can also be used to hold data without counting towards the stack limit of the eBPF program. diff --git a/docs/linux/program-context/__sk_buff.md b/docs/linux/program-context/__sk_buff.md index 7d0dcb0d..4b4ca5a4 100644 --- a/docs/linux/program-context/__sk_buff.md +++ b/docs/linux/program-context/__sk_buff.md @@ -1,3 +1,6 @@ +--- +title: Program context '__sk_buff' +--- # Program context `__sk_buff` The socket buffer context is provided to program types that deal with network packets when there already is a socket buffer created/allocated. The `struct __sk_buff` is a "mirror" of the `struct sk_buff` program type which is actually used by the kernel. @@ -35,7 +38,7 @@ the `PACKET_*` values defined in `include/uapi/linux/if_packet.h`. ### `mark` [:octicons-tag-24: v4.1](https://github.com/torvalds/linux/commit/9bac3d6d548e5cc925570b263f35b70a00a00ffd) -This field is a general purpose 32 bit tag used in the network subsystem to carry metadata with global implications across network sub-subsystem. As an example, a driver could mark on incoming packet to be used by the ingress tc classifier-action sub-subsystem, netfilter, ipsec all to execute provisioned policies.[^1] +This field is a general purpose 32 bit tag used in the network subsystem to carry metadata with global implications across network sub-subsystem. As an example, a driver could mark on incoming packet to be used by the ingress traffic control classifier-action sub-subsystem, netfilter, IPsec all to execute provisioned policies.[^1] ### `queue_mapping` [:octicons-tag-24: v4.1](https://github.com/torvalds/linux/commit/9bac3d6d548e5cc925570b263f35b70a00a00ffd) @@ -65,7 +68,7 @@ This field contains the protocol ID of the used VLAN protocol which will be one ### `priority` [:octicons-tag-24: v4.1](https://github.com/torvalds/linux/commit/bcad57182425426dd4aa14deb27f97acb329f3cd) -This field indicates the queueing priority of the packet. Packets with higher priority will be send out first. Only values between `0` and `63` are effective, values of `64` and above will be converted to `63`. This field only takes effect if the `skbprio` queueing discipline has been configured in TC. [^3] +This field indicates the queuing priority of the packet. Packets with higher priority will be send out first. Only values between `0` and `63` are effective, values of `64` and above will be converted to `63`. This field only takes effect if the `skbprio` queueing discipline has been configured in TC. [^3] This only effects egress traffic since ingress traffic is never queued. diff --git a/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md b/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md index 98cc1ef9..75632cf0 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_DEVICE.md @@ -40,7 +40,7 @@ enum { ## Attachment -cGroup socket buffer programs are attached to cgroups via the [`BPF_PROG_ATTACH`](../syscall/BPF_PROG_ATTACH.md) syscall or via [BPF link](../syscall/BPF_LINK_CREATE.md). +cGroup socket buffer programs are attached to cGroups via the [`BPF_PROG_ATTACH`](../syscall/BPF_PROG_ATTACH.md) syscall or via [BPF link](../syscall/BPF_LINK_CREATE.md). ## Example @@ -160,6 +160,18 @@ char _license[] SEC("license") = "GPL"; * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_dynptr_data`](../helper-function/bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](../helper-function/bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](../helper-function/bpf_dynptr_read.md) + * [`bpf_dynptr_write`](../helper-function/bpf_dynptr_write.md) + * [`bpf_kptr_xchg`](../helper-function/bpf_kptr_xchg.md) + * [`bpf_ktime_get_tai_ns`](../helper-function/bpf_ktime_get_tai_ns.md) + * [`bpf_ringbuf_discard_dynptr`](../helper-function/bpf_ringbuf_discard_dynptr.md) + * [`bpf_ringbuf_reserve_dynptr`](../helper-function/bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](../helper-function/bpf_ringbuf_submit_dynptr.md) + * [`bpf_user_ringbuf_drain`](../helper-function/bpf_user_ringbuf_drain.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SKB.md b/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SKB.md index 1fe6eab6..51804635 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SKB.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SKB.md @@ -22,7 +22,7 @@ After [:octicons-tag-24: v5.3](https://github.com/torvalds/linux/commit/5cf1e914 ## Context -cGroup socket buffer programs are called by the kernel with a [__sk_buff](../program-context/__sk_buff.md) context. +cGroup socket buffer programs are called by the kernel with a [`__sk_buff`](../program-context/__sk_buff.md) context. This program type isn't allowed to read from and write to all fields of the context since doing so might break assumptions in the kernel or because data isn't available at the point where the program is hooked into the kernel. @@ -69,7 +69,7 @@ This program type isn't allowed to read from and write to all fields of the cont ## Attachment -cGroup socket buffer programs are attached to cgroups via the [`BPF_PROG_ATTACH`](../syscall/BPF_PROG_ATTACH.md) syscall or via [BPF link](../syscall/BPF_LINK_CREATE.md). +cGroup socket buffer programs are attached to cGroups via the [`BPF_PROG_ATTACH`](../syscall/BPF_PROG_ATTACH.md) syscall or via [BPF link](../syscall/BPF_LINK_CREATE.md). ## Example @@ -312,6 +312,18 @@ char _license[] SEC("license") = "GPL"; * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_dynptr_data`](../helper-function/bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](../helper-function/bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](../helper-function/bpf_dynptr_read.md) + * [`bpf_dynptr_write`](../helper-function/bpf_dynptr_write.md) + * [`bpf_kptr_xchg`](../helper-function/bpf_kptr_xchg.md) + * [`bpf_ktime_get_tai_ns`](../helper-function/bpf_ktime_get_tai_ns.md) + * [`bpf_ringbuf_discard_dynptr`](../helper-function/bpf_ringbuf_discard_dynptr.md) + * [`bpf_ringbuf_reserve_dynptr`](../helper-function/bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](../helper-function/bpf_ringbuf_submit_dynptr.md) + * [`bpf_user_ringbuf_drain`](../helper-function/bpf_user_ringbuf_drain.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SOCK.md b/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SOCK.md index cc6461d3..c0f7b8b3 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SOCK.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SOCK.md @@ -159,7 +159,7 @@ is marked in `tcp_finish_connect()` and is otherwise `-1`. ## Attachment -cGroup socket buffer programs are attached to cgroups via the [`BPF_PROG_ATTACH`](../syscall/BPF_PROG_ATTACH.md) syscall or via [BPF link](../syscall/BPF_LINK_CREATE.md). +cGroup socket buffer programs are attached to cGroups via the [`BPF_PROG_ATTACH`](../syscall/BPF_PROG_ATTACH.md) syscall or via [BPF link](../syscall/BPF_LINK_CREATE.md). ## Example @@ -285,6 +285,18 @@ int sock_release(struct bpf_sock *ctx) * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_dynptr_data`](../helper-function/bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](../helper-function/bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](../helper-function/bpf_dynptr_read.md) + * [`bpf_dynptr_write`](../helper-function/bpf_dynptr_write.md) + * [`bpf_kptr_xchg`](../helper-function/bpf_kptr_xchg.md) + * [`bpf_ktime_get_tai_ns`](../helper-function/bpf_ktime_get_tai_ns.md) + * [`bpf_ringbuf_discard_dynptr`](../helper-function/bpf_ringbuf_discard_dynptr.md) + * [`bpf_ringbuf_reserve_dynptr`](../helper-function/bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](../helper-function/bpf_ringbuf_submit_dynptr.md) + * [`bpf_user_ringbuf_drain`](../helper-function/bpf_user_ringbuf_drain.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md b/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md index 30532216..5519a059 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SOCKOPT.md @@ -16,9 +16,9 @@ cGroup socket ops programs are typically located in the `cgroup/getsockopt` or ` ### `BPF_CGROUP_SETSOCKOPT` -`BPF_CGROUP_SETSOCKOPT` is triggered *before* the kernel handling of sockopt and it has writable context: it can modify the supplied arguments before passing them down to the kernel. This hook has access to the cgroup and socket local storage. +`BPF_CGROUP_SETSOCKOPT` is triggered *before* the kernel handling of sockopt and it has writable context: it can modify the supplied arguments before passing them down to the kernel. This hook has access to the cGroup and socket local storage. -If BPF program sets [`optlen`](#optlen) to -1, the control will be returned back to the userspace after all other BPF programs in the cgroup chain finish (i.e. kernel [`setsockopt`](https://linux.die.net/man/2/setsockopt) handling will *not* be executed). +If BPF program sets [`optlen`](#optlen) to -1, the control will be returned back to the userspace after all other BPF programs in the cGroup chain finish (i.e. kernel [`setsockopt`](https://linux.die.net/man/2/setsockopt) handling will *not* be executed). !!! note [`optlen`](#optlen) can not be increased beyond the user-supplied value. It can only be decreased or set to -1. Any other value will trigger `EFAULT`. @@ -32,7 +32,7 @@ Return Type: `BPF_CGROUP_GETSOCKOPT` is triggered *after* the kernel handing of sockopt. The BPF hook can observe [`optval`](#optval), [`optlen`](#optlen) and [`retval`](#retval) if it's interested in whatever kernel has returned. BPF hook can override the values above, adjust [`optlen`](#optlen) and reset [`retval`](#retval) to 0. If [`optlen`](#optlen) has been increased above initial [`getsockopt`](https://linux.die.net/man/2/getsockopt) value (i.e. userspace buffer is too small), `EFAULT` is returned. -This hook has access to the cgroup and socket local storage. +This hook has access to the cGroup and socket local storage. !!! note The only acceptable value to set to [`retval`](#retval) is 0 and the original value that the kernel returned. Any other value will trigger `EFAULT`. @@ -40,11 +40,11 @@ This hook has access to the cgroup and socket local storage. Return Type: * `0` - reject the syscall, `EPERM` will be returned to the userspace. -* `1` - success: copy [`optval`](#optval) and [`optlen`](#optlen) to userspace, return[`retval`](#retval) from the syscall (note that this can be overwritten by the BPF program from the parent cgroup). +* `1` - success: copy [`optval`](#optval) and [`optlen`](#optlen) to userspace, return[`retval`](#retval) from the syscall (note that this can be overwritten by the BPF program from the parent cGroup). -### Cgroup Inheritance +### cGroup Inheritance -Suppose, there is the following cgroup hierarchy where each cgroup has `BPF_CGROUP_GETSOCKOPT` attached at each level with `BPF_F_ALLOW_MULTI` +Suppose, there is the following cGroup hierarchy where each cGroup has `BPF_CGROUP_GETSOCKOPT` attached at each level with `BPF_F_ALLOW_MULTI` ``` A (root, parent) @@ -52,11 +52,11 @@ Suppose, there is the following cgroup hierarchy where each cgroup has `BPF_CGRO B (child) ``` -When the application calls [`getsockopt`](https://linux.die.net/man/2/getsockopt) syscall from the cgroup B, the programs are executed from the bottom up: B, A. First program (B) sees the result of kernel's [`getsockopt`](https://linux.die.net/man/2/getsockopt). It can optionally adjust [`optval`](#optval), [`optlen`](#optlen) and reset [`retval`](#retval) to 0. After that control will be passed to the second (A) program which will see the same context as B including any potential modifications. +When the application calls [`getsockopt`](https://linux.die.net/man/2/getsockopt) syscall from the cGroup B, the programs are executed from the bottom up: B, A. First program (B) sees the result of kernel's [`getsockopt`](https://linux.die.net/man/2/getsockopt). It can optionally adjust [`optval`](#optval), [`optlen`](#optlen) and reset [`retval`](#retval) to 0. After that control will be passed to the second (A) program which will see the same context as B including any potential modifications. Same for `BPF_CGROUP_SETSOCKOPT`: if the program is attached to A and B, the trigger order is B, then A. If B does any changes to the input arguments ([`level`](#level), [`optname`](#optname), [`optval`](#optval), [`optlen`](#optlen)), then the next program in the chain (A) will see those changes, *not* the original input [`setsockopt`](https://linux.die.net/man/2/setsockopt) arguments. The potentially modified values will be then passed down to the kernel. -### Large optval +### Large `optval` When the [`optval`](#optval) is greater than the `PAGE_SIZE`, the BPF program can access only the first `PAGE_SIZE` of that data. So it has to options: @@ -116,7 +116,7 @@ This field indicates the return value of the syscall. Only `BPF_CGROUP_GETSOCKOP ## Attachment -cGroup socket buffer programs are attached to cgroups via the [`BPF_PROG_ATTACH`](../syscall/BPF_PROG_ATTACH.md) syscall or via [BPF link](../syscall/BPF_LINK_CREATE.md). +cGroup socket buffer programs are attached to cGroups via the [`BPF_PROG_ATTACH`](../syscall/BPF_PROG_ATTACH.md) syscall or via [BPF link](../syscall/BPF_LINK_CREATE.md). ## Example @@ -229,6 +229,18 @@ int setsockopt(struct bpf_sockopt *ctx) * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_dynptr_data`](../helper-function/bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](../helper-function/bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](../helper-function/bpf_dynptr_read.md) + * [`bpf_dynptr_write`](../helper-function/bpf_dynptr_write.md) + * [`bpf_kptr_xchg`](../helper-function/bpf_kptr_xchg.md) + * [`bpf_ktime_get_tai_ns`](../helper-function/bpf_ktime_get_tai_ns.md) + * [`bpf_ringbuf_discard_dynptr`](../helper-function/bpf_ringbuf_discard_dynptr.md) + * [`bpf_ringbuf_reserve_dynptr`](../helper-function/bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](../helper-function/bpf_ringbuf_submit_dynptr.md) + * [`bpf_user_ringbuf_drain`](../helper-function/bpf_user_ringbuf_drain.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md b/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md index 3bbd0ef6..79b842af 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md @@ -105,7 +105,7 @@ The context allows 4-byte reads from the field, but no writes to it. [:octicons-tag-24: v4.17](https://github.com/torvalds/linux/commit/4fbac77d2d092b475dda9eea66da674369665427) -This field contains the IPv4 address passed to the syscall. Its value is stored in network byte order. This field is only valid of INET4 attach types. +This field contains the IPv4 address passed to the syscall. Its value is stored in network byte order. This field is only valid of `INET4` attach types. The context allows 1,2,4-byte reads and 4-byte writes. @@ -113,7 +113,7 @@ The context allows 1,2,4-byte reads and 4-byte writes. [:octicons-tag-24: v4.17](https://github.com/torvalds/linux/commit/4fbac77d2d092b475dda9eea66da674369665427) -This field contains the IPv6 address passed to the syscall. Its value is stored in network byte order. This field is only valid of INET6 attach types. +This field contains the IPv6 address passed to the syscall. Its value is stored in network byte order. This field is only valid of `INET6` attach types. This context allows 1,2,4,8-byte reads and 4,8-byte writes. @@ -184,7 +184,7 @@ This field contains a pointer to the socket for which the program was invoked, i ## Attachment -cGroup socket buffer programs are attached to cgroups via the [`BPF_PROG_ATTACH`](../syscall/BPF_PROG_ATTACH.md) syscall or via [BPF link](../syscall/BPF_LINK_CREATE.md). +cGroup socket buffer programs are attached to cGroups via the [`BPF_PROG_ATTACH`](../syscall/BPF_PROG_ATTACH.md) syscall or via [BPF link](../syscall/BPF_LINK_CREATE.md). ## Example @@ -396,6 +396,18 @@ cGroup socket buffer programs are attached to cgroups via the [`BPF_PROG_ATTACH` * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_dynptr_data`](../helper-function/bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](../helper-function/bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](../helper-function/bpf_dynptr_read.md) + * [`bpf_dynptr_write`](../helper-function/bpf_dynptr_write.md) + * [`bpf_kptr_xchg`](../helper-function/bpf_kptr_xchg.md) + * [`bpf_ktime_get_tai_ns`](../helper-function/bpf_ktime_get_tai_ns.md) + * [`bpf_ringbuf_discard_dynptr`](../helper-function/bpf_ringbuf_discard_dynptr.md) + * [`bpf_ringbuf_reserve_dynptr`](../helper-function/bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](../helper-function/bpf_ringbuf_submit_dynptr.md) + * [`bpf_user_ringbuf_drain`](../helper-function/bpf_user_ringbuf_drain.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md b/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md index 1d9850c9..b8284eaf 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_CGROUP_SYSCTL.md @@ -8,7 +8,7 @@ description: "This page documents the 'BPF_PROG_TYPE_CGROUP_SYSCTL' eBPF program [:octicons-tag-24: v5.2](https://github.com/torvalds/linux/commit/7b146cebe30cb481b0f70d85779da938da818637) -cGroup sysctl programs are called when a process in the cGroup to which the program is attached attempts to read or write a sysctl option in the proc filesystem. +cGroup sysctl programs are called when a process in the cGroup to which the program is attached attempts to read or write a sysctl option in the `proc` file system. ## Usage @@ -31,11 +31,11 @@ If program returns `0` user space will get `-1` from [`read(2)`](https://linux.d may return results different from that at `sys_open` time, i.e. process that opened sysctl file in proc filesystem may differ from process that is trying to read from / write to it and two such processes may run in different - cgroups, what means ``BPF_PROG_TYPE_CGROUP_SYSCTL`` should not be used as a + cGroups, what means ``BPF_PROG_TYPE_CGROUP_SYSCTL`` should not be used as a security mechanism to limit sysctl usage. - As with any cgroup-bpf program additional care should be taken if an - application running as root in a cgroup should not be allowed to + As with any cGroup-bpf program additional care should be taken if an + application running as root in a cGroup should not be allowed to detach/replace BPF program attached by administrator. ### Special helpers @@ -50,7 +50,7 @@ Since sysctl knob is represented by a name and a value, sysctl specific BPF help * [`bpf_sysctl_set_new_value`](../helper-function/bpf_sysctl_set_new_value.md) to override new string value currently being written to sysctl before actual write happens. Sysctl value will be overridden starting from the current `ctx->file_pos`. If the whole value has to be overridden BPF program can set `file_pos` to zero before calling to the helper. This helper can be used only on `ctx->write == 1`. New string value set by the helper is treated and verified by kernel same way as an equivalent string passed by user space. -BPF program sees sysctl value same way as user space does in proc filesystem, i.e. as a string. Since many sysctl values represent an integer or a vector of integers, the following helpers can be used to get numeric value from the string: +BPF program sees sysctl value same way as user space does in `proc` file system, i.e. as a string. Since many sysctl values represent an integer or a vector of integers, the following helpers can be used to get numeric value from the string: * `bpf_strtol()` to convert initial part of the string to long integer similar to user space [`strtol(3)`](https://linux.die.net/man/3/strtol) * `bpf_strtoul()` to convert initial part of the string to unsigned long integer similar to user space [`strtoul(3)`](https://linux.die.net/man/3/strtoul) @@ -70,11 +70,11 @@ This field indicates whether sysctl value is being read (`0`) or written (`1`). ### `file_pos` -This field indicates file position sysctl is being accessed at, read or written. This field is read-write. Writing to the field sets the starting position in sysctl proc file [`read(2)`](https://linux.die.net/man/2/read) will be reading from or [`write(2)`](https://linux.die.net/man/2/write) will be writing to. Writing zero to the field can be used e.g. to override whole sysctl value by [`bpf_sysctl_set_new_value`](../helper-function/bpf_sysctl_get_new_value.md) on [`write(2)`](https://linux.die.net/man/2/write) even when it's called by user space on `file_pos > 0`. Writing non-zero value to the field can be used to access part of sysctl value starting from specified `file_pos`. Not all sysctl support access with `file_pos != 0`, e.g. writes to numeric sysctl entries must always be at file position `0`. See also `kernel.sysctl_writes_strict` sysctl. +This field indicates file position sysctl is being accessed at, read or written. This field is read-write. Writing to the field sets the starting position in sysctl `proc` file [`read(2)`](https://linux.die.net/man/2/read) will be reading from or [`write(2)`](https://linux.die.net/man/2/write) will be writing to. Writing zero to the field can be used e.g. to override whole sysctl value by [`bpf_sysctl_set_new_value`](../helper-function/bpf_sysctl_get_new_value.md) on [`write(2)`](https://linux.die.net/man/2/write) even when it's called by user space on `file_pos > 0`. Writing non-zero value to the field can be used to access part of sysctl value starting from specified `file_pos`. Not all sysctl support access with `file_pos != 0`, e.g. writes to numeric sysctl entries must always be at file position `0`. See also `kernel.sysctl_writes_strict` sysctl. ## Attachment -cGroup socket buffer programs are attached to cgroups via the [`BPF_PROG_ATTACH`](../syscall/BPF_PROG_ATTACH.md) syscall or via [BPF link](../syscall/BPF_LINK_CREATE.md). +cGroup socket buffer programs are attached to cGroups via the [`BPF_PROG_ATTACH`](../syscall/BPF_PROG_ATTACH.md) syscall or via [BPF link](../syscall/BPF_LINK_CREATE.md). ## Example @@ -213,6 +213,18 @@ char _license[] SEC("license") = "GPL"; * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_dynptr_data`](../helper-function/bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](../helper-function/bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](../helper-function/bpf_dynptr_read.md) + * [`bpf_dynptr_write`](../helper-function/bpf_dynptr_write.md) + * [`bpf_kptr_xchg`](../helper-function/bpf_kptr_xchg.md) + * [`bpf_ktime_get_tai_ns`](../helper-function/bpf_ktime_get_tai_ns.md) + * [`bpf_ringbuf_discard_dynptr`](../helper-function/bpf_ringbuf_discard_dynptr.md) + * [`bpf_ringbuf_reserve_dynptr`](../helper-function/bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](../helper-function/bpf_ringbuf_submit_dynptr.md) + * [`bpf_user_ringbuf_drain`](../helper-function/bpf_user_ringbuf_drain.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_EXT.md b/docs/linux/program-type/BPF_PROG_TYPE_EXT.md index ef7fb442..01db6d87 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_EXT.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_EXT.md @@ -21,7 +21,7 @@ Programs of this type are typically placed in an ELF section prefixed with `frep The main use case for extensions is to provide generic mechanism to plug external programs into policy program or function call chaining. The [libxdp](https://github.com/xdp-project/xdp-tools/tree/master/lib/libxdp) project uses this functionality to implement XDP program chaining from a dispatcher program. This new function/program is called 'an extension' of old program. At load time -the verifier uses (attach_prog_fd, attach_btf_id) pair to identify the function +the verifier uses (`attach_prog_fd`, `attach_btf_id`) pair to identify the function to be replaced. The BPF program type is derived from the target program into extension program. diff --git a/docs/linux/program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md b/docs/linux/program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md index 8c89e666..de79bca6 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_FLOW_DISSECTOR.md @@ -20,7 +20,7 @@ The return code of the BPF program is either `BPF_OK` to indicate successful dis ## Context -BPF flow dissector programs operate on an [__sk_buff](../program-context/__sk_buff.md). +BPF flow dissector programs operate on an [`__sk_buff`](../program-context/__sk_buff.md). However, only the limited set of fields is allowed: `data`, `data_end` and `flow_keys`. ??? abstract "Context fields" @@ -128,7 +128,7 @@ flow_keys->thoff = nhoff flow_keys->n_proto = TPID ``` -Please note that TPID can be 802.1AD and, hence, BPF program would have to parse VLAN information twice for double tagged packets. +Please note that TPID can be 802.1AD and, hence, BPF program would have to parse VLAN information twice for double tagged packets. Post-VLAN parsing: @@ -232,6 +232,18 @@ Not all helper functions are available in all program types. These are the helpe * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_dynptr_data`](../helper-function/bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](../helper-function/bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](../helper-function/bpf_dynptr_read.md) + * [`bpf_dynptr_write`](../helper-function/bpf_dynptr_write.md) + * [`bpf_kptr_xchg`](../helper-function/bpf_kptr_xchg.md) + * [`bpf_ktime_get_tai_ns`](../helper-function/bpf_ktime_get_tai_ns.md) + * [`bpf_ringbuf_discard_dynptr`](../helper-function/bpf_ringbuf_discard_dynptr.md) + * [`bpf_ringbuf_reserve_dynptr`](../helper-function/bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](../helper-function/bpf_ringbuf_submit_dynptr.md) + * [`bpf_user_ringbuf_drain`](../helper-function/bpf_user_ringbuf_drain.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_KPROBE.md b/docs/linux/program-type/BPF_PROG_TYPE_KPROBE.md index e00596b3..a66e34d4 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_KPROBE.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_KPROBE.md @@ -24,7 +24,7 @@ The return value of kprobes programs doesn't do anything. The context passed to kprobe programs is `struct pt_regs`. This structure is different for each CPU architecture since it contains a copy of the CPU registers at the time the kprobe was invoked. -It is common for kprobe programs to use the macros from libbpf's `bpf_tracing.h` header file which defines `PT_REGS_PARM1` ... `PT_REGS_PARM5` as well as a number of others. These macros will translate to the correct field in `struct pt_regs` depending on the current architecture. Communicating the architecture you are compiling the BPF program for is done by defining one of the `__TARGET_ARCH_*` values in your program or via the command line while compiling. +It is common for kprobe programs to use the macros from the Libbpf `bpf_tracing.h` header file which defines `PT_REGS_PARM1` ... `PT_REGS_PARM5` as well as a number of others. These macros will translate to the correct field in `struct pt_regs` depending on the current architecture. Communicating the architecture you are compiling the BPF program for is done by defining one of the `__TARGET_ARCH_*` values in your program or via the command line while compiling. The same header file also provides the `BPF_KPROBE(name, args...)` macro which allows program authors to define the function signatures in the same fashion as the functions they are tracing with type info and all. The macro will cast the correct argument numbers to the given argument names. For example: @@ -41,13 +41,13 @@ Similar macros also exists for kprobes intended to attach to syscalls: `BPF_KSYS ## Attachment -There are two methods of attaching probe programs with variations for uprobes. The "legacy" way involves the manual creation of a k{ret}probe or u{ret}probe event via the [DebugFS](https://www.kernel.org/doc/html/next/filesystems/debugfs.html) and then attaching a BPF program to that event via the `perf_event_open` syscall. +There are two methods of attaching probe programs with variations for uprobes. The "legacy" way involves the manual creation of a `k{ret}probe` or `u{ret}probe` event via the [`DebugFS`](https://www.kernel.org/doc/html/next/filesystems/debugfs.html) and then attaching a BPF program to that event via the `perf_event_open` syscall. The newer method uses BPF links to do both the probe event creation and attaching in one. ### Legacy kprobe attaching -First step is to create a kprobe or kretprobe trace event. To do so we can use the DebugFS, which we will assume is mounted at `/sys/kernel/debug` for the purposes of this document. +First step is to create a kprobe or kretprobe trace event. To do so we can use the DebugFS, which we will assume is mounted at `/sys/kernel/debug` for the purposes of this document. Existing kprobe events can be listed by printing `/sys/kernel/debug/tracing/kprobe_events`. And we can create new events by writing to this pseudo-file. For example executing `echo 'p:myprobe do_sys_open' > /sys/kernel/debug/tracing/kprobe_events` will make a new kprobe (`p:`) called `myprobe` at the `do_sys_open` function in the kernel. For details on the full syntax, checkout [this link](https://docs.kernel.org/trace/kprobetrace.html). kretprobes are created by specifying a `r:` prefix. @@ -203,6 +203,18 @@ Not all helper functions are available in all program types. These are the helpe * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_dynptr_data`](../helper-function/bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](../helper-function/bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](../helper-function/bpf_dynptr_read.md) + * [`bpf_dynptr_write`](../helper-function/bpf_dynptr_write.md) + * [`bpf_kptr_xchg`](../helper-function/bpf_kptr_xchg.md) + * [`bpf_ktime_get_tai_ns`](../helper-function/bpf_ktime_get_tai_ns.md) + * [`bpf_ringbuf_discard_dynptr`](../helper-function/bpf_ringbuf_discard_dynptr.md) + * [`bpf_ringbuf_reserve_dynptr`](../helper-function/bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](../helper-function/bpf_ringbuf_submit_dynptr.md) + * [`bpf_user_ringbuf_drain`](../helper-function/bpf_user_ringbuf_drain.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_LSM.md b/docs/linux/program-type/BPF_PROG_TYPE_LSM.md index 77c72ebb..6bf22261 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_LSM.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_LSM.md @@ -15,7 +15,7 @@ description: "This page documents the 'BPF_PROG_TYPE_LSM' eBPF program type, inc The primary use case is to implement security software. For example, the `socket_create` hook is called when a process calls the `socket` syscall, if the eBPF program returns `0` the socket is allowed to be created, but the eBPF program can also return an error value to block the socket creation. -The list of all LSM hooks can be found in [lsm_hook_defs.h](https://github.com/torvalds/linux/blob/457391b0380335d5e9a5babdec90ac53928b23b4/include/linux/lsm_hook_defs.h), additional documentation for these hooks lives in [lsm_hooks.h](https://github.com/torvalds/linux/blob/457391b0380335d5e9a5babdec90ac53928b23b4/include/linux/lsm_hooks.h) +The list of all LSM hooks can be found in [`lsm_hook_defs.h`](https://github.com/torvalds/linux/blob/457391b0380335d5e9a5babdec90ac53928b23b4/include/linux/lsm_hook_defs.h), additional documentation for these hooks lives in [`lsm_hooks.h`](https://github.com/torvalds/linux/blob/457391b0380335d5e9a5babdec90ac53928b23b4/include/linux/lsm_hooks.h) ```c // Copyright (C) 2020 Google LLC. @@ -48,7 +48,7 @@ LSM programs are invoked with an array of `__u64` values equal in length to the ## Attachment -LSM programs are exclusively attached via bpf links. To do so the program must be loaded with the [`BPF_LSM_MAC`](../syscall/BPF_LINK_CREATE.md#bpf_lsm_mac) expected attach type and use it as the param to [`attach_type`](../syscall/BPF_LINK_CREATE.md#attach_type). The [`target_btf_id`](../syscall/BPF_LINK_CREATE.md#target_btf_id) parameter must be populated with the BTF ID of the LSM hook point which can be extracted from the selinux BTF on the system. +LSM programs are exclusively attached via bpf links. To do so the program must be loaded with the [`BPF_LSM_MAC`](../syscall/BPF_LINK_CREATE.md#bpf_lsm_mac) expected attach type and use it as the parameter to [`attach_type`](../syscall/BPF_LINK_CREATE.md#attach_type). The [`target_btf_id`](../syscall/BPF_LINK_CREATE.md#target_btf_id) parameter must be populated with the BTF ID of the LSM hook point which can be extracted from the SELinux BTF on the system. !!! example "Docs could be improved" This part of the docs is incomplete, contributions are very welcome @@ -167,6 +167,18 @@ Not all helper functions are available in all program types. These are the helpe * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_dynptr_data`](../helper-function/bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](../helper-function/bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](../helper-function/bpf_dynptr_read.md) + * [`bpf_dynptr_write`](../helper-function/bpf_dynptr_write.md) + * [`bpf_kptr_xchg`](../helper-function/bpf_kptr_xchg.md) + * [`bpf_ktime_get_tai_ns`](../helper-function/bpf_ktime_get_tai_ns.md) + * [`bpf_ringbuf_discard_dynptr`](../helper-function/bpf_ringbuf_discard_dynptr.md) + * [`bpf_ringbuf_reserve_dynptr`](../helper-function/bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](../helper-function/bpf_ringbuf_submit_dynptr.md) + * [`bpf_user_ringbuf_drain`](../helper-function/bpf_user_ringbuf_drain.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_LWT_IN.md b/docs/linux/program-type/BPF_PROG_TYPE_LWT_IN.md index 012a11a5..856c6cc7 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_LWT_IN.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_LWT_IN.md @@ -12,22 +12,22 @@ LWT (Light Weight Tunnel) Input programs attach to the ingress path of a light w ## Usage -This program type can be attached to route, the program will be called for incomming packets from said route. For example +This program type can be attached to route, the program will be called for incoming packets from said route. For example `ip route add 192.168.253.2/32 encap bpf in obj {elf file}.o section {prog section} dev veth0` The initial use cases listed for this program type are: -- Collect statistics and generate sampling data for a subset of traffic based on the dst utilized by the packet thus allowing to extend the existing realms. -- Apply additional per route/dst filters to prohibit certain outgoing or incoming packets based on BPF filters. In particular, this allows to maintain per dst custom state across multiple packets in BPF maps and apply filters based on statistics and behaviour observed over time. +- Collect statistics and generate sampling data for a subset of traffic based on the destination utilized by the packet thus allowing to extend the existing realms. +- Apply additional per route/destination filters to prohibit certain outgoing or incoming packets based on BPF filters. In particular, this allows to maintain per destination custom state across multiple packets in BPF maps and apply filters based on statistics and behaviour observed over time. This input variant of the LWT programs can read the packet and make a PASS/DROP decision but it isn't allowed to modify the packet. -After [:octicons-tag-24: v5.1](https://github.com/torvalds/linux/commit/3e0bd37ce0e4a574df6d87a901e13bcb46e10301) the LWT input program can encpasulate the packet with the [`bpf_lwt_push_encap`](../helper-function/bpf_lwt_push_encap.md) helper function and the `BPF_LWT_ENCAP_IP` mode. +After [:octicons-tag-24: v5.1](https://github.com/torvalds/linux/commit/3e0bd37ce0e4a574df6d87a901e13bcb46e10301) the LWT input program can encapsulate the packet with the [`bpf_lwt_push_encap`](../helper-function/bpf_lwt_push_encap.md) helper function and the `BPF_LWT_ENCAP_IP` mode. ## Context -Socket SKB programs are called by the kernel with a [__sk_buff](../program-context/__sk_buff.md) context. +Socket SKB programs are called by the kernel with a [`__sk_buff`](../program-context/__sk_buff.md) context. This program type isn't allowed to read from and write to all fields of the context since doing so might break assumptions in the kernel or because data isn't available at the point where the program is hooked into the kernel. @@ -204,6 +204,18 @@ Not all helper functions are available in all program types. These are the helpe * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_dynptr_data`](../helper-function/bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](../helper-function/bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](../helper-function/bpf_dynptr_read.md) + * [`bpf_dynptr_write`](../helper-function/bpf_dynptr_write.md) + * [`bpf_kptr_xchg`](../helper-function/bpf_kptr_xchg.md) + * [`bpf_ktime_get_tai_ns`](../helper-function/bpf_ktime_get_tai_ns.md) + * [`bpf_ringbuf_discard_dynptr`](../helper-function/bpf_ringbuf_discard_dynptr.md) + * [`bpf_ringbuf_reserve_dynptr`](../helper-function/bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](../helper-function/bpf_ringbuf_submit_dynptr.md) + * [`bpf_user_ringbuf_drain`](../helper-function/bpf_user_ringbuf_drain.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_LWT_OUT.md b/docs/linux/program-type/BPF_PROG_TYPE_LWT_OUT.md index 9a5816ee..59e2ebcf 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_LWT_OUT.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_LWT_OUT.md @@ -18,14 +18,14 @@ This program type can be attached to route, the program will be called for outgo The initial use cases listed for this program type are: -- Collect statistics and generate sampling data for a subset of traffic based on the dst utilized by the packet thus allowing to extend the existing realms. -- Apply additional per route/dst filters to prohibit certain outgoing or incoming packets based on BPF filters. In particular, this allows to maintain per dst custom state across multiple packets in BPF maps and apply filters based on statistics and behaviour observed over time. +- Collect statistics and generate sampling data for a subset of traffic based on the destination utilized by the packet thus allowing to extend the existing realms. +- Apply additional per route/destination filters to prohibit certain outgoing or incoming packets based on BPF filters. In particular, this allows to maintain per destination custom state across multiple packets in BPF maps and apply filters based on statistics and behaviour observed over time. This output variant of the LWT programs can read the packet and make a PASS/DROP decision but it isn't allowed to modify the packet. ## Context -Socket SKB programs are called by the kernel with a [__sk_buff](../program-context/__sk_buff.md) context. +Socket SKB programs are called by the kernel with a [`__sk_buff`](../program-context/__sk_buff.md) context. This program type isn't allowed to read from and write to all fields of the context since doing so might break assumptions in the kernel or because data isn't available at the point where the program is hooked into the kernel. @@ -201,6 +201,18 @@ Not all helper functions are available in all program types. These are the helpe * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_dynptr_data`](../helper-function/bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](../helper-function/bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](../helper-function/bpf_dynptr_read.md) + * [`bpf_dynptr_write`](../helper-function/bpf_dynptr_write.md) + * [`bpf_kptr_xchg`](../helper-function/bpf_kptr_xchg.md) + * [`bpf_ktime_get_tai_ns`](../helper-function/bpf_ktime_get_tai_ns.md) + * [`bpf_ringbuf_discard_dynptr`](../helper-function/bpf_ringbuf_discard_dynptr.md) + * [`bpf_ringbuf_reserve_dynptr`](../helper-function/bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](../helper-function/bpf_ringbuf_submit_dynptr.md) + * [`bpf_user_ringbuf_drain`](../helper-function/bpf_user_ringbuf_drain.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_LWT_XMIT.md b/docs/linux/program-type/BPF_PROG_TYPE_LWT_XMIT.md index 7e8e06d5..af5257aa 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_LWT_XMIT.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_LWT_XMIT.md @@ -18,15 +18,15 @@ This program type can be attached to route, the program will be called when tran The initial use cases listed for this program type are: -- Collect statistics and generate sampling data for a subset of traffic based on the dst utilized by the packet thus allowing to extend the existing realms. -- Apply additional per route/dst filters to prohibit certain outgoing or incoming packets based on BPF filters. In particular, this allows to maintain per dst custom state across multiple packets in BPF maps and apply filters based on statistics and behaviour observed over time. +- Collect statistics and generate sampling data for a subset of traffic based on the destination utilized by the packet thus allowing to extend the existing realms. +- Apply additional per route/destination filters to prohibit certain outgoing or incoming packets based on BPF filters. In particular, this allows to maintain per destination custom state across multiple packets in BPF maps and apply filters based on statistics and behaviour observed over time. - Attachment of L2 headers at transmit where resolving the L2 address is not required. -LWT xmit programs are called after the IP header has been assembled and thus it can safely modify the packet. The program can also prepend a L2 header to the packet using the [`bpf_skb_change_head`](../helper-function/bpf_skb_change_head.md) helper function. +LWT xmit programs are called after the IP header has been assembled and thus it can safely modify the packet. The program can also prepend a L2 header to the packet using the [`bpf_skb_change_head`](../helper-function/bpf_skb_change_head.md) helper function. ## Context -Socket SKB programs are called by the kernel with a [__sk_buff](../program-context/__sk_buff.md) context. +Socket SKB programs are called by the kernel with a [`__sk_buff`](../program-context/__sk_buff.md) context. This program type isn't allowed to read from and write to all fields of the context since doing so might break assumptions in the kernel or because data isn't available at the point where the program is hooked into the kernel. @@ -154,6 +154,18 @@ Not all helper functions are available in all program types. These are the helpe * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_dynptr_data`](../helper-function/bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](../helper-function/bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](../helper-function/bpf_dynptr_read.md) + * [`bpf_dynptr_write`](../helper-function/bpf_dynptr_write.md) + * [`bpf_kptr_xchg`](../helper-function/bpf_kptr_xchg.md) + * [`bpf_ktime_get_tai_ns`](../helper-function/bpf_ktime_get_tai_ns.md) + * [`bpf_ringbuf_discard_dynptr`](../helper-function/bpf_ringbuf_discard_dynptr.md) + * [`bpf_ringbuf_reserve_dynptr`](../helper-function/bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](../helper-function/bpf_ringbuf_submit_dynptr.md) + * [`bpf_user_ringbuf_drain`](../helper-function/bpf_user_ringbuf_drain.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_PERF_EVENT.md b/docs/linux/program-type/BPF_PROG_TYPE_PERF_EVENT.md index 70560464..385ae5bc 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_PERF_EVENT.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_PERF_EVENT.md @@ -73,7 +73,7 @@ This is the oldest and least recommended method. After we have the perf event fi `#!c ioctl(perf_event_fd, PERF_EVENT_IOC_ENABLE, 0);` to enable. -The perf event program can be temporality disabled with the `PERF_EVENT_IOC_DISABLE` ioctl option. Otherwise the perf event program stays attached until the perf_event goes away due to the closing of the perf_event FD or the program exiting. The perf event holds a reference to the BPF program so it will stay loaded until no more perf event program reference it. +The perf event program can be temporarily disabled with the `PERF_EVENT_IOC_DISABLE` ioctl option. Otherwise the perf event program stays attached until the perf_event goes away due to the closing of the perf_event FD or the program exiting. The perf event holds a reference to the BPF program so it will stay loaded until no more perf event program reference it. ### `perf_event_open` PMU @@ -86,7 +86,7 @@ This is the newest and most recommended method of attaching perf event programs. After we have gotten the perf event file descriptor we attach the program by making a bpf link via the [link create syscall command](../syscall/BPF_LINK_CREATE.md). -We call the syscall command with the [`BPF_PERF_EVENT`](../syscall/BPF_LINK_CREATE.md#bpf_perf_event) [`attach_type`](../syscall/BPF_LINK_CREATE.md#attach_type), [`target_fd`](../syscall/BPF_LINK_CREATE.md#target_fd) set to the perf event fd, [`prog_fd`](../syscall/BPF_LINK_CREATE.md#prog_fd) to the file descriptor of the tracepoint program, and optionally a [`cookie`](../syscall/BPF_LINK_CREATE.md#cookie) +We call the syscall command with the [`BPF_PERF_EVENT`](../syscall/BPF_LINK_CREATE.md#bpf_perf_event) [`attach_type`](../syscall/BPF_LINK_CREATE.md#attach_type), [`target_fd`](../syscall/BPF_LINK_CREATE.md#target_fd) set to the perf event file descriptor, [`prog_fd`](../syscall/BPF_LINK_CREATE.md#prog_fd) to the file descriptor of the tracepoint program, and optionally a [`cookie`](../syscall/BPF_LINK_CREATE.md#cookie) ## Examples @@ -323,6 +323,18 @@ We call the syscall command with the [`BPF_PERF_EVENT`](../syscall/BPF_LINK_CREA * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_dynptr_data`](../helper-function/bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](../helper-function/bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](../helper-function/bpf_dynptr_read.md) + * [`bpf_dynptr_write`](../helper-function/bpf_dynptr_write.md) + * [`bpf_kptr_xchg`](../helper-function/bpf_kptr_xchg.md) + * [`bpf_ktime_get_tai_ns`](../helper-function/bpf_ktime_get_tai_ns.md) + * [`bpf_ringbuf_discard_dynptr`](../helper-function/bpf_ringbuf_discard_dynptr.md) + * [`bpf_ringbuf_reserve_dynptr`](../helper-function/bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](../helper-function/bpf_ringbuf_submit_dynptr.md) + * [`bpf_user_ringbuf_drain`](../helper-function/bpf_user_ringbuf_drain.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md b/docs/linux/program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md index 4dc6a477..66d47072 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_RAW_TRACEPOINT.md @@ -328,6 +328,18 @@ Not all helper functions are available in all program types. These are the helpe * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_dynptr_data`](../helper-function/bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](../helper-function/bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](../helper-function/bpf_dynptr_read.md) + * [`bpf_dynptr_write`](../helper-function/bpf_dynptr_write.md) + * [`bpf_kptr_xchg`](../helper-function/bpf_kptr_xchg.md) + * [`bpf_ktime_get_tai_ns`](../helper-function/bpf_ktime_get_tai_ns.md) + * [`bpf_ringbuf_discard_dynptr`](../helper-function/bpf_ringbuf_discard_dynptr.md) + * [`bpf_ringbuf_reserve_dynptr`](../helper-function/bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](../helper-function/bpf_ringbuf_submit_dynptr.md) + * [`bpf_user_ringbuf_drain`](../helper-function/bpf_user_ringbuf_drain.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md b/docs/linux/program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md index 51edb480..31366b7d 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md @@ -123,6 +123,18 @@ Not all helper functions are available in all program types. These are the helpe * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_dynptr_data`](../helper-function/bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](../helper-function/bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](../helper-function/bpf_dynptr_read.md) + * [`bpf_dynptr_write`](../helper-function/bpf_dynptr_write.md) + * [`bpf_kptr_xchg`](../helper-function/bpf_kptr_xchg.md) + * [`bpf_ktime_get_tai_ns`](../helper-function/bpf_ktime_get_tai_ns.md) + * [`bpf_ringbuf_discard_dynptr`](../helper-function/bpf_ringbuf_discard_dynptr.md) + * [`bpf_ringbuf_reserve_dynptr`](../helper-function/bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](../helper-function/bpf_ringbuf_submit_dynptr.md) + * [`bpf_user_ringbuf_drain`](../helper-function/bpf_user_ringbuf_drain.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_SCHED_CLS.md b/docs/linux/program-type/BPF_PROG_TYPE_SCHED_CLS.md index 68794a70..e416118f 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_SCHED_CLS.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_SCHED_CLS.md @@ -10,11 +10,11 @@ description: "This page documents the 'BPF_PROG_TYPE_SCHED_CLS' eBPF program typ This program type allows for the implementation of a Traffic Control (TC) classifier (aka filter) in eBPF. TC can be used for a number of use cases, all of them having to do with the manipulation of traffic. TC is for example used to implement QoS (Quality of Service) allowing latency sensitive traffic like VoIP (Voice over IP) to be processed ahead of lets say web traffic. It can also drop packets to simulate packet-loss, add latency to simulate distant clients or apply bandwidth limitations for applications or users, to name a few. -TC allows an admin to filter traffic using a hierarchical model of qdisc's (Queuing DISCipline). A root qdisc is attached to a network interface with certain actions. This qdisc can also have child qdiscs which will be used over the root if their filter matches the traffic. This program type allows us to implement such a filter in eBPF. +TC allows an admin to filter traffic using a hierarchical model of qdiscs (Queuing DISCipline). A root qdisc is attached to a network interface with certain actions. This qdisc can also have child qdiscs which will be used over the root if their filter matches the traffic. This program type allows us to implement such a filter in eBPF. ## Usage -TC CLS programs are typically put into an [ELF](../../concepts/elf.md) section prefixed with `tc/` or `classifier/`. The TC CLS program is called by the kernel with a [__sk_buff](../program-context/__sk_buff.md) context. The return value indicates what action the kernel should take with the packet, the following values are permitted: +TC Classifier programs are typically put into an [ELF](../../concepts/elf.md) section prefixed with `tc/` or `classifier/`. The TC Classifier program is called by the kernel with a [`__sk_buff`](../program-context/__sk_buff.md) context. The return value indicates what action the kernel should take with the packet, the following values are permitted: ### Regular classifier @@ -97,9 +97,9 @@ $ tc qdisc add dev eth1 clsact $ tc filter add dev eth1 ingress bpf obj program.o sec my_func ``` -For more details on the tc command, see the general [man page](https://man7.org/linux/man-pages/man8/tc.8.html). +For more details on the `tc` command, see the general [man page](https://man7.org/linux/man-pages/man8/tc.8.html). -For more details on the bpf filter options, see the tc-bpf [man page](https://man7.org/linux/man-pages/man8/tc-bpf.8.html). +For more details on the bpf filter options, see the `tc-bpf` [man page](https://man7.org/linux/man-pages/man8/tc-bpf.8.html). ## Helper functions @@ -162,6 +162,10 @@ Not all helper functions are available in all program types. These are the helpe * [`bpf_tcp_gen_syncookie`](../helper-function/bpf_tcp_gen_syncookie.md) * [`bpf_sk_assign`](../helper-function/bpf_sk_assign.md) * [`bpf_skb_set_tstamp`](../helper-function/bpf_skb_set_tstamp.md) + * [`bpf_tcp_raw_gen_syncookie_ipv4`](../helper-function/bpf_tcp_raw_gen_syncookie_ipv4.md) + * [`bpf_tcp_raw_gen_syncookie_ipv6`](../helper-function/bpf_tcp_raw_gen_syncookie_ipv6.md) + * [`bpf_tcp_raw_check_syncookie_ipv4`](../helper-function/bpf_tcp_raw_check_syncookie_ipv4.md) + * [`bpf_tcp_raw_check_syncookie_ipv6`](../helper-function/bpf_tcp_raw_check_syncookie_ipv6.md) * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) @@ -203,6 +207,18 @@ Not all helper functions are available in all program types. These are the helpe * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_dynptr_data`](../helper-function/bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](../helper-function/bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](../helper-function/bpf_dynptr_read.md) + * [`bpf_dynptr_write`](../helper-function/bpf_dynptr_write.md) + * [`bpf_kptr_xchg`](../helper-function/bpf_kptr_xchg.md) + * [`bpf_ktime_get_tai_ns`](../helper-function/bpf_ktime_get_tai_ns.md) + * [`bpf_ringbuf_discard_dynptr`](../helper-function/bpf_ringbuf_discard_dynptr.md) + * [`bpf_ringbuf_reserve_dynptr`](../helper-function/bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](../helper-function/bpf_ringbuf_submit_dynptr.md) + * [`bpf_user_ringbuf_drain`](../helper-function/bpf_user_ringbuf_drain.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_SK_LOOKUP.md b/docs/linux/program-type/BPF_PROG_TYPE_SK_LOOKUP.md index 7b36e112..bd06089a 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_SK_LOOKUP.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_SK_LOOKUP.md @@ -188,6 +188,18 @@ Not all helper functions are available in all program types. These are the helpe * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_dynptr_data`](../helper-function/bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](../helper-function/bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](../helper-function/bpf_dynptr_read.md) + * [`bpf_dynptr_write`](../helper-function/bpf_dynptr_write.md) + * [`bpf_kptr_xchg`](../helper-function/bpf_kptr_xchg.md) + * [`bpf_ktime_get_tai_ns`](../helper-function/bpf_ktime_get_tai_ns.md) + * [`bpf_ringbuf_discard_dynptr`](../helper-function/bpf_ringbuf_discard_dynptr.md) + * [`bpf_ringbuf_reserve_dynptr`](../helper-function/bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](../helper-function/bpf_ringbuf_submit_dynptr.md) + * [`bpf_user_ringbuf_drain`](../helper-function/bpf_user_ringbuf_drain.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_SK_MSG.md b/docs/linux/program-type/BPF_PROG_TYPE_SK_MSG.md index b1373626..4fd9a31b 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_SK_MSG.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_SK_MSG.md @@ -20,9 +20,9 @@ The program returns a verdict on what to do with the data the process wants to s * `SK_DROP` - The message should be dropped. The [`bpf_msg_apply_bytes`](../helper-function/bpf_msg_apply_bytes.md) helper function can be used to indicate for which bytes the verdict applies. This has two cases. First BPF program applies -verdict to fewer bytes than in the current sendmsg/sendfile this will apply the verdict to the first N bytes of the message then run the BPF program again with data pointers recalculated to the N+1 byte. The second case is the BPF program applies a verdict to more bytes than the current sendmsg or sendfile system call. In this case the infrastructure will cache the verdict and apply it to future sendmsg/sendfile calls until the byte limit is reached. This avoids the overhead of running BPF programs on large payloads. +verdict to fewer bytes than in the current `sendmsg`/`sendfile` this will apply the verdict to the first N bytes of the message then run the BPF program again with data pointers recalculated to the N+1 byte. The second case is the BPF program applies a verdict to more bytes than the current `sendmsg` or `sendfile` system call. In this case the infrastructure will cache the verdict and apply it to future `sendmsg`/`sendfile` calls until the byte limit is reached. This avoids the overhead of running BPF programs on large payloads. -The helper [`bpf_msg_cork_bytes`](../helper-function/bpf_msg_cork_bytes.md) handles a different case where a BPF program can not reach a verdict on a msg until it receives more bytes AND the program doesn't want to forward the packet until it is known to be "good". The example case being a user (albeit a dumb one probably) sends messages in 1B system calls. The BPF program can call [`bpf_msg_cork_bytes`](../helper-function/bpf_msg_cork_bytes.md) with the required byte limit to reach a verdict and then the program will only be called again once N bytes are received. +The helper [`bpf_msg_cork_bytes`](../helper-function/bpf_msg_cork_bytes.md) handles a different case where a BPF program can not reach a verdict on a message until it receives more bytes AND the program doesn't want to forward the packet until it is known to be "good". The example case being a user (albeit a dumb one probably) sends messages in 1B system calls. The BPF program can call [`bpf_msg_cork_bytes`](../helper-function/bpf_msg_cork_bytes.md) with the required byte limit to reach a verdict and then the program will only be called again once N bytes are received. ## Context @@ -217,6 +217,18 @@ int prog_msg_verdict(struct sk_msg_md *msg) * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_dynptr_data`](../helper-function/bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](../helper-function/bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](../helper-function/bpf_dynptr_read.md) + * [`bpf_dynptr_write`](../helper-function/bpf_dynptr_write.md) + * [`bpf_kptr_xchg`](../helper-function/bpf_kptr_xchg.md) + * [`bpf_ktime_get_tai_ns`](../helper-function/bpf_ktime_get_tai_ns.md) + * [`bpf_ringbuf_discard_dynptr`](../helper-function/bpf_ringbuf_discard_dynptr.md) + * [`bpf_ringbuf_reserve_dynptr`](../helper-function/bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](../helper-function/bpf_ringbuf_submit_dynptr.md) + * [`bpf_user_ringbuf_drain`](../helper-function/bpf_user_ringbuf_drain.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_SK_REUSEPORT.md b/docs/linux/program-type/BPF_PROG_TYPE_SK_REUSEPORT.md index 3ada3f46..394f567c 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_SK_REUSEPORT.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_SK_REUSEPORT.md @@ -16,9 +16,9 @@ In [:octicons-tag-24: v3.9](https://github.com/torvalds/linux/commit/c617f398edd By default, incoming connections and datagrams are distributed to the server sockets using a hash based on the 4-tuple of the connection—that is, the peer IP address and port plus the local IP address and port. -With the introduction of [BPF_PROG_TYPE_SK_REUSEPORT](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) program, [BPF_MAP_TYPE_REUSEPORT_SOCKARRAY](../map-type/BPF_MAP_TYPE_REUSEPORT_SOCKARRAY.md) map, and the [bpf_sk_select_reuseport](../helper-function/bpf_sk_select_reuseport.md) helper function we can replace the default distribution behavior with a BPF program. +With the introduction of [`BPF_PROG_TYPE_SK_REUSEPORT`](../program-type/BPF_PROG_TYPE_SK_REUSEPORT.md) program, [`BPF_MAP_TYPE_REUSEPORT_SOCKARRAY`](../map-type/BPF_MAP_TYPE_REUSEPORT_SOCKARRAY.md) map, and the [`bpf_sk_select_reuseport`](../helper-function/bpf_sk_select_reuseport.md) helper function we can replace the default distribution behavior with a BPF program. -A key feature is that the sockets do not have to belong to the same process. This means that you can steer traffic between two processes to do A/B testing or software updates without dropping connections. For the latter scenario, the typical use case is to use a map-in-map with a [BPF_MAP_TYPE_REUSEPORT_SOCKARRAY](../map-type/BPF_MAP_TYPE_REUSEPORT_SOCKARRAY.md) as inner map, allowing userspace to switch out all sockets at once. In that scenario, any existing TCP connections would still be handled by the old sockets/process but new connections are routed to the new process. +A key feature is that the sockets do not have to belong to the same process. This means that you can steer traffic between two processes to do A/B testing or software updates without dropping connections. For the latter scenario, the typical use case is to use a map-in-map with a [`BPF_MAP_TYPE_REUSEPORT_SOCKARRAY`](../map-type/BPF_MAP_TYPE_REUSEPORT_SOCKARRAY.md) as inner map, allowing userspace to switch out all sockets at once. In that scenario, any existing TCP connections would still be handled by the old sockets/process but new connections are routed to the new process. ## Context @@ -68,7 +68,7 @@ The context of this program type is `#!c struct sk_reuseport_md`. All fields of ### `data` -This field contain a pointer to the start of directly accessible data. It begins from the tcp/udp header. +This field contain a pointer to the start of directly accessible data. It begins from the TCP/UDP header. !!! note This program type only has read access, it may not modify the packet data. @@ -79,10 +79,10 @@ This field contain a pointer to the end of directly accessible data. ### `len` -This field contains the total length of packet (starting from the tcp/udp header). +This field contains the total length of packet (starting from the TCP/UDP header). !!! note - The directly accessible bytes (data_end - data) could be less than this "len". Those bytes could be indirectly read by a helper `bpf_skb_load_bytes`. + The directly accessible bytes (data_end - data) could be less than this `len`. Those bytes could be indirectly read by a helper `bpf_skb_load_bytes`. ### `eth_protocol` @@ -122,7 +122,7 @@ This program should be loaded with the `BPF_SK_REUSEPORT_SELECT` [`expected_atta Before [:octicons-tag-24: v5.14](https://github.com/torvalds/linux/commit/d5e4ddaeb6ab2c3c7fbb7b247a6d34bb0b18d87e), the reuse port feature had a defect in its logic. When a SYN packet is received, the connection is tied to a listening socket. Accordingly, when the listener is closed, in-flight requests during the three-way handshake and child sockets in the accept queue are dropped even if other listeners could accept such connections. -This situation can happen when various server management tools restart server (such as nginx) processes. For instance, when we change nginx configurations and restart it, it spins up new workers that respect the new configuration and closes all listeners on the old workers, resulting in in-flight ACK of 3WHS is responded by RST. +This situation can happen when various server management tools restart server (such as nginx) processes. For instance, when we change nginx configurations and restart it, it spins up new workers that respect the new configuration and closes all listeners on the old workers, resulting in in-flight ACK of 3WHS is responded by RST. To fix this defect, the concept of socket migration was added, which will repeat the socket selection logic to pick a new socket. When not using eBPF, the same hash logic is used, but only if the `net.ipv4.tcp_migrate_req` sysctl setting has been enabled. When using eBPF with this program type, loading the program with the `BPF_SK_REUSEPORT_SELECT_OR_MIGRATE` attachment type indicates that this program also overwrites the migration logic. No need to set the sysctl option in this case. This does mean that the the program can be called for initial selection as well as for migration. The `sk` and `sk_migration` context fields indicate for which purpose the program is invoked. @@ -188,6 +188,18 @@ Not all helper functions are available in all program types. These are the helpe * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_dynptr_data`](../helper-function/bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](../helper-function/bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](../helper-function/bpf_dynptr_read.md) + * [`bpf_dynptr_write`](../helper-function/bpf_dynptr_write.md) + * [`bpf_kptr_xchg`](../helper-function/bpf_kptr_xchg.md) + * [`bpf_ktime_get_tai_ns`](../helper-function/bpf_ktime_get_tai_ns.md) + * [`bpf_ringbuf_discard_dynptr`](../helper-function/bpf_ringbuf_discard_dynptr.md) + * [`bpf_ringbuf_reserve_dynptr`](../helper-function/bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](../helper-function/bpf_ringbuf_submit_dynptr.md) + * [`bpf_user_ringbuf_drain`](../helper-function/bpf_user_ringbuf_drain.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_SK_SKB.md b/docs/linux/program-type/BPF_PROG_TYPE_SK_SKB.md index 7bca829a..1968b5da 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_SK_SKB.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_SK_SKB.md @@ -28,7 +28,7 @@ The return value is interpreted as follows: * `other < 0` - Error in parsing, give control back to userspace assuming that synchronization is lost and the stream is unrecoverable (application expected to close TCP socket) !!! note - Before [:octicons-tag-24: v5.10](https://github.com/torvalds/linux/commit/ef5659280eb13e8ac31c296f58cfdfa1684ac06b) it was required to have a stream parser attached to a sockmap if you wanted to use the stream verdict as well. On newer versions this is no longer required. + Before [:octicons-tag-24: v5.10](https://github.com/torvalds/linux/commit/ef5659280eb13e8ac31c296f58cfdfa1684ac06b) it was required to have a stream parser attached to a `BPF_MAP_TYPE_SOCKMAP` if you wanted to use the stream verdict as well. On newer versions this is no longer required. On the older kernels, a no-op program can be used to just return the length of the current skb to retain default behavior and pass verdict per TCP packet. @@ -60,7 +60,7 @@ The non-stream verdict attach type is a replacement for the `BPF_SK_SKB_STREAM_V ## Context -Socket SKB programs are called by the kernel with a [__sk_buff](../program-context/__sk_buff.md) context. +Socket SKB programs are called by the kernel with a [`__sk_buff`](../program-context/__sk_buff.md) context. This program type isn't allowed to read from and write to all fields of the context since doing so might break assumptions in the kernel or because data isn't available at the point where the program is hooked into the kernel. @@ -241,6 +241,18 @@ out: * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_dynptr_data`](../helper-function/bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](../helper-function/bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](../helper-function/bpf_dynptr_read.md) + * [`bpf_dynptr_write`](../helper-function/bpf_dynptr_write.md) + * [`bpf_kptr_xchg`](../helper-function/bpf_kptr_xchg.md) + * [`bpf_ktime_get_tai_ns`](../helper-function/bpf_ktime_get_tai_ns.md) + * [`bpf_ringbuf_discard_dynptr`](../helper-function/bpf_ringbuf_discard_dynptr.md) + * [`bpf_ringbuf_reserve_dynptr`](../helper-function/bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](../helper-function/bpf_ringbuf_submit_dynptr.md) + * [`bpf_user_ringbuf_drain`](../helper-function/bpf_user_ringbuf_drain.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_SOCKET_FILTER.md b/docs/linux/program-type/BPF_PROG_TYPE_SOCKET_FILTER.md index 024536c9..34b094b7 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_SOCKET_FILTER.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_SOCKET_FILTER.md @@ -11,7 +11,7 @@ description: "This page documents the 'BPF_PROG_TYPE_SOCKET_FILTER' eBPF program Socket filter programs can hook into network sockets and are designed to filter or modify packets received by that socket (the program isn't called for egress/outgoing packets). -A noticeable use-case for this program type is [tcpdump](https://www.tcpdump.org/) which uses a [raw](https://man7.org/linux/man-pages/man7/raw.7.html) sockets in combination with a socket filter generated from the filter query to efficiently filter packets and only pay the kernel-userspace barrier cost for packets of interest. +A noticeable use-case for this program type is [`tcpdump`](https://www.tcpdump.org/) which uses a [raw](https://man7.org/linux/man-pages/man7/raw.7.html) sockets in combination with a socket filter generated from the filter query to efficiently filter packets and only pay the kernel-userspace barrier cost for packets of interest. ## Usage @@ -120,6 +120,18 @@ Not all helper functions are available in all program types. These are the helpe * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_dynptr_data`](../helper-function/bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](../helper-function/bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](../helper-function/bpf_dynptr_read.md) + * [`bpf_dynptr_write`](../helper-function/bpf_dynptr_write.md) + * [`bpf_kptr_xchg`](../helper-function/bpf_kptr_xchg.md) + * [`bpf_ktime_get_tai_ns`](../helper-function/bpf_ktime_get_tai_ns.md) + * [`bpf_ringbuf_discard_dynptr`](../helper-function/bpf_ringbuf_discard_dynptr.md) + * [`bpf_ringbuf_reserve_dynptr`](../helper-function/bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](../helper-function/bpf_ringbuf_submit_dynptr.md) + * [`bpf_user_ringbuf_drain`](../helper-function/bpf_user_ringbuf_drain.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_SOCK_OPS.md b/docs/linux/program-type/BPF_PROG_TYPE_SOCK_OPS.md index 10b199b1..7c0829ff 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_SOCK_OPS.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_SOCK_OPS.md @@ -18,7 +18,7 @@ Regardless of the type of operation, the program should always return `1` on suc There are a few envisioned use cases for this program type. First is to reply with certain settings like RTO, RTT and ECN (see [ops](#ops) section for details) or to set socket options using the [`bpf_setsockopt`](../helper-function/bpf_setsockopt.md) helper to tune settings/options on a per-connection basis. -> For example, it is easy to use facebook's internal IPv6 addresses to determine if both hosts of a connection are in the same datacenter. Therefore, it is easy to write a BPF program to choose a small SYN RTO value when both hosts are in the same datacenter. +> For example, it is easy to use Facebook's internal IPv6 addresses to determine if both hosts of a connection are in the same data center. Therefore, it is easy to write a BPF program to choose a small SYN RTO value when both hosts are in the same data center. Secondly, socket ops programs are in an excellent position to gather detailed metrics about connections. Especially after [:octicons-tag-24: v4.16](https://github.com/torvalds/linux/commit/44f0e43037d3a17b043843ba67610ac7c7e37db6). @@ -195,13 +195,13 @@ The arguments in the context will have the following meanings: `args[0]`: bool want_cookie. (in writing SYNACK only) -`sock_ops->skb_data`: Referring to the outgoing skb. It covers the TCP header that has already been written by the kernel and the earlier bpf-progs. +`sock_ops->skb_data`: Referring to the outgoing skb. It covers the TCP header that has already been written by the kernel and the earlier BPF programs. `sock_ops->skb_tcp_flags`: The tcp_flags of the outgoing skb. (e.g. SYN, ACK, FIN). The [`bpf_store_hdr_opt`](../helper-function/bpf_store_hdr_opt.md) should be used to write the option. -The [`bpf_load_hdr_opt`](../helper-function/bpf_load_hdr_opt.md) can also be used to search for a particular option that has already been written by the kernel or the earlier bpf-progs. +The [`bpf_load_hdr_opt`](../helper-function/bpf_load_hdr_opt.md) can also be used to search for a particular option that has already been written by the kernel or the earlier BPF programs. ## Context @@ -475,13 +475,13 @@ Number of packets which are "in flight". [:octicons-tag-24: v4.16](https://github.com/torvalds/linux/commit/44f0e43037d3a17b043843ba67610ac7c7e37db6) -Number of packets retransmitted out. +Number of packets re-transmitted out. ### `total_retrans` [:octicons-tag-24: v4.16](https://github.com/torvalds/linux/commit/44f0e43037d3a17b043843ba67610ac7c7e37db6) -Total # of packet retransmits for entire connection. +Total # of packet re-transmits for entire connection. ### `segs_in` @@ -517,7 +517,7 @@ Number of lost packets. [:octicons-tag-24: v4.16](https://github.com/torvalds/linux/commit/44f0e43037d3a17b043843ba67610ac7c7e37db6) -Number of SACK'd packets. +Number of SACK'd packets. ### `sk_txhash` @@ -529,13 +529,13 @@ Computed flow hash for use on transmit. [:octicons-tag-24: v4.16](https://github.com/torvalds/linux/commit/44f0e43037d3a17b043843ba67610ac7c7e37db6) -RFC4898 tcpEStatsAppHCThruOctetsReceived sum(delta(rcv_nxt)), or how many bytes were acked. +RFC4898 `tcpEStatsAppHCThruOctetsReceived sum(delta(rcv_nxt))`, or how many bytes were acked. ### `bytes_acked` [:octicons-tag-24: v4.16](https://github.com/torvalds/linux/commit/44f0e43037d3a17b043843ba67610ac7c7e37db6) -RFC4898 tcpEStatsAppHCThruOctetsAcked sum(delta(snd_una)), or how many bytes were acked. +RFC4898 `tcpEStatsAppHCThruOctetsAcked sum(delta(snd_una))`, or how many bytes were acked. ### `sk` @@ -573,9 +573,9 @@ The total length of a packet. It includes the header, options, and payload. [:octicons-tag-24: v5.10](https://github.com/torvalds/linux/commit/0813a841566f0962a5551be7749b43c45f0022a0) -tcp_flags of the header. It provides an easy way to check for tcp_flags without parsing skb_data. +`tcp_flags` of the header. It provides an easy way to check for `tcp_flags` without parsing skb_data. -In particular, the skb_tcp_flags will still be available in `BPF_SOCK_OPS_HDR_OPT_LEN` even though the outgoing header has not been written yet. +In particular, the `skb_tcp_flags` will still be available in `BPF_SOCK_OPS_HDR_OPT_LEN` even though the outgoing header has not been written yet. ### `skb_hwtstamp` @@ -583,14 +583,14 @@ In particular, the skb_tcp_flags will still be available in `BPF_SOCK_OPS_HDR_OP The timestamp at which the packet was received as reported by the hardware/NIC. -> In sockops, the skb is also available to the bpf prog during the `BPF_SOCK_OPS_PARSE_HDR_OPT_CB` event. There is a use case that the hwtstamp will be useful to the sockops prog to better measure the one-way-delay when the sender has put the tx timestamp in the tcp header option. +> In sockops, the skb is also available to the bpf prog during the `BPF_SOCK_OPS_PARSE_HDR_OPT_CB` event. There is a use case that the hwtstamp will be useful to the sockops prog to better measure the one-way-delay when the sender has put the tx timestamp in the tcp header option. !!! warning - hwtstamps can only be compared against other hwtstamps from the same device. + `hwtstamps` can only be compared against other `hwtstamps` from the same device. ## Attachment -Socket ops programs are attached to cgroups via the [`BPF_PROG_ATTACH`](../syscall/BPF_PROG_ATTACH.md) syscall or via [BPF link](../syscall/BPF_LINK_CREATE.md). +Socket ops programs are attached to cGroups via the [`BPF_PROG_ATTACH`](../syscall/BPF_PROG_ATTACH.md) syscall or via [BPF link](../syscall/BPF_LINK_CREATE.md). ## Examples @@ -855,6 +855,18 @@ Socket ops programs are attached to cgroups via the [`BPF_PROG_ATTACH`](../sysca * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_dynptr_data`](../helper-function/bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](../helper-function/bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](../helper-function/bpf_dynptr_read.md) + * [`bpf_dynptr_write`](../helper-function/bpf_dynptr_write.md) + * [`bpf_kptr_xchg`](../helper-function/bpf_kptr_xchg.md) + * [`bpf_ktime_get_tai_ns`](../helper-function/bpf_ktime_get_tai_ns.md) + * [`bpf_ringbuf_discard_dynptr`](../helper-function/bpf_ringbuf_discard_dynptr.md) + * [`bpf_ringbuf_reserve_dynptr`](../helper-function/bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](../helper-function/bpf_ringbuf_submit_dynptr.md) + * [`bpf_user_ringbuf_drain`](../helper-function/bpf_user_ringbuf_drain.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_STRUCT_OPS.md b/docs/linux/program-type/BPF_PROG_TYPE_STRUCT_OPS.md index d6ae3f60..6d48024d 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_STRUCT_OPS.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_STRUCT_OPS.md @@ -44,7 +44,7 @@ The full file is turned into a light skeleton. After loading the light skeleton The loader locates the struct(s) in the `.struct_ops` section. It uses BTF to get the name and structure of the struct. The values of non-function fields are present in the `.struct_ops` section itself and for the function pointer fields that were set there will be ELF relocation entries pointing to the respective eBPF programs. -The loader will figure out which eBPF programs were referenced and load them. The loader then will inspect the VMLinux BTF of the host to find the BTF type ID of the struct_ops struct. Once we have that, the loader creates a [`BPF_MAP_TYPE_STRUCT_OPS`](../map-type/BPF_MAP_TYPE_STRUCT_OPS.md) map. While loading the BTF type ID of the struct_ops struct is provided via the [`btf_vmlinux_value_type_id`](../syscall/BPF_MAP_CREATE.md#btf_vmlinux_value_type_id) argument. The [`btf_value_type_id`](../syscall/BPF_MAP_CREATE.md#btf_value_type_id) is set to the BTF ID of the programs struct. The key of the map must be an `int`/4 bytes and `max_entries` of 1. +The loader will figure out which eBPF programs were referenced and load them. The loader then will inspect the Vmlinux BTF of the host to find the BTF type ID of the struct_ops struct. Once we have that, the loader creates a [`BPF_MAP_TYPE_STRUCT_OPS`](../map-type/BPF_MAP_TYPE_STRUCT_OPS.md) map. While loading the BTF type ID of the struct_ops struct is provided via the [`btf_vmlinux_value_type_id`](../syscall/BPF_MAP_CREATE.md#btf_vmlinux_value_type_id) argument. The [`btf_value_type_id`](../syscall/BPF_MAP_CREATE.md#btf_value_type_id) is set to the BTF ID of the programs struct. The key of the map must be an `int`/4 bytes and `max_entries` of 1. The kernel has now allocated memory for one instance of the struct_ops struct and associated it with the call location. So the next step for the loader is to write to the only element in the map, element `0`. The value of the map is the instance of the struct as C would lay it out in memory. Except the values of the function pointer fields are populated with the file descriptors of the eBPF programs, the kernel will transform these into the actual memory locations of the JITed eBPF programs. As soon as the update happens, the struct_ops programs are attached. The map holds the refcounts to the programs, so they don't have to be pinned. As soon as element `0` of the map is deleted or the map is cleaned up due to being unreferenced, the struct_ops programs are detached. So typically the map gets pinned. @@ -329,6 +329,18 @@ Not all helper functions are available in all program types. These are the helpe * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_dynptr_data`](../helper-function/bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](../helper-function/bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](../helper-function/bpf_dynptr_read.md) + * [`bpf_dynptr_write`](../helper-function/bpf_dynptr_write.md) + * [`bpf_kptr_xchg`](../helper-function/bpf_kptr_xchg.md) + * [`bpf_ktime_get_tai_ns`](../helper-function/bpf_ktime_get_tai_ns.md) + * [`bpf_ringbuf_discard_dynptr`](../helper-function/bpf_ringbuf_discard_dynptr.md) + * [`bpf_ringbuf_reserve_dynptr`](../helper-function/bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](../helper-function/bpf_ringbuf_submit_dynptr.md) + * [`bpf_user_ringbuf_drain`](../helper-function/bpf_user_ringbuf_drain.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_SYSCALL.md b/docs/linux/program-type/BPF_PROG_TYPE_SYSCALL.md index 4390f2a6..a55bfc07 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_SYSCALL.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_SYSCALL.md @@ -170,6 +170,18 @@ Not all helper functions are available in all program types. These are the helpe * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_dynptr_data`](../helper-function/bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](../helper-function/bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](../helper-function/bpf_dynptr_read.md) + * [`bpf_dynptr_write`](../helper-function/bpf_dynptr_write.md) + * [`bpf_kptr_xchg`](../helper-function/bpf_kptr_xchg.md) + * [`bpf_ktime_get_tai_ns`](../helper-function/bpf_ktime_get_tai_ns.md) + * [`bpf_ringbuf_discard_dynptr`](../helper-function/bpf_ringbuf_discard_dynptr.md) + * [`bpf_ringbuf_reserve_dynptr`](../helper-function/bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](../helper-function/bpf_ringbuf_submit_dynptr.md) + * [`bpf_user_ringbuf_drain`](../helper-function/bpf_user_ringbuf_drain.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_TRACEPOINT.md b/docs/linux/program-type/BPF_PROG_TYPE_TRACEPOINT.md index 34f21800..c5e61e0a 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_TRACEPOINT.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_TRACEPOINT.md @@ -16,7 +16,7 @@ Tracepoint programs can attach to trace events. These events are declared with t The `TRACE_EVENT` macro will make a tracepoint available via a function with the `trace_` prefix followed by the name. So `trace_xdp_exception` will fire the `xdp_exception` event, which can happen from any number of locations in the code. The attached eBPF program will be called for all invocations of the trace program. -We can use the [tracefs](https://www.kernel.org/doc/Documentation/trace/ftrace.txt) to list all of these available trace events. For the sake of this page we will assume the tracefs is mounted at `/sys/kernel/tracing` (which is usual for most distros). The `/sys/kernel/tracing/events/` directory contains a number of yet more directories. The events are grouped by the first word in their name, so all `kvm_*` events reside in `/sys/kernel/tracing/events/kvm`. So `xdp_exception` is located in `/sys/kernel/tracing/events/xdp/xdp_exception`. We will refer to this directory as the "event directory". +We can use the [`tracefs`](https://www.kernel.org/doc/Documentation/trace/ftrace.txt) to list all of these available trace events. For the sake of this page we will assume the `tracefs` is mounted at `/sys/kernel/tracing` (which is usual for most distros). The `/sys/kernel/tracing/events/` directory contains a number of yet more directories. The events are grouped by the first word in their name, so all `kvm_*` events reside in `/sys/kernel/tracing/events/kvm`. So `xdp_exception` is located in `/sys/kernel/tracing/events/xdp/xdp_exception`. We will refer to this directory as the "event directory". ## Context @@ -58,7 +58,7 @@ struct xdp_exception_ctx { There are three methods of attaching tracepoint programs, from oldest and least recommended to newest and most recommended, however, all methods have this first part in common. -We start by looking up the event ID in the tracefs. Inside the event directory is located a pseudo-file called `id`, so for `xdp_exception` that would be `/sys/kernel/tracing/events/xdp/xdp_exception/id`. When reading the file a decimal number is returned. +We start by looking up the event ID in the `tracefs`. Inside the event directory is located a pseudo-file called `id`, so for `xdp_exception` that would be `/sys/kernel/tracing/events/xdp/xdp_exception/id`. When reading the file a decimal number is returned. Next step is to open a new perf event using the [`perf_event_open`](https://man7.org/linux/man-pages/man2/perf_event_open.2.html) syscall: @@ -104,7 +104,7 @@ This is the newest and most recommended method of attaching tracepoint programs. After we have gotten the perf event file descriptor we attach the program by making a bpf link via the [link create syscall command](../syscall/BPF_LINK_CREATE.md). -We call the syscall command with the [`BPF_PERF_EVENT`](../syscall/BPF_LINK_CREATE.md#bpf_perf_event) [`attach_type`](../syscall/BPF_LINK_CREATE.md#attach_type), [`target_fd`](../syscall/BPF_LINK_CREATE.md#target_fd) set to the perf event fd, [`prog_fd`](../syscall/BPF_LINK_CREATE.md#prog_fd) to the file descriptor of the tracepoint program, and optionally a [`cookie`](../syscall/BPF_LINK_CREATE.md#cookie) +We call the syscall command with the [`BPF_PERF_EVENT`](../syscall/BPF_LINK_CREATE.md#bpf_perf_event) [`attach_type`](../syscall/BPF_LINK_CREATE.md#attach_type), [`target_fd`](../syscall/BPF_LINK_CREATE.md#target_fd) set to the perf event file descriptor, [`prog_fd`](../syscall/BPF_LINK_CREATE.md#prog_fd) to the file descriptor of the tracepoint program, and optionally a [`cookie`](../syscall/BPF_LINK_CREATE.md#cookie) ## Helper functions @@ -211,6 +211,18 @@ We call the syscall command with the [`BPF_PERF_EVENT`](../syscall/BPF_LINK_CREA * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_dynptr_data`](../helper-function/bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](../helper-function/bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](../helper-function/bpf_dynptr_read.md) + * [`bpf_dynptr_write`](../helper-function/bpf_dynptr_write.md) + * [`bpf_kptr_xchg`](../helper-function/bpf_kptr_xchg.md) + * [`bpf_ktime_get_tai_ns`](../helper-function/bpf_ktime_get_tai_ns.md) + * [`bpf_ringbuf_discard_dynptr`](../helper-function/bpf_ringbuf_discard_dynptr.md) + * [`bpf_ringbuf_reserve_dynptr`](../helper-function/bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](../helper-function/bpf_ringbuf_submit_dynptr.md) + * [`bpf_user_ringbuf_drain`](../helper-function/bpf_user_ringbuf_drain.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_TRACING.md b/docs/linux/program-type/BPF_PROG_TYPE_TRACING.md index 8478952e..6b54c177 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_TRACING.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_TRACING.md @@ -34,7 +34,7 @@ Fentry programs are similar in function to a kprobe attached to a functions firs Kprobes do not have to be attached at the entry point of a function, kprobes can be installed at any point in the function, whereas fentry programs are always attached at the entry point of a function. -Fentry programs are attached to a BPF trampoline which causes less overhead than kprobes. Fentry programs can also be attached to BPF programs such as XDP, TC or cgroup programs which makes debugging eBPF programs easier. Kprobes lack this capability. +Fentry programs are attached to a BPF trampoline which causes less overhead than kprobes. Fentry programs can also be attached to BPF programs such as XDP, TC or cGroup programs which makes debugging eBPF programs easier. Kprobes lack this capability. Fentry programs are typically located in an ELF section prefixed with `fentry/`. @@ -354,6 +354,30 @@ Not all helper functions are available in all program types. These are the helpe ??? abstract "Supported helper functions" + * [`bpf_skb_output`](../helper-function/bpf_skb_output.md) + * [`bpf_xdp_output`](../helper-function/bpf_xdp_output.md) + * [`bpf_skc_to_tcp6_sock`](../helper-function/bpf_skc_to_tcp6_sock.md) + * [`bpf_skc_to_tcp_sock`](../helper-function/bpf_skc_to_tcp_sock.md) + * [`bpf_skc_to_tcp_timewait_sock`](../helper-function/bpf_skc_to_tcp_timewait_sock.md) + * [`bpf_skc_to_tcp_request_sock`](../helper-function/bpf_skc_to_tcp_request_sock.md) + * [`bpf_skc_to_udp6_sock`](../helper-function/bpf_skc_to_udp6_sock.md) + * [`bpf_skc_to_unix_sock`](../helper-function/bpf_skc_to_unix_sock.md) + * [`bpf_sk_storage_get`](../helper-function/bpf_sk_storage_get.md) + * [`bpf_sk_storage_delete`](../helper-function/bpf_sk_storage_delete.md) + * [`bpf_sock_from_file`](../helper-function/bpf_sock_from_file.md) + * [`bpf_get_socket_cookie`](../helper-function/bpf_get_socket_cookie.md) + * [`bpf_xdp_get_buff_len`](../helper-function/bpf_xdp_get_buff_len.md) + * [`bpf_skc_to_mptcp_sock`](../helper-function/bpf_skc_to_mptcp_sock.md) + * [`bpf_seq_printf`](../helper-function/bpf_seq_printf.md) + * [`bpf_seq_write`](../helper-function/bpf_seq_write.md) + * [`bpf_seq_printf_btf`](../helper-function/bpf_seq_printf_btf.md) + * [`bpf_d_path`](../helper-function/bpf_d_path.md) + * [`bpf_get_func_arg`](../helper-function/bpf_get_func_arg.md) + * [`bpf_get_func_ret`](../helper-function/bpf_get_func_ret.md) + * [`bpf_get_func_arg_cnt`](../helper-function/bpf_get_func_arg_cnt.md) + * [`bpf_perf_event_output`](../helper-function/bpf_perf_event_output.md) + * [`bpf_get_stackid`](../helper-function/bpf_get_stackid.md) + * [`bpf_get_stack`](../helper-function/bpf_get_stack.md) * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) @@ -450,6 +474,18 @@ Not all helper functions are available in all program types. These are the helpe * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_dynptr_data`](../helper-function/bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](../helper-function/bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](../helper-function/bpf_dynptr_read.md) + * [`bpf_dynptr_write`](../helper-function/bpf_dynptr_write.md) + * [`bpf_kptr_xchg`](../helper-function/bpf_kptr_xchg.md) + * [`bpf_ktime_get_tai_ns`](../helper-function/bpf_ktime_get_tai_ns.md) + * [`bpf_ringbuf_discard_dynptr`](../helper-function/bpf_ringbuf_discard_dynptr.md) + * [`bpf_ringbuf_reserve_dynptr`](../helper-function/bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](../helper-function/bpf_ringbuf_submit_dynptr.md) + * [`bpf_user_ringbuf_drain`](../helper-function/bpf_user_ringbuf_drain.md) ## KFuncs diff --git a/docs/linux/program-type/BPF_PROG_TYPE_XDP.md b/docs/linux/program-type/BPF_PROG_TYPE_XDP.md index 758d6600..9fc2dad1 100644 --- a/docs/linux/program-type/BPF_PROG_TYPE_XDP.md +++ b/docs/linux/program-type/BPF_PROG_TYPE_XDP.md @@ -10,7 +10,7 @@ description: "This page documents the 'BPF_PROG_TYPE_XDP' eBPF program type, inc XDP (Express Data Path) programs can attach to network devices and are called for every incoming (ingress) packet received by that network device. XDP programs can take quite a large number of actions, most prominent of which are manipulation of the packet, dropping the packet, redirecting it and letting it pass to the network stack. -Notable use cases for XDP programs are for DDoS protection, Load Balancing, and high-throughput packet filtering. If loaded with native driver support, XDP programs will be called just after receiving the packet but before allocating memory for a socket buffer. This callsite makes XDP programs extremely performant, especially in use cases where traffic is forwarded or dropped a lot in comparison to other eBPF program types or techniques which run after the relatively expensive socket buffer allocation process has taken place, only to discard it. +Notable use cases for XDP programs are for DDoS protection, Load Balancing, and high-throughput packet filtering. If loaded with native driver support, XDP programs will be called just after receiving the packet but before allocating memory for a socket buffer. This call site makes XDP programs extremely performant, especially in use cases where traffic is forwarded or dropped a lot in comparison to other eBPF program types or techniques which run after the relatively expensive socket buffer allocation process has taken place, only to discard it. ## Usage @@ -75,7 +75,7 @@ This field contains the queue index within the NIC on which the packet was recei [:octicons-tag-24: v5.8](https://github.com/torvalds/linux/commit/64b59025c15b244c0954cf52b24fbabfcf5ed8f6) -This field is read-only and contains the network interface index the packet has been redirected out of. This field is only ever set after an initial XDP program redirected a packet to another device with a [`BPF_MAP_TYPE_DEVMAP`](../map-type/BPF_MAP_TYPE_DEVMAP.md) and the value of the devmap contained a file descriptor of a secondary XDP program. This secondary program will be invoked with a context that has `egress_ifindex`, `rx_queue_index`, and `ingress_ifindex` set so it can modify fields in the packet to match the redirection. +This field is read-only and contains the network interface index the packet has been redirected out of. This field is only ever set after an initial XDP program redirected a packet to another device with a [`BPF_MAP_TYPE_DEVMAP`](../map-type/BPF_MAP_TYPE_DEVMAP.md) and the value of the map contained a file descriptor of a secondary XDP program. This secondary program will be invoked with a context that has `egress_ifindex`, `rx_queue_index`, and `ingress_ifindex` set so it can modify fields in the packet to match the redirection. ### XDP fragments @@ -88,18 +88,18 @@ In order to offer support and not break existing programs, the concept of "XDP f To indicate that a program is "XDP Fragment aware" the program should be loaded with the [`BPF_F_XDP_HAS_FRAGS`](../syscall/BPF_PROG_LOAD.md#bpf_f_xdp_has_frags) flag. Program authors can indicate that they wish libraries like libbpf to load programs with this flag by placing their program in a `xdp.frags/` ELF section instead of a `xdp/` section. !!! note - If a program is both "XDP Fragment aware" and should be attached to a CPUMAP or DEVMAP the two ELF naming conventions are combined: `xdp.frags/cpumap/` or `xdp.frags/devmap`. + If a program is both "XDP Fragment aware" and should be attached to a `BPF_MAP_TYPE_CPUMAP` or `BPF_MAP_TYPE_DEVMAP` the two ELF naming conventions are combined: `xdp.frags/cpumap/` or `xdp.frags/devmap`. !!! warning XDP fragments are not supported by all network drivers, check the [driver support](#driver-support) table. ## Attachment -There are two ways of attaching XDP programs to network devices, the legacy way of doing is is via a [netlink](https://man7.org/linux/man-pages/man7/netlink.7.html) socket the details of which are complex. Examples of libraries that implement netlink XDP attaching are [vishvananda/netlink](https://github.com/vishvananda/netlink/blob/afa2eb2a66aac1f8f370287f236ba93d4c078dd6/link_linux.go#L934) and [libbpf](https://github.com/libbpf/libbpf/blob/ea284299025bf85b85b4923191de6463cd43ccd6/src/netlink.c#L321). +There are two ways of attaching XDP programs to network devices, the legacy way of doing is is via a [netlink](https://man7.org/linux/man-pages/man7/netlink.7.html) socket the details of which are complex. Examples of libraries that implement netlink XDP attaching are [`vishvananda/netlink`](https://github.com/vishvananda/netlink/blob/afa2eb2a66aac1f8f370287f236ba93d4c078dd6/link_linux.go#L934) and [libbpf](https://github.com/libbpf/libbpf/blob/ea284299025bf85b85b4923191de6463cd43ccd6/src/netlink.c#L321). The modern and recommended way is to use BPF links. Doing so is as easy as calling [`BPF_LINK_CREATE`](../syscall/BPF_LINK_CREATE.md) with the `target_ifindex` set to the network interface target, `attach_type` set to `BPF_LINK_TYPE_XDP` and the same `flags` as would be used for the netlink approach. -There are some subtile differences. The netlink method will give the network interface a reference to the program, which means that after attaching, the program will stay attached until it is detached by a program, even if the original loader exists. This is in contrast to kprobes for example which will stop as soon as the loader exists (assuming we are not pinning the program). With links however, this referencing doesn't occur, the creation of the link returns a file descriptor which is used to manage the lifecycle, if the link fd is closed or the loader exists without pinning it, the program will be detached from the network interface. +There are some subtle differences. The netlink method will give the network interface a reference to the program, which means that after attaching, the program will stay attached until it is detached by a program, even if the original loader exists. This is in contrast to kprobes for example which will stop as soon as the loader exists (assuming we are not pinning the program). With links however, this referencing doesn't occur, the creation of the link returns a file descriptor which is used to manage the lifecycle, if the link file descriptor is closed or the loader exists without pinning it, the program will be detached from the network interface. !!! warning Hardware offloaded GRO and LSO are incompatible with XDP and have to be disabled in order to use XDP. Not doing so will result in a `-EINVAL` error upon attaching. @@ -164,54 +164,54 @@ Program authors can indicate to loaders like libbpf that a given program should ## Driver support -| Driver name | Native XDP | XDP HW Offload | XDP Fragments | AF_XDP | -| ---------------------- | ------------------------------------------------------------------------------------------------------------ | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | -| Mellanox mlx4 | [:octicons-tag-24: v4.8](https://github.com/torvalds/linux/commit/47a38e155037f417c5740e24ccae6482aedf4b68) | :material-close: | :material-close: | :material-close: | -| Mellanox mlx5 | [:octicons-tag-24: v4.9](https://github.com/torvalds/linux/commit/86994156c736978d113e7927455d4eeeb2128b9f) | :material-close: | [:octicons-tag-24: v5.18](https://github.com/torvalds/linux/commit/ea5d49bdae8b4c9dcdac574eef96b1bd47000c2a)[^1], [:octicons-tag-24: v6.4](https://github.com/torvalds/linux/commit/f52ac7028bec22e925c8fece4f21641eb13b4d6f) | [:octicons-tag-24: v5.3](https://github.com/torvalds/linux/commit/db05815b36cbd486c86fd002dfa81c9af6245e25) | -| Qlogic qede | [:octicons-tag-24: v4.10](https://github.com/torvalds/linux/commit/496e051709588f832d7a6a420f44f8642b308a87) | :material-close: | :material-close: | :material-close: | -| Netronome nfp | [:octicons-tag-24: v4.10](https://github.com/torvalds/linux/commit/ecd63a0217d5f1e8a92f7516f5586d1177b95de2) | :material-check: | :material-close: | [:octicons-tag-24: v5.18](https://github.com/torvalds/linux/commit/6402528b7a0bf9869aca1f7eed43b809d57f0ae5) | -| Virtio | [:octicons-tag-24: v4.10](https://github.com/torvalds/linux/commit/f600b690501550b94e83e07295d9c8b9c4c39f4e) | :material-close: | [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/22174f79a44baf5e46faafff1d7b21363431b93a) | :material-close: | -| Broadcom bnxt | [:octicons-tag-24: v4.11](https://github.com/torvalds/linux/commit/c6d30e8391b85e00eb544e6cf047ee0160ee9938) | :material-close: | [:octicons-tag-24: v5.19](https://github.com/torvalds/linux/commit/9f4b28301ce6a594a692a0abc2002d0bb912f2b7) | :material-close: | -| Intel ixgbe | [:octicons-tag-24: v4.12](https://github.com/torvalds/linux/commit/9247080816297de4e31abb684939c0e53e3a8a67) | :material-close: | :material-close: | [:octicons-tag-24: v4.20](https://github.com/torvalds/linux/commit/d0bcacd0a130974f58a56318db7a5ca6a7ba1d5a) | -| Cavium thunder (nicvf) | [:octicons-tag-24: v4.12](https://github.com/torvalds/linux/commit/05c773f52b96ef3fbc7d9bfa21caadc6247ef7a8) | :material-close: | :material-close: | :material-close: | -| Intel i40e | [:octicons-tag-24: v4.13](https://github.com/torvalds/linux/commit/0c8493d90b6bb0f5c4fe9217db8f7203f24c0f28) | :material-close: | [:octicons-tag-24: v6.4](https://github.com/torvalds/linux/commit/e213ced19befc09d6d6913799053b67896596cd1) | [:octicons-tag-24: v4.20](https://github.com/torvalds/linux/commit/0a714186d3c0f7c563a03537f98716457c1f5ae0) | -| Tun | [:octicons-tag-24: v4.14](https://github.com/torvalds/linux/commit/761876c857cb2ef8489fbee01907151da902af91) | :material-close: | :material-close: | :material-close: | -| Netdevsim | [:octicons-tag-24: v4.16](https://github.com/torvalds/linux/commit/31d3ad832948c75139b0e5b653912f7898a1d5d5) | :material-check: | :material-close: | :material-close: | -| Intel ixgbevf | [:octicons-tag-24: v4.17](https://github.com/torvalds/linux/commit/c7aec59657b60f3a29fc7d3274ebefd698879301) | :material-close: | :material-close: | :material-close: | -| Veth | [:octicons-tag-24: v4.19](https://github.com/torvalds/linux/commit/948d4f214fde43743c57aae0c708bff44f6345f2) | :material-close: | [:octicons-tag-24: v5.5 ](https://github.com/torvalds/linux/commit/7cda76d858a4e71ac4a04066c093679a12e1312c) | :material-close: | -| Freescale dpaa2 | [:octicons-tag-24: v5.0](https://github.com/torvalds/linux/commit/7e273a8ebdd3b83f94eb8b49fc8ee61464f47cc2) | :material-close: | :material-close: | [:octicons-tag-24: v6.2](https://github.com/torvalds/linux/commit/48276c08cf5d2039aad5ef92ae7057ae0946d51e) | -| Socionext netsec | [:octicons-tag-24: v5.3](https://github.com/torvalds/linux/commit/ba2b232108d3c2951bab02930a00f23b0cffd5af) | :material-close: | :material-close: | :material-close: | -| TI cpsw | [:octicons-tag-24: v5.3](https://github.com/torvalds/linux/commit/9ed4050c0d75768066a07cf66eef4f8dc9d79b52) | :material-close: | :material-close: | :material-close: | -| Solarflare efx | [:octicons-tag-24: v5.5](https://github.com/torvalds/linux/commit/e45a4fed9d006480a5cc2312d5d4f7988a3a655e) | :material-close: | :material-close: | :material-close: | -| Intel ice | [:octicons-tag-24: v5.5](https://github.com/torvalds/linux/commit/efc2214b6047b6f5b4ca53151eba62521b9452d6) | :material-close: | [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/2fba7dc5157b6f85dbf1b8e26e63a724db1f3d79) | [:octicons-tag-24: v5.5](https://github.com/torvalds/linux/commit/2d4238f5569722197612656163d824098208519c) | -| Marvell mvneta | [:octicons-tag-24: v5.5](https://github.com/torvalds/linux/commit/0db51da7a8e99f0803ec3a8e25c1a66234a219cb) | :material-close: | [:octicons-tag-24: v5.18](https://github.com/torvalds/linux/commit/e121d27083e38bfe6ca9494fbed039e69889d5c7) | :material-close: | -| Amazon ena | [:octicons-tag-24: v5.6](https://github.com/torvalds/linux/commit/838c93dc5449e5d6378bae117b0a65a122cf7361) | :material-close: | :material-close: | :material-close: | -| Hyper-V netvsc | [:octicons-tag-24: v5.6](https://github.com/torvalds/linux/commit/351e1581395fcc7fb952bbd7dda01238f69968fd) | :material-close: | :material-close: | :material-close: | -| Marvell mvpp2 | [:octicons-tag-24: v5.9](https://github.com/torvalds/linux/commit/07dd0a7aae7f72af7cec18909581c2bb570edddc) | :material-close: | :material-close: | :material-close: | -| Xen xennet | [:octicons-tag-24: v5.9](https://github.com/torvalds/linux/commit/6c5aa6fc4defc2a0977a2c59e4710d50fa1e834c) | :material-close: | :material-close: | :material-close: | -| Intel igb | [:octicons-tag-24: v5.10](https://github.com/torvalds/linux/commit/9cbc948b5a20c9c054d9631099c0426c16da546b) | :material-close: | :material-close: | :material-close: | -| Freescale dpaa | [:octicons-tag-24: v5.11](https://github.com/torvalds/linux/commit/86c0c196cbe48f844721783d9162e46bc35c0c5a) | :material-close: | :material-close: | :material-close: | -| Intel igc | [:octicons-tag-24: v5.13](https://github.com/torvalds/linux/commit/26575105d6ed8e2a8e43bd008fc7d98b75b90d5c) | :material-close: | :material-close: | [:octicons-tag-24: v5.14](https://github.com/torvalds/linux/commit/fc9df2a0b520d7d439ecf464794d53e91be74b93) | -| STmicro stmmac | [:octicons-tag-24: v5.13](https://github.com/torvalds/linux/commit/5fabb01207a2d3439a6abe1d08640de9c942945f) | :material-close: | :material-close: | [:octicons-tag-24: v5.13](https://github.com/torvalds/linux/commit/bba2556efad66e7eaa56fece13f7708caa1187f8) | -| Freescale enetc | [:octicons-tag-24: v5.13](https://github.com/torvalds/linux/commit/d1b15102dd16adc17fd5e4db8a485e6459f98906) | :material-close: | :material-close: | :material-close: | -| Bond | [:octicons-tag-24: v5.15](https://github.com/torvalds/linux/commit/9e2ee5c7e7c35d195e2aa0692a7241d47a433d1e) | :material-close: | :material-close: | :material-close: | -| Marvell otx2 | [:octicons-tag-24: v5.16](https://github.com/torvalds/linux/commit/06059a1a9a4a58f139352c65b02989ea6077091a) | :material-close: | :material-close: | :material-close: | -| Microsoft mana | [:octicons-tag-24: v5.17](https://github.com/torvalds/linux/commit/ed5356b53f070dea5dff5a01b740561cb8222199) | :material-close: | :material-close: | :material-close: | -| Fungible fun | [:octicons-tag-24: v5.18](https://github.com/torvalds/linux/commit/ee6373ddf3a974c4239f56931f5944fd289146e7) | :material-close: | :material-close: | :material-close: | -| Atlantic aq | [:octicons-tag-24: v5.19](https://github.com/torvalds/linux/commit/0d14657f40830243266f972766f1e4d00436e648) | :material-close: | [:octicons-tag-24: v5.19](https://github.com/torvalds/linux/commit/0d14657f40830243266f972766f1e4d00436e648) | :material-close: | -| Mediatek mtk | [:octicons-tag-24: v6.0](https://github.com/torvalds/linux/commit/7c26c20da5d420cde55618263be4aa2f6de53056) | :material-close: | :material-close: | :material-close: | -| Freescale fec_enet | [:octicons-tag-24: v6.2](https://github.com/torvalds/linux/commit/6d6b39f180b83dfe1e938382b68dd1e6cb51363c) | :material-close: | :material-close: | :material-close: | -| Microchip lan966x | [:octicons-tag-24: v6.2](https://github.com/torvalds/linux/commit/6a2159be7604f5cdd7f574f4e0922f61e63c3f16) | :material-close: | :material-close: | :material-close: | -| Engleder tsnep | [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/f0f6460f91305fc907b6a4ba9846e1586be0a0a2) | :material-close: | :material-close: | [:octicons-tag-24: v6.4](https://github.com/torvalds/linux/commit/3fc2333933fdf1148b694d15db824e10449ecbc1) | -| Google gve | [:octicons-tag-24: v6.4](https://github.com/torvalds/linux/commit/75eaae158b1b7d8d5bde2bafc0bcf778423071d3) | :material-close: | :material-close: | [:octicons-tag-24: v6.4](https://github.com/torvalds/linux/commit/fd8e40321a12391e6f554cc637d0c4b6109682a9) | -| VMware vmxnet3 | [:octicons-tag-24: v6.6](https://github.com/torvalds/linux/commit/54f00cce11786742bd11e5e68c3bf85e6dc048c9) | :material-close: | :material-close: | :material-close: | -| Pensando Ionic | [:octicons-tag-24: v6.9](https://github.com/torvalds/linux/commit/180e35cdf035d1c2e9ebdc06a9944a9eb81cc3d8) | :material-close: | [:octicons-tag-24: v6.9](https://github.com/torvalds/linux/commit/180e35cdf035d1c2e9ebdc06a9944a9eb81cc3d8) | :material-close: | -| TI CPSW | [:octicons-tag-24: v6.10](https://github.com/torvalds/linux/commit/8acacc40f7337527ff84cd901ed2ef0a2b95b2b6) | :material-close: | :material-close: | :material-close: | +| Driver name | Native XDP | XDP hardware Offload | XDP Fragments | AF_XDP | +| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------ | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | +| Mellanox mlx4 | [:octicons-tag-24: v4.8](https://github.com/torvalds/linux/commit/47a38e155037f417c5740e24ccae6482aedf4b68) | :material-close: | :material-close: | :material-close: | +| Mellanox mlx5 | [:octicons-tag-24: v4.9](https://github.com/torvalds/linux/commit/86994156c736978d113e7927455d4eeeb2128b9f) | :material-close: | [:octicons-tag-24: v5.18](https://github.com/torvalds/linux/commit/ea5d49bdae8b4c9dcdac574eef96b1bd47000c2a)[^1], [:octicons-tag-24: v6.4](https://github.com/torvalds/linux/commit/f52ac7028bec22e925c8fece4f21641eb13b4d6f) | [:octicons-tag-24: v5.3](https://github.com/torvalds/linux/commit/db05815b36cbd486c86fd002dfa81c9af6245e25) | +| Qlogic qede | [:octicons-tag-24: v4.10](https://github.com/torvalds/linux/commit/496e051709588f832d7a6a420f44f8642b308a87) | :material-close: | :material-close: | :material-close: | +| Netronome nfp | [:octicons-tag-24: v4.10](https://github.com/torvalds/linux/commit/ecd63a0217d5f1e8a92f7516f5586d1177b95de2) | :material-check: | :material-close: | [:octicons-tag-24: v5.18](https://github.com/torvalds/linux/commit/6402528b7a0bf9869aca1f7eed43b809d57f0ae5) | +| Virtio | [:octicons-tag-24: v4.10](https://github.com/torvalds/linux/commit/f600b690501550b94e83e07295d9c8b9c4c39f4e) | :material-close: | [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/22174f79a44baf5e46faafff1d7b21363431b93a) | :material-close: | +| Broadcom bnxt | [:octicons-tag-24: v4.11](https://github.com/torvalds/linux/commit/c6d30e8391b85e00eb544e6cf047ee0160ee9938) | :material-close: | [:octicons-tag-24: v5.19](https://github.com/torvalds/linux/commit/9f4b28301ce6a594a692a0abc2002d0bb912f2b7) | :material-close: | +| Intel ixgbe | [:octicons-tag-24: v4.12](https://github.com/torvalds/linux/commit/9247080816297de4e31abb684939c0e53e3a8a67) | :material-close: | :material-close: | [:octicons-tag-24: v4.20](https://github.com/torvalds/linux/commit/d0bcacd0a130974f58a56318db7a5ca6a7ba1d5a) | +| Cavium thunder (nicvf) | [:octicons-tag-24: v4.12](https://github.com/torvalds/linux/commit/05c773f52b96ef3fbc7d9bfa21caadc6247ef7a8) | :material-close: | :material-close: | :material-close: | +| Intel i40e | [:octicons-tag-24: v4.13](https://github.com/torvalds/linux/commit/0c8493d90b6bb0f5c4fe9217db8f7203f24c0f28) | :material-close: | [:octicons-tag-24: v6.4](https://github.com/torvalds/linux/commit/e213ced19befc09d6d6913799053b67896596cd1) | [:octicons-tag-24: v4.20](https://github.com/torvalds/linux/commit/0a714186d3c0f7c563a03537f98716457c1f5ae0) | +| Tun | [:octicons-tag-24: v4.14](https://github.com/torvalds/linux/commit/761876c857cb2ef8489fbee01907151da902af91) | :material-close: | :material-close: | :material-close: | +| Netdevsim | [:octicons-tag-24: v4.16](https://github.com/torvalds/linux/commit/31d3ad832948c75139b0e5b653912f7898a1d5d5) | :material-check: | :material-close: | :material-close: | +| Intel ixgbevf | [:octicons-tag-24: v4.17](https://github.com/torvalds/linux/commit/c7aec59657b60f3a29fc7d3274ebefd698879301) | :material-close: | :material-close: | :material-close: | +| Veth | [:octicons-tag-24: v4.19](https://github.com/torvalds/linux/commit/948d4f214fde43743c57aae0c708bff44f6345f2) | :material-close: | [:octicons-tag-24: v5.5 ](https://github.com/torvalds/linux/commit/7cda76d858a4e71ac4a04066c093679a12e1312c) | :material-close: | +| Freescale dpaa2 | [:octicons-tag-24: v5.0](https://github.com/torvalds/linux/commit/7e273a8ebdd3b83f94eb8b49fc8ee61464f47cc2) | :material-close: | :material-close: | [:octicons-tag-24: v6.2](https://github.com/torvalds/linux/commit/48276c08cf5d2039aad5ef92ae7057ae0946d51e) | +| Socionext netsec | [:octicons-tag-24: v5.3](https://github.com/torvalds/linux/commit/ba2b232108d3c2951bab02930a00f23b0cffd5af) | :material-close: | :material-close: | :material-close: | +| TI cpsw | [:octicons-tag-24: v5.3](https://github.com/torvalds/linux/commit/9ed4050c0d75768066a07cf66eef4f8dc9d79b52) | :material-close: | :material-close: | :material-close: | +| Solarflare efx | [:octicons-tag-24: v5.5](https://github.com/torvalds/linux/commit/e45a4fed9d006480a5cc2312d5d4f7988a3a655e) | :material-close: | :material-close: | :material-close: | +| Intel ice | [:octicons-tag-24: v5.5](https://github.com/torvalds/linux/commit/efc2214b6047b6f5b4ca53151eba62521b9452d6) | :material-close: | [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/2fba7dc5157b6f85dbf1b8e26e63a724db1f3d79) | [:octicons-tag-24: v5.5](https://github.com/torvalds/linux/commit/2d4238f5569722197612656163d824098208519c) | +| Marvell mvneta | [:octicons-tag-24: v5.5](https://github.com/torvalds/linux/commit/0db51da7a8e99f0803ec3a8e25c1a66234a219cb) | :material-close: | [:octicons-tag-24: v5.18](https://github.com/torvalds/linux/commit/e121d27083e38bfe6ca9494fbed039e69889d5c7) | :material-close: | +| Amazon ena | [:octicons-tag-24: v5.6](https://github.com/torvalds/linux/commit/838c93dc5449e5d6378bae117b0a65a122cf7361) | :material-close: | :material-close: | :material-close: | +| Hyper-V netvsc | [:octicons-tag-24: v5.6](https://github.com/torvalds/linux/commit/351e1581395fcc7fb952bbd7dda01238f69968fd) | :material-close: | :material-close: | :material-close: | +| Marvell mvpp2 | [:octicons-tag-24: v5.9](https://github.com/torvalds/linux/commit/07dd0a7aae7f72af7cec18909581c2bb570edddc) | :material-close: | :material-close: | :material-close: | +| Xen xennet | [:octicons-tag-24: v5.9](https://github.com/torvalds/linux/commit/6c5aa6fc4defc2a0977a2c59e4710d50fa1e834c) | :material-close: | :material-close: | :material-close: | +| Intel igb | [:octicons-tag-24: v5.10](https://github.com/torvalds/linux/commit/9cbc948b5a20c9c054d9631099c0426c16da546b) | :material-close: | :material-close: | :material-close: | +| Freescale dpaa | [:octicons-tag-24: v5.11](https://github.com/torvalds/linux/commit/86c0c196cbe48f844721783d9162e46bc35c0c5a) | :material-close: | :material-close: | :material-close: | +| Intel igc | [:octicons-tag-24: v5.13](https://github.com/torvalds/linux/commit/26575105d6ed8e2a8e43bd008fc7d98b75b90d5c) | :material-close: | :material-close: | [:octicons-tag-24: v5.14](https://github.com/torvalds/linux/commit/fc9df2a0b520d7d439ecf464794d53e91be74b93) | +| STmicro stmmac | [:octicons-tag-24: v5.13](https://github.com/torvalds/linux/commit/5fabb01207a2d3439a6abe1d08640de9c942945f) | :material-close: | :material-close: | [:octicons-tag-24: v5.13](https://github.com/torvalds/linux/commit/bba2556efad66e7eaa56fece13f7708caa1187f8) | +| Freescale enetc | [:octicons-tag-24: v5.13](https://github.com/torvalds/linux/commit/d1b15102dd16adc17fd5e4db8a485e6459f98906) | :material-close: | :material-close: | :material-close: | +| Bond | [:octicons-tag-24: v5.15](https://github.com/torvalds/linux/commit/9e2ee5c7e7c35d195e2aa0692a7241d47a433d1e) | :material-close: | :material-close: | :material-close: | +| Marvell otx2 | [:octicons-tag-24: v5.16](https://github.com/torvalds/linux/commit/06059a1a9a4a58f139352c65b02989ea6077091a) | :material-close: | :material-close: | :material-close: | +| Microsoft mana | [:octicons-tag-24: v5.17](https://github.com/torvalds/linux/commit/ed5356b53f070dea5dff5a01b740561cb8222199) | :material-close: | :material-close: | :material-close: | +| Fungible fun | [:octicons-tag-24: v5.18](https://github.com/torvalds/linux/commit/ee6373ddf3a974c4239f56931f5944fd289146e7) | :material-close: | :material-close: | :material-close: | +| Atlantic aq | [:octicons-tag-24: v5.19](https://github.com/torvalds/linux/commit/0d14657f40830243266f972766f1e4d00436e648) | :material-close: | [:octicons-tag-24: v5.19](https://github.com/torvalds/linux/commit/0d14657f40830243266f972766f1e4d00436e648) | :material-close: | +| Mediatek mtk | [:octicons-tag-24: v6.0](https://github.com/torvalds/linux/commit/7c26c20da5d420cde55618263be4aa2f6de53056) | :material-close: | :material-close: | :material-close: | +| Freescale fec_enet | [:octicons-tag-24: v6.2](https://github.com/torvalds/linux/commit/6d6b39f180b83dfe1e938382b68dd1e6cb51363c) | :material-close: | :material-close: | :material-close: | +| Microchip lan966x | [:octicons-tag-24: v6.2](https://github.com/torvalds/linux/commit/6a2159be7604f5cdd7f574f4e0922f61e63c3f16) | :material-close: | :material-close: | :material-close: | +| Engleder tsnep | [:octicons-tag-24: v6.3](https://github.com/torvalds/linux/commit/f0f6460f91305fc907b6a4ba9846e1586be0a0a2) | :material-close: | :material-close: | [:octicons-tag-24: v6.4](https://github.com/torvalds/linux/commit/3fc2333933fdf1148b694d15db824e10449ecbc1) | +| Google gve | [:octicons-tag-24: v6.4](https://github.com/torvalds/linux/commit/75eaae158b1b7d8d5bde2bafc0bcf778423071d3) | :material-close: | :material-close: | [:octicons-tag-24: v6.4](https://github.com/torvalds/linux/commit/fd8e40321a12391e6f554cc637d0c4b6109682a9) | +| VMware vmxnet3 | [:octicons-tag-24: v6.6](https://github.com/torvalds/linux/commit/54f00cce11786742bd11e5e68c3bf85e6dc048c9) | :material-close: | :material-close: | :material-close: | +| Pensando Ionic | [:octicons-tag-24: v6.9](https://github.com/torvalds/linux/commit/180e35cdf035d1c2e9ebdc06a9944a9eb81cc3d8) | :material-close: | [:octicons-tag-24: v6.9](https://github.com/torvalds/linux/commit/180e35cdf035d1c2e9ebdc06a9944a9eb81cc3d8) | :material-close: | +| TI CPSW | [:octicons-tag-24: v6.10](https://github.com/torvalds/linux/commit/8acacc40f7337527ff84cd901ed2ef0a2b95b2b6) | :material-close: | :material-close: | :material-close: | !!! note This table has last been updated for Linux :octicons-tag-24: v6.10 and is subject to change in the future. -[^1]: Only the legacy RQ mode supports XDP frags, which is not the default and will require setting via ethtool. +[^1]: Only the legacy RQ mode supports XDP frags, which is not the default and will require setting via `ethtool`. ### Max MTU @@ -325,7 +325,7 @@ The following table has been calculated from mathematical formulas based on the [^2]: Driver does not have logic to limit the max MTU and XDP usage, but implicit limits such as in firmware or hardware may still apply. [^3]: MTU limit is loaded from firmware. -[^4]: MTU limit is determed by slave devices. +[^4]: MTU limit is determined by slave devices. ## Helper functions @@ -353,6 +353,10 @@ Not all helper functions are available in all program types. These are the helpe * [`bpf_skc_lookup_tcp`](../helper-function/bpf_skc_lookup_tcp.md) * [`bpf_tcp_check_syncookie`](../helper-function/bpf_tcp_check_syncookie.md) * [`bpf_tcp_gen_syncookie`](../helper-function/bpf_tcp_gen_syncookie.md) + * [`bpf_tcp_raw_check_syncookie_ipv4`](../helper-function/bpf_tcp_raw_check_syncookie_ipv4.md) + * [`bpf_tcp_raw_gen_syncookie_ipv6`](../helper-function/bpf_tcp_raw_gen_syncookie_ipv6.md) + * [`bpf_tcp_raw_check_syncookie_ipv4`](../helper-function/bpf_tcp_raw_check_syncookie_ipv4.md) + * [`bpf_tcp_raw_check_syncookie_ipv6`](../helper-function/bpf_tcp_raw_check_syncookie_ipv6.md) * [`bpf_map_lookup_elem`](../helper-function/bpf_map_lookup_elem.md) * [`bpf_map_update_elem`](../helper-function/bpf_map_update_elem.md) * [`bpf_map_delete_elem`](../helper-function/bpf_map_delete_elem.md) @@ -394,6 +398,18 @@ Not all helper functions are available in all program types. These are the helpe * [`bpf_snprintf`](../helper-function/bpf_snprintf.md) * [`bpf_task_pt_regs`](../helper-function/bpf_task_pt_regs.md) * [`bpf_trace_vprintk`](../helper-function/bpf_trace_vprintk.md) + * [`bpf_cgrp_storage_get`](../helper-function/bpf_cgrp_storage_get.md) + * [`bpf_cgrp_storage_delete`](../helper-function/bpf_cgrp_storage_delete.md) + * [`bpf_dynptr_data`](../helper-function/bpf_dynptr_data.md) + * [`bpf_dynptr_from_mem`](../helper-function/bpf_dynptr_from_mem.md) + * [`bpf_dynptr_read`](../helper-function/bpf_dynptr_read.md) + * [`bpf_dynptr_write`](../helper-function/bpf_dynptr_write.md) + * [`bpf_kptr_xchg`](../helper-function/bpf_kptr_xchg.md) + * [`bpf_ktime_get_tai_ns`](../helper-function/bpf_ktime_get_tai_ns.md) + * [`bpf_ringbuf_discard_dynptr`](../helper-function/bpf_ringbuf_discard_dynptr.md) + * [`bpf_ringbuf_reserve_dynptr`](../helper-function/bpf_ringbuf_reserve_dynptr.md) + * [`bpf_ringbuf_submit_dynptr`](../helper-function/bpf_ringbuf_submit_dynptr.md) + * [`bpf_user_ringbuf_drain`](../helper-function/bpf_user_ringbuf_drain.md) ## KFuncs diff --git a/docs/linux/program-type/SUMMARY.md b/docs/linux/program-type/SUMMARY.md index 2e3505c6..881e2f3e 100644 --- a/docs/linux/program-type/SUMMARY.md +++ b/docs/linux/program-type/SUMMARY.md @@ -1,36 +1,36 @@ -* [index.md](index.md) +* [`index.md`](index.md) * Network program types - * [BPF_PROG_TYPE_SOCKET_FILTER](BPF_PROG_TYPE_SOCKET_FILTER.md) - * [BPF_PROG_TYPE_SCHED_CLS](BPF_PROG_TYPE_SCHED_CLS.md) - * [BPF_PROG_TYPE_SCHED_ACT](BPF_PROG_TYPE_SCHED_ACT.md) - * [BPF_PROG_TYPE_XDP](BPF_PROG_TYPE_XDP.md) - * [BPF_PROG_TYPE_SOCK_OPS](BPF_PROG_TYPE_SOCK_OPS.md) - * [BPF_PROG_TYPE_SK_SKB](BPF_PROG_TYPE_SK_SKB.md) - * [BPF_PROG_TYPE_SK_MSG](BPF_PROG_TYPE_SK_MSG.md) - * [BPF_PROG_TYPE_SK_LOOKUP](BPF_PROG_TYPE_SK_LOOKUP.md) - * [BPF_PROG_TYPE_SK_REUSEPORT](BPF_PROG_TYPE_SK_REUSEPORT.md) - * [BPF_PROG_TYPE_FLOW_DISSECTOR](BPF_PROG_TYPE_FLOW_DISSECTOR.md) + * [`BPF_PROG_TYPE_SOCKET_FILTER`](BPF_PROG_TYPE_SOCKET_FILTER.md) + * [`BPF_PROG_TYPE_SCHED_CLS`](BPF_PROG_TYPE_SCHED_CLS.md) + * [`BPF_PROG_TYPE_SCHED_ACT`](BPF_PROG_TYPE_SCHED_ACT.md) + * [`BPF_PROG_TYPE_XDP`](BPF_PROG_TYPE_XDP.md) + * [`BPF_PROG_TYPE_SOCK_OPS`](BPF_PROG_TYPE_SOCK_OPS.md) + * [`BPF_PROG_TYPE_SK_SKB`](BPF_PROG_TYPE_SK_SKB.md) + * [`BPF_PROG_TYPE_SK_MSG`](BPF_PROG_TYPE_SK_MSG.md) + * [`BPF_PROG_TYPE_SK_LOOKUP`](BPF_PROG_TYPE_SK_LOOKUP.md) + * [`BPF_PROG_TYPE_SK_REUSEPORT`](BPF_PROG_TYPE_SK_REUSEPORT.md) + * [`BPF_PROG_TYPE_FLOW_DISSECTOR`](BPF_PROG_TYPE_FLOW_DISSECTOR.md) * Light weight tunnel program types - * [BPF_PROG_TYPE_LWT_IN](BPF_PROG_TYPE_LWT_IN.md) - * [BPF_PROG_TYPE_LWT_OUT](BPF_PROG_TYPE_LWT_OUT.md) - * [BPF_PROG_TYPE_LWT_XMIT](BPF_PROG_TYPE_LWT_XMIT.md) - * [BPF_PROG_TYPE_LWT_SEG6LOCAL](BPF_PROG_TYPE_LWT_SEG6LOCAL.md) + * [`BPF_PROG_TYPE_LWT_IN`](BPF_PROG_TYPE_LWT_IN.md) + * [`BPF_PROG_TYPE_LWT_OUT`](BPF_PROG_TYPE_LWT_OUT.md) + * [`BPF_PROG_TYPE_LWT_XMIT`](BPF_PROG_TYPE_LWT_XMIT.md) + * [`BPF_PROG_TYPE_LWT_SEG6LOCAL`](BPF_PROG_TYPE_LWT_SEG6LOCAL.md) * cGroup program types - * [BPF_PROG_TYPE_CGROUP_SKB](BPF_PROG_TYPE_CGROUP_SKB.md) - * [BPF_PROG_TYPE_CGROUP_SOCK](BPF_PROG_TYPE_CGROUP_SOCK.md) - * [BPF_PROG_TYPE_CGROUP_DEVICE](BPF_PROG_TYPE_CGROUP_DEVICE.md) - * [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) - * [BPF_PROG_TYPE_CGROUP_SOCKOPT](BPF_PROG_TYPE_CGROUP_SOCKOPT.md) - * [BPF_PROG_TYPE_CGROUP_SYSCTL](BPF_PROG_TYPE_CGROUP_SYSCTL.md) + * [`BPF_PROG_TYPE_CGROUP_SKB`](BPF_PROG_TYPE_CGROUP_SKB.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK`](BPF_PROG_TYPE_CGROUP_SOCK.md) + * [`BPF_PROG_TYPE_CGROUP_DEVICE`](BPF_PROG_TYPE_CGROUP_DEVICE.md) + * [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) + * [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](BPF_PROG_TYPE_CGROUP_SOCKOPT.md) + * [`BPF_PROG_TYPE_CGROUP_SYSCTL`](BPF_PROG_TYPE_CGROUP_SYSCTL.md) * Tracing program types - * [BPF_PROG_TYPE_KPROBE](BPF_PROG_TYPE_KPROBE.md) - * [BPF_PROG_TYPE_TRACEPOINT](BPF_PROG_TYPE_TRACEPOINT.md) - * [BPF_PROG_TYPE_PERF_EVENT](BPF_PROG_TYPE_PERF_EVENT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT](BPF_PROG_TYPE_RAW_TRACEPOINT.md) - * [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE](BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) - * [BPF_PROG_TYPE_TRACING](BPF_PROG_TYPE_TRACING.md) -* [BPF_PROG_TYPE_LIRC_MODE2](BPF_PROG_TYPE_LIRC_MODE2.md) -* [BPF_PROG_TYPE_LSM](BPF_PROG_TYPE_LSM.md) -* [BPF_PROG_TYPE_EXT](BPF_PROG_TYPE_EXT.md) -* [BPF_PROG_TYPE_STRUCT_OPS](BPF_PROG_TYPE_STRUCT_OPS.md) -* [BPF_PROG_TYPE_SYSCALL](BPF_PROG_TYPE_SYSCALL.md) + * [`BPF_PROG_TYPE_KPROBE`](BPF_PROG_TYPE_KPROBE.md) + * [`BPF_PROG_TYPE_TRACEPOINT`](BPF_PROG_TYPE_TRACEPOINT.md) + * [`BPF_PROG_TYPE_PERF_EVENT`](BPF_PROG_TYPE_PERF_EVENT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT`](BPF_PROG_TYPE_RAW_TRACEPOINT.md) + * [`BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`](BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE.md) + * [`BPF_PROG_TYPE_TRACING`](BPF_PROG_TYPE_TRACING.md) +* [`BPF_PROG_TYPE_LIRC_MODE2`](BPF_PROG_TYPE_LIRC_MODE2.md) +* [`BPF_PROG_TYPE_LSM`](BPF_PROG_TYPE_LSM.md) +* [`BPF_PROG_TYPE_EXT`](BPF_PROG_TYPE_EXT.md) +* [`BPF_PROG_TYPE_STRUCT_OPS`](BPF_PROG_TYPE_STRUCT_OPS.md) +* [`BPF_PROG_TYPE_SYSCALL`](BPF_PROG_TYPE_SYSCALL.md) diff --git a/docs/linux/program-type/index.md b/docs/linux/program-type/index.md index 8ecaa640..2291d696 100644 --- a/docs/linux/program-type/index.md +++ b/docs/linux/program-type/index.md @@ -11,61 +11,61 @@ eBPF programs can be used for large and ever growing variety of different purpos These program types are triggered by network events -* [BPF_PROG_TYPE_SOCKET_FILTER](BPF_PROG_TYPE_SOCKET_FILTER.md) -* [BPF_PROG_TYPE_SCHED_CLS](BPF_PROG_TYPE_SCHED_CLS.md) -* BPF_PROG_TYPE_SCHED_ACT -* [BPF_PROG_TYPE_XDP](BPF_PROG_TYPE_XDP.md) -* [BPF_PROG_TYPE_SOCK_OPS](BPF_PROG_TYPE_SOCK_OPS.md) -* [BPF_PROG_TYPE_SK_SKB](BPF_PROG_TYPE_SK_SKB.md) -* [BPF_PROG_TYPE_SK_MSG](BPF_PROG_TYPE_SK_MSG.md) -* [BPF_PROG_TYPE_SK_LOOKUP](BPF_PROG_TYPE_SK_LOOKUP.md) -* [BPF_PROG_TYPE_SK_REUSEPORT](BPF_PROG_TYPE_SK_REUSEPORT.md) -* [BPF_PROG_TYPE_FLOW_DISSECTOR](BPF_PROG_TYPE_FLOW_DISSECTOR.md) +* [`BPF_PROG_TYPE_SOCKET_FILTER`](BPF_PROG_TYPE_SOCKET_FILTER.md) +* [`BPF_PROG_TYPE_SCHED_CLS`](BPF_PROG_TYPE_SCHED_CLS.md) +* `BPF_PROG_TYPE_SCHED_ACT` +* [`BPF_PROG_TYPE_XDP`](BPF_PROG_TYPE_XDP.md) +* [`BPF_PROG_TYPE_SOCK_OPS`](BPF_PROG_TYPE_SOCK_OPS.md) +* [`BPF_PROG_TYPE_SK_SKB`](BPF_PROG_TYPE_SK_SKB.md) +* [`BPF_PROG_TYPE_SK_MSG`](BPF_PROG_TYPE_SK_MSG.md) +* [`BPF_PROG_TYPE_SK_LOOKUP`](BPF_PROG_TYPE_SK_LOOKUP.md) +* [`BPF_PROG_TYPE_SK_REUSEPORT`](BPF_PROG_TYPE_SK_REUSEPORT.md) +* [`BPF_PROG_TYPE_FLOW_DISSECTOR`](BPF_PROG_TYPE_FLOW_DISSECTOR.md) ### Light weight tunnel program types These program types are used to implement custom light weight tunneling protocols -* [BPF_PROG_TYPE_LWT_IN](BPF_PROG_TYPE_LWT_IN.md) -* [BPF_PROG_TYPE_LWT_OUT](BPF_PROG_TYPE_LWT_OUT.md) -* [BPF_PROG_TYPE_LWT_XMIT](BPF_PROG_TYPE_LWT_XMIT.md) -* BPF_PROG_TYPE_LWT_SEG6LOCAL +* [`BPF_PROG_TYPE_LWT_IN`](BPF_PROG_TYPE_LWT_IN.md) +* [`BPF_PROG_TYPE_LWT_OUT`](BPF_PROG_TYPE_LWT_OUT.md) +* [`BPF_PROG_TYPE_LWT_XMIT`](BPF_PROG_TYPE_LWT_XMIT.md) +* `BPF_PROG_TYPE_LWT_SEG6LOCAL` ## cGroup program types These program types are triggered by events of cGroups to which the program is attached -* [BPF_PROG_TYPE_CGROUP_SKB](BPF_PROG_TYPE_CGROUP_SKB.md) -* [BPF_PROG_TYPE_CGROUP_SOCK](BPF_PROG_TYPE_CGROUP_SOCK.md) -* [BPF_PROG_TYPE_CGROUP_DEVICE](BPF_PROG_TYPE_CGROUP_DEVICE.md) -* [BPF_PROG_TYPE_CGROUP_SOCK_ADDR](BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) -* [BPF_PROG_TYPE_CGROUP_SOCKOPT](BPF_PROG_TYPE_CGROUP_SOCKOPT.md) -* [BPF_PROG_TYPE_CGROUP_SYSCTL](BPF_PROG_TYPE_CGROUP_SYSCTL.md) +* [`BPF_PROG_TYPE_CGROUP_SKB`](BPF_PROG_TYPE_CGROUP_SKB.md) +* [`BPF_PROG_TYPE_CGROUP_SOCK`](BPF_PROG_TYPE_CGROUP_SOCK.md) +* [`BPF_PROG_TYPE_CGROUP_DEVICE`](BPF_PROG_TYPE_CGROUP_DEVICE.md) +* [`BPF_PROG_TYPE_CGROUP_SOCK_ADDR`](BPF_PROG_TYPE_CGROUP_SOCK_ADDR.md) +* [`BPF_PROG_TYPE_CGROUP_SOCKOPT`](BPF_PROG_TYPE_CGROUP_SOCKOPT.md) +* [`BPF_PROG_TYPE_CGROUP_SYSCTL`](BPF_PROG_TYPE_CGROUP_SYSCTL.md) ## Tracing program types These program types are triggered by tracing events from the kernel or userspace -* [BPF_PROG_TYPE_KPROBE](BPF_PROG_TYPE_KPROBE.md) -* [BPF_PROG_TYPE_TRACEPOINT](BPF_PROG_TYPE_TRACEPOINT.md) -* [BPF_PROG_TYPE_PERF_EVENT](BPF_PROG_TYPE_PERF_EVENT.md) -* [BPF_PROG_TYPE_RAW_TRACEPOINT](BPF_PROG_TYPE_RAW_TRACEPOINT.md) -* BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE -* [BPF_PROG_TYPE_TRACING](BPF_PROG_TYPE_TRACING.md) +* [`BPF_PROG_TYPE_KPROBE`](BPF_PROG_TYPE_KPROBE.md) +* [`BPF_PROG_TYPE_TRACEPOINT`](BPF_PROG_TYPE_TRACEPOINT.md) +* [`BPF_PROG_TYPE_PERF_EVENT`](BPF_PROG_TYPE_PERF_EVENT.md) +* [`BPF_PROG_TYPE_RAW_TRACEPOINT`](BPF_PROG_TYPE_RAW_TRACEPOINT.md) +* `BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE` +* [`BPF_PROG_TYPE_TRACING`](BPF_PROG_TYPE_TRACING.md) ## Misc These program types have unique purposes and do not fit neatly in any of the larger categories -* BPF_PROG_TYPE_LIRC_MODE2 -* [BPF_PROG_TYPE_LSM](BPF_PROG_TYPE_LSM.md) -* [BPF_PROG_TYPE_EXT](BPF_PROG_TYPE_EXT.md) -* [BPF_PROG_TYPE_STRUCT_OPS](BPF_PROG_TYPE_STRUCT_OPS.md) -* [BPF_PROG_TYPE_SYSCALL](BPF_PROG_TYPE_SYSCALL.md) +* `BPF_PROG_TYPE_LIRC_MODE2` +* [`BPF_PROG_TYPE_LSM`](BPF_PROG_TYPE_LSM.md) +* [`BPF_PROG_TYPE_EXT`](BPF_PROG_TYPE_EXT.md) +* [`BPF_PROG_TYPE_STRUCT_OPS`](BPF_PROG_TYPE_STRUCT_OPS.md) +* [`BPF_PROG_TYPE_SYSCALL`](BPF_PROG_TYPE_SYSCALL.md) ## ELF sections -The concept of a program type only exists at the kernel/syscall level. There is no standardized way of marking which program type a particular program within an [ELF](../../concepts/elf.md) is. The industry standard that most [loaders](../../concepts/loader.md) follow the example set out by LibBPF which is to patterns in the [ELF](../../concepts/elf.md) section names to convey the program type. +The concept of a program type only exists at the kernel/syscall level. There is no standardized way of marking which program type a particular program within an [ELF](../../concepts/elf.md) is. The industry standard that most [loaders](../../concepts/loader.md) follow the example set out by Libbpf which is to patterns in the [ELF](../../concepts/elf.md) section names to convey the program type. ## Index of section names diff --git a/docs/linux/syscall/BPF_ENABLE_STATS.md b/docs/linux/syscall/BPF_ENABLE_STATS.md index a15bc87e..a2b415bf 100644 --- a/docs/linux/syscall/BPF_ENABLE_STATS.md +++ b/docs/linux/syscall/BPF_ENABLE_STATS.md @@ -8,7 +8,7 @@ description: "This page documents the 'BPF_ENABLE_STATS' eBPF syscall command, i [:octicons-tag-24: v5.8](https://github.com/torvalds/linux/commit/d46edd671a147032e22cfeb271a5734703093649) -This syscall command is used to temporarily enable statistics tracking, globally for all programs. This allows for the benchmarking or monitoring of programs in-situ. +This syscall command is used to temporarily enable statistics tracking, globally for all programs. This allows for the benchmarking or monitoring of programs in situ. ## Return value diff --git a/docs/linux/syscall/BPF_MAP_CREATE.md b/docs/linux/syscall/BPF_MAP_CREATE.md index 7ddfaffe..e9673058 100644 --- a/docs/linux/syscall/BPF_MAP_CREATE.md +++ b/docs/linux/syscall/BPF_MAP_CREATE.md @@ -139,7 +139,7 @@ Some map types require the loader to set this flag when creating maps to explici [:octicons-tag-24: v4.10](https://github.com/torvalds/linux/commit/29ba732acbeece1e34c68483d1ec1f3720fa1bb3) -By default, LRU maps have a single LRU list (even per-CPU LRU maps). When set, the an LRU map will use a percpu LRU list +By default, LRU maps have a single LRU list (even per-CPU LRU maps). When set, the an LRU map will use a per-CPU LRU list which can scale and perform better. !!! note @@ -236,7 +236,7 @@ This flag specifically applies to `BPF_MAP_TYPE_SK_STORAGE` maps. Sockets can be Setting this flag on a `BPF_MAP_TYPE_ARRAY` will allow userspace programs to [mmap](https://man7.org/linux/man-pages/man2/mmap.2.html) the array values into the userspace process, effectively making a shared memory region between eBPF programs and a userspace program. -This can significantly improve read and write performance since there is no sycall overhead to access the map. +This can significantly improve read and write performance since there is no syscall overhead to access the map. Using this flag is only supported on `BPF_MAP_TYPE_ARRAY` maps, for more details check the [array map page](../map-type/BPF_MAP_TYPE_ARRAY.md). diff --git a/docs/linux/syscall/BPF_MAP_LOOKUP_BATCH.md b/docs/linux/syscall/BPF_MAP_LOOKUP_BATCH.md index 248e6016..9ecfc21e 100644 --- a/docs/linux/syscall/BPF_MAP_LOOKUP_BATCH.md +++ b/docs/linux/syscall/BPF_MAP_LOOKUP_BATCH.md @@ -28,7 +28,7 @@ This attribute is set by userspace. At the start of iteration it should be set t ### `out_batch` -This attribute is set by the kernel during the command exectution. At the start of iteration it should be set to `0`/`NULL`. The kernel will +This attribute is set by the kernel during the command execution. At the start of iteration it should be set to `0`/`NULL`. The kernel will ### `keys` diff --git a/docs/linux/syscall/BPF_OBJ_GET.md b/docs/linux/syscall/BPF_OBJ_GET.md index b2aec40f..217b3be4 100644 --- a/docs/linux/syscall/BPF_OBJ_GET.md +++ b/docs/linux/syscall/BPF_OBJ_GET.md @@ -16,7 +16,7 @@ This command will return a file descriptor to the pinned BTF object on success ( ## Usage -A common use case for opening such a pin is to transfer a reference to a BPF object from one process to another. The [`BPF_OBJ_PIN`](BPF_OBJ_PIN.md) syscall command can be used to pin a BPF object to the BPF filesystem so another process can get a reference to it with this syscall command. +A common use case for opening such a pin is to transfer a reference to a BPF object from one process to another. The [`BPF_OBJ_PIN`](BPF_OBJ_PIN.md) syscall command can be used to pin a BPF object to the BPF file system so another process can get a reference to it with this syscall command. Please the the [pinning concept page](../concepts/pinning.md) for more details. diff --git a/docs/linux/syscall/BPF_OBJ_GET_INFO_BY_FD.md b/docs/linux/syscall/BPF_OBJ_GET_INFO_BY_FD.md index 93d5c3ce..7915e37e 100644 --- a/docs/linux/syscall/BPF_OBJ_GET_INFO_BY_FD.md +++ b/docs/linux/syscall/BPF_OBJ_GET_INFO_BY_FD.md @@ -128,15 +128,15 @@ This field indicates the length of the buffer provided by `xlated_prog_len` when [:octicons-tag-24: v4.13](https://github.com/torvalds/linux/commit/1e270976908686ec25fb91b8a34145be54137976) -This field indicates a memory area where the kernel can write the jitted program instructions to. This field should be a pointer to a memory buffer. +This field indicates a memory area where the kernel can write the JIT-ed program instructions to. This field should be a pointer to a memory buffer. -The jitted instructions are machine code in the host architecture, the actual code that runs on the CPU. +The JIT-ed instructions are machine code in the host architecture, the actual code that runs on the CPU. #### `xlated_prog_insns` [:octicons-tag-24: v4.13](https://github.com/torvalds/linux/commit/1e270976908686ec25fb91b8a34145be54137976) -This field indicates a memory area where the kernel can write the xlated/translated program instructions to. This field should be a pointer to a memory buffer. +This field indicates a memory area where the kernel can write the xlated/translated program instructions to. This field should be a pointer to a memory buffer. The translated program instructions are still use the eBPF instruction set, but have been modified by the verifier. @@ -247,7 +247,7 @@ This field indicates the size of the records available via `func_info` This field indicates a list of function info records. This should be a pointer to an array of function info blobs the size of `func_info_rec_size` with `nr_func_info` elements. -These are the func info records supplied during program loading via [`func_info`](BPF_PROG_LOAD.md#func_info). And are aligned to the `xlated_prog_insns`. +These are the function info records supplied during program loading via [`func_info`](BPF_PROG_LOAD.md#func_info). And are aligned to the `xlated_prog_insns`. #### `nr_func_info` @@ -345,7 +345,7 @@ This field indicates the id of the BTF object which contains the type indicated [:octicons-tag-24: v6.0](https://github.com/torvalds/linux/commit/b79c9fc9551b45953a94abf550b7bd3b00e3a0f9) -This field indicates the type id of the BTF func type to which this program is attached. Currently used for `BPF_LSM_CGROUP` programs. +This field indicates the type id of the BTF function type to which this program is attached. Currently used for `BPF_LSM_CGROUP` programs. ### `struct bpf_map_info` @@ -678,7 +678,7 @@ These fields apply for the `BPF_LINK_TYPE_ITER` link type. [:octicons-tag-24: v5.10](https://github.com/torvalds/linux/commit/6b0a249a301e2af9adda84adbced3a2988248b95) -This field indicates the cgroup ID. +This field indicates the cGroup ID. ##### `order` diff --git a/docs/linux/syscall/BPF_PROG_LOAD.md b/docs/linux/syscall/BPF_PROG_LOAD.md index 979f1b93..fe7a2da4 100644 --- a/docs/linux/syscall/BPF_PROG_LOAD.md +++ b/docs/linux/syscall/BPF_PROG_LOAD.md @@ -80,7 +80,7 @@ The log is also written to on success. If the kernel runs out of space in the bu [:octicons-tag-24: v4.1](https://github.com/torvalds/linux/commit/2541517c32be2531e0da59dfd7efc1ce844644f5) !!! warning - This attribute is no longer used as of [:octicons-tag-24: v5.0](https://github.com/torvalds/linux/commit/6c4fc209fcf9d27efbaa48368773e4d2bfbd59aa). The field is still present for compatibly reasons but doesn't do anything. + This attribute is no longer used as of [:octicons-tag-24: v5.0](https://github.com/torvalds/linux/commit/6c4fc209fcf9d27efbaa48368773e4d2bfbd59aa). The field is still present for compatibly reasons but does not do anything. Before its deprecation, this field was supposed to point to a string containing the current kernel version. This string was checked against the actual kernel version for programs of type [`BPF_PROG_TYPE_KPROBE`](../program-type/BPF_PROG_TYPE_KPROBE.md).The rational behind the field was that kprobe are fundamentally unstable and thus had to be recompiled for every kernel version (this was before [CO-RE](../../concepts/core.md) was introduced), having to set this field would make this apparent to users. @@ -173,7 +173,7 @@ This attribute specifies the memory region where extended BTF line info is locat This line information associates information like the filename+path, line number, column number and an snippet of source code which produced a given piece of the eBPF code. This information is available in the verifier log to make understanding the output easier as well as in output of [`BPF_OBJ_GET`](./BPF_OBJ_GET.md). !!! note - The verifier also enforces that for every func info record, there also exists a line info record on the same instruction. + The verifier also enforces that for every function info record, there also exists a line info record on the same instruction. ### `line_info_cnt` @@ -259,7 +259,7 @@ It is mostly used for testing when we want to validate the context and memory ac !!! warning `BPF_F_TEST_RND_HI32` is used for testing purpose, not meant for production usage. -Verifier does sub-register def/use analysis and identifies instructions whose def only matters for low 32-bit, high 32-bit is never referenced later through implicit zero extension. Therefore verifier notifies JIT back-ends that it is safe to ignore clearing high 32-bit for these instructions. This saves some back-ends a lot of code-gen. However such optimization is not necessary on some arches, for example x86_64, arm64 etc, whose JIT back-ends hence hasn't used verifier's analysis result. But, we really want to have a way to be able to verify the correctness of the described optimization on x86_64 on which testsuites are frequently exercised. +Verifier does sub-register def/use analysis and identifies instructions whose def only matters for low 32-bit, high 32-bit is never referenced later through implicit zero extension. Therefore verifier notifies JIT back-ends that it is safe to ignore clearing high 32-bit for these instructions. This saves some back-ends a lot of code-gen. However such optimization is not necessary on some arches, for example x86_64, arm64 etc, whose JIT back-ends hence hasn't used verifier's analysis result. But, we really want to have a way to be able to verify the correctness of the described optimization on x86_64 on which test suites are frequently exercised. So, this flag is introduced. Once it is set, verifier will randomize high 32-bit for those instructions who has been identified as safe to ignore them. Then, if verifier is not doing correct analysis, such randomization will regress tests to expose bugs. diff --git a/docs/linux/syscall/SUMMARY.md b/docs/linux/syscall/SUMMARY.md index 46b8e688..8f928a37 100644 --- a/docs/linux/syscall/SUMMARY.md +++ b/docs/linux/syscall/SUMMARY.md @@ -1,48 +1,48 @@ -* [index.md](index.md) +* [`index.md`](index.md) * Object creation commands - * [BPF_MAP_CREATE](BPF_MAP_CREATE.md) - * [BPF_PROG_LOAD](BPF_PROG_LOAD.md) - * [BPF_BTF_LOAD](BPF_BTF_LOAD.md) - * [BPF_LINK_CREATE](BPF_LINK_CREATE.md) - * [BPF_ITER_CREATE](BPF_ITER_CREATE.md) - * [BPF_RAW_TRACEPOINT_OPEN](BPF_RAW_TRACEPOINT_OPEN.md) + * [`BPF_MAP_CREATE`](BPF_MAP_CREATE.md) + * [`BPF_PROG_LOAD`](BPF_PROG_LOAD.md) + * [`BPF_BTF_LOAD`](BPF_BTF_LOAD.md) + * [`BPF_LINK_CREATE`](BPF_LINK_CREATE.md) + * [`BPF_ITER_CREATE`](BPF_ITER_CREATE.md) + * [`BPF_RAW_TRACEPOINT_OPEN`](BPF_RAW_TRACEPOINT_OPEN.md) * Map commands - * [BPF_MAP_CREATE](BPF_MAP_CREATE.md) - * [BPF_MAP_LOOKUP_ELEM](BPF_MAP_LOOKUP_ELEM.md) - * [BPF_MAP_UPDATE_ELEM](BPF_MAP_UPDATE_ELEM.md) - * [BPF_MAP_DELETE_ELEM](BPF_MAP_DELETE_ELEM.md) - * [BPF_MAP_GET_NEXT_KEY](BPF_MAP_GET_NEXT_KEY.md) - * [BPF_MAP_LOOKUP_BATCH](BPF_MAP_LOOKUP_BATCH.md) - * [BPF_MAP_LOOKUP_AND_DELETE_BATCH](BPF_MAP_LOOKUP_AND_DELETE_BATCH.md) - * [BPF_MAP_UPDATE_BATCH](BPF_MAP_UPDATE_BATCH.md) - * [BPF_MAP_DELETE_BATCH](BPF_MAP_DELETE_BATCH.md) - * [BPF_MAP_LOOKUP_AND_DELETE_ELEM](BPF_MAP_LOOKUP_AND_DELETE_ELEM.md) - * [BPF_MAP_FREEZE](BPF_MAP_FREEZE.md) + * [`BPF_MAP_CREATE`](BPF_MAP_CREATE.md) + * [`BPF_MAP_LOOKUP_ELEM`](BPF_MAP_LOOKUP_ELEM.md) + * [`BPF_MAP_UPDATE_ELEM`](BPF_MAP_UPDATE_ELEM.md) + * [`BPF_MAP_DELETE_ELEM`](BPF_MAP_DELETE_ELEM.md) + * [`BPF_MAP_GET_NEXT_KEY`](BPF_MAP_GET_NEXT_KEY.md) + * [`BPF_MAP_LOOKUP_BATCH`](BPF_MAP_LOOKUP_BATCH.md) + * [`BPF_MAP_LOOKUP_AND_DELETE_BATCH`](BPF_MAP_LOOKUP_AND_DELETE_BATCH.md) + * [`BPF_MAP_UPDATE_BATCH`](BPF_MAP_UPDATE_BATCH.md) + * [`BPF_MAP_DELETE_BATCH`](BPF_MAP_DELETE_BATCH.md) + * [`BPF_MAP_LOOKUP_AND_DELETE_ELEM`](BPF_MAP_LOOKUP_AND_DELETE_ELEM.md) + * [`BPF_MAP_FREEZE`](BPF_MAP_FREEZE.md) * Pin commands - * [BPF_OBJ_PIN](BPF_OBJ_PIN.md) - * [BPF_OBJ_GET](BPF_OBJ_GET.md) + * [`BPF_OBJ_PIN`](BPF_OBJ_PIN.md) + * [`BPF_OBJ_GET`](BPF_OBJ_GET.md) * Program commands - * [BPF_PROG_LOAD](BPF_PROG_LOAD.md) - * [BPF_PROG_ATTACH](BPF_PROG_ATTACH.md) - * [BPF_PROG_DETACH](BPF_PROG_DETACH.md) - * [BPF_PROG_TEST_RUN](BPF_PROG_TEST_RUN.md) - * [BPF_PROG_RUN](BPF_PROG_TEST_RUN.md) - * [BPF_PROG_BIND_MAP](BPF_PROG_BIND_MAP.md) + * [`BPF_PROG_LOAD`](BPF_PROG_LOAD.md) + * [`BPF_PROG_ATTACH`](BPF_PROG_ATTACH.md) + * [`BPF_PROG_DETACH`](BPF_PROG_DETACH.md) + * [`BPF_PROG_TEST_RUN`](BPF_PROG_TEST_RUN.md) + * [`BPF_PROG_RUN`](BPF_PROG_TEST_RUN.md) + * [`BPF_PROG_BIND_MAP`](BPF_PROG_BIND_MAP.md) * Object discovery commands - * [BPF_PROG_GET_NEXT_ID](BPF_PROG_GET_NEXT_ID.md) - * [BPF_MAP_GET_NEXT_ID](BPF_MAP_GET_NEXT_ID.md) - * [BPF_PROG_GET_FD_BY_ID](BPF_PROG_GET_FD_BY_ID.md) - * [BPF_MAP_GET_FD_BY_ID](BPF_MAP_GET_FD_BY_ID.md) - * [BPF_OBJ_GET_INFO_BY_FD](BPF_OBJ_GET_INFO_BY_FD.md) - * [BPF_PROG_QUERY](BPF_PROG_QUERY.md) - * [BPF_BTF_GET_FD_BY_ID](BPF_BTF_GET_FD_BY_ID.md) - * [BPF_TASK_FD_QUERY](BPF_TASK_FD_QUERY.md) - * [BPF_BTF_GET_NEXT_ID](BPF_BTF_GET_NEXT_ID.md) - * [BPF_LINK_GET_FD_BY_ID](BPF_LINK_GET_FD_BY_ID.md) - * [BPF_LINK_GET_NEXT_ID](BPF_LINK_GET_NEXT_ID.md) + * [`BPF_PROG_GET_NEXT_ID`](BPF_PROG_GET_NEXT_ID.md) + * [`BPF_MAP_GET_NEXT_ID`](BPF_MAP_GET_NEXT_ID.md) + * [`BPF_PROG_GET_FD_BY_ID`](BPF_PROG_GET_FD_BY_ID.md) + * [`BPF_MAP_GET_FD_BY_ID`](BPF_MAP_GET_FD_BY_ID.md) + * [`BPF_OBJ_GET_INFO_BY_FD`](BPF_OBJ_GET_INFO_BY_FD.md) + * [`BPF_PROG_QUERY`](BPF_PROG_QUERY.md) + * [`BPF_BTF_GET_FD_BY_ID`](BPF_BTF_GET_FD_BY_ID.md) + * [`BPF_TASK_FD_QUERY`](BPF_TASK_FD_QUERY.md) + * [`BPF_BTF_GET_NEXT_ID`](BPF_BTF_GET_NEXT_ID.md) + * [`BPF_LINK_GET_FD_BY_ID`](BPF_LINK_GET_FD_BY_ID.md) + * [`BPF_LINK_GET_NEXT_ID`](BPF_LINK_GET_NEXT_ID.md) * Link commands - * [BPF_LINK_CREATE](BPF_LINK_CREATE.md) - * [BPF_LINK_UPDATE](BPF_LINK_UPDATE.md) - * [BPF_LINK_DETACH](BPF_LINK_DETACH.md) + * [`BPF_LINK_CREATE`](BPF_LINK_CREATE.md) + * [`BPF_LINK_UPDATE`](BPF_LINK_UPDATE.md) + * [`BPF_LINK_DETACH`](BPF_LINK_DETACH.md) * Statistics commands - * [BPF_ENABLE_STATS](BPF_ENABLE_STATS.md) + * [`BPF_ENABLE_STATS`](BPF_ENABLE_STATS.md) diff --git a/docs/linux/syscall/index.md b/docs/linux/syscall/index.md index 0b916086..18d3d422 100644 --- a/docs/linux/syscall/index.md +++ b/docs/linux/syscall/index.md @@ -9,71 +9,71 @@ hide: toc These commands create new objects in the kernel, returning their file descriptors. -* [BPF_MAP_CREATE](BPF_MAP_CREATE.md) -* [BPF_PROG_LOAD](BPF_PROG_LOAD.md) -* [BPF_BTF_LOAD](BPF_BTF_LOAD.md) -* [BPF_LINK_CREATE](BPF_LINK_CREATE.md) -* BPF_ITER_CREATE -* BPF_RAW_TRACEPOINT_OPEN +* [`BPF_MAP_CREATE`](BPF_MAP_CREATE.md) +* [`BPF_PROG_LOAD`](BPF_PROG_LOAD.md) +* [`BPF_BTF_LOAD`](BPF_BTF_LOAD.md) +* [`BPF_LINK_CREATE`](BPF_LINK_CREATE.md) +* `BPF_ITER_CREATE` +* `BPF_RAW_TRACEPOINT_OPEN` ## Map commands Commands related to BPF maps. -* [BPF_MAP_CREATE](BPF_MAP_CREATE.md) -* [BPF_MAP_LOOKUP_ELEM](BPF_MAP_LOOKUP_ELEM.md) -* [BPF_MAP_UPDATE_ELEM](BPF_MAP_UPDATE_ELEM.md) -* [BPF_MAP_DELETE_ELEM](BPF_MAP_DELETE_ELEM.md) -* [BPF_MAP_GET_NEXT_KEY](BPF_MAP_GET_NEXT_KEY.md) -* [BPF_MAP_LOOKUP_BATCH](BPF_MAP_LOOKUP_BATCH.md) -* BPF_MAP_LOOKUP_AND_DELETE_BATCH -* BPF_MAP_UPDATE_BATCH -* BPF_MAP_DELETE_BATCH -* BPF_MAP_LOOKUP_AND_DELETE_ELEM -* BPF_MAP_FREEZE +* [`BPF_MAP_CREATE`](BPF_MAP_CREATE.md) +* [`BPF_MAP_LOOKUP_ELEM`](BPF_MAP_LOOKUP_ELEM.md) +* [`BPF_MAP_UPDATE_ELEM`](BPF_MAP_UPDATE_ELEM.md) +* [`BPF_MAP_DELETE_ELEM`](BPF_MAP_DELETE_ELEM.md) +* [`BPF_MAP_GET_NEXT_KEY`](BPF_MAP_GET_NEXT_KEY.md) +* [`BPF_MAP_LOOKUP_BATCH`](BPF_MAP_LOOKUP_BATCH.md) +* `BPF_MAP_LOOKUP_AND_DELETE_BATCH` +* `BPF_MAP_UPDATE_BATCH` +* `BPF_MAP_DELETE_BATCH` +* `BPF_MAP_LOOKUP_AND_DELETE_ELEM` +* `BPF_MAP_FREEZE` ## Pin commands Commands related to the pinning of BPF objects. -* [BPF_OBJ_PIN](BPF_OBJ_PIN.md) -* [BPF_OBJ_GET](BPF_OBJ_GET.md) +* [`BPF_OBJ_PIN`](BPF_OBJ_PIN.md) +* [`BPF_OBJ_GET`](BPF_OBJ_GET.md) ## Program commands Commands related to BPF programs. -* [BPF_PROG_LOAD](BPF_PROG_LOAD.md) -* BPF_PROG_ATTACH -* BPF_PROG_DETACH -* [BPF_PROG_TEST_RUN](BPF_PROG_TEST_RUN.md) -* [BPF_PROG_RUN](BPF_PROG_TEST_RUN.md) -* BPF_PROG_BIND_MAP +* [`BPF_PROG_LOAD`](BPF_PROG_LOAD.md) +* `BPF_PROG_ATTACH` +* `BPF_PROG_DETACH` +* [`BPF_PROG_TEST_RUN`](BPF_PROG_TEST_RUN.md) +* [`BPF_PROG_RUN`](BPF_PROG_TEST_RUN.md) +* `BPF_PROG_BIND_MAP` ## Object discovery commands Commands used to find existing objects or iterate over them. -* [BPF_PROG_GET_NEXT_ID](BPF_PROG_GET_NEXT_ID.md) -* [BPF_MAP_GET_NEXT_ID](BPF_MAP_GET_NEXT_ID.md) -* [BPF_PROG_GET_FD_BY_ID](BPF_PROG_GET_FD_BY_ID.md) -* [BPF_MAP_GET_FD_BY_ID](BPF_MAP_GET_FD_BY_ID.md) -* [BPF_OBJ_GET_INFO_BY_FD](BPF_OBJ_GET_INFO_BY_FD.md) -* BPF_PROG_QUERY -* [BPF_BTF_GET_FD_BY_ID](BPF_BTF_GET_FD_BY_ID.md) -* BPF_TASK_FD_QUERY -* [BPF_BTF_GET_NEXT_ID](BPF_BTF_GET_NEXT_ID.md) -* [BPF_LINK_GET_FD_BY_ID](BPF_LINK_GET_FD_BY_ID.md) -* [BPF_LINK_GET_NEXT_ID](BPF_LINK_GET_NEXT_ID.md) +* [`BPF_PROG_GET_NEXT_ID`](BPF_PROG_GET_NEXT_ID.md) +* [`BPF_MAP_GET_NEXT_ID`](BPF_MAP_GET_NEXT_ID.md) +* [`BPF_PROG_GET_FD_BY_ID`](BPF_PROG_GET_FD_BY_ID.md) +* [`BPF_MAP_GET_FD_BY_ID`](BPF_MAP_GET_FD_BY_ID.md) +* [`BPF_OBJ_GET_INFO_BY_FD`](BPF_OBJ_GET_INFO_BY_FD.md) +* `BPF_PROG_QUERY` +* [`BPF_BTF_GET_FD_BY_ID`](BPF_BTF_GET_FD_BY_ID.md) +* `BPF_TASK_FD_QUERY` +* [`BPF_BTF_GET_NEXT_ID`](BPF_BTF_GET_NEXT_ID.md) +* [`BPF_LINK_GET_FD_BY_ID`](BPF_LINK_GET_FD_BY_ID.md) +* [`BPF_LINK_GET_NEXT_ID`](BPF_LINK_GET_NEXT_ID.md) ## Link commands Commands related to links. -* [BPF_LINK_CREATE](BPF_LINK_CREATE.md) -* BPF_LINK_UPDATE -* BPF_LINK_DETACH +* [`BPF_LINK_CREATE`](BPF_LINK_CREATE.md) +* `BPF_LINK_UPDATE` +* `BPF_LINK_DETACH` ## Statistics commands -* [BPF_ENABLE_STATS](BPF_ENABLE_STATS.md) +* [`BPF_ENABLE_STATS`](BPF_ENABLE_STATS.md) diff --git a/tools/kfunc-gen/main.go b/tools/kfunc-gen/main.go index af6de67f..7f7c92ae 100644 --- a/tools/kfunc-gen/main.go +++ b/tools/kfunc-gen/main.go @@ -176,7 +176,7 @@ func main() { } for _, progType := range progTypes { - newFile.WriteString(fmt.Sprintf("- [%s](../program-type/%s.md)\n", progType, progType)) + newFile.WriteString(fmt.Sprintf("- [`%s`](../program-type/%s.md)\n", progType, progType)) } newFile.WriteString(kfuncProgRefEnd) @@ -379,7 +379,7 @@ const ( kfDestructiveNotice = ` !!! warning This kfunc is destructive to the system. For example such a call can result in system rebooting or panicking. - Due to this additional restrictions apply to these calls. At the moment they only require CAP_SYS_BOOT capability, + Due to this additional restrictions apply to these calls. At the moment they only require ` + "`" + "CAP_SYS_BOOT" + "`" + `capability, but more can be added later. ` From 929c702feef61ee704489e5cfc5143c3799f1dab Mon Sep 17 00:00:00 2001 From: Dylan Reimerink Date: Sun, 28 Jul 2024 16:36:13 +0200 Subject: [PATCH 4/4] ci: Add spellcheck workflow This commits adds a workflow file which triggers `make spellcheck` for every opened PR. Signed-off-by: Dylan Reimerink --- .github/workflows/spellcheck.yaml | 20 ++++++++++++++++++++ tools/Dockerfile | 4 ++-- 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/spellcheck.yaml diff --git a/.github/workflows/spellcheck.yaml b/.github/workflows/spellcheck.yaml new file mode 100644 index 00000000..dc153a94 --- /dev/null +++ b/.github/workflows/spellcheck.yaml @@ -0,0 +1,20 @@ +name: Spellcheck + +on: + pull_request: {} + push: + branches: + - master + +env: + USER: root + +jobs: + spellcheck: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Run spellcheck + run: | + make spellcheck + diff --git a/tools/Dockerfile b/tools/Dockerfile index 34cfbc4c..951ad5fa 100644 --- a/tools/Dockerfile +++ b/tools/Dockerfile @@ -7,6 +7,6 @@ COPY requirements.txt /root/requirements.txt RUN apt update && \ apt install -y git aspell && \ pip install -r /root/requirements.txt && \ - groupadd -g $GID docs && \ - useradd -u $UID -g $GID -m -s /bin/bash docs + groupadd -g $GID docs || true && \ + useradd -u $UID -g $GID -m -s /bin/bash docs || true ENTRYPOINT bash