diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:43:11 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:43:11 +0000 |
commit | fc22b3d6507c6745911b9dfcc68f1e665ae13dbc (patch) | |
tree | ce1e3bce06471410239a6f41282e328770aa404a /templates/man7/bpf-helpers.7.pot | |
parent | Initial commit. (diff) | |
download | manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.tar.xz manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.zip |
Adding upstream version 4.22.0.upstream/4.22.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'templates/man7/bpf-helpers.7.pot')
-rw-r--r-- | templates/man7/bpf-helpers.7.pot | 8589 |
1 files changed, 8589 insertions, 0 deletions
diff --git a/templates/man7/bpf-helpers.7.pot b/templates/man7/bpf-helpers.7.pot new file mode 100644 index 00000000..3bdcc79b --- /dev/null +++ b/templates/man7/bpf-helpers.7.pot @@ -0,0 +1,8589 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2024-02-15 17:55+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. type: TH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "BPF-HELPERS" +msgstr "" + +#. type: TH +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +#, no-wrap +msgid "2023-04-11" +msgstr "" + +#. type: TH +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +#, no-wrap +msgid "Linux v6.2" +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "NAME" +msgstr "" + +#. Copyright (C) All BPF authors and contributors from 2014 to present. +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "BPF-HELPERS - list of eBPF helper functions" +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "DESCRIPTION" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"The extended Berkeley Packet Filter (eBPF) subsystem consists in programs " +"written in a pseudo-assembly language, then attached to one of the several " +"kernel hooks and run in reaction of specific events. This framework differs " +"from the older, \"classic\" BPF (or \"cBPF\") in several aspects, one of " +"them being the ability to call special functions (or \"helpers\") from " +"within a program. These functions are restricted to a white-list of helpers " +"defined in the kernel." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"These helpers are used by eBPF programs to interact with the system, or with " +"the context in which they work. For instance, they can be used to print " +"debugging messages, to get the time since the system was booted, to interact " +"with eBPF maps, or to manipulate network packets. Since there are several " +"eBPF program types, and that they do not run in the same context, each " +"program type can only call a subset of those helpers." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Due to eBPF conventions, a helper can not have more than five arguments." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Internally, eBPF programs call directly into the compiled helper functions " +"without requiring any foreign-function interface. As a result, calling " +"helpers introduces no overhead, thus offering excellent performance." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This document is an attempt to list and document the helpers available to " +"eBPF developers. They are sorted by chronological order (the oldest helpers " +"in the kernel at the top)." +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "HELPERS" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<void *bpf_map_lookup_elem(struct bpf_map *>I<map>B<, const void *>I<key>B<)>" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<Description>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Perform a lookup in I<map> for an entry associated to I<key>\\&." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<Return>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Map value associated to I<key>, or B<NULL> if no entry was found." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_map_update_elem(struct bpf_map *>I<map>B<, const void *>I<key>B<, const void *>I<value>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Add or update the value of the entry associated to I<key> in I<map> with " +"I<value>\\&. I<flags> is one of:" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<BPF_NOEXIST>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "The entry for I<key> must not exist in the map." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<BPF_EXIST>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "The entry for I<key> must already exist in the map." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<BPF_ANY>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "No condition on the existence of the entry for I<key>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Flag value B<BPF_NOEXIST> cannot be used for maps of types " +"B<BPF_MAP_TYPE_ARRAY> or B<BPF_MAP_TYPE_PERCPU_ARRAY> (all elements always " +"exist), the helper would return an error." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "0 on success, or a negative error in case of failure." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_map_delete_elem(struct bpf_map *>I<map>B<, const void *>I<key>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Delete entry with I<key> from I<map>\\&." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_probe_read(void *>I<dst>B<, u32 >I<size>B<, const void *>I<unsafe_ptr>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"For tracing programs, safely attempt to read I<size> bytes from kernel space " +"address I<unsafe_ptr> and store the data in I<dst>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Generally, use B<bpf_probe_read_user>() or B<bpf_probe_read_kernel>() " +"instead." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u64 bpf_ktime_get_ns(void)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Return the time elapsed since system boot, in nanoseconds. Does not include " +"time the system was suspended. See: B<clock_gettime>(B<CLOCK_MONOTONIC>)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Current I<ktime>\\&." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_trace_printk(const char *>I<fmt>B<, u32 >I<fmt_size>B<, ...)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"This helper is a \"printk()-like\" facility for debugging. It prints a " +"message defined by format I<fmt> (of size I<fmt_size>) to file I</sys/" +"kernel/debug/tracing/trace> from DebugFS, if available. It can take up to " +"three additional B<u64> arguments (as an eBPF helpers, the total number of " +"arguments is limited to five)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Each time the helper is called, it appends a line to the trace. Lines are " +"discarded while I</sys/kernel/debug/tracing/trace> is open, use I</sys/" +"kernel/debug/tracing/trace_pipe> to avoid this. The format of the trace is " +"customizable, and the exact output one will get depends on the options set " +"in I</sys/kernel/debug/tracing/trace_options> (see also the I<README> file " +"under the same directory). However, it usually defaults to something like:" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +#, no-wrap +msgid "" +"^\".ft C$\n" +"telnet-470 [001] .N.. 419421.045894: 0x00000001: E<lt>fmtE<gt>\n" +"^\".ft P$\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "In the above:" +msgstr "" + +#. type: IP +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +#, no-wrap +msgid "\\(bu" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<telnet> is the name of the current task." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<470> is the PID of the current task." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<001> is the CPU number on which the task is running." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"In B<\\&.N..>, each character refers to a set of options (whether irqs are " +"enabled, scheduling options, whether hard/softirqs are running, level of " +"preempt_disabled respectively). B<N> means that B<TIF_NEED_RESCHED> and " +"B<PREEMPT_NEED_RESCHED> are set." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<419421.045894> is a timestamp." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<0x00000001> is a fake value used by BPF for the instruction pointer " +"register." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "B<E<lt>fmtE<gt>> is the message formatted with I<fmt>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The conversion specifiers supported by I<fmt> are similar, but more limited " +"than for printk(). They are B<%d>, B<%i>, B<%u>, B<%x>, B<%ld>, B<%li>, " +"B<%lu>, B<%lx>, B<%lld>, B<%lli>, B<%llu>, B<%llx>, B<%p>, B<%s>\\&. No " +"modifier (size of field, padding with zeroes, etc.) is available, and the " +"helper will return B<-EINVAL> (but print nothing) if it encounters an " +"unknown specifier." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"Also, note that B<bpf_trace_printk>() is slow, and should only be used for " +"debugging purposes. For this reason, a notice block (spanning several lines) " +"is printed to kernel logs and states that the helper should not be used " +"\"for production use\" the first time this helper is used (or more " +"precisely, when B<trace_printk>() buffers are allocated). For passing values " +"to user space, perf events should be preferred." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The number of bytes written to the buffer, or a negative error in case of " +"failure." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u32 bpf_get_prandom_u32(void)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Get a pseudo-random number." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"From a security point of view, this helper uses its own pseudo-random " +"internal state, and cannot be used to infer the seed of other random " +"functions in the kernel. However, it is essential to note that the generator " +"used by the helper is not cryptographically secure." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "A random 32-bit unsigned value." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u32 bpf_get_smp_processor_id(void)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Get the SMP (symmetric multiprocessing) processor id. Note that all programs " +"run with migration disabled, which means that the SMP processor id is stable " +"during all the execution of the program." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "The SMP id of the processor running the program." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_skb_store_bytes(struct sk_buff *>I<skb>B<, u32 >I<offset>B<, const void *>I<from>B<, u32 >I<len>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Store I<len> bytes from address I<from> into the packet associated to " +"I<skb>, at I<offset>\\&. I<flags> are a combination of " +"B<BPF_F_RECOMPUTE_CSUM> (automatically recompute the checksum for the packet " +"after storing the bytes) and B<BPF_F_INVALIDATE_HASH> (set I<skb>B<-" +"E<gt>hash>, I<skb>B<-E<gt>swhash> and I<skb>B<-E<gt>l4hash> to 0)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"A call to this helper is susceptible to change the underlying packet buffer. " +"Therefore, at load time, all checks on pointers previously done by the " +"verifier are invalidated and must be performed again, if the helper is used " +"in combination with direct packet access." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_l3_csum_replace(struct sk_buff *>I<skb>B<, u32 >I<offset>B<, u64 >I<from>B<, u64 >I<to>B<, u64 >I<size>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Recompute the layer 3 (e.g. IP) checksum for the packet associated to " +"I<skb>\\&. Computation is incremental, so the helper must know the former " +"value of the header field that was modified (I<from>), the new value of this " +"field (I<to>), and the number of bytes (2 or 4) for this field, stored in " +"I<size>\\&. Alternatively, it is possible to store the difference between " +"the previous and the new values of the header field in I<to>, by setting " +"I<from> and I<size> to 0. For both methods, I<offset> indicates the location " +"of the IP checksum within the packet." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper works in combination with B<bpf_csum_diff>(), which does not " +"update the checksum in-place, but offers more flexibility and can handle " +"sizes larger than 2 or 4 for the checksum to update." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_l4_csum_replace(struct sk_buff *>I<skb>B<, u32 >I<offset>B<, u64 >I<from>B<, u64 >I<to>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Recompute the layer 4 (e.g. TCP, UDP or ICMP) checksum for the packet " +"associated to I<skb>\\&. Computation is incremental, so the helper must know " +"the former value of the header field that was modified (I<from>), the new " +"value of this field (I<to>), and the number of bytes (2 or 4) for this " +"field, stored on the lowest four bits of I<flags>\\&. Alternatively, it is " +"possible to store the difference between the previous and the new values of " +"the header field in I<to>, by setting I<from> and the four lowest bits of " +"I<flags> to 0. For both methods, I<offset> indicates the location of the IP " +"checksum within the packet. In addition to the size of the field, I<flags> " +"can be added (bitwise OR) actual flags. With B<BPF_F_MARK_MANGLED_0>, a null " +"checksum is left untouched (unless B<BPF_F_MARK_ENFORCE> is added as well), " +"and for updates resulting in a null checksum the value is set to " +"B<CSUM_MANGLED_0> instead. Flag B<BPF_F_PSEUDO_HDR> indicates the checksum " +"is to be computed against a pseudo-header." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_tail_call(void *>I<ctx>B<, struct bpf_map *>I<prog_array_map>B<, u32 >I<index>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"This special helper is used to trigger a \"tail call\", or in other words, " +"to jump into another eBPF program. The same stack frame is used (but values " +"on stack and in registers for the caller are not accessible to the callee). " +"This mechanism allows for program chaining, either for raising the maximum " +"number of available eBPF instructions, or to execute given programs in " +"conditional blocks. For security reasons, there is an upper limit to the " +"number of successive tail calls that can be performed." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Upon call of this helper, the program attempts to jump into a program " +"referenced at index I<index> in I<prog_array_map>, a special map of type " +"B<BPF_MAP_TYPE_PROG_ARRAY>, and passes I<ctx>, a pointer to the context." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"If the call succeeds, the kernel immediately runs the first instruction of " +"the new program. This is not a function call, and it never returns to the " +"previous program. If the call fails, then the helper has no effect, and the " +"caller continues to run its subsequent instructions. A call can fail if the " +"destination program for the jump does not exist (i.e. I<index> is superior " +"to the number of entries in I<prog_array_map>), or if the maximum number of " +"tail calls has been reached for this chain of programs. This limit is " +"defined in the kernel by the macro B<MAX_TAIL_CALL_CNT> (not accessible to " +"user space), which is currently set to 33." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_clone_redirect(struct sk_buff *>I<skb>B<, u32 >I<ifindex>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Clone and redirect the packet associated to I<skb> to another net device of " +"index I<ifindex>\\&. Both ingress and egress interfaces can be used for " +"redirection. The B<BPF_F_INGRESS> value in I<flags> is used to make the " +"distinction (ingress path is selected if the flag is present, egress path " +"otherwise). This is the only flag supported for now." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"In comparison with B<bpf_redirect>() helper, B<bpf_clone_redirect>() has the " +"associated cost of duplicating the packet buffer, but this can be executed " +"out of the eBPF program. Conversely, B<bpf_redirect>() is more efficient, " +"but it is handled through an action code where the redirection happens only " +"after the eBPF program has returned." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u64 bpf_get_current_pid_tgid(void)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Get the current pid and tgid." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"A 64-bit integer containing the current tgid and pid, and created as such: " +"I<current_task>B<-E<gt>tgid E<lt>E<lt> 32 |> I<current_task>B<-E<gt>pid>\\&." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u64 bpf_get_current_uid_gid(void)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Get the current uid and gid." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"A 64-bit integer containing the current GID and UID, and created as such: " +"I<current_gid> B<E<lt>E<lt> 32 |> I<current_uid>\\&." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_get_current_comm(void *>I<buf>B<, u32 >I<size_of_buf>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Copy the B<comm> attribute of the current task into I<buf> of " +"I<size_of_buf>\\&. The B<comm> attribute contains the name of the executable " +"(excluding the path) for the current task. The I<size_of_buf> must be " +"strictly positive. On success, the helper makes sure that the I<buf> is NUL-" +"terminated. On failure, it is filled with zeroes." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u32 bpf_get_cgroup_classid(struct sk_buff *>I<skb>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Retrieve the classid for the current task, i.e. for the net_cls cgroup to " +"which I<skb> belongs." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "This helper can be used on TC egress path, but not on ingress." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The net_cls cgroup provides an interface to tag network packets based on a " +"user-provided identifier for all traffic coming from the tasks belonging to " +"the related cgroup. See also the related kernel documentation, available " +"from the Linux sources in file I<Documentation/admin-guide/cgroup-v1/net_cls." +"rst>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The Linux kernel has two versions for cgroups: there are cgroups v1 and " +"cgroups v2. Both are available to users, who can use a mixture of them, but " +"note that the net_cls cgroup is for cgroup v1 only. This makes it " +"incompatible with BPF programs run on cgroups, which is a cgroup-v2-only " +"feature (a socket can only hold data for one version of cgroups at a time)." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"This helper is only available is the kernel was compiled with the " +"B<CONFIG_CGROUP_NET_CLASSID> configuration option set to \"B<y>\" or to " +"\"B<m>\"." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "The classid, or 0 for the default unconfigured classid." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_skb_vlan_push(struct sk_buff *>I<skb>B<, __be16 >I<vlan_proto>B<, u16 >I<vlan_tci>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Push a I<vlan_tci> (VLAN tag control information) of protocol I<vlan_proto> " +"to the packet associated to I<skb>, then update the checksum. Note that if " +"I<vlan_proto> is different from B<ETH_P_8021Q> and B<ETH_P_8021AD>, it is " +"considered to be B<ETH_P_8021Q>\\&." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_skb_vlan_pop(struct sk_buff *>I<skb>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Pop a VLAN header from the packet associated to I<skb>\\&." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_skb_get_tunnel_key(struct sk_buff *>I<skb>B<, struct bpf_tunnel_key *>I<key>B<, u32 >I<size>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Get tunnel metadata. This helper takes a pointer I<key> to an empty B<struct " +"bpf_tunnel_key> of B<size>, that will be filled with tunnel metadata for the " +"packet associated to I<skb>\\&. The I<flags> can be set to " +"B<BPF_F_TUNINFO_IPV6>, which indicates that the tunnel is based on IPv6 " +"protocol instead of IPv4." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"The B<struct bpf_tunnel_key> is an object that generalizes the principal " +"parameters used by various tunneling protocols into a single struct. This " +"way, it can be used to easily make a decision based on the contents of the " +"encapsulation header, \"summarized\" in this struct. In particular, it holds " +"the IP address of the remote end (IPv4 or IPv6, depending on the case) in " +"I<key>B<-E<gt>remote_ipv4> or I<key>B<-E<gt>remote_ipv6>\\&. Also, this " +"struct exposes the I<key>B<-E<gt>tunnel_id>, which is generally mapped to a " +"VNI (Virtual Network Identifier), making it programmable together with the " +"B<bpf_skb_set_tunnel_key>() helper." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"Let\\(aqs imagine that the following code is part of a program attached to " +"the TC ingress interface, on one end of a GRE tunnel, and is supposed to " +"filter out all messages coming from remote ends with IPv4 address other than " +"10.0.0.1:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "" +"^\".ft C$\n" +"int ret;\n" +"struct bpf_tunnel_key key = {};\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "" +"ret = bpf_skb_get_tunnel_key(skb, &key, sizeof(key), 0);\n" +"if (ret E<lt> 0)\n" +" return TC_ACT_SHOT; // drop packet\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "" +"if (key.remote_ipv4 != 0x0a000001)\n" +" return TC_ACT_SHOT; // drop packet\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "" +"return TC_ACT_OK; // accept packet\n" +"^\".ft P$\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"This interface can also be used with all encapsulation devices that can " +"operate in \"collect metadata\" mode: instead of having one network device " +"per specific configuration, the \"collect metadata\" mode only requires a " +"single device where the configuration can be extracted from this helper." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This can be used together with various tunnels such as VXLan, Geneve, GRE or " +"IP in IP (IPIP)." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_skb_set_tunnel_key(struct sk_buff *>I<skb>B<, struct bpf_tunnel_key *>I<key>B<, u32 >I<size>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Populate tunnel metadata for packet associated to I<skb.> The tunnel " +"metadata is set to the contents of I<key>, of I<size>\\&. The I<flags> can " +"be set to a combination of the following values:" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<BPF_F_TUNINFO_IPV6>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Indicate that the tunnel is based on IPv6 protocol instead of IPv4." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<BPF_F_ZERO_CSUM_TX>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"For IPv4 packets, add a flag to tunnel metadata indicating that checksum " +"computation should be skipped and checksum set to zeroes." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<BPF_F_DONT_FRAGMENT>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Add a flag to tunnel metadata indicating that the packet should not be " +"fragmented." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<BPF_F_SEQ_NUMBER>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Add a flag to tunnel metadata indicating that a sequence number should be " +"added to tunnel header before sending the packet. This flag was added for " +"GRE encapsulation, but might be used with other protocols as well in the " +"future." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Here is a typical usage on the transmit path:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "" +"^\".ft C$\n" +"struct bpf_tunnel_key key;\n" +" populate key ...\n" +"bpf_skb_set_tunnel_key(skb, &key, sizeof(key), 0);\n" +"bpf_clone_redirect(skb, vxlan_dev_ifindex, 0);\n" +"^\".ft P$\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"See also the description of the B<bpf_skb_get_tunnel_key>() helper for " +"additional information." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u64 bpf_perf_event_read(struct bpf_map *>I<map>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Read the value of a perf event counter. This helper relies on a I<map> of " +"type B<BPF_MAP_TYPE_PERF_EVENT_ARRAY>\\&. The nature of the perf event " +"counter is selected when I<map> is updated with perf event file descriptors. " +"The I<map> is an array whose size is the number of available CPUs, and each " +"cell contains a value relative to one CPU. The value to retrieve is " +"indicated by I<flags>, that contains the index of the CPU to look up, masked " +"with B<BPF_F_INDEX_MASK>\\&. Alternatively, I<flags> can be set to " +"B<BPF_F_CURRENT_CPU> to indicate that the value for the current CPU should " +"be retrieved." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Note that before Linux 4.13, only hardware perf event can be retrieved." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Also, be aware that the newer helper B<bpf_perf_event_read_value>() is " +"recommended over B<bpf_perf_event_read>() in general. The latter has some " +"ABI quirks where error and counter value are used as a return code (which is " +"wrong to do since ranges may overlap). This issue is fixed with " +"B<bpf_perf_event_read_value>(), which at the same time provides more " +"features over the B<bpf_perf_event_read>() interface. Please refer to the " +"description of B<bpf_perf_event_read_value>() for details." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The value of the perf event counter read from the map, or a negative error " +"code in case of failure." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_redirect(u32 >I<ifindex>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Redirect the packet to another net device of index I<ifindex>\\&. This " +"helper is somewhat similar to B<bpf_clone_redirect>(), except that the " +"packet is not cloned, which provides increased performance." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Except for XDP, both ingress and egress interfaces can be used for " +"redirection. The B<BPF_F_INGRESS> value in I<flags> is used to make the " +"distinction (ingress path is selected if the flag is present, egress path " +"otherwise). Currently, XDP only supports redirection to the egress " +"interface, and accepts no flag at all." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The same effect can also be attained with the more generic " +"B<bpf_redirect_map>(), which uses a BPF map to store the redirect target " +"instead of providing it directly to the helper." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"For XDP, the helper returns B<XDP_REDIRECT> on success or B<XDP_ABORTED> on " +"error. For other program types, the values are B<TC_ACT_REDIRECT> on success " +"or B<TC_ACT_SHOT> on error." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u32 bpf_get_route_realm(struct sk_buff *>I<skb>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Retrieve the realm or the route, that is to say the B<tclassid> field of the " +"destination for the I<skb>\\&. The identifier retrieved is a user-provided " +"tag, similar to the one used with the net_cls cgroup (see description for " +"B<bpf_get_cgroup_classid>() helper), but here this tag is held by a route (a " +"destination entry), not by a task." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Retrieving this identifier works with the clsact TC egress hook (see also " +"B<tc-bpf(8)>), or alternatively on conventional classful egress qdiscs, but " +"not on TC ingress path. In case of clsact TC egress hook, this has the " +"advantage that, internally, the destination entry has not been dropped yet " +"in the transmit path. Therefore, the destination entry does not need to be " +"artificially held via B<netif_keep_dst>() for a classful qdisc until the " +"I<skb> is freed." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper is available only if the kernel was compiled with " +"B<CONFIG_IP_ROUTE_CLASSID> configuration option." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The realm of the route for the packet associated to I<skb>, or 0 if none was " +"found." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_perf_event_output(void *>I<ctx>B<, struct bpf_map *>I<map>B<, u64 >I<flags>B<, void *>I<data>B<, u64 >I<size>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Write raw I<data> blob into a special BPF perf event held by I<map> of type " +"B<BPF_MAP_TYPE_PERF_EVENT_ARRAY>\\&. This perf event must have the following " +"attributes: B<PERF_SAMPLE_RAW> as B<sample_type>, B<PERF_TYPE_SOFTWARE> as " +"B<type>, and B<PERF_COUNT_SW_BPF_OUTPUT> as B<config>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The I<flags> are used to indicate the index in I<map> for which the value " +"must be put, masked with B<BPF_F_INDEX_MASK>\\&. Alternatively, I<flags> " +"can be set to B<BPF_F_CURRENT_CPU> to indicate that the index of the current " +"CPU core should be used." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The value to write, of I<size>, is passed through eBPF stack and pointed by " +"I<data>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "The context of the program I<ctx> needs also be passed to the helper." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"On user space, a program willing to read the values needs to call " +"B<perf_event_open>() on the perf event (either for one or for all CPUs) and " +"to store the file descriptor into the I<map>\\&. This must be done before " +"the eBPF program can send data into it. An example is available in file " +"I<samples/bpf/trace_output_user.c> in the Linux kernel source tree (the eBPF " +"program counterpart is in I<samples/bpf/trace_output_kern.c>)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<bpf_perf_event_output>() achieves better performance than " +"B<bpf_trace_printk>() for sharing data with user space, and is much better " +"suitable for streaming data from eBPF programs." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Note that this helper is not restricted to tracing use cases and can be used " +"with programs attached to TC or XDP as well, where it allows for passing " +"data to user space listeners. Data can be:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Only custom structs," +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Only the packet payload, or" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "A combination of both." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_skb_load_bytes(const void *>I<skb>B<, u32 >I<offset>B<, void *>I<to>B<, u32 >I<len>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper was provided as an easy way to load data from a packet. It can " +"be used to load I<len> bytes from I<offset> from the packet associated to " +"I<skb>, into the buffer pointed by I<to>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"Since Linux 4.7, usage of this helper has mostly been replaced by \"direct " +"packet access\", enabling packet data to be manipulated with I<skb>B<-" +"E<gt>data> and I<skb>B<-E<gt>data_end> pointing respectively to the first " +"byte of packet data and to the byte after the last byte of packet data. " +"However, it remains useful if one wishes to read large quantities of data at " +"once from a packet into the eBPF stack." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_get_stackid(void *>I<ctx>B<, struct bpf_map *>I<map>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Walk a user or a kernel stack and return its id. To achieve this, the helper " +"needs I<ctx>, which is a pointer to the context on which the tracing program " +"is executed, and a pointer to a I<map> of type " +"B<BPF_MAP_TYPE_STACK_TRACE>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The last argument, I<flags>, holds the number of stack frames to skip (from " +"0 to 255), masked with B<BPF_F_SKIP_FIELD_MASK>\\&. The next bits can be " +"used to set a combination of the following flags:" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<BPF_F_USER_STACK>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Collect a user space stack instead of a kernel stack." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<BPF_F_FAST_STACK_CMP>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Compare stacks by hash only." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<BPF_F_REUSE_STACKID>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"If two different stacks hash into the same I<stackid>, discard the old one." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The stack id retrieved is a 32 bit long integer handle which can be further " +"combined with other data (including other stack ids) and used as a key into " +"maps. This can be useful for generating a variety of graphs (such as flame " +"graphs or off-cpu graphs)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"For walking a stack, this helper is an improvement over B<bpf_probe_read>(), " +"which can be used with unrolled loops but is not efficient and consumes a " +"lot of eBPF instructions. Instead, B<bpf_get_stackid>() can collect up to " +"B<PERF_MAX_STACK_DEPTH> both kernel and user frames. Note that this limit " +"can be controlled with the B<sysctl> program, and that it should be manually " +"increased in order to profile long user stacks (such as stacks for Java " +"programs). To do so, use:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "" +"^\".ft C$\n" +"# sysctl kernel.perf_event_max_stack=E<lt>new valueE<gt>\n" +"^\".ft P$\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The positive or null stack id on success, or a negative error in case of " +"failure." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<s64 bpf_csum_diff(__be32 *>I<from>B<, u32 >I<from_size>B<, __be32 *>I<to>B<, u32 >I<to_size>B<, __wsum >I<seed>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Compute a checksum difference, from the raw buffer pointed by I<from>, of " +"length I<from_size> (that must be a multiple of 4), towards the raw buffer " +"pointed by I<to>, of size I<to_size> (same remark). An optional I<seed> can " +"be added to the value (this can be cascaded, the seed may come from a " +"previous call to the helper)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "This is flexible enough to be used in several ways:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"With I<from_size> == 0, I<to_size> E<gt> 0 and I<seed> set to checksum, it " +"can be used when pushing new data." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"With I<from_size> E<gt> 0, I<to_size> == 0 and I<seed> set to checksum, it " +"can be used when removing data from a packet." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"With I<from_size> E<gt> 0, I<to_size> E<gt> 0 and I<seed> set to 0, it can " +"be used to compute a diff. Note that I<from_size> and I<to_size> do not need " +"to be equal." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper can be used in combination with B<bpf_l3_csum_replace>() and " +"B<bpf_l4_csum_replace>(), to which one can feed in the difference computed " +"with B<bpf_csum_diff>()." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "The checksum result, or a negative error code in case of failure." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_skb_get_tunnel_opt(struct sk_buff *>I<skb>B<, void *>I<opt>B<, u32 >I<size>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Retrieve tunnel options metadata for the packet associated to I<skb>, and " +"store the raw tunnel option data to the buffer I<opt> of I<size>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"This helper can be used with encapsulation devices that can operate in " +"\"collect metadata\" mode (please refer to the related note in the " +"description of B<bpf_skb_get_tunnel_key>() for more details). A particular " +"example where this can be used is in combination with the Geneve " +"encapsulation protocol, where it allows for pushing (with " +"B<bpf_skb_get_tunnel_opt>() helper) and retrieving arbitrary TLVs (Type-" +"Length-Value headers) from the eBPF program. This allows for full " +"customization of these headers." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "The size of the option data retrieved." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_skb_set_tunnel_opt(struct sk_buff *>I<skb>B<, void *>I<opt>B<, u32 >I<size>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Set tunnel options metadata for the packet associated to I<skb> to the " +"option data contained in the raw buffer I<opt> of I<size>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"See also the description of the B<bpf_skb_get_tunnel_opt>() helper for " +"additional information." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_skb_change_proto(struct sk_buff *>I<skb>B<, __be16 >I<proto>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Change the protocol of the I<skb> to I<proto>\\&. Currently supported are " +"transition from IPv4 to IPv6, and from IPv6 to IPv4. The helper takes care " +"of the groundwork for the transition, including resizing the socket buffer. " +"The eBPF program is expected to fill the new headers, if any, via " +"B<skb_store_bytes>() and to recompute the checksums with " +"B<bpf_l3_csum_replace>() and B<bpf_l4_csum_replace>(). The main case for " +"this helper is to perform NAT64 operations out of an eBPF program." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Internally, the GSO type is marked as dodgy so that headers are checked and " +"segments are recalculated by the GSO/GRO engine. The size for GSO target is " +"adapted as well." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"All values for I<flags> are reserved for future usage, and must be left at " +"zero." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_skb_change_type(struct sk_buff *>I<skb>B<, u32 >I<type>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Change the packet type for the packet associated to I<skb>\\&. This comes " +"down to setting I<skb>B<-E<gt>pkt_type> to I<type>, except the eBPF program " +"does not have a write access to I<skb>B<-E<gt>pkt_type> beside this helper. " +"Using a helper here allows for graceful handling of errors." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The major use case is to change incoming I<skb*s to **PACKET_HOST*> in a " +"programmatic way instead of having to recirculate via B<redirect>(..., " +"B<BPF_F_INGRESS>), for example." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Note that I<type> only allows certain values. At this time, they are:" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<PACKET_HOST>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Packet is for us." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<PACKET_BROADCAST>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Send packet to all." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<PACKET_MULTICAST>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Send packet to group." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<PACKET_OTHERHOST>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Send packet to someone else." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_skb_under_cgroup(struct sk_buff *>I<skb>B<, struct bpf_map *>I<map>B<, u32 >I<index>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Check whether I<skb> is a descendant of the cgroup2 held by I<map> of type " +"B<BPF_MAP_TYPE_CGROUP_ARRAY>, at I<index>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "The return value depends on the result of the test, and can be:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "0, if the I<skb> failed the cgroup2 descendant test." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "1, if the I<skb> succeeded the cgroup2 descendant test." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "A negative error code, if an error occurred." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u32 bpf_get_hash_recalc(struct sk_buff *>I<skb>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Retrieve the hash of the packet, I<skb>B<-E<gt>hash>\\&. If it is not set, " +"in particular if the hash was cleared due to mangling, recompute this hash. " +"Later accesses to the hash can be done directly with I<skb>B<-E<gt>hash>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Calling B<bpf_set_hash_invalid>(), changing a packet prototype with " +"B<bpf_skb_change_proto>(), or calling B<bpf_skb_store_bytes>() with the " +"B<BPF_F_INVALIDATE_HASH> are actions susceptible to clear the hash and to " +"trigger a new computation for the next call to B<bpf_get_hash_recalc>()." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "The 32-bit hash." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u64 bpf_get_current_task(void)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Get the current task." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "A pointer to the current task struct." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_probe_write_user(void *>I<dst>B<, const void *>I<src>B<, u32 >I<len>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Attempt in a safe way to write I<len> bytes from the buffer I<src> to I<dst> " +"in memory. It only works for threads that are in user context, and I<dst> " +"must be a valid user space address." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper should not be used to implement any kind of security mechanism " +"because of TOC-TOU attacks, but rather to debug, divert, and manipulate " +"execution of semi-cooperative processes." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Keep in mind that this feature is meant for experiments, and it has a risk " +"of crashing the system and running programs. Therefore, when an eBPF " +"program using this helper is attached, a warning including PID and process " +"name is printed to kernel logs." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_current_task_under_cgroup(struct bpf_map *>I<map>B<, u32 >I<index>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Check whether the probe is being run is the context of a given subset of the " +"cgroup2 hierarchy. The cgroup2 to test is held by I<map> of type " +"B<BPF_MAP_TYPE_CGROUP_ARRAY>, at I<index>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "1, if current task belongs to the cgroup2." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "0, if current task does not belong to the cgroup2." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_skb_change_tail(struct sk_buff *>I<skb>B<, u32 >I<len>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Resize (trim or grow) the packet associated to I<skb> to the new I<len>\\&. " +"The I<flags> are reserved for future usage, and must be left at zero." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The basic idea is that the helper performs the needed work to change the " +"size of the packet, then the eBPF program rewrites the rest via helpers like " +"B<bpf_skb_store_bytes>(), B<bpf_l3_csum_replace>(), " +"B<bpf_l3_csum_replace>() and others. This helper is a slow path utility " +"intended for replies with control messages. And because it is targeted for " +"slow path, the helper itself can afford to be slow: it implicitly " +"linearizes, unclones and drops offloads from the I<skb>\\&." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_skb_pull_data(struct sk_buff *>I<skb>B<, u32 >I<len>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Pull in non-linear data in case the I<skb> is non-linear and not all of " +"I<len> are part of the linear section. Make I<len> bytes from I<skb> " +"readable and writable. If a zero value is passed for I<len>, then all bytes " +"in the linear part of I<skb> will be made readable and writable." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper is only needed for reading and writing with direct packet access." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"For direct packet access, testing that offsets to access are within packet " +"boundaries (test on I<skb>B<-E<gt>data_end>) is susceptible to fail if " +"offsets are invalid, or if the requested data is in non-linear parts of the " +"I<skb>\\&. On failure the program can just bail out, or in the case of a non-" +"linear buffer, use a helper to make the data available. The " +"B<bpf_skb_load_bytes>() helper is a first solution to access the data. " +"Another one consists in using B<bpf_skb_pull_data> to pull in once the non-" +"linear parts, then retesting and eventually access the data." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"At the same time, this also makes sure the I<skb> is uncloned, which is a " +"necessary condition for direct write. As this needs to be an invariant for " +"the write part only, the verifier detects writes and adds a prologue that is " +"calling B<bpf_skb_pull_data()> to effectively unclone the I<skb> from the " +"very beginning in case it is indeed cloned." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<s64 bpf_csum_update(struct sk_buff *>I<skb>B<, __wsum >I<csum>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Add the checksum I<csum> into I<skb>B<-E<gt>csum> in case the driver has " +"supplied a checksum for the entire packet into that field. Return an error " +"otherwise. This helper is intended to be used in combination with " +"B<bpf_csum_diff>(), in particular when the checksum needs to be updated " +"after data has been written into the packet through direct packet access." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "The checksum on success, or a negative error code in case of failure." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<void bpf_set_hash_invalid(struct sk_buff *>I<skb>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Invalidate the current I<skb>B<-E<gt>hash>\\&. It can be used after mangling " +"on headers through direct packet access, in order to indicate that the hash " +"is outdated and to trigger a recalculation the next time the kernel tries to " +"access this hash or when the B<bpf_get_hash_recalc>() helper is called." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "void." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_get_numa_node_id(void)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Return the id of the current NUMA node. The primary use case for this helper " +"is the selection of sockets for the local NUMA node, when the program is " +"attached to sockets using the B<SO_ATTACH_REUSEPORT_EBPF> option (see also " +"B<socket(7)>), but the helper is also available to other eBPF program types, " +"similarly to B<bpf_get_smp_processor_id>()." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "The id of current NUMA node." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_skb_change_head(struct sk_buff *>I<skb>B<, u32 >I<len>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Grows headroom of packet associated to I<skb> and adjusts the offset of the " +"MAC header accordingly, adding I<len> bytes of space. It automatically " +"extends and reallocates memory as required." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper can be used on a layer 3 I<skb> to push a MAC header for " +"redirection into a layer 2 device." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_xdp_adjust_head(struct xdp_buff *>I<xdp_md>B<, int >I<delta>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Adjust (move) I<xdp_md>B<-E<gt>data> by I<delta> bytes. Note that it is " +"possible to use a negative value for I<delta>\\&. This helper can be used to " +"prepare the packet for pushing or popping headers." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_probe_read_str(void *>I<dst>B<, u32 >I<size>B<, const void *>I<unsafe_ptr>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Copy a NUL terminated string from an unsafe kernel address I<unsafe_ptr> to " +"I<dst>\\&. See B<bpf_probe_read_kernel_str>() for more details." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Generally, use B<bpf_probe_read_user_str>() or " +"B<bpf_probe_read_kernel_str>() instead." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"On success, the strictly positive length of the string, including the " +"trailing NUL character. On error, a negative value." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u64 bpf_get_socket_cookie(struct sk_buff *>I<skb>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"If the B<struct sk_buff> pointed by I<skb> has a known socket, retrieve the " +"cookie (generated by the kernel) of this socket. If no cookie has been set " +"yet, generate a new cookie. Once generated, the socket cookie remains stable " +"for the life of the socket. This helper can be useful for monitoring per " +"socket networking traffic statistics as it provides a global socket " +"identifier that can be assumed unique." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"A 8-byte long unique number on success, or 0 if the socket field is missing " +"inside I<skb>\\&." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u64 bpf_get_socket_cookie(struct bpf_sock_addr *>I<ctx>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Equivalent to bpf_get_socket_cookie() helper that accepts I<skb>, but gets " +"socket from B<struct bpf_sock_addr> context." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "A 8-byte long unique number." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u64 bpf_get_socket_cookie(struct bpf_sock_ops *>I<ctx>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Equivalent to B<bpf_get_socket_cookie>() helper that accepts I<skb>, but " +"gets socket from B<struct bpf_sock_ops> context." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u64 bpf_get_socket_cookie(struct sock *>I<sk>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Equivalent to B<bpf_get_socket_cookie>() helper that accepts I<sk>, but gets " +"socket from a BTF B<struct sock>\\&. This helper also works for sleepable " +"programs." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "A 8-byte long unique number or 0 if I<sk> is NULL." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u32 bpf_get_socket_uid(struct sk_buff *>I<skb>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Get the owner UID of the socked associated to I<skb>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The owner UID of the socket associated to I<skb>\\&. If the socket is " +"B<NULL>, or if it is not a full socket (i.e. if it is a time-wait or a " +"request socket instead), B<overflowuid> value is returned (note that " +"B<overflowuid> might also be the actual UID value for the socket)." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_set_hash(struct sk_buff *>I<skb>B<, u32 >I<hash>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Set the full hash for I<skb> (set the field I<skb>B<-E<gt>hash>) to value " +"I<hash>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "0" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_setsockopt(void *>I<bpf_socket>B<, int >I<level>B<, int >I<optname>B<, void *>I<optval>B<, int >I<optlen>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Emulate a call to B<setsockopt()> on the socket associated to I<bpf_socket>, " +"which must be a full socket. The I<level> at which the option resides and " +"the name I<optname> of the option must be specified, see B<setsockopt(2)> " +"for more information. The option value of length I<optlen> is pointed by " +"I<optval>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "I<bpf_socket> should be one of the following:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<struct bpf_sock_ops> for B<BPF_PROG_TYPE_SOCK_OPS>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<struct bpf_sock_addr> for B<BPF_CGROUP_INET4_CONNECT> and " +"B<BPF_CGROUP_INET6_CONNECT>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper actually implements a subset of B<setsockopt()>\\&. It supports " +"the following I<level>s:" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"B<SOL_SOCKET>, which supports the following I<optname>s: B<SO_RCVBUF>, " +"B<SO_SNDBUF>, B<SO_MAX_PACING_RATE>, B<SO_PRIORITY>, B<SO_RCVLOWAT>, " +"B<SO_MARK>, B<SO_BINDTODEVICE>, B<SO_KEEPALIVE>, B<SO_REUSEADDR>, " +"B<SO_REUSEPORT>, B<SO_BINDTOIFINDEX>, B<SO_TXREHASH>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"B<IPPROTO_TCP>, which supports the following I<optname>s: B<TCP_CONGESTION>, " +"B<TCP_BPF_IW>, B<TCP_BPF_SNDCWND_CLAMP>, B<TCP_SAVE_SYN>, B<TCP_KEEPIDLE>, " +"B<TCP_KEEPINTVL>, B<TCP_KEEPCNT>, B<TCP_SYNCNT>, B<TCP_USER_TIMEOUT>, " +"B<TCP_NOTSENT_LOWAT>, B<TCP_NODELAY>, B<TCP_MAXSEG>, B<TCP_WINDOW_CLAMP>, " +"B<TCP_THIN_LINEAR_TIMEOUTS>, B<TCP_BPF_DELACK_MAX>, B<TCP_BPF_RTO_MIN>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<IPPROTO_IP>, which supports I<optname> B<IP_TOS>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"B<IPPROTO_IPV6>, which supports the following I<optname>s: B<IPV6_TCLASS>, " +"B<IPV6_AUTOFLOWLABEL>\\&." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_skb_adjust_room(struct sk_buff *>I<skb>B<, s32 >I<len_diff>B<, u32 >I<mode>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Grow or shrink the room for data in the packet associated to I<skb> by " +"I<len_diff>, and according to the selected I<mode>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"By default, the helper will reset any offloaded checksum indicator of the " +"skb to CHECKSUM_NONE. This can be avoided by the following flag:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<BPF_F_ADJ_ROOM_NO_CSUM_RESET>: Do not reset offloaded checksum data of the " +"skb to CHECKSUM_NONE." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "There are two supported modes at this time:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<BPF_ADJ_ROOM_MAC>: Adjust room at the mac layer (room space is added or " +"removed between the layer 2 and layer 3 headers)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<BPF_ADJ_ROOM_NET>: Adjust room at the network layer (room space is added " +"or removed between the layer 3 and layer 4 headers)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "The following flags are supported at this time:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<BPF_F_ADJ_ROOM_FIXED_GSO>: Do not adjust gso_size. Adjusting mss in this " +"way is not allowed for datagrams." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<BPF_F_ADJ_ROOM_ENCAP_L3_IPV4>, B<BPF_F_ADJ_ROOM_ENCAP_L3_IPV6>: Any new " +"space is reserved to hold a tunnel header. Configure skb offsets and other " +"fields accordingly." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<BPF_F_ADJ_ROOM_ENCAP_L4_GRE>, B<BPF_F_ADJ_ROOM_ENCAP_L4_UDP>: Use with " +"ENCAP_L3 flags to further specify the tunnel type." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<BPF_F_ADJ_ROOM_ENCAP_L2>(I<len>): Use with ENCAP_L3/L4 flags to further " +"specify the tunnel type; I<len> is the length of the inner MAC header." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<BPF_F_ADJ_ROOM_ENCAP_L2_ETH>: Use with BPF_F_ADJ_ROOM_ENCAP_L2 flag to " +"further specify the L2 type as Ethernet." +msgstr "" + +#. type: TP +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_redirect_map(struct bpf_map *>I<map>B<, u64 >I<key>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Redirect the packet to the endpoint referenced by I<map> at index I<key>\\&. " +"Depending on its type, this I<map> can contain references to net devices " +"(for forwarding packets through other ports), or to CPUs (for redirecting " +"XDP frames to another CPU; but this is only implemented for native XDP (with " +"driver support) as of this writing)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The lower two bits of I<flags> are used as the return code if the map lookup " +"fails. This is so that the return value can be one of the XDP program return " +"codes up to B<XDP_TX>, as chosen by the caller. The higher bits of I<flags> " +"can be set to BPF_F_BROADCAST or BPF_F_EXCLUDE_INGRESS as defined below." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"With BPF_F_BROADCAST the packet will be broadcasted to all the interfaces in " +"the map, with BPF_F_EXCLUDE_INGRESS the ingress interface will be excluded " +"when do broadcasting." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"See also B<bpf_redirect>(), which only supports redirecting to an ifindex, " +"but doesn\\(aqt require a map to do so." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<XDP_REDIRECT> on success, or the value of the two lower bits of the " +"I<flags> argument on error." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_sk_redirect_map(struct sk_buff *>I<skb>B<, struct bpf_map *>I<map>B<, u32 >I<key>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Redirect the packet to the socket referenced by I<map> (of type " +"B<BPF_MAP_TYPE_SOCKMAP>) at index I<key>\\&. Both ingress and egress " +"interfaces can be used for redirection. The B<BPF_F_INGRESS> value in " +"I<flags> is used to make the distinction (ingress path is selected if the " +"flag is present, egress path otherwise). This is the only flag supported for " +"now." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<SK_PASS> on success, or B<SK_DROP> on error." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_sock_map_update(struct bpf_sock_ops *>I<skops>B<, struct bpf_map *>I<map>B<, void *>I<key>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Add an entry to, or update a I<map> referencing sockets. The I<skops> is " +"used as a new value for the entry associated to I<key>\\&. I<flags> is one " +"of:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"If the I<map> has eBPF programs (parser and verdict), those will be " +"inherited by the socket being added. If the socket is already attached to " +"eBPF programs, this results in an error." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_xdp_adjust_meta(struct xdp_buff *>I<xdp_md>B<, int >I<delta>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Adjust the address pointed by I<xdp_md>B<-E<gt>data_meta> by I<delta> (which " +"can be positive or negative). Note that this operation modifies the address " +"stored in I<xdp_md>B<-E<gt>data>, so the latter must be loaded only after " +"the helper has been called." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The use of I<xdp_md>B<-E<gt>data_meta> is optional and programs are not " +"required to use it. The rationale is that when the packet is processed with " +"XDP (e.g. as DoS filter), it is possible to push further meta data along " +"with it before passing to the stack, and to give the guarantee that an " +"ingress eBPF program attached as a TC classifier on the same device can pick " +"this up for further post-processing. Since TC works with socket buffers, it " +"remains possible to set from XDP the B<mark> or B<priority> pointers, or " +"other pointers for the socket buffer. Having this scratch space generic and " +"programmable allows for more flexibility as the user is free to store " +"whatever meta data they need." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_perf_event_read_value(struct bpf_map *>I<map>B<, u64 >I<flags>B<, struct bpf_perf_event_value *>I<buf>B<, u32 >I<buf_size>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Read the value of a perf event counter, and store it into I<buf> of size " +"I<buf_size>\\&. This helper relies on a I<map> of type " +"B<BPF_MAP_TYPE_PERF_EVENT_ARRAY>\\&. The nature of the perf event counter is " +"selected when I<map> is updated with perf event file descriptors. The I<map> " +"is an array whose size is the number of available CPUs, and each cell " +"contains a value relative to one CPU. The value to retrieve is indicated by " +"I<flags>, that contains the index of the CPU to look up, masked with " +"B<BPF_F_INDEX_MASK>\\&. Alternatively, I<flags> can be set to " +"B<BPF_F_CURRENT_CPU> to indicate that the value for the current CPU should " +"be retrieved." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper behaves in a way close to B<bpf_perf_event_read>() helper, save " +"that instead of just returning the value observed, it fills the I<buf> " +"structure. This allows for additional data to be retrieved: in particular, " +"the enabled and running times (in I<buf>B<-E<gt>enabled> and I<buf>B<-" +"E<gt>running>, respectively) are copied. In general, " +"B<bpf_perf_event_read_value>() is recommended over B<bpf_perf_event_read>(), " +"which has some ABI issues and provides fewer functionalities." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"These values are interesting, because hardware PMU (Performance Monitoring " +"Unit) counters are limited resources. When there are more PMU based perf " +"events opened than available counters, kernel will multiplex these events so " +"each event gets certain percentage (but not all) of the PMU time. In case " +"that multiplexing happens, the number of samples or counter value will not " +"reflect the case compared to when no multiplexing occurs. This makes " +"comparison between different runs difficult. Typically, the counter value " +"should be normalized before comparing to other experiments. The usual " +"normalization is done as follows." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "" +"^\".ft C$\n" +"normalized_counter = counter * t_enabled / t_running\n" +"^\".ft P$\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Where t_enabled is the time enabled for event and t_running is the time " +"running for event since last normalization. The enabled and running times " +"are accumulated since the perf event open. To achieve scaling factor between " +"two invocations of an eBPF program, users can use CPU id as the key (which " +"is typical for perf array usage model) to remember the previous value and do " +"the calculation inside the eBPF program." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_perf_prog_read_value(struct bpf_perf_event_data *>I<ctx>B<, struct bpf_perf_event_value *>I<buf>B<, u32 >I<buf_size>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"For en eBPF program attached to a perf event, retrieve the value of the " +"event counter associated to I<ctx> and store it in the structure pointed by " +"I<buf> and of size I<buf_size>\\&. Enabled and running times are also stored " +"in the structure (see description of helper B<bpf_perf_event_read_value>() " +"for more details)." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_getsockopt(void *>I<bpf_socket>B<, int >I<level>B<, int >I<optname>B<, void *>I<optval>B<, int >I<optlen>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Emulate a call to B<getsockopt()> on the socket associated to I<bpf_socket>, " +"which must be a full socket. The I<level> at which the option resides and " +"the name I<optname> of the option must be specified, see B<getsockopt(2)> " +"for more information. The retrieved value is stored in the structure " +"pointed by I<opval> and of length I<optlen>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"This helper actually implements a subset of B<getsockopt()>\\&. It supports " +"the same set of I<optname>s that is supported by the B<bpf_setsockopt>() " +"helper. The exceptions are B<TCP_BPF_*> is B<bpf_setsockopt>() only and " +"B<TCP_SAVED_SYN> is B<bpf_getsockopt>() only." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_override_return(struct pt_regs *>I<regs>B<, u64 >I<rc>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Used for error injection, this helper uses kprobes to override the return " +"value of the probed function, and to set it to I<rc>\\&. The first argument " +"is the context I<regs> on which the kprobe works." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper works by setting the PC (program counter) to an override " +"function which is run in place of the original probed function. This means " +"the probed function is not run at all. The replacement function just returns " +"with the required value." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper has security implications, and thus is subject to restrictions. " +"It is only available if the kernel was compiled with the " +"B<CONFIG_BPF_KPROBE_OVERRIDE> configuration option, and in this case it only " +"works on functions tagged with B<ALLOW_ERROR_INJECTION> in the kernel code." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Also, the helper is only available for the architectures having the " +"CONFIG_FUNCTION_ERROR_INJECTION option. As of this writing, x86 architecture " +"is the only one to support this feature." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_sock_ops_cb_flags_set(struct bpf_sock_ops *>I<bpf_sock>B<, int >I<argval>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Attempt to set the value of the B<bpf_sock_ops_cb_flags> field for the full " +"TCP socket associated to I<bpf_sock_ops> to I<argval>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The primary use of this field is to determine if there should be calls to " +"eBPF programs of type B<BPF_PROG_TYPE_SOCK_OPS> at various points in the TCP " +"code. A program of the same type can change its value, per connection and as " +"necessary, when the connection is established. This field is directly " +"accessible for reading, but this helper must be used for updates in order to " +"return an error if an eBPF program tries to set a callback that is not " +"supported in the current kernel." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "I<argval> is a flag array which can combine these flags:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<BPF_SOCK_OPS_RTO_CB_FLAG> (retransmission time out)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<BPF_SOCK_OPS_RETRANS_CB_FLAG> (retransmission)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<BPF_SOCK_OPS_STATE_CB_FLAG> (TCP state change)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<BPF_SOCK_OPS_RTT_CB_FLAG> (every RTT)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Therefore, this function can be used to clear a callback flag by setting the " +"appropriate bit to zero. e.g. to disable the RTO callback:" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<bpf_sock_ops_cb_flags_set(bpf_sock,>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<bpf_sock-E<gt>bpf_sock_ops_cb_flags & ~BPF_SOCK_OPS_RTO_CB_FLAG)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Here are some examples of where one could call such eBPF program:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "When RTO fires." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "When a packet is retransmitted." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "When the connection terminates." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "When a packet is sent." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "When a packet is received." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Code B<-EINVAL> if the socket is not a full TCP socket; otherwise, a " +"positive number containing the bits that could not be set is returned (which " +"comes down to 0 if all bits were set as required)." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_msg_redirect_map(struct sk_msg_buff *>I<msg>B<, struct bpf_map *>I<map>B<, u32 >I<key>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper is used in programs implementing policies at the socket level. " +"If the message I<msg> is allowed to pass (i.e. if the verdict eBPF program " +"returns B<SK_PASS>), redirect it to the socket referenced by I<map> (of type " +"B<BPF_MAP_TYPE_SOCKMAP>) at index I<key>\\&. Both ingress and egress " +"interfaces can be used for redirection. The B<BPF_F_INGRESS> value in " +"I<flags> is used to make the distinction (ingress path is selected if the " +"flag is present, egress path otherwise). This is the only flag supported for " +"now." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_msg_apply_bytes(struct sk_msg_buff *>I<msg>B<, u32 >I<bytes>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"For socket policies, apply the verdict of the eBPF program to the next " +"I<bytes> (number of bytes) of message I<msg>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "For example, this helper can be used in the following cases:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"A single B<sendmsg>() or B<sendfile>() system call contains multiple logical " +"messages that the eBPF program is supposed to read and for which it should " +"apply a verdict." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"An eBPF program only cares to read the first I<bytes> of a I<msg>\\&. If the " +"message has a large payload, then setting up and calling the eBPF program " +"repeatedly for all bytes, even though the verdict is already known, would " +"create unnecessary overhead." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"When called from within an eBPF program, the helper sets a counter internal " +"to the BPF infrastructure, that is used to apply the last verdict to the " +"next I<bytes>\\&. If I<bytes> is smaller than the current data being " +"processed from a B<sendmsg>() or B<sendfile>() system call, the first " +"I<bytes> will be sent and the eBPF program will be re-run with the pointer " +"for start of data pointing to byte number I<bytes> B<+ 1>\\&. If I<bytes> is " +"larger than the current data being processed, then the eBPF verdict will be " +"applied to multiple B<sendmsg>() or B<sendfile>() calls until I<bytes> are " +"consumed." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Note that if a socket closes with the internal counter holding a non-zero " +"value, this is not a problem because data is not being buffered for I<bytes> " +"and is sent as it is received." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_msg_cork_bytes(struct sk_msg_buff *>I<msg>B<, u32 >I<bytes>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"For socket policies, prevent the execution of the verdict eBPF program for " +"message I<msg> until I<bytes> (byte number) have been accumulated." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This can be used when one needs a specific number of bytes before a verdict " +"can be assigned, even if the data spans multiple B<sendmsg>() or " +"B<sendfile>() calls. The extreme case would be a user calling B<sendmsg>() " +"repeatedly with 1-byte long message segments. Obviously, this is bad for " +"performance, but it is still valid. If the eBPF program needs I<bytes> bytes " +"to validate a header, this helper can be used to prevent the eBPF program to " +"be called again until I<bytes> have been accumulated." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_msg_pull_data(struct sk_msg_buff *>I<msg>B<, u32 >I<start>B<, u32 >I<end>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"For socket policies, pull in non-linear data from user space for I<msg> and " +"set pointers I<msg>B<-E<gt>data> and I<msg>B<-E<gt>data_end> to I<start> and " +"I<end> bytes offsets into I<msg>, respectively." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"If a program of type B<BPF_PROG_TYPE_SK_MSG> is run on a I<msg> it can only " +"parse data that the (B<data>, B<data_end>) pointers have already consumed. " +"For B<sendmsg>() hooks this is likely the first scatterlist element. But for " +"calls relying on the B<sendpage> handler (e.g. B<sendfile>()) this will be " +"the range (B<0>, B<0>) because the data is shared with user space and by " +"default the objective is to avoid allowing user space to modify data while " +"(or after) eBPF verdict is being decided. This helper can be used to pull in " +"data and to set the start and end pointer to given values. Data will be " +"copied if necessary (i.e. if data was not linear and if start and end " +"pointers do not point to the same chunk)." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_bind(struct bpf_sock_addr *>I<ctx>B<, struct sockaddr *>I<addr>B<, int >I<addr_len>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Bind the socket associated to I<ctx> to the address pointed by I<addr>, of " +"length I<addr_len>\\&. This allows for making outgoing connection from the " +"desired IP address, which can be useful for example when all processes " +"inside a cgroup should use one single IP address on a host that has multiple " +"IP configured." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"This helper works for IPv4 and IPv6, TCP and UDP sockets. The domain " +"(I<addr>B<-E<gt>sa_family>) must be B<AF_INET> (or B<AF_INET6>). It\\(aqs " +"advised to pass zero port (B<sin_port> or B<sin6_port>) which triggers " +"IP_BIND_ADDRESS_NO_PORT-like behavior and lets the kernel efficiently pick " +"up an unused port as long as 4-tuple is unique. Passing non-zero port might " +"lead to degraded performance." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_xdp_adjust_tail(struct xdp_buff *>I<xdp_md>B<, int >I<delta>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Adjust (move) I<xdp_md>B<-E<gt>data_end> by I<delta> bytes. It is possible " +"to both shrink and grow the packet tail. Shrink done via I<delta> being a " +"negative integer." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_skb_get_xfrm_state(struct sk_buff *>I<skb>B<, u32 >I<index>B<, struct bpf_xfrm_state *>I<xfrm_state>B<, u32 >I<size>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"Retrieve the XFRM state (IP transform framework, see also B<ip-xfrm(8)>) at " +"I<index> in XFRM \"security path\" for I<skb>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The retrieved value is stored in the B<struct bpf_xfrm_state> pointed by " +"I<xfrm_state> and of length I<size>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper is available only if the kernel was compiled with B<CONFIG_XFRM> " +"configuration option." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_get_stack(void *>I<ctx>B<, void *>I<buf>B<, u32 >I<size>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Return a user or a kernel stack in bpf program provided buffer. To achieve " +"this, the helper needs I<ctx>, which is a pointer to the context on which " +"the tracing program is executed. To store the stacktrace, the bpf program " +"provides I<buf> with a nonnegative I<size>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The last argument, I<flags>, holds the number of stack frames to skip (from " +"0 to 255), masked with B<BPF_F_SKIP_FIELD_MASK>\\&. The next bits can be " +"used to set the following flags:" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<BPF_F_USER_BUILD_ID>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Collect (build_id, file_offset) instead of ips for user stack, only valid if " +"B<BPF_F_USER_STACK> is also specified." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"I<file_offset> is an offset relative to the beginning of the executable or " +"shared object file backing the vma which the I<ip> falls in. It is I<not> an " +"offset relative to that object\\(aqs base address. Accordingly, it must be " +"adjusted by adding (sh_addr - sh_offset), where sh_{addr,offset} correspond " +"to the executable section containing I<file_offset> in the object, for " +"comparisons to symbols\\(aq st_value to be valid." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<bpf_get_stack>() can collect up to B<PERF_MAX_STACK_DEPTH> both kernel and " +"user frames, subject to sufficient large buffer size. Note that this limit " +"can be controlled with the B<sysctl> program, and that it should be manually " +"increased in order to profile long user stacks (such as stacks for Java " +"programs). To do so, use:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The non-negative copied I<buf> length equal to or less than I<size> on " +"success, or a negative error in case of failure." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_skb_load_bytes_relative(const void *>I<skb>B<, u32 >I<offset>B<, void *>I<to>B<, u32 >I<len>B<, u32 >I<start_header>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper is similar to B<bpf_skb_load_bytes>() in that it provides an " +"easy way to load I<len> bytes from I<offset> from the packet associated to " +"I<skb>, into the buffer pointed by I<to>\\&. The difference to " +"B<bpf_skb_load_bytes>() is that a fifth argument I<start_header> exists in " +"order to select a base offset to start from. I<start_header> can be one of:" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<BPF_HDR_START_MAC>" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "Base offset to load data from is I<skb>\\(aqs mac header." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<BPF_HDR_START_NET>" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "Base offset to load data from is I<skb>\\(aqs network header." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"In general, \"direct packet access\" is the preferred method to access " +"packet data, however, this helper is in particular useful in socket filters " +"where I<skb>B<-E<gt>data> does not always point to the start of the mac " +"header and where \"direct packet access\" is not available." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_fib_lookup(void *>I<ctx>B<, struct bpf_fib_lookup *>I<params>B<, int >I<plen>B<, u32 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Do FIB lookup in kernel tables using parameters in I<params>\\&. If lookup " +"is successful and result shows packet is to be forwarded, the neighbor " +"tables are searched for the nexthop. If successful (ie., FIB lookup shows " +"forwarding and nexthop is resolved), the nexthop address is returned in " +"ipv4_dst or ipv6_dst based on family, smac is set to mac address of egress " +"device, dmac is set to nexthop mac address, rt_metric is set to metric from " +"route (IPv4/IPv6 only), and ifindex is set to the device index of the " +"nexthop from the FIB lookup." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"I<plen> argument is the size of the passed in struct. I<flags> argument can " +"be a combination of one or more of the following values:" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<BPF_FIB_LOOKUP_DIRECT>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Do a direct table lookup vs full lookup using FIB rules." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<BPF_FIB_LOOKUP_OUTPUT>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Perform lookup from an egress perspective (default is ingress)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"I<ctx> is either B<struct xdp_md> for XDP programs or B<struct sk_buff> tc " +"cls_act programs." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "E<lt> 0 if any input argument is invalid" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "0 on success (packet is forwarded, nexthop neighbor exists)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"E<gt> 0 one of B<BPF_FIB_LKUP_RET_> codes explaining why the packet is not " +"forwarded or needs assist from full stack" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"If lookup fails with BPF_FIB_LKUP_RET_FRAG_NEEDED, then the MTU was exceeded " +"and output params-E<gt>mtu_result contains the MTU." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_sock_hash_update(struct bpf_sock_ops *>I<skops>B<, struct bpf_map *>I<map>B<, void *>I<key>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Add an entry to, or update a sockhash I<map> referencing sockets. The " +"I<skops> is used as a new value for the entry associated to I<key>\\&. " +"I<flags> is one of:" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_msg_redirect_hash(struct sk_msg_buff *>I<msg>B<, struct bpf_map *>I<map>B<, void *>I<key>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper is used in programs implementing policies at the socket level. " +"If the message I<msg> is allowed to pass (i.e. if the verdict eBPF program " +"returns B<SK_PASS>), redirect it to the socket referenced by I<map> (of type " +"B<BPF_MAP_TYPE_SOCKHASH>) using hash I<key>\\&. Both ingress and egress " +"interfaces can be used for redirection. The B<BPF_F_INGRESS> value in " +"I<flags> is used to make the distinction (ingress path is selected if the " +"flag is present, egress path otherwise). This is the only flag supported for " +"now." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_sk_redirect_hash(struct sk_buff *>I<skb>B<, struct bpf_map *>I<map>B<, void *>I<key>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper is used in programs implementing policies at the skb socket " +"level. If the sk_buff I<skb> is allowed to pass (i.e. if the verdict eBPF " +"program returns B<SK_PASS>), redirect it to the socket referenced by I<map> " +"(of type B<BPF_MAP_TYPE_SOCKHASH>) using hash I<key>\\&. Both ingress and " +"egress interfaces can be used for redirection. The B<BPF_F_INGRESS> value in " +"I<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." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_lwt_push_encap(struct sk_buff *>I<skb>B<, u32 >I<type>B<, void *>I<hdr>B<, u32 >I<len>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Encapsulate the packet associated to I<skb> within a Layer 3 protocol " +"header. This header is provided in the buffer at address I<hdr>, with I<len> " +"its size in bytes. I<type> indicates the protocol of the header and can be " +"one of:" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<BPF_LWT_ENCAP_SEG6>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"IPv6 encapsulation with Segment Routing Header (B<struct ipv6_sr_hdr>). " +"I<hdr> only contains the SRH, the IPv6 header is computed by the kernel." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<BPF_LWT_ENCAP_SEG6_INLINE>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Only works if I<skb> contains an IPv6 packet. Insert a Segment Routing " +"Header (B<struct ipv6_sr_hdr>) inside the IPv6 header." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<BPF_LWT_ENCAP_IP>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"IP encapsulation (GRE/GUE/IPIP/etc). The outer header must be IPv4 or IPv6, " +"followed by zero or more additional headers, up to B<LWT_BPF_MAX_HEADROOM> " +"total bytes in all prepended headers. Please note that if " +"B<skb_is_gso>(I<skb>) is true, no more than two headers can be prepended, " +"and the inner header, if present, should be either GRE or UDP/GUE." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<BPF_LWT_ENCAP_SEG6>* types can be called by BPF programs of type " +"B<BPF_PROG_TYPE_LWT_IN>; B<BPF_LWT_ENCAP_IP> type can be called by bpf " +"programs of types B<BPF_PROG_TYPE_LWT_IN> and B<BPF_PROG_TYPE_LWT_XMIT>\\&." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_lwt_seg6_store_bytes(struct sk_buff *>I<skb>B<, u32 >I<offset>B<, const void *>I<from>B<, u32 >I<len>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Store I<len> bytes from address I<from> into the packet associated to " +"I<skb>, at I<offset>\\&. Only the flags, tag and TLVs inside the outermost " +"IPv6 Segment Routing Header can be modified through this helper." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_lwt_seg6_adjust_srh(struct sk_buff *>I<skb>B<, u32 >I<offset>B<, s32 >I<delta>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Adjust the size allocated to TLVs in the outermost IPv6 Segment Routing " +"Header contained in the packet associated to I<skb>, at position I<offset> " +"by I<delta> bytes. Only offsets after the segments are accepted. I<delta> " +"can be as well positive (growing) as negative (shrinking)." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_lwt_seg6_action(struct sk_buff *>I<skb>B<, u32 >I<action>B<, void *>I<param>B<, u32 >I<param_len>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Apply an IPv6 Segment Routing action of type I<action> to the packet " +"associated to I<skb>\\&. Each action takes a parameter contained at address " +"I<param>, and of length I<param_len> bytes. I<action> can be one of:" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<SEG6_LOCAL_ACTION_END_X>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"End.X action: Endpoint with Layer-3 cross-connect. Type of I<param>: " +"B<struct in6_addr>\\&." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<SEG6_LOCAL_ACTION_END_T>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"End.T action: Endpoint with specific IPv6 table lookup. Type of I<param>: " +"B<int>\\&." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<SEG6_LOCAL_ACTION_END_B6>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"End.B6 action: Endpoint bound to an SRv6 policy. Type of I<param>: B<struct " +"ipv6_sr_hdr>\\&." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<SEG6_LOCAL_ACTION_END_B6_ENCAP>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"End.B6.Encap action: Endpoint bound to an SRv6 encapsulation policy. Type " +"of I<param>: B<struct ipv6_sr_hdr>\\&." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_rc_repeat(void *>I<ctx>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper is used in programs implementing IR decoding, to report a " +"successfully decoded repeat key message. This delays the generation of a key " +"up event for previously generated key down event." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Some IR protocols like NEC have a special IR message for repeating last " +"button, for when a button is held down." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "The I<ctx> should point to the lirc sample as passed into the program." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"This helper is only available is the kernel was compiled with the " +"B<CONFIG_BPF_LIRC_MODE2> configuration option set to \"B<y>\"." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_rc_keydown(void *>I<ctx>B<, u32 >I<protocol>B<, u64 >I<scancode>B<, u32 >I<toggle>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper is used in programs implementing IR decoding, to report a " +"successfully decoded key press with I<scancode>, I<toggle> value in the " +"given I<protocol>\\&. The scancode will be translated to a keycode using the " +"rc keymap, and reported as an input key down event. After a period a key up " +"event is generated. This period can be extended by calling either " +"B<bpf_rc_keydown>() again with the same values, or calling " +"B<bpf_rc_repeat>()." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Some protocols include a toggle bit, in case the button was released and " +"pressed again between consecutive scancodes." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The I<protocol> is the decoded protocol number (see B<enum rc_proto> for " +"some predefined values)." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u64 bpf_skb_cgroup_id(struct sk_buff *>I<skb>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Return the cgroup v2 id of the socket associated with the I<skb>\\&. This " +"is roughly similar to the B<bpf_get_cgroup_classid>() helper for cgroup v1 " +"by providing a tag resp. identifier that can be matched on or used for map " +"lookups e.g. to implement policy. The cgroup v2 id of a given path in the " +"hierarchy is exposed in user space through the f_handle API in order to get " +"to the same 64-bit id." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper can be used on TC egress path, but not on ingress, and is " +"available only if the kernel was compiled with the " +"B<CONFIG_SOCK_CGROUP_DATA> configuration option." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "The id is returned or 0 in case the id could not be retrieved." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u64 bpf_get_current_cgroup_id(void)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Get the current cgroup id based on the cgroup within which the current task " +"is running." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"A 64-bit integer containing the current cgroup id based on the cgroup within " +"which the current task is running." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<void *bpf_get_local_storage(void *>I<map>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Get the pointer to the local storage area. The type and the size of the " +"local storage is defined by the I<map> argument. The I<flags> meaning is " +"specific for each map type, and has to be 0 for cgroup local storage." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Depending on the BPF program type, a local storage area can be shared " +"between multiple instances of the BPF program, running simultaneously." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"A user should care about the synchronization by himself. For example, by " +"using the B<BPF_ATOMIC> instructions to alter the shared data." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "A pointer to the local storage area." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_sk_select_reuseport(struct sk_reuseport_md *>I<reuse>B<, struct bpf_map *>I<map>B<, void *>I<key>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Select a B<SO_REUSEPORT> socket from a B<BPF_MAP_TYPE_REUSEPORT_SOCKARRAY> " +"I<map>\\&. It checks the selected socket is matching the incoming request " +"in the socket buffer." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u64 bpf_skb_ancestor_cgroup_id(struct sk_buff *>I<skb>B<, int >I<ancestor_level>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Return id of cgroup v2 that is ancestor of cgroup associated with the I<skb> " +"at the I<ancestor_level>\\&. The root cgroup is at I<ancestor_level> zero " +"and each step down the hierarchy increments the level. If I<ancestor_level> " +"== level of cgroup associated with I<skb>, then return value will be same as " +"that of B<bpf_skb_cgroup_id>()." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The helper is useful to implement policies based on cgroups that are upper " +"in hierarchy than immediate cgroup associated with I<skb>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The format of returned id and helper limitations are same as in " +"B<bpf_skb_cgroup_id>()." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<struct bpf_sock *bpf_sk_lookup_tcp(void *>I<ctx>B<, struct bpf_sock_tuple *>I<tuple>B<, u32 >I<tuple_size>B<, u64 >I<netns>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Look for TCP socket matching I<tuple>, optionally in a child network " +"namespace I<netns>\\&. The return value must be checked, and if non-B<NULL>, " +"released via B<bpf_sk_release>()." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The I<ctx> should point to the context of the program, such as the skb or " +"socket (depending on the hook in use). This is used to determine the base " +"network namespace for the lookup." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "I<tuple_size> must be one of:" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<sizeof(>I<tuple>B<-E<gt>ipv4)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Look for an IPv4 socket." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<sizeof(>I<tuple>B<-E<gt>ipv6)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Look for an IPv6 socket." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"If the I<netns> is a negative signed 32-bit integer, then the socket lookup " +"table in the netns associated with the I<ctx> will be used. For the TC " +"hooks, this is the netns of the device in the skb. For socket hooks, this is " +"the netns of the socket. If I<netns> is any other signed 32-bit value " +"greater than or equal to zero then it specifies the ID of the netns relative " +"to the netns associated with the I<ctx>\\&. I<netns> values beyond the range " +"of 32-bit integers are reserved for future use." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper is available only if the kernel was compiled with B<CONFIG_NET> " +"configuration option." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Pointer to B<struct bpf_sock>, or B<NULL> in case of failure. For sockets " +"with reuseport option, the B<struct bpf_sock> result is from I<reuse>B<-" +"E<gt>socks>[] using the hash of the tuple." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<struct bpf_sock *bpf_sk_lookup_udp(void *>I<ctx>B<, struct bpf_sock_tuple *>I<tuple>B<, u32 >I<tuple_size>B<, u64 >I<netns>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Look for UDP socket matching I<tuple>, optionally in a child network " +"namespace I<netns>\\&. The return value must be checked, and if non-B<NULL>, " +"released via B<bpf_sk_release>()." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_sk_release(void *>I<sock>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Release the reference held by I<sock>\\&. I<sock> must be a non-B<NULL> " +"pointer that was returned from B<bpf_sk_lookup_xxx>()." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_map_push_elem(struct bpf_map *>I<map>B<, const void *>I<value>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Push an element I<value> in I<map>\\&. I<flags> is one of:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"If the queue/stack is full, the oldest element is removed to make room for " +"this." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_map_pop_elem(struct bpf_map *>I<map>B<, void *>I<value>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Pop an element from I<map>\\&." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_map_peek_elem(struct bpf_map *>I<map>B<, void *>I<value>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Get an element from I<map> without removing it." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_msg_push_data(struct sk_msg_buff *>I<msg>B<, u32 >I<start>B<, u32 >I<len>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"For socket policies, insert I<len> bytes into I<msg> at offset I<start>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"If a program of type B<BPF_PROG_TYPE_SK_MSG> is run on a I<msg> it may want " +"to insert metadata or options into the I<msg>\\&. This can later be read " +"and used by any of the lower layer BPF hooks." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper may fail if under memory pressure (a malloc fails) in these " +"cases BPF programs will get an appropriate error and BPF programs will need " +"to handle them." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_msg_pop_data(struct sk_msg_buff *>I<msg>B<, u32 >I<start>B<, u32 >I<len>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Will remove I<len> bytes from a I<msg> starting at byte I<start>\\&. This " +"may result in B<ENOMEM> errors under certain situations if an allocation and " +"copy are required due to a full ring buffer. However, the helper will try " +"to avoid doing the allocation if possible. Other errors can occur if input " +"parameters are invalid either due to I<start> byte not being valid part of " +"I<msg> payload and/or I<pop> value being to large." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_rc_pointer_rel(void *>I<ctx>B<, s32 >I<rel_x>B<, s32 >I<rel_y>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper is used in programs implementing IR decoding, to report a " +"successfully decoded pointer movement." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_spin_lock(struct bpf_spin_lock *>I<lock>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Acquire a spinlock represented by the pointer I<lock>, which is stored as " +"part of a value of a map. Taking the lock allows to safely update the rest " +"of the fields in that value. The spinlock can (and must) later be released " +"with a call to B<bpf_spin_unlock>(I<lock>)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Spinlocks in BPF programs come with a number of restrictions and constraints:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<bpf_spin_lock> objects are only allowed inside maps of types " +"B<BPF_MAP_TYPE_HASH> and B<BPF_MAP_TYPE_ARRAY> (this list could be extended " +"in the future)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "BTF description of the map is mandatory." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The BPF program can take ONE lock at a time, since taking two or more could " +"cause dead locks." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Only one B<struct bpf_spin_lock> is allowed per map element." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"When the lock is taken, calls (either BPF to BPF or helpers) are not " +"allowed." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The B<BPF_LD_ABS> and B<BPF_LD_IND> instructions are not allowed inside a " +"spinlock-ed region." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The BPF program MUST call B<bpf_spin_unlock>() to release the lock, on all " +"execution paths, before it returns." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The BPF program can access B<struct bpf_spin_lock> only via the " +"B<bpf_spin_lock>() and B<bpf_spin_unlock>() helpers. Loading or storing " +"data into the B<struct bpf_spin_lock> I<lock>B<;> field of a map is not " +"allowed." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"To use the B<bpf_spin_lock>() helper, the BTF description of the map value " +"must be a struct and have B<struct bpf_spin_lock> I<anyname>B<;> field at " +"the top level. Nested lock inside another struct is not allowed." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The B<struct bpf_spin_lock> I<lock> field in a map value must be aligned on " +"a multiple of 4 bytes in that value." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Syscall with command B<BPF_MAP_LOOKUP_ELEM> does not copy the " +"B<bpf_spin_lock> field to user space." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Syscall with command B<BPF_MAP_UPDATE_ELEM>, or update from a BPF program, " +"do not update the B<bpf_spin_lock> field." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<bpf_spin_lock> cannot be on the stack or inside a networking packet (it " +"can only be inside of a map values)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<bpf_spin_lock> is available to root only." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Tracing programs and socket filter programs cannot use B<bpf_spin_lock>() " +"due to insufficient preemption checks (but this may change in the future)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<bpf_spin_lock> is not allowed in inner maps of map-in-map." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_spin_unlock(struct bpf_spin_lock *>I<lock>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Release the I<lock> previously locked by a call to B<bpf_spin_lock>(I<lock>)." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<struct bpf_sock *bpf_sk_fullsock(struct bpf_sock *>I<sk>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper gets a B<struct bpf_sock> pointer such that all the fields in " +"this B<bpf_sock> can be accessed." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "A B<struct bpf_sock> pointer on success, or B<NULL> in case of failure." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<struct bpf_tcp_sock *bpf_tcp_sock(struct bpf_sock *>I<sk>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper gets a B<struct bpf_tcp_sock> pointer from a B<struct bpf_sock> " +"pointer." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"A B<struct bpf_tcp_sock> pointer on success, or B<NULL> in case of failure." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_skb_ecn_set_ce(struct sk_buff *>I<skb>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Set ECN (Explicit Congestion Notification) field of IP header to B<CE> " +"(Congestion Encountered) if current value is B<ECT> (ECN Capable Transport). " +"Otherwise, do nothing. Works with IPv6 and IPv4." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"1 if the B<CE> flag is set (either by the current helper call or because it " +"was already present), 0 if it is not set." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<struct bpf_sock *bpf_get_listener_sock(struct bpf_sock *>I<sk>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Return a B<struct bpf_sock> pointer in B<TCP_LISTEN> state. " +"B<bpf_sk_release>() is unnecessary and not allowed." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<struct bpf_sock *bpf_skc_lookup_tcp(void *>I<ctx>B<, struct bpf_sock_tuple *>I<tuple>B<, u32 >I<tuple_size>B<, u64 >I<netns>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This function is identical to B<bpf_sk_lookup_tcp>(), except that it also " +"returns timewait or request sockets. Use B<bpf_sk_fullsock>() or " +"B<bpf_tcp_sock>() to access the full structure." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_tcp_check_syncookie(void *>I<sk>B<, void *>I<iph>B<, u32 >I<iph_len>B<, struct tcphdr *>I<th>B<, u32 >I<th_len>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Check whether I<iph> and I<th> contain a valid SYN cookie ACK for the " +"listening socket in I<sk>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"I<iph> points to the start of the IPv4 or IPv6 header, while I<iph_len> " +"contains B<sizeof>(B<struct iphdr>) or B<sizeof>(B<struct ipv6hdr>)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"I<th> points to the start of the TCP header, while I<th_len> contains the " +"length of the TCP header (at least B<sizeof>(B<struct tcphdr>))." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"0 if I<iph> and I<th> are a valid SYN cookie ACK, or a negative error " +"otherwise." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_sysctl_get_name(struct bpf_sysctl *>I<ctx>B<, char *>I<buf>B<, size_t >I<buf_len>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Get name of sysctl in /proc/sys/ and copy it into provided by program buffer " +"I<buf> of size I<buf_len>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "The buffer is always NUL terminated, unless it\\(aqs zero-sized." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"If I<flags> is zero, full name (e.g. \"net/ipv4/tcp_mem\") is copied. Use " +"B<BPF_F_SYSCTL_BASE_NAME> flag to copy base name only (e.g. \"tcp_mem\")." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Number of character copied (not including the trailing NUL)." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"B<-E2BIG> if the buffer wasn\\(aqt big enough (I<buf> will contain truncated " +"name in this case)." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_sysctl_get_current_value(struct bpf_sysctl *>I<ctx>B<, char *>I<buf>B<, size_t >I<buf_len>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Get current value of sysctl as it is presented in /proc/sys (incl. newline, " +"etc), and copy it as a string into provided by program buffer I<buf> of size " +"I<buf_len>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The whole value is copied, no matter what file position user space issued e." +"g. sys_read at." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<-EINVAL> if current value was unavailable, e.g. because sysctl is " +"uninitialized and read returns -EIO for it." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_sysctl_get_new_value(struct bpf_sysctl *>I<ctx>B<, char *>I<buf>B<, size_t >I<buf_len>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Get new value being written by user space to sysctl (before the actual write " +"happens) and copy it as a string into provided by program buffer I<buf> of " +"size I<buf_len>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "User space may write new value at file position E<gt> 0." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-EINVAL> if sysctl is being read." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_sysctl_set_new_value(struct bpf_sysctl *>I<ctx>B<, const char *>I<buf>B<, size_t >I<buf_len>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Override new value being written by user space to sysctl with value provided " +"by program in buffer I<buf> of size I<buf_len>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"I<buf> should contain a string in same form as provided by user space on " +"sysctl write." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"User space may write new value at file position E<gt> 0. To override the " +"whole sysctl value file position should be set to zero." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "0 on success." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-E2BIG> if the I<buf_len> is too big." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_strtol(const char *>I<buf>B<, size_t >I<buf_len>B<, u64 >I<flags>B<, long *>I<res>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Convert the initial part of the string from buffer I<buf> of size I<buf_len> " +"to a long integer according to the given base and save the result in " +"I<res>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"The string may begin with an arbitrary amount of white space (as determined " +"by B<isspace>(3)) followed by a single optional \\(aqB<->\\(aq sign." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Five least significant bits of I<flags> encode base, other bits are " +"currently unused." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Base must be either 8, 10, 16 or 0 to detect it automatically similar to " +"user space B<strtol>(3)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Number of characters consumed on success. Must be positive but no more than " +"I<buf_len>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<-EINVAL> if no valid digits were found or unsupported base was provided." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-ERANGE> if resulting value was out of range." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_strtoul(const char *>I<buf>B<, size_t >I<buf_len>B<, u64 >I<flags>B<, unsigned long *>I<res>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Convert the initial part of the string from buffer I<buf> of size I<buf_len> " +"to an unsigned long integer according to the given base and save the result " +"in I<res>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The string may begin with an arbitrary amount of white space (as determined " +"by B<isspace>(3))." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Base must be either 8, 10, 16 or 0 to detect it automatically similar to " +"user space B<strtoul>(3)." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<void *bpf_sk_storage_get(struct bpf_map *>I<map>B<, void *>I<sk>B<, void *>I<value>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Get a bpf-local-storage from a I<sk>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Logically, it could be thought of getting the value from a I<map> with I<sk> " +"as the B<key>\\&. From this perspective, the usage is not much different " +"from B<bpf_map_lookup_elem>(I<map>, B<&>I<sk>) except this helper enforces " +"the key must be a full socket and the map must be a " +"B<BPF_MAP_TYPE_SK_STORAGE> also." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"Underneath, the value is stored locally at I<sk> instead of the I<map>\\&. " +"The I<map> is used as the bpf-local-storage \"type\". The bpf-local-storage " +"\"type\" (i.e. the I<map>) is searched against all bpf-local-storages " +"residing at I<sk>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"I<sk> is a kernel B<struct sock> pointer for LSM program. I<sk> is a " +"B<struct bpf_sock> pointer for other program types." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"An optional I<flags> (B<BPF_SK_STORAGE_GET_F_CREATE>) can be used such that " +"a new bpf-local-storage will be created if one does not exist. I<value> can " +"be used together with B<BPF_SK_STORAGE_GET_F_CREATE> to specify the initial " +"value of a bpf-local-storage. If I<value> is B<NULL>, the new bpf-local-" +"storage will be zero initialized." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "A bpf-local-storage pointer is returned on success." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<NULL> if not found or there was an error in adding a new bpf-local-storage." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_sk_storage_delete(struct bpf_map *>I<map>B<, void *>I<sk>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Delete a bpf-local-storage from a I<sk>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<-ENOENT> if the bpf-local-storage cannot be found. B<-EINVAL> if sk is " +"not a fullsock (e.g. a request_sock)." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_send_signal(u32 >I<sig>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"Send signal I<sig> to the process of the current task. The signal may be " +"delivered to any of this process\\(aqs threads." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "0 on success or successfully queued." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-EBUSY> if work queue under nmi is full." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-EINVAL> if I<sig> is invalid." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-EPERM> if no permission to send the I<sig>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-EAGAIN> if bpf program can try again." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<s64 bpf_tcp_gen_syncookie(void *>I<sk>B<, void *>I<iph>B<, u32 >I<iph_len>B<, struct tcphdr *>I<th>B<, u32 >I<th_len>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Try to issue a SYN cookie for the packet with corresponding IP/TCP headers, " +"I<iph> and I<th>, on the listening socket in I<sk>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"I<th> points to the start of the TCP header, while I<th_len> contains the " +"length of the TCP header with options (at least B<sizeof>(B<struct tcphdr>))." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"On success, lower 32 bits hold the generated SYN cookie in followed by 16 " +"bits which hold the MSS value for that cookie, and the top 16 bits are " +"unused." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "On failure, the returned value is one of the following:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-EINVAL> SYN cookie cannot be issued due to error" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-ENOENT> SYN cookie should not be issued (no SYN flood)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-EOPNOTSUPP> kernel configuration does not enable SYN cookies" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-EPROTONOSUPPORT> IP packet version is not 4 or 6" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_skb_output(void *>I<ctx>B<, struct bpf_map *>I<map>B<, u64 >I<flags>B<, void *>I<data>B<, u64 >I<size>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "I<ctx> is a pointer to in-kernel struct sk_buff." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper is similar to B<bpf_perf_event_output>() but restricted to " +"raw_tracepoint bpf programs." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_probe_read_user(void *>I<dst>B<, u32 >I<size>B<, const void *>I<unsafe_ptr>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Safely attempt to read I<size> bytes from user space address I<unsafe_ptr> " +"and store the data in I<dst>\\&." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_probe_read_kernel(void *>I<dst>B<, u32 >I<size>B<, const void *>I<unsafe_ptr>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Safely attempt to read I<size> bytes from kernel space address I<unsafe_ptr> " +"and store the data in I<dst>\\&." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_probe_read_user_str(void *>I<dst>B<, u32 >I<size>B<, const void *>I<unsafe_ptr>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Copy a NUL terminated string from an unsafe user address I<unsafe_ptr> to " +"I<dst>\\&. The I<size> should include the terminating NUL byte. In case the " +"string length is smaller than I<size>, the target is not padded with further " +"NUL bytes. If the string length is larger than I<size>, just I<size>-1 bytes " +"are copied and the last byte is set to NUL." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"On success, returns the number of bytes that were written, including the " +"terminal NUL. This makes this helper useful in tracing programs for reading " +"strings, and more importantly to get its length at runtime. See the " +"following snippet:" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +#, no-wrap +msgid "" +"^\".ft C$\n" +"SEC(\"kprobe/sys_open\")\n" +"void bpf_sys_open(struct pt_regs *ctx)\n" +"{\n" +" char buf[PATHLEN]; // PATHLEN is defined to 256\n" +" int res;\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +#, no-wrap +msgid "" +" res = bpf_probe_read_user_str(buf, sizeof(buf),\n" +" ctx-E<gt>di);\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "" +" // Consume buf, for example push it to\n" +" // userspace via bpf_perf_event_output(); we\n" +" // can use res (the string length) as event\n" +" // size, after checking its boundaries.\n" +"}\n" +"^\".ft P$\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"In comparison, using B<bpf_probe_read_user>() helper here instead to read " +"the string would require to estimate the length at compile time, and would " +"often result in copying more memory than necessary." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Another useful use case is when parsing individual process arguments or " +"individual environment variables navigating I<current>B<-E<gt>mm-" +"E<gt>arg_start> and I<current>B<-E<gt>mm-E<gt>env_start>: using this helper " +"and the return value, one can quickly iterate at the right offset of the " +"memory area." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"On success, the strictly positive length of the output string, including the " +"trailing NUL character. On error, a negative value." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_probe_read_kernel_str(void *>I<dst>B<, u32 >I<size>B<, const void *>I<unsafe_ptr>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Copy a NUL terminated string from an unsafe kernel address I<unsafe_ptr> to " +"I<dst>\\&. Same semantics as with B<bpf_probe_read_user_str>() apply." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_tcp_send_ack(void *>I<tp>B<, u32 >I<rcv_nxt>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Send out a tcp-ack. I<tp> is the in-kernel struct B<tcp_sock>\\&. " +"I<rcv_nxt> is the ack_seq to be sent out." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_send_signal_thread(u32 >I<sig>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Send signal I<sig> to the thread corresponding to the current task." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u64 bpf_jiffies64(void)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Obtain the 64bit jiffies" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "The 64 bit jiffies" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_read_branch_records(struct bpf_perf_event_data *>I<ctx>B<, void *>I<buf>B<, u32 >I<size>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"For an eBPF program attached to a perf event, retrieve the branch records " +"(B<struct perf_branch_entry>) associated to I<ctx> and store it in the " +"buffer pointed by I<buf> up to size I<size> bytes." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"On success, number of bytes written to I<buf>\\&. On error, a negative value." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The I<flags> can be set to B<BPF_F_GET_BRANCH_RECORDS_SIZE> to instead " +"return the number of bytes required to store all the branch entries. If this " +"flag is set, I<buf> may be NULL." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<-EINVAL> if arguments invalid or B<size> not a multiple of " +"B<sizeof>(B<struct perf_branch_entry>)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-ENOENT> if architecture does not support branch records." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_get_ns_current_pid_tgid(u64 >I<dev>B<, u64 >I<ino>B<, struct bpf_pidns_info *>I<nsdata>B<, u32 >I<size>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Returns 0 on success, values for I<pid> and I<tgid> as seen from the current " +"I<namespace> will be returned in I<nsdata>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "0 on success, or one of the following in case of failure:" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"B<-EINVAL> if dev and inum supplied don\\(aqt match dev_t and inode number " +"with nsfs of current task, or if dev conversion to dev_t lost high bits." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-ENOENT> if pidns does not exists for the current task." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_xdp_output(void *>I<ctx>B<, struct bpf_map *>I<map>B<, u64 >I<flags>B<, void *>I<data>B<, u64 >I<size>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "I<ctx> is a pointer to in-kernel struct xdp_buff." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper is similar to B<bpf_perf_eventoutput>() but restricted to " +"raw_tracepoint bpf programs." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u64 bpf_get_netns_cookie(void *>I<ctx>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Retrieve the cookie (generated by the kernel) of the network namespace the " +"input I<ctx> is associated with. The network namespace cookie remains stable " +"for its lifetime and provides a global identifier that can be assumed " +"unique. If I<ctx> is NULL, then the helper returns the cookie for the " +"initial network namespace. The cookie itself is very similar to that of " +"B<bpf_get_socket_cookie>() helper, but for network namespaces instead of " +"sockets." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "A 8-byte long opaque number." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u64 bpf_get_current_ancestor_cgroup_id(int >I<ancestor_level>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Return id of cgroup v2 that is ancestor of the cgroup associated with the " +"current task at the I<ancestor_level>\\&. The root cgroup is at " +"I<ancestor_level> zero and each step down the hierarchy increments the " +"level. If I<ancestor_level> == level of cgroup associated with the current " +"task, then return value will be the same as that of " +"B<bpf_get_current_cgroup_id>()." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The helper is useful to implement policies based on cgroups that are upper " +"in hierarchy than immediate cgroup associated with the current task." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The format of returned id and helper limitations are same as in " +"B<bpf_get_current_cgroup_id>()." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_sk_assign(struct sk_buff *>I<skb>B<, void *>I<sk>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Helper is overloaded depending on BPF program type. This description applies " +"to B<BPF_PROG_TYPE_SCHED_CLS> and B<BPF_PROG_TYPE_SCHED_ACT> programs." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Assign the I<sk> to the I<skb>\\&. When combined with appropriate routing " +"configuration to receive the packet towards the socket, will cause I<skb> to " +"be delivered to the specified socket. Subsequent redirection of I<skb> via " +"B<bpf_redirect>(), B<bpf_clone_redirect>() or other methods outside of BPF " +"may interfere with successful delivery to the socket." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "This operation is only valid from TC ingress path." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "The I<flags> argument must be zero." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "0 on success, or a negative error in case of failure:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-EINVAL> if specified I<flags> are not supported." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-ENOENT> if the socket is unavailable for assignment." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-ENETUNREACH> if the socket is unreachable (wrong netns)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<-EOPNOTSUPP> if the operation is not supported, for example a call from " +"outside of TC ingress." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-ESOCKTNOSUPPORT> if the socket type is not supported (reuseport)." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_sk_assign(struct bpf_sk_lookup *>I<ctx>B<, struct bpf_sock *>I<sk>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Helper is overloaded depending on BPF program type. This description applies " +"to B<BPF_PROG_TYPE_SK_LOOKUP> programs." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Select the I<sk> as a result of a socket lookup." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"For the operation to succeed passed socket must be compatible with the " +"packet description provided by the I<ctx> object." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"L4 protocol (B<IPPROTO_TCP> or B<IPPROTO_UDP>) must be an exact match. While " +"IP family (B<AF_INET> or B<AF_INET6>) must be compatible, that is IPv6 " +"sockets that are not v6-only can be selected for IPv4 packets." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Only TCP listeners and UDP unconnected sockets can be selected. I<sk> can " +"also be NULL to reset any previous selection." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "I<flags> argument can combination of following values:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<BPF_SK_LOOKUP_F_REPLACE> to override the previous socket selection, " +"potentially done by a BPF program that ran before us." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<BPF_SK_LOOKUP_F_NO_REUSEPORT> to skip load-balancing within reuseport " +"group for the socket being selected." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "On success I<ctx-E<gt>sk> will point to the selected socket." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "0 on success, or a negative errno in case of failure." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<-EAFNOSUPPORT> if socket family (I<sk-E<gt>family>) is not compatible with " +"packet family (I<ctx-E<gt>family>)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<-EEXIST> if socket has been already selected, potentially by another " +"program, and B<BPF_SK_LOOKUP_F_REPLACE> flag was not specified." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-EINVAL> if unsupported flags were specified." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"B<-EPROTOTYPE> if socket L4 protocol (I<sk-E<gt>protocol>) doesn\\(aqt match " +"packet protocol (I<ctx-E<gt>protocol>)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<-ESOCKTNOSUPPORT> if socket is not in allowed state (TCP listening or UDP " +"unconnected)." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u64 bpf_ktime_get_boot_ns(void)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Return the time elapsed since system boot, in nanoseconds. Does include the " +"time the system was suspended. See: B<clock_gettime>(B<CLOCK_BOOTTIME>)" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_seq_printf(struct seq_file *>I<m>B<, const char *>I<fmt>B<, u32 >I<fmt_size>B<, const void *>I<data>B<, u32 >I<data_len>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<bpf_seq_printf>() uses seq_file B<seq_printf>() to print out the format " +"string. The I<m> represents the seq_file. The I<fmt> and I<fmt_size> are " +"for the format string itself. The I<data> and I<data_len> are format string " +"arguments. The I<data> are a B<u64> array and corresponding format string " +"values are stored in the array. For strings and pointers where pointees are " +"accessed, only the pointer values are stored in the I<data> array. The " +"I<data_len> is the size of I<data> in bytes - must be a multiple of 8." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Formats B<%s>, B<%p{i,I}{4,6}> requires to read kernel memory. Reading " +"kernel memory may fail due to either invalid address or valid address but " +"requiring a major memory fault. If reading kernel memory fails, the string " +"for B<%s> will be an empty string, and the ip address for B<%p{i,I}{4,6}> " +"will be 0. Not returning error to bpf program is consistent with what " +"B<bpf_trace_printk>() does for now." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<-EBUSY> if per-CPU memory copy buffer is busy, can try again by returning " +"1 from bpf program." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<-EINVAL> if arguments are invalid, or if I<fmt> is invalid/unsupported." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-E2BIG> if I<fmt> contains too many format specifiers." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<-EOVERFLOW> if an overflow happened: The same object will be tried again." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_seq_write(struct seq_file *>I<m>B<, const void *>I<data>B<, u32 >I<len>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<bpf_seq_write>() uses seq_file B<seq_write>() to write the data. The I<m> " +"represents the seq_file. The I<data> and I<len> represent the data to write " +"in bytes." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u64 bpf_sk_cgroup_id(void *>I<sk>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Return the cgroup v2 id of the socket I<sk>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"I<sk> must be a non-B<NULL> pointer to a socket, e.g. one returned from " +"B<bpf_sk_lookup_xxx>(), B<bpf_sk_fullsock>(), etc. The format of returned id " +"is same as in B<bpf_skb_cgroup_id>()." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper is available only if the kernel was compiled with the " +"B<CONFIG_SOCK_CGROUP_DATA> configuration option." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u64 bpf_sk_ancestor_cgroup_id(void *>I<sk>B<, int >I<ancestor_level>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Return id of cgroup v2 that is ancestor of cgroup associated with the I<sk> " +"at the I<ancestor_level>\\&. The root cgroup is at I<ancestor_level> zero " +"and each step down the hierarchy increments the level. If I<ancestor_level> " +"== level of cgroup associated with I<sk>, then return value will be same as " +"that of B<bpf_sk_cgroup_id>()." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The helper is useful to implement policies based on cgroups that are upper " +"in hierarchy than immediate cgroup associated with I<sk>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The format of returned id and helper limitations are same as in " +"B<bpf_sk_cgroup_id>()." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_ringbuf_output(void *>I<ringbuf>B<, void *>I<data>B<, u64 >I<size>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Copy I<size> bytes from I<data> into a ring buffer I<ringbuf>\\&. If " +"B<BPF_RB_NO_WAKEUP> is specified in I<flags>, no notification of new data " +"availability is sent. If B<BPF_RB_FORCE_WAKEUP> is specified in I<flags>, " +"notification of new data availability is sent unconditionally. If B<0> is " +"specified in I<flags>, an adaptive notification of new data availability is " +"sent." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"An adaptive notification is a notification sent whenever the user-space " +"process has caught up and consumed all available payloads. In case the user-" +"space process is still processing a previous payload, then no notification " +"is needed as it will process the newly added payload automatically." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<void *bpf_ringbuf_reserve(void *>I<ringbuf>B<, u64 >I<size>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Reserve I<size> bytes of payload in a ring buffer I<ringbuf>\\&. I<flags> " +"must be 0." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Valid pointer with I<size> bytes of memory available; NULL, otherwise." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<void bpf_ringbuf_submit(void *>I<data>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Submit reserved ring buffer sample, pointed to by I<data>\\&. If " +"B<BPF_RB_NO_WAKEUP> is specified in I<flags>, no notification of new data " +"availability is sent. If B<BPF_RB_FORCE_WAKEUP> is specified in I<flags>, " +"notification of new data availability is sent unconditionally. If B<0> is " +"specified in I<flags>, an adaptive notification of new data availability is " +"sent." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"See \\(aqbpf_ringbuf_output()\\(aq for the definition of adaptive " +"notification." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Nothing. Always succeeds." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<void bpf_ringbuf_discard(void *>I<data>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Discard reserved ring buffer sample, pointed to by I<data>\\&. If " +"B<BPF_RB_NO_WAKEUP> is specified in I<flags>, no notification of new data " +"availability is sent. If B<BPF_RB_FORCE_WAKEUP> is specified in I<flags>, " +"notification of new data availability is sent unconditionally. If B<0> is " +"specified in I<flags>, an adaptive notification of new data availability is " +"sent." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u64 bpf_ringbuf_query(void *>I<ringbuf>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Query various characteristics of provided ring buffer. What exactly is " +"queries is determined by I<flags>:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<BPF_RB_AVAIL_DATA>: Amount of data not yet consumed." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<BPF_RB_RING_SIZE>: The size of ring buffer." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<BPF_RB_CONS_POS>: Consumer position (can wrap around)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<BPF_RB_PROD_POS>: Producer(s) position (can wrap around)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Data returned is just a momentary snapshot of actual values and could be " +"inaccurate, so this facility should be used to power heuristics and for " +"reporting, not to make 100% correct calculation." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Requested value, or 0, if I<flags> are not recognized." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_csum_level(struct sk_buff *>I<skb>B<, u64 >I<level>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Change the skbs checksum level by one layer up or down, or reset it entirely " +"to none in order to have the stack perform checksum validation. The level is " +"applicable to the following protocols: TCP, UDP, GRE, SCTP, FCOE. For " +"example, a decap of | ETH | IP | UDP | GUE | IP | TCP | into | ETH | IP | " +"TCP | through B<bpf_skb_adjust_room>() helper with passing in " +"B<BPF_F_ADJ_ROOM_NO_CSUM_RESET> flag would require one call to " +"B<bpf_csum_level>() with B<BPF_CSUM_LEVEL_DEC> since the UDP header is " +"removed. Similarly, an encap of the latter into the former could be " +"accompanied by a helper call to B<bpf_csum_level>() with " +"B<BPF_CSUM_LEVEL_INC> if the skb is still intended to be processed in higher " +"layers of the stack instead of just egressing at tc." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "There are three supported level settings at this time:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<BPF_CSUM_LEVEL_INC>: Increases skb-E<gt>csum_level for skbs with " +"CHECKSUM_UNNECESSARY." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<BPF_CSUM_LEVEL_DEC>: Decreases skb-E<gt>csum_level for skbs with " +"CHECKSUM_UNNECESSARY." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<BPF_CSUM_LEVEL_RESET>: Resets skb-E<gt>csum_level to 0 and sets " +"CHECKSUM_NONE to force checksum validation by the stack." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<BPF_CSUM_LEVEL_QUERY>: No-op, returns the current skb-E<gt>csum_level." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"0 on success, or a negative error in case of failure. In the case of " +"B<BPF_CSUM_LEVEL_QUERY>, the current skb-E<gt>csum_level is returned or the " +"error code -EACCES in case the skb is not subject to CHECKSUM_UNNECESSARY." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<struct tcp6_sock *bpf_skc_to_tcp6_sock(void *>I<sk>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Dynamically cast a I<sk> pointer to a I<tcp6_sock> pointer." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "I<sk> if casting is valid, or B<NULL> otherwise." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<struct tcp_sock *bpf_skc_to_tcp_sock(void *>I<sk>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Dynamically cast a I<sk> pointer to a I<tcp_sock> pointer." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<struct tcp_timewait_sock *bpf_skc_to_tcp_timewait_sock(void *>I<sk>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Dynamically cast a I<sk> pointer to a I<tcp_timewait_sock> pointer." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<struct tcp_request_sock *bpf_skc_to_tcp_request_sock(void *>I<sk>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Dynamically cast a I<sk> pointer to a I<tcp_request_sock> pointer." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<struct udp6_sock *bpf_skc_to_udp6_sock(void *>I<sk>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Dynamically cast a I<sk> pointer to a I<udp6_sock> pointer." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_get_task_stack(struct task_struct *>I<task>B<, void *>I<buf>B<, u32 >I<size>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Return a user or a kernel stack in bpf program provided buffer. To achieve " +"this, the helper needs I<task>, which is a valid pointer to B<struct " +"task_struct>\\&. To store the stacktrace, the bpf program provides I<buf> " +"with a nonnegative I<size>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Collect buildid+offset instead of ips for user stack, only valid if " +"B<BPF_F_USER_STACK> is also specified." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<bpf_get_task_stack>() can collect up to B<PERF_MAX_STACK_DEPTH> both " +"kernel and user frames, subject to sufficient large buffer size. Note that " +"this limit can be controlled with the B<sysctl> program, and that it should " +"be manually increased in order to profile long user stacks (such as stacks " +"for Java programs). To do so, use:" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_load_hdr_opt(struct bpf_sock_ops *>I<skops>B<, void *>I<searchby_res>B<, u32 >I<len>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Load header option. Support reading a particular TCP header option for bpf " +"program (B<BPF_PROG_TYPE_SOCK_OPS>)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"If I<flags> is 0, it will search the option from the I<skops>B<-" +"E<gt>skb_data>\\&. The comment in B<struct bpf_sock_ops> has details on " +"what skb_data contains under different I<skops>B<-E<gt>op>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The first byte of the I<searchby_res> specifies the kind that it wants to " +"search." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"If the searching kind is an experimental kind (i.e. 253 or 254 according to " +"RFC6994). It also needs to specify the \"magic\" which is either 2 bytes or " +"4 bytes. It then also needs to specify the size of the magic by using the " +"2nd byte which is \"kind-length\" of a TCP header option and the \"kind-" +"length\" also includes the first 2 bytes \"kind\" and \"kind-length\" itself " +"as a normal TCP header option also does." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"For example, to search experimental kind 254 with 2 byte magic 0xeB9F, the " +"searchby_res should be [ 254, 4, 0xeB, 0x9F, 0, 0, .... 0 ]." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"To search for the standard window scale option (3), the I<searchby_res> " +"should be [ 3, 0, 0, .... 0 ]. Note, kind-length must be 0 for regular " +"option." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Searching for No-Op (0) and End-of-Option-List (1) are not supported." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"I<len> must be at least 2 bytes which is the minimal size of a header option." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Supported flags:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<BPF_LOAD_HDR_OPT_TCP_SYN> to search from the saved_syn packet or the just-" +"received syn packet." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"E<gt> 0 when found, the header option is copied to I<searchby_res>\\&. The " +"return value is the total length copied. On failure, a negative error code " +"is returned:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-EINVAL> if a parameter is invalid." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-ENOMSG> if the option is not found." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<-ENOENT> if no syn packet is available when B<BPF_LOAD_HDR_OPT_TCP_SYN> is " +"used." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<-ENOSPC> if there is not enough space. Only I<len> number of bytes are " +"copied." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-EFAULT> on failure to parse the header options in the packet." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<-EPERM> if the helper cannot be used under the current I<skops>B<-" +"E<gt>op>\\&." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_store_hdr_opt(struct bpf_sock_ops *>I<skops>B<, const void *>I<from>B<, u32 >I<len>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Store header option. The data will be copied from buffer I<from> with " +"length I<len> to the TCP header." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The buffer I<from> should have the whole option that includes the kind, kind-" +"length, and the actual option data. The I<len> must be at least kind-length " +"long. The kind-length does not have to be 4 byte aligned. The kernel will " +"take care of the padding and setting the 4 bytes aligned value to th-" +"E<gt>doff." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper will check for duplicated option by searching the same option in " +"the outgoing skb." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper can only be called during B<BPF_SOCK_OPS_WRITE_HDR_OPT_CB>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "0 on success, or negative error in case of failure:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-EINVAL> If param is invalid." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<-ENOSPC> if there is not enough space in the header. Nothing has been " +"written" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-EEXIST> if the option already exists." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-EFAULT> on failure to parse the existing header options." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_reserve_hdr_opt(struct bpf_sock_ops *>I<skops>B<, u32 >I<len>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Reserve I<len> bytes for the bpf header option. The space will be used by " +"B<bpf_store_hdr_opt>() later in B<BPF_SOCK_OPS_WRITE_HDR_OPT_CB>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"If B<bpf_reserve_hdr_opt>() is called multiple times, the total number of " +"bytes will be reserved." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper can only be called during B<BPF_SOCK_OPS_HDR_OPT_LEN_CB>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-ENOSPC> if there is not enough space in the header." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<void *bpf_inode_storage_get(struct bpf_map *>I<map>B<, void *>I<inode>B<, void *>I<value>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Get a bpf_local_storage from an I<inode>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Logically, it could be thought of as getting the value from a I<map> with " +"I<inode> as the B<key>\\&. From this perspective, the usage is not much " +"different from B<bpf_map_lookup_elem>(I<map>, B<&>I<inode>) except this " +"helper enforces the key must be an inode and the map must also be a " +"B<BPF_MAP_TYPE_INODE_STORAGE>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"Underneath, the value is stored locally at I<inode> instead of the " +"I<map>\\&. The I<map> is used as the bpf-local-storage \"type\". The bpf-" +"local-storage \"type\" (i.e. the I<map>) is searched against all " +"bpf_local_storage residing at I<inode>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"An optional I<flags> (B<BPF_LOCAL_STORAGE_GET_F_CREATE>) can be used such " +"that a new bpf_local_storage will be created if one does not exist. " +"I<value> can be used together with B<BPF_LOCAL_STORAGE_GET_F_CREATE> to " +"specify the initial value of a bpf_local_storage. If I<value> is B<NULL>, " +"the new bpf_local_storage will be zero initialized." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "A bpf_local_storage pointer is returned on success." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<NULL> if not found or there was an error in adding a new bpf_local_storage." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<int bpf_inode_storage_delete(struct bpf_map *>I<map>B<, void *>I<inode>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Delete a bpf_local_storage from an I<inode>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-ENOENT> if the bpf_local_storage cannot be found." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_d_path(struct path *>I<path>B<, char *>I<buf>B<, u32 >I<sz>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Return full path for given B<struct path> object, which needs to be the " +"kernel BTF I<path> object. The path is returned in the provided buffer " +"I<buf> of size I<sz> and is zero terminated." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_copy_from_user(void *>I<dst>B<, u32 >I<size>B<, const void *>I<user_ptr>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Read I<size> bytes from user space address I<user_ptr> and store the data in " +"I<dst>\\&. This is a wrapper of B<copy_from_user>()." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_snprintf_btf(char *>I<str>B<, u32 >I<str_size>B<, struct btf_ptr *>I<ptr>B<, u32 >I<btf_ptr_size>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Use BTF to store a string representation of I<ptr>-E<gt>ptr in I<str>, using " +"I<ptr>-E<gt>type_id. This value should specify the type that I<ptr>-" +"E<gt>ptr points to. LLVM __builtin_btf_type_id(type, 1) can be used to look " +"up vmlinux BTF type ids. Traversing the data structure using BTF, the type " +"information and values are stored in the first I<str_size> - 1 bytes of " +"I<str>\\&. Safe copy of the pointer data is carried out to avoid kernel " +"crashes during operation. Smaller types can use string space on the stack; " +"larger programs can use map data to store the string representation." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The string can be subsequently shared with userspace via " +"bpf_perf_event_output() or ring buffer interfaces. bpf_trace_printk() is to " +"be avoided as it places too small a limit on string size to be useful." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "I<flags> is a combination of" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<BTF_F_COMPACT>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "no formatting around type information" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<BTF_F_NONAME>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "no struct/union member names/types" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<BTF_F_PTR_RAW>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"show raw (unobfuscated) pointer values; equivalent to printk specifier %px." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<BTF_F_ZERO>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"show zero-valued struct/union members; they are not displayed by default" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The number of bytes that were written (or would have been written if output " +"had to be truncated due to string size), or a negative error in cases of " +"failure." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_seq_printf_btf(struct seq_file *>I<m>B<, struct btf_ptr *>I<ptr>B<, u32 >I<ptr_size>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Use BTF to write to seq_write a string representation of I<ptr>-E<gt>ptr, " +"using I<ptr>-E<gt>type_id as per bpf_snprintf_btf(). I<flags> are identical " +"to those used for bpf_snprintf_btf." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "0 on success or a negative error in case of failure." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u64 bpf_skb_cgroup_classid(struct sk_buff *>I<skb>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"See B<bpf_get_cgroup_classid>() for the main description. This helper " +"differs from B<bpf_get_cgroup_classid>() in that the cgroup v1 net_cls class " +"is retrieved only from the I<skb>\\(aqs associated socket instead of the " +"current process." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_redirect_neigh(u32 >I<ifindex>B<, struct bpf_redir_neigh *>I<params>B<, int >I<plen>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Redirect the packet to another net device of index I<ifindex> and fill in L2 " +"addresses from neighboring subsystem. This helper is somewhat similar to " +"B<bpf_redirect>(), except that it populates L2 addresses as well, meaning, " +"internally, the helper relies on the neighbor lookup for the L2 address of " +"the nexthop." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"The helper will perform a FIB lookup based on the skb\\(aqs networking " +"header to get the address of the next hop, unless this is supplied by the " +"caller in the I<params> argument. The I<plen> argument indicates the len of " +"I<params> and should be set to 0 if I<params> is NULL." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The I<flags> argument is reserved and must be 0. The helper is currently " +"only supported for tc BPF program types, and enabled for IPv4 and IPv6 " +"protocols." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The helper returns B<TC_ACT_REDIRECT> on success or B<TC_ACT_SHOT> on error." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<void *bpf_per_cpu_ptr(const void *>I<percpu_ptr>B<, u32 >I<cpu>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"Take a pointer to a percpu ksym, I<percpu_ptr>, and return a pointer to the " +"percpu kernel variable on I<cpu>\\&. A ksym is an extern variable decorated " +"with \\(aq__ksym\\(aq. For ksym, there is a global var (either static or " +"global) defined of the same name in the kernel. The ksym is percpu if the " +"global var is percpu. The returned pointer points to the global percpu var " +"on I<cpu>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"bpf_per_cpu_ptr() has the same semantic as per_cpu_ptr() in the kernel, " +"except that bpf_per_cpu_ptr() may return NULL. This happens if I<cpu> is " +"larger than nr_cpu_ids. The caller of bpf_per_cpu_ptr() must check the " +"returned value." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"A pointer pointing to the kernel percpu variable on I<cpu>, or NULL, if " +"I<cpu> is invalid." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<void *bpf_this_cpu_ptr(const void *>I<percpu_ptr>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"Take a pointer to a percpu ksym, I<percpu_ptr>, and return a pointer to the " +"percpu kernel variable on this cpu. See the description of \\(aqksym\\(aq in " +"B<bpf_per_cpu_ptr>()." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"bpf_this_cpu_ptr() has the same semantic as this_cpu_ptr() in the kernel. " +"Different from B<bpf_per_cpu_ptr>(), it would never return NULL." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "A pointer pointing to the kernel percpu variable on this cpu." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_redirect_peer(u32 >I<ifindex>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"Redirect the packet to another net device of index I<ifindex>\\&. This " +"helper is somewhat similar to B<bpf_redirect>(), except that the redirection " +"happens to the I<ifindex>\\(aq peer device and the netns switch takes place " +"from ingress to ingress without going through the CPU\\(aqs backlog queue." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The I<flags> argument is reserved and must be 0. The helper is currently " +"only supported for tc BPF program types at the ingress hook and for veth " +"device types. The peer device must reside in a different network namespace." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<void *bpf_task_storage_get(struct bpf_map *>I<map>B<, struct task_struct *>I<task>B<, void *>I<value>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Get a bpf_local_storage from the I<task>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Logically, it could be thought of as getting the value from a I<map> with " +"I<task> as the B<key>\\&. From this perspective, the usage is not much " +"different from B<bpf_map_lookup_elem>(I<map>, B<&>I<task>) except this " +"helper enforces the key must be a task_struct and the map must also be a " +"B<BPF_MAP_TYPE_TASK_STORAGE>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"Underneath, the value is stored locally at I<task> instead of the " +"I<map>\\&. The I<map> is used as the bpf-local-storage \"type\". The bpf-" +"local-storage \"type\" (i.e. the I<map>) is searched against all " +"bpf_local_storage residing at I<task>\\&." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_task_storage_delete(struct bpf_map *>I<map>B<, struct task_struct *>I<task>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Delete a bpf_local_storage from a I<task>\\&." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<struct task_struct *bpf_get_current_task_btf(void)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"Return a BTF pointer to the \"current\" task. This pointer can also be used " +"in helpers that accept an I<ARG_PTR_TO_BTF_ID> of type I<task_struct>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Pointer to the current task." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_bprm_opts_set(struct linux_binprm *>I<bprm>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Set or clear certain options on I<bprm>:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<BPF_F_BPRM_SECUREEXEC> Set the secureexec bit which sets the B<AT_SECURE> " +"auxv for glibc. The bit is cleared if the flag is not specified." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-EINVAL> if invalid I<flags> are passed, zero otherwise." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u64 bpf_ktime_get_coarse_ns(void)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Return a coarse-grained version of the time elapsed since system boot, in " +"nanoseconds. Does not include time the system was suspended." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "See: B<clock_gettime>(B<CLOCK_MONOTONIC_COARSE>)" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_ima_inode_hash(struct inode *>I<inode>B<, void *>I<dst>B<, u32 >I<size>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"Returns the stored IMA hash of the I<inode> (if it\\(aqs available). If the " +"hash is larger than I<size>, then only I<size> bytes will be copied to I<dst>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The B<hash_algo> is returned on success, B<-EOPNOTSUP> if IMA is disabled or " +"B<-EINVAL> if invalid arguments are passed." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<struct socket *bpf_sock_from_file(struct file *>I<file>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "If the given file represents a socket, returns the associated socket." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"A pointer to a struct socket on success or NULL if the file is not a socket." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_check_mtu(void *>I<ctx>B<, u32 >I<ifindex>B<, u32 *>I<mtu_len>B<, s32 >I<len_diff>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Check packet size against exceeding MTU of net device (based on " +"I<ifindex>). This helper will likely be used in combination with helpers " +"that adjust/change the packet size." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The argument I<len_diff> can be used for querying with a planned size " +"change. This allows to check MTU prior to changing packet ctx. Providing a " +"I<len_diff> adjustment that is larger than the actual packet size (resulting " +"in negative packet size) will in principle not exceed the MTU, which is why " +"it is not considered a failure. Other BPF helpers are needed for performing " +"the planned size change; therefore the responsibility for catching a " +"negative packet size belongs in those helpers." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"Specifying I<ifindex> zero means the MTU check is performed against the " +"current net device. This is practical if this isn\\(aqt used prior to " +"redirect." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"On input I<mtu_len> must be a valid pointer, else verifier will reject BPF " +"program. If the value I<mtu_len> is initialized to zero then the ctx packet " +"size is use. When value I<mtu_len> is provided as input this specify the L3 " +"length that the MTU check is done against. Remember XDP and TC length " +"operate at L2, but this value is L3 as this correlate to MTU and IP-header " +"tot_len values which are L3 (similar behavior as bpf_fib_lookup)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The Linux kernel route table can configure MTUs on a more specific per route " +"level, which is not provided by this helper. For route level MTU checks use " +"the B<bpf_fib_lookup>() helper." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"I<ctx> is either B<struct xdp_md> for XDP programs or B<struct sk_buff> for " +"tc cls_act programs." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The I<flags> argument can be a combination of one or more of the following " +"values:" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<BPF_MTU_CHK_SEGS>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This flag will only works for I<ctx> B<struct sk_buff>\\&. If packet " +"context contains extra packet segment buffers (often knows as GSO skb), then " +"MTU check is harder to check at this point, because in transmit path it is " +"possible for the skb packet to get re-segmented (depending on net device " +"features). This could still be a MTU violation, so this flag enables " +"performing MTU check against segments, with a different violation return " +"code to tell it apart. Check cannot use len_diff." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"On return I<mtu_len> pointer contains the MTU value of the net device. " +"Remember the net device configured MTU is the L3 size, which is returned " +"here and XDP and TC length operate at L2. Helper take this into account for " +"you, but remember when using MTU value in your BPF-code." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "0 on success, and populate MTU value in I<mtu_len> pointer." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "E<lt> 0 if any input argument is invalid (I<mtu_len> not updated)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"MTU violations return positive values, but also populate MTU value in " +"I<mtu_len> pointer, as this can be needed for implementing PMTU handing:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<BPF_MTU_CHK_RET_FRAG_NEEDED>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<BPF_MTU_CHK_RET_SEGS_TOOBIG>" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_for_each_map_elem(struct bpf_map *>I<map>B<, void *>I<callback_fn>B<, void *>I<callback_ctx>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"For each element in B<map>, call B<callback_fn> function with B<map>, " +"B<callback_ctx> and other map-specific parameters. The B<callback_fn> " +"should be a static function and the B<callback_ctx> should be a pointer to " +"the stack. The B<flags> is used to control certain aspects of the helper. " +"Currently, the B<flags> must be 0." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The following are a list of supported map types and their respective " +"expected callback signatures:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"BPF_MAP_TYPE_HASH, BPF_MAP_TYPE_PERCPU_HASH, BPF_MAP_TYPE_LRU_HASH, " +"BPF_MAP_TYPE_LRU_PERCPU_HASH, BPF_MAP_TYPE_ARRAY, BPF_MAP_TYPE_PERCPU_ARRAY" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"long (*callback_fn)(struct bpf_map *map, const void *key, void *value, void " +"*ctx);" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"For per_cpu maps, the map_value is the value on the cpu where the bpf_prog " +"is running." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"If B<callback_fn> return 0, the helper will continue to the next element. If " +"return value is 1, the helper will skip the rest of elements and return. " +"Other return values are not used now." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The number of traversed map elements for success, B<-EINVAL> for invalid " +"B<flags>\\&." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_snprintf(char *>I<str>B<, u32 >I<str_size>B<, const char *>I<fmt>B<, u64 *>I<data>B<, u32 >I<data_len>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Outputs a string into the B<str> buffer of size B<str_size> based on a " +"format string stored in a read-only map pointed by B<fmt>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Each format specifier in B<fmt> corresponds to one u64 element in the " +"B<data> array. For strings and pointers where pointees are accessed, only " +"the pointer values are stored in the I<data> array. The I<data_len> is the " +"size of I<data> in bytes - must be a multiple of 8." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Formats B<%s> and B<%p{i,I}{4,6}> require to read kernel memory. Reading " +"kernel memory may fail due to either invalid address or valid address but " +"requiring a major memory fault. If reading kernel memory fails, the string " +"for B<%s> will be an empty string, and the ip address for B<%p{i,I}{4,6}> " +"will be 0. Not returning error to bpf program is consistent with what " +"B<bpf_trace_printk>() does for now." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The strictly positive length of the formatted string, including the trailing " +"zero character. If the return value is greater than B<str_size>, B<str> " +"contains a truncated string, guaranteed to be zero-terminated except when " +"B<str_size> is 0." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Or B<-EBUSY> if the per-CPU memory copy buffer is busy." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_sys_bpf(u32 >I<cmd>B<, void *>I<attr>B<, u32 >I<attr_size>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Execute bpf syscall with given arguments." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "A syscall result." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_btf_find_by_name_kind(char *>I<name>B<, int >I<name_sz>B<, u32 >I<kind>B<, int >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"Find BTF type with given name and kind in vmlinux BTF or in module\\(aqs " +"BTFs." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Returns btf_id and btf_obj_fd in lower and upper 32 bits." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_sys_close(u32 >I<fd>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Execute close syscall for given FD." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_timer_init(struct bpf_timer *>I<timer>B<, struct bpf_map *>I<map>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Initialize the timer. First 4 bits of I<flags> specify clockid. Only " +"CLOCK_MONOTONIC, CLOCK_REALTIME, CLOCK_BOOTTIME are allowed. All other bits " +"of I<flags> are reserved. The verifier will reject the program if I<timer> " +"is not from the same I<map>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"0 on success. B<-EBUSY> if I<timer> is already initialized. B<-EINVAL> if " +"invalid I<flags> are passed. B<-EPERM> if I<timer> is in a map that " +"doesn\\(aqt have any user references. The user space should either hold a " +"file descriptor to a map with timers or pin such map in bpffs. When map is " +"unpinned or file descriptor is closed all timers in the map will be " +"cancelled and freed." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_timer_set_callback(struct bpf_timer *>I<timer>B<, void *>I<callback_fn>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Configure the timer to call I<callback_fn> static function." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"0 on success. B<-EINVAL> if I<timer> was not initialized with " +"bpf_timer_init() earlier. B<-EPERM> if I<timer> is in a map that " +"doesn\\(aqt have any user references. The user space should either hold a " +"file descriptor to a map with timers or pin such map in bpffs. When map is " +"unpinned or file descriptor is closed all timers in the map will be " +"cancelled and freed." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_timer_start(struct bpf_timer *>I<timer>B<, u64 >I<nsecs>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"Set timer expiration N nanoseconds from the current time. The configured " +"callback will be invoked in soft irq context on some cpu and will not repeat " +"unless another bpf_timer_start() is made. In such case the next invocation " +"can migrate to a different cpu. Since struct bpf_timer is a field inside " +"map element the map owns the timer. The bpf_timer_set_callback() will " +"increment refcnt of BPF program to make sure that callback_fn code stays " +"valid. When user space reference to a map reaches zero all timers in a map " +"are cancelled and corresponding program\\(aqs refcnts are decremented. This " +"is done to make sure that Ctrl-C of a user process doesn\\(aqt leave any " +"timers running. If map is pinned in bpffs the callback_fn can re-arm itself " +"indefinitely. bpf_map_update/delete_elem() helpers and user space sys_bpf " +"commands cancel and free the timer in the given map element. The map can " +"contain timers that invoke callback_fn-s from different programs. The same " +"callback_fn can serve different timers from different maps if key/value " +"layout matches across maps. Every bpf_timer_set_callback() can have " +"different callback_fn." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"0 on success. B<-EINVAL> if I<timer> was not initialized with " +"bpf_timer_init() earlier or invalid I<flags> are passed." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_timer_cancel(struct bpf_timer *>I<timer>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Cancel the timer and wait for callback_fn to finish if it was running." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"0 if the timer was not active. 1 if the timer was active. B<-EINVAL> if " +"I<timer> was not initialized with bpf_timer_init() earlier. B<-EDEADLK> if " +"callback_fn tried to call bpf_timer_cancel() on its own timer which would " +"have led to a deadlock otherwise." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u64 bpf_get_func_ip(void *>I<ctx>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Get address of the traced function (for tracing and kprobe programs)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Address of the traced function. 0 for kprobes placed within the function " +"(not at the entry)." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u64 bpf_get_attach_cookie(void *>I<ctx>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Get bpf_cookie value provided (optionally) during the program attachment. It " +"might be different for each individual attachment, even if BPF program " +"itself is the same. Expects BPF program context I<ctx> as a first argument." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<Supported for the following program types:>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "kprobe/uprobe;" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "tracepoint;" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "perf_event." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Value specified by user at BPF link creation/attachment time or 0, if it was " +"not specified." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_task_pt_regs(struct task_struct *>I<task>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Get the struct pt_regs associated with B<task>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "A pointer to struct pt_regs." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_get_branch_snapshot(void *>I<entries>B<, u32 >I<size>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Get branch trace from hardware engines like Intel LBR. The hardware engine " +"is stopped shortly after the helper is called. Therefore, the user need to " +"filter branch entries based on the actual use case. To capture branch trace " +"before the trigger point of the BPF program, the helper should be called at " +"the beginning of the BPF program." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The data is stored as struct perf_branch_entry into output buffer " +"I<entries>\\&. I<size> is the size of I<entries> in bytes. I<flags> is " +"reserved for now and must be zero." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-EINVAL> if I<flags> is not zero." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_trace_vprintk(const char *>I<fmt>B<, u32 >I<fmt_size>B<, const void *>I<data>B<, u32 >I<data_len>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Behaves like B<bpf_trace_printk>() helper, but takes an array of u64 to " +"format and can handle more format args as a result." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Arguments are to be used as in B<bpf_seq_printf>() helper." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<struct unix_sock *bpf_skc_to_unix_sock(void *>I<sk>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Dynamically cast a I<sk> pointer to a I<unix_sock> pointer." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_kallsyms_lookup_name(const char *>I<name>B<, int >I<name_sz>B<, int >I<flags>B<, u64 *>I<res>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Get the address of a kernel symbol, returned in I<res>\\&. I<res> is set to " +"0 if the symbol is not found." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "On success, zero. On error, a negative value." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-EINVAL> if string I<name> is not the same size as I<name_sz>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-ENOENT> if symbol is not found." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-EPERM> if caller does not have permission to obtain kernel address." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_find_vma(struct task_struct *>I<task>B<, u64 >I<addr>B<, void *>I<callback_fn>B<, void *>I<callback_ctx>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Find vma of I<task> that contains I<addr>, call I<callback_fn> function with " +"I<task>, I<vma>, and I<callback_ctx>\\&. The I<callback_fn> should be a " +"static function and the I<callback_ctx> should be a pointer to the stack. " +"The I<flags> is used to control certain aspects of the helper. Currently, " +"the I<flags> must be 0." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "The expected callback signature is" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"long (*callback_fn)(struct task_struct *task, struct vm_area_struct *vma, " +"void *callback_ctx);" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"0 on success. B<-ENOENT> if I<task-E<gt>mm> is NULL, or no vma contains " +"I<addr>\\&. B<-EBUSY> if failed to try lock mmap_lock. B<-EINVAL> for " +"invalid B<flags>\\&." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_loop(u32 >I<nr_loops>B<, void *>I<callback_fn>B<, void *>I<callback_ctx>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"For B<nr_loops>, call B<callback_fn> function with B<callback_ctx> as the " +"context parameter. The B<callback_fn> should be a static function and the " +"B<callback_ctx> should be a pointer to the stack. The B<flags> is used to " +"control certain aspects of the helper. Currently, the B<flags> must be 0. " +"Currently, nr_loops is limited to 1 E<lt>E<lt> 23 (~8 million) loops." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "long (*callback_fn)(u32 index, void *ctx);" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"where B<index> is the current index in the loop. The index is zero-indexed." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"If B<callback_fn> returns 0, the helper will continue to the next loop. If " +"return value is 1, the helper will skip the rest of the loops and return. " +"Other return values are not used now, and will be rejected by the verifier." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The number of loops performed, B<-EINVAL> for invalid B<flags>, B<-E2BIG> if " +"B<nr_loops> exceeds the maximum number of loops." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_strncmp(const char *>I<s1>B<, u32 >I<s1_sz>B<, const char *>I<s2>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"Do strncmp() between B<s1> and B<s2>\\&. B<s1> doesn\\(aqt need to be null-" +"terminated and B<s1_sz> is the maximum storage size of B<s1>\\&. B<s2> must " +"be a read-only string." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"An integer less than, equal to, or greater than zero if the first B<s1_sz> " +"bytes of B<s1> is found to be less than, to match, or be greater than " +"B<s2>\\&." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_get_func_arg(void *>I<ctx>B<, u32 >I<n>B<, u64 *>I<value>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Get B<n>-th argument register (zero based) of the traced function (for " +"tracing programs) returned in B<value>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"0 on success. B<-EINVAL> if n E<gt>= argument register count of traced " +"function." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_get_func_ret(void *>I<ctx>B<, u64 *>I<value>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Get return value of the traced function (for tracing programs) in " +"B<value>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"0 on success. B<-EOPNOTSUPP> for tracing programs other than " +"BPF_TRACE_FEXIT or BPF_MODIFY_RETURN." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_get_func_arg_cnt(void *>I<ctx>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Get number of registers of the traced function (for tracing programs) where " +"function arguments are stored in these registers." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "The number of argument registers of the traced function." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<int bpf_get_retval(void)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"Get the BPF program\\(aqs return value that will be returned to the upper " +"layers." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"This helper is currently supported by cgroup programs and only by the hooks " +"where BPF program\\(aqs return value is returned to the userspace via errno." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "The BPF program\\(aqs return value." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<int bpf_set_retval(int >I<retval>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"Set the BPF program\\(aqs return value that will be returned to the upper " +"layers." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"Note that there is the following corner case where the program exports an " +"error via bpf_set_retval but signals success via \\(aqreturn 1\\(aq:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "bpf_set_retval(-EPERM); return 1;" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"In this case, the BPF program\\(aqs return value will use helper\\(aqs -" +"EPERM. This still holds true for cgroup/bind{4,6} which supports extra " +"\\(aqreturn 3\\(aq success case." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u64 bpf_xdp_get_buff_len(struct xdp_buff *>I<xdp_md>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Get the total size of a given xdp buff (linear and paged area)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "The total size of a given xdp buffer." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_xdp_load_bytes(struct xdp_buff *>I<xdp_md>B<, u32 >I<offset>B<, void *>I<buf>B<, u32 >I<len>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This helper is provided as an easy way to load data from a xdp buffer. It " +"can be used to load I<len> bytes from I<offset> from the frame associated to " +"I<xdp_md>, into the buffer pointed by I<buf>\\&." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_xdp_store_bytes(struct xdp_buff *>I<xdp_md>B<, u32 >I<offset>B<, void *>I<buf>B<, u32 >I<len>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Store I<len> bytes from buffer I<buf> into the frame associated to " +"I<xdp_md>, at I<offset>\\&." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_copy_from_user_task(void *>I<dst>B<, u32 >I<size>B<, const void *>I<user_ptr>B<, struct task_struct *>I<tsk>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"Read I<size> bytes from user space address I<user_ptr> in I<tsk>\\(aqs " +"address space, and stores the data in I<dst>\\&. I<flags> is not used yet " +"and is provided for future extensibility. This helper can only be used by " +"sleepable programs." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"0 on success, or a negative error in case of failure. On error I<dst> buffer " +"is zeroed out." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_skb_set_tstamp(struct sk_buff *>I<skb>B<, u64 >I<tstamp>B<, u32 >I<tstamp_type>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Change the __sk_buff-E<gt>tstamp_type to I<tstamp_type> and set I<tstamp> to " +"the __sk_buff-E<gt>tstamp together." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"If there is no need to change the __sk_buff-E<gt>tstamp_type, the tstamp " +"value can be directly written to __sk_buff-E<gt>tstamp instead." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"BPF_SKB_TSTAMP_DELIVERY_MONO is the only tstamp that will be kept during " +"bpf_redirect_*(). A non zero I<tstamp> must be used with the " +"BPF_SKB_TSTAMP_DELIVERY_MONO I<tstamp_type>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"A BPF_SKB_TSTAMP_UNSPEC I<tstamp_type> can only be used with a zero " +"I<tstamp>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Only IPv4 and IPv6 skb-E<gt>protocol are supported." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This function is most useful when it needs to set a mono delivery time to " +"__sk_buff-E<gt>tstamp and then bpf_redirect_*() to the egress of an iface. " +"For example, changing the (rcv) timestamp in __sk_buff-E<gt>tstamp at " +"ingress to a mono delivery time and then bpf_redirect_*() to I<\\" +"%sch_fq@phy-dev>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"0 on success. B<-EINVAL> for invalid input B<-EOPNOTSUPP> for unsupported " +"protocol" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_ima_file_hash(struct file *>I<file>B<, void *>I<dst>B<, u32 >I<size>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Returns a calculated IMA hash of the I<file>\\&. If the hash is larger than " +"I<size>, then only I<size> bytes will be copied to I<dst>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The B<hash_algo> is returned on success, B<-EOPNOTSUP> if the hash " +"calculation failed or B<-EINVAL> if invalid arguments are passed." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<void *bpf_kptr_xchg(void *>I<map_value>B<, void *>I<ptr>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Exchange kptr at pointer I<map_value> with I<ptr>, and return the old value. " +"I<ptr> can be NULL, otherwise it must be a referenced pointer which will be " +"released when this helper is called." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The old value of kptr (which can be NULL). The returned pointer if not NULL, " +"is a reference which must be released using its corresponding release " +"function, or moved into a BPF map before program exit." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<void *bpf_map_lookup_percpu_elem(struct bpf_map *>I<map>B<, const void *>I<key>B<, u32 >I<cpu>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Perform a lookup in I<percpu map> for an entry associated to I<key> on " +"I<cpu>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Map value associated to I<key> on I<cpu>, or B<NULL> if no entry was found " +"or I<cpu> is invalid." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<struct mptcp_sock *bpf_skc_to_mptcp_sock(void *>I<sk>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Dynamically cast a I<sk> pointer to a I<mptcp_sock> pointer." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_dynptr_from_mem(void *>I<data>B<, u32 >I<size>B<, u64 >I<flags>B<, struct bpf_dynptr *>I<ptr>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Get a dynptr to local memory I<data>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"I<data> must be a ptr to a map value. The maximum I<size> supported is " +"DYNPTR_MAX_SIZE. I<flags> is currently unused." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"0 on success, -E2BIG if the size exceeds DYNPTR_MAX_SIZE, -EINVAL if flags " +"is not 0." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_ringbuf_reserve_dynptr(void *>I<ringbuf>B<, u32 >I<size>B<, u64 >I<flags>B<, struct bpf_dynptr *>I<ptr>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Reserve I<size> bytes of payload in a ring buffer I<ringbuf> through the " +"dynptr interface. I<flags> must be 0." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Please note that a corresponding bpf_ringbuf_submit_dynptr or " +"bpf_ringbuf_discard_dynptr must be called on I<ptr>, even if the reservation " +"fails. This is enforced by the verifier." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<void bpf_ringbuf_submit_dynptr(struct bpf_dynptr *>I<ptr>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Submit reserved ring buffer sample, pointed to by I<data>, through the " +"dynptr interface. This is a no-op if the dynptr is invalid/null." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"For more information on I<flags>, please see \\(aqbpf_ringbuf_submit\\(aq." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<void bpf_ringbuf_discard_dynptr(struct bpf_dynptr *>I<ptr>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Discard reserved ring buffer sample through the dynptr interface. This is a " +"no-op if the dynptr is invalid/null." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"For more information on I<flags>, please see \\(aqbpf_ringbuf_discard\\(aq." +msgstr "" + +#. type: TP +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_dynptr_read(void *>I<dst>B<, u32 >I<len>B<, const struct bpf_dynptr *>I<src>B<, u32 >I<offset>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Read I<len> bytes from I<src> into I<dst>, starting from I<offset> into " +"I<src>\\&. I<flags> is currently unused." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"0 on success, -E2BIG if I<offset> + I<len> exceeds the length of " +"I<src>\\(aqs data, -EINVAL if I<src> is an invalid dynptr or if I<flags> is " +"not 0." +msgstr "" + +#. type: TP +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_dynptr_write(const struct bpf_dynptr *>I<dst>B<, u32 >I<offset>B<, void *>I<src>B<, u32 >I<len>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Write I<len> bytes from I<src> into I<dst>, starting from I<offset> into " +"I<dst>\\&. I<flags> is currently unused." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"0 on success, -E2BIG if I<offset> + I<len> exceeds the length of " +"I<dst>\\(aqs data, -EINVAL if I<dst> is an invalid dynptr or if I<dst> is a " +"read-only dynptr or if I<flags> is not 0." +msgstr "" + +#. type: TP +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +#, no-wrap +msgid "B<void *bpf_dynptr_data(const struct bpf_dynptr *>I<ptr>B<, u32 >I<offset>B<, u32 >I<len>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "Get a pointer to the underlying dynptr data." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"I<len> must be a statically known value. The returned data slice is " +"invalidated whenever the dynptr is invalidated." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Pointer to the underlying dynptr data, NULL if the dynptr is read-only, if " +"the dynptr is invalid, or if the offset and length is out of bounds." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<s64 bpf_tcp_raw_gen_syncookie_ipv4(struct iphdr *>I<iph>B<, struct tcphdr *>I<th>B<, u32 >I<th_len>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Try to issue a SYN cookie for the packet with corresponding IPv4/TCP " +"headers, I<iph> and I<th>, without depending on a listening socket." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "I<iph> points to the IPv4 header." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-EINVAL> if I<th_len> is invalid." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<s64 bpf_tcp_raw_gen_syncookie_ipv6(struct ipv6hdr *>I<iph>B<, struct tcphdr *>I<th>B<, u32 >I<th_len>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Try to issue a SYN cookie for the packet with corresponding IPv6/TCP " +"headers, I<iph> and I<th>, without depending on a listening socket." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "I<iph> points to the IPv6 header." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-EPROTONOSUPPORT> if CONFIG_IPV6 is not builtin." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_tcp_raw_check_syncookie_ipv4(struct iphdr *>I<iph>B<, struct tcphdr *>I<th>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Check whether I<iph> and I<th> contain a valid SYN cookie ACK without " +"depending on a listening socket." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "I<th> points to the TCP header." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "0 if I<iph> and I<th> are a valid SYN cookie ACK." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "B<-EACCES> if the SYN cookie is not valid." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_tcp_raw_check_syncookie_ipv6(struct ipv6hdr *>I<iph>B<, struct tcphdr *>I<th>B<)>" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<u64 bpf_ktime_get_tai_ns(void)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"A nonsettable system-wide clock derived from wall-clock time but ignoring " +"leap seconds. This clock does not experience discontinuities and backwards " +"jumps caused by NTP inserting leap seconds as CLOCK_REALTIME does." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "See: B<clock_gettime>(B<CLOCK_TAI>)" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_user_ringbuf_drain(struct bpf_map *>I<map>B<, void *>I<callback_fn>B<, void *>I<ctx>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Drain samples from the specified user ring buffer, and invoke the provided " +"callback for each such sample:" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "long (*callback_fn)(const struct bpf_dynptr *dynptr, void *ctx);" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"If B<callback_fn> returns 0, the helper will continue to try and drain the " +"next sample, up to a maximum of BPF_MAX_USER_RINGBUF_SAMPLES samples. If the " +"return value is 1, the helper will skip the rest of the samples and return. " +"Other return values are not used now, and will be rejected by the verifier." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The number of drained samples if no error was encountered while draining " +"samples, or 0 if no samples were present in the ring buffer. If a user-space " +"producer was epoll-waiting on this map, and at least one sample was drained, " +"they will receive an event notification notifying them of available space in " +"the ring buffer. If the BPF_RB_NO_WAKEUP flag is passed to this function, no " +"wakeup notification will be sent. If the BPF_RB_FORCE_WAKEUP flag is passed, " +"a wakeup notification will be sent even if no sample was drained." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<-EBUSY> if the ring buffer is contended, and another calling context was " +"concurrently draining the ring buffer." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<-EINVAL> if user-space is not properly tracking the ring buffer due to the " +"producer position not being aligned to 8 bytes, a sample not being aligned " +"to 8 bytes, or the producer position not matching the advertised length of a " +"sample." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<-E2BIG> if user-space has tried to publish a sample which is larger than " +"the size of the ring buffer, or which cannot fit within a struct bpf_dynptr." +msgstr "" + +#. type: TP +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +#, no-wrap +msgid "B<void *bpf_cgrp_storage_get(struct bpf_map *>I<map>B<, struct cgroup *>I<cgroup>B<, void *>I<value>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "Get a bpf_local_storage from the I<cgroup>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"Logically, it could be thought of as getting the value from a I<map> with " +"I<cgroup> as the B<key>\\&. From this perspective, the usage is not much " +"different from B<bpf_map_lookup_elem>(I<map>, B<&>I<cgroup>) except this " +"helper enforces the key must be a cgroup struct and the map must also be a " +"B<BPF_MAP_TYPE_CGRP_STORAGE>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"In reality, the local-storage value is embedded directly inside of the " +"I<cgroup> object itself, rather than being located in the " +"B<BPF_MAP_TYPE_CGRP_STORAGE> map. When the local-storage value is queried " +"for some I<map> on a I<cgroup> object, the kernel will perform an O(n) " +"iteration over all of the live local-storage values for that I<cgroup> " +"object until the local-storage value for the I<map> is found." +msgstr "" + +#. type: TP +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +#, no-wrap +msgid "B<long bpf_cgrp_storage_delete(struct bpf_map *>I<map>B<, struct cgroup *>I<cgroup>B<)>" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "Delete a bpf_local_storage from a I<cgroup>\\&." +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "EXAMPLES" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Example usage for most of the eBPF helpers listed in this manual page are " +"available within the Linux kernel sources, at the following locations:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "I<samples/bpf/>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "I<tools/testing/selftests/bpf/>" +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "LICENSE" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +msgid "" +"eBPF programs can have an associated license, passed along with the bytecode " +"instructions to the kernel when the programs are loaded. The format for that " +"string is identical to the one in use for kernel modules (Dual licenses, " +"such as \"Dual BSD/GPL\", may be used). Some helper functions are only " +"accessible to programs that are compatible with the GNU Privacy License " +"(GPL)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"In order to use such helpers, the eBPF program must be loaded with the " +"correct license string passed (via B<attr>) to the B<bpf>() system call, and " +"this generally translates into the C source code of the program containing a " +"line similar to the following:" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed +#, no-wrap +msgid "" +"^\".ft C$\n" +"char ____license[] __attribute__((section(\"license\"), used)) = \"GPL\";\n" +"^\".ft P$\n" +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "IMPLEMENTATION" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"This manual page is an effort to document the existing eBPF helper " +"functions. But as of this writing, the BPF sub-system is under heavy " +"development. New eBPF program or map types are added, along with new helper " +"functions. Some helpers are occasionally made available for additional " +"program types. So in spite of the efforts of the community, this page might " +"not be up-to-date. If you want to check by yourself what helper functions " +"exist in your kernel, or what types of programs they can support, here are " +"some files among the kernel tree that you may be interested in:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"I<include/uapi/linux/bpf.h> is the main BPF header. It contains the full " +"list of all helper functions, as well as many other BPF definitions " +"including most of the flags, structs or constants used by the helpers." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"I<net/core/filter.c> contains the definition of most network-related helper " +"functions, and the list of program types from which they can be used." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"I<kernel/trace/bpf_trace.c> is the equivalent for most tracing program-" +"related helpers." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"I<kernel/bpf/verifier.c> contains the functions used to check that valid " +"types of eBPF maps are used with a given helper function." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"I<kernel/bpf/> directory contains other files in which additional helpers " +"are defined (for cgroups, sockmaps, etc.)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"The bpftool utility can be used to probe the availability of helper " +"functions on the system (as well as supported program and map types, and a " +"number of other parameters). To do so, run B<bpftool feature probe> (see " +"B<bpftool-feature>(8) for details). Add the B<unprivileged> keyword to list " +"features available to unprivileged users." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Compatibility between helper functions and program types can generally be " +"found in the files where helper functions are defined. Look for the B<struct " +"bpf_func_proto> objects and for functions returning them: these functions " +"contain a list of helpers that a given program type can call. Note that the " +"B<default:> label of the B<switch ... case> used to filter helpers can call " +"other functions, themselves allowing access to additional helpers. The " +"requirement for GPL license is also in those B<struct bpf_func_proto>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Compatibility between helper functions and map types can be found in the " +"B<check_map_func_compatibility>() function in file I<kernel/bpf/verifier." +"c>\\&." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"Helper functions that invalidate the checks on B<data> and B<data_end> " +"pointers for network processing are listed in function " +"B<bpf_helper_changes_pkt_data>() in file I<net/core/filter.c>\\&." +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +#, no-wrap +msgid "SEE ALSO" +msgstr "" + +#. Generated by docutils manpage writer. +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: opensuse-tumbleweed +msgid "" +"B<bpf>(2), B<bpftool>(8), B<cgroups>(7), B<ip>(8), B<perf_event_open>(2), " +"B<sendmsg>(2), B<socket>(7), B<tc-bpf>(8)" +msgstr "" + +#. type: TH +#: debian-bookworm +#, no-wrap +msgid "2022-09-26" +msgstr "" + +#. type: TH +#: debian-bookworm +#, no-wrap +msgid "Linux v6.1" +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"The extended Berkeley Packet Filter (eBPF) subsystem consists in programs " +"written in a pseudo-assembly language, then attached to one of the several " +"kernel hooks and run in reaction of specific events. This framework differs " +"from the older, \\[dq]classic\\[dq] BPF (or \\[dq]cBPF\\[dq]) in several " +"aspects, one of them being the ability to call special functions (or " +"\\[dq]helpers\\[dq]) from within a program. These functions are restricted " +"to a white-list of helpers defined in the kernel." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"This helper is a \\[dq]printk()-like\\[dq] facility for debugging. It prints " +"a message defined by format I<fmt> (of size I<fmt_size>) to file I</sys/" +"kernel/debug/tracing/trace> from DebugFS, if available. It can take up to " +"three additional B<u64> arguments (as an eBPF helpers, the total number of " +"arguments is limited to five)." +msgstr "" + +#. type: Plain text +#: debian-bookworm +#, no-wrap +msgid "" +"^\".ft C$\n" +"telnet-470 [001] .N.. 419421.045894: 0x00000001: E<lt>formatted msgE<gt>\n" +"^\".ft P$\n" +msgstr "" + +#. type: IP +#: debian-bookworm +#, no-wrap +msgid "\\[bu]" +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "B<E<lt>formatted msgE<gt>> is the message formatted with I<fmt>\\&." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"Also, note that B<bpf_trace_printk>() is slow, and should only be used for " +"debugging purposes. For this reason, a notice block (spanning several lines) " +"is printed to kernel logs and states that the helper should not be used " +"\\[dq]for production use\\[dq] the first time this helper is used (or more " +"precisely, when B<trace_printk>() buffers are allocated). For passing values " +"to user space, perf events should be preferred." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"This special helper is used to trigger a \\[dq]tail call\\[dq], or in other " +"words, to jump into another eBPF program. The same stack frame is used (but " +"values on stack and in registers for the caller are not accessible to the " +"callee). This mechanism allows for program chaining, either for raising the " +"maximum number of available eBPF instructions, or to execute given programs " +"in conditional blocks. For security reasons, there is an upper limit to the " +"number of successive tail calls that can be performed." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"This helper is only available is the kernel was compiled with the " +"B<CONFIG_CGROUP_NET_CLASSID> configuration option set to \\[dq]B<y>\\[dq] or " +"to \\[dq]B<m>\\[dq]." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"The B<struct bpf_tunnel_key> is an object that generalizes the principal " +"parameters used by various tunneling protocols into a single struct. This " +"way, it can be used to easily make a decision based on the contents of the " +"encapsulation header, \\[dq]summarized\\[dq] in this struct. In particular, " +"it holds the IP address of the remote end (IPv4 or IPv6, depending on the " +"case) in I<key>B<-E<gt>remote_ipv4> or I<key>B<-E<gt>remote_ipv6>\\&. Also, " +"this struct exposes the I<key>B<-E<gt>tunnel_id>, which is generally mapped " +"to a VNI (Virtual Network Identifier), making it programmable together with " +"the B<bpf_skb_set_tunnel_key>() helper." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"Let\\[aq]s imagine that the following code is part of a program attached to " +"the TC ingress interface, on one end of a GRE tunnel, and is supposed to " +"filter out all messages coming from remote ends with IPv4 address other than " +"10.0.0.1:" +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"This interface can also be used with all encapsulation devices that can " +"operate in \\[dq]collect metadata\\[dq] mode: instead of having one network " +"device per specific configuration, the \\[dq]collect metadata\\[dq] mode " +"only requires a single device where the configuration can be extracted from " +"this helper." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"Since Linux 4.7, usage of this helper has mostly been replaced by " +"\\[dq]direct packet access\\[dq], enabling packet data to be manipulated " +"with I<skb>B<-E<gt>data> and I<skb>B<-E<gt>data_end> pointing respectively " +"to the first byte of packet data and to the byte after the last byte of " +"packet data. However, it remains useful if one wishes to read large " +"quantities of data at once from a packet into the eBPF stack." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"This helper can be used with encapsulation devices that can operate in " +"\\[dq]collect metadata\\[dq] mode (please refer to the related note in the " +"description of B<bpf_skb_get_tunnel_key>() for more details). A particular " +"example where this can be used is in combination with the Geneve " +"encapsulation protocol, where it allows for pushing (with " +"B<bpf_skb_get_tunnel_opt>() helper) and retrieving arbitrary TLVs (Type-" +"Length-Value headers) from the eBPF program. This allows for full " +"customization of these headers." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"B<SOL_SOCKET>, which supports the following I<optname>s: B<SO_RCVBUF>, " +"B<SO_SNDBUF>, B<SO_MAX_PACING_RATE>, B<SO_PRIORITY>, B<SO_RCVLOWAT>, " +"B<SO_MARK>, B<SO_BINDTODEVICE>, B<SO_KEEPALIVE>\\&." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"B<IPPROTO_TCP>, which supports the following I<optname>s: B<TCP_CONGESTION>, " +"B<TCP_BPF_IW>, B<TCP_BPF_SNDCWND_CLAMP>, B<TCP_SAVE_SYN>, B<TCP_KEEPIDLE>, " +"B<TCP_KEEPINTVL>, B<TCP_KEEPCNT>, B<TCP_SYNCNT>, B<TCP_USER_TIMEOUT>, " +"B<TCP_NOTSENT_LOWAT>\\&." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "B<IPPROTO_IPV6>, which supports I<optname> B<IPV6_TCLASS>\\&." +msgstr "" + +#. type: TP +#: debian-bookworm +#, no-wrap +msgid "B<long bpf_redirect_map(struct bpf_map *>I<map>B<, u32 >I<key>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"See also B<bpf_redirect>(), which only supports redirecting to an ifindex, " +"but doesn\\[aq]t require a map to do so." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"This helper actually implements a subset of B<getsockopt()>\\&. It supports " +"the following I<level>s:" +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "B<IPPROTO_TCP>, which supports I<optname> B<TCP_CONGESTION>\\&." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"This helper works for IPv4 and IPv6, TCP and UDP sockets. The domain " +"(I<addr>B<-E<gt>sa_family>) must be B<AF_INET> (or B<AF_INET6>). It\\[aq]s " +"advised to pass zero port (B<sin_port> or B<sin6_port>) which triggers " +"IP_BIND_ADDRESS_NO_PORT-like behavior and lets the kernel efficiently pick " +"up an unused port as long as 4-tuple is unique. Passing non-zero port might " +"lead to degraded performance." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"Retrieve the XFRM state (IP transform framework, see also B<ip-xfrm(8)>) at " +"I<index> in XFRM \\[dq]security path\\[dq] for I<skb>\\&." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"I<file_offset> is an offset relative to the beginning of the executable or " +"shared object file backing the vma which the I<ip> falls in. It is I<not> an " +"offset relative to that object\\[aq]s base address. Accordingly, it must be " +"adjusted by adding (sh_addr - sh_offset), where sh_{addr,offset} correspond " +"to the executable section containing I<file_offset> in the object, for " +"comparisons to symbols\\[aq] st_value to be valid." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "Base offset to load data from is I<skb>\\[aq]s mac header." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "Base offset to load data from is I<skb>\\[aq]s network header." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"In general, \\[dq]direct packet access\\[dq] is the preferred method to " +"access packet data, however, this helper is in particular useful in socket " +"filters where I<skb>B<-E<gt>data> does not always point to the start of the " +"mac header and where \\[dq]direct packet access\\[dq] is not available." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"This helper is only available is the kernel was compiled with the " +"B<CONFIG_BPF_LIRC_MODE2> configuration option set to \\[dq]B<y>\\[dq]." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "The buffer is always NUL terminated, unless it\\[aq]s zero-sized." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"If I<flags> is zero, full name (e.g. \\[dq]net/ipv4/tcp_mem\\[dq]) is " +"copied. Use B<BPF_F_SYSCTL_BASE_NAME> flag to copy base name only (e.g. " +"\\[dq]tcp_mem\\[dq])." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"B<-E2BIG> if the buffer wasn\\[aq]t big enough (I<buf> will contain " +"truncated name in this case)." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"The string may begin with an arbitrary amount of white space (as determined " +"by B<isspace>(3)) followed by a single optional \\[aq]B<->\\[aq] sign." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"Underneath, the value is stored locally at I<sk> instead of the I<map>\\&. " +"The I<map> is used as the bpf-local-storage \\[dq]type\\[dq]. The bpf-local-" +"storage \\[dq]type\\[dq] (i.e. the I<map>) is searched against all bpf-local-" +"storages residing at I<sk>\\&." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"Send signal I<sig> to the process of the current task. The signal may be " +"delivered to any of this process\\[aq]s threads." +msgstr "" + +#. type: Plain text +#: debian-bookworm +#, no-wrap +msgid "" +"^\".ft C$\n" +"SEC(\\[dq]kprobe/sys_open\\[dq])\n" +"void bpf_sys_open(struct pt_regs *ctx)\n" +"{\n" +" char buf[PATHLEN]; // PATHLEN is defined to 256\n" +" int res = bpf_probe_read_user_str(buf, sizeof(buf),\n" +" ctx-E<gt>di);\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"B<-EINVAL> if dev and inum supplied don\\[aq]t match dev_t and inode number " +"with nsfs of current task, or if dev conversion to dev_t lost high bits." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"B<-EPROTOTYPE> if socket L4 protocol (I<sk-E<gt>protocol>) doesn\\[aq]t " +"match packet protocol (I<ctx-E<gt>protocol>)." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"See \\[aq]bpf_ringbuf_output()\\[aq] for the definition of adaptive " +"notification." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"If the searching kind is an experimental kind (i.e. 253 or 254 according to " +"RFC6994). It also needs to specify the \\[dq]magic\\[dq] which is either 2 " +"bytes or 4 bytes. It then also needs to specify the size of the magic by " +"using the 2nd byte which is \\[dq]kind-length\\[dq] of a TCP header option " +"and the \\[dq]kind-length\\[dq] also includes the first 2 bytes " +"\\[dq]kind\\[dq] and \\[dq]kind-length\\[dq] itself as a normal TCP header " +"option also does." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"Underneath, the value is stored locally at I<inode> instead of the " +"I<map>\\&. The I<map> is used as the bpf-local-storage \\[dq]type\\[dq]. " +"The bpf-local-storage \\[dq]type\\[dq] (i.e. the I<map>) is searched against " +"all bpf_local_storage residing at I<inode>\\&." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"See B<bpf_get_cgroup_classid>() for the main description. This helper " +"differs from B<bpf_get_cgroup_classid>() in that the cgroup v1 net_cls class " +"is retrieved only from the I<skb>\\[aq]s associated socket instead of the " +"current process." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"The helper will perform a FIB lookup based on the skb\\[aq]s networking " +"header to get the address of the next hop, unless this is supplied by the " +"caller in the I<params> argument. The I<plen> argument indicates the len of " +"I<params> and should be set to 0 if I<params> is NULL." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"Take a pointer to a percpu ksym, I<percpu_ptr>, and return a pointer to the " +"percpu kernel variable on I<cpu>\\&. A ksym is an extern variable decorated " +"with \\[aq]__ksym\\[aq]. For ksym, there is a global var (either static or " +"global) defined of the same name in the kernel. The ksym is percpu if the " +"global var is percpu. The returned pointer points to the global percpu var " +"on I<cpu>\\&." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"Take a pointer to a percpu ksym, I<percpu_ptr>, and return a pointer to the " +"percpu kernel variable on this cpu. See the description of \\[aq]ksym\\[aq] " +"in B<bpf_per_cpu_ptr>()." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"Redirect the packet to another net device of index I<ifindex>\\&. This " +"helper is somewhat similar to B<bpf_redirect>(), except that the redirection " +"happens to the I<ifindex>\\[aq] peer device and the netns switch takes place " +"from ingress to ingress without going through the CPU\\[aq]s backlog queue." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"Underneath, the value is stored locally at I<task> instead of the " +"I<map>\\&. The I<map> is used as the bpf-local-storage \\[dq]type\\[dq]. " +"The bpf-local-storage \\[dq]type\\[dq] (i.e. the I<map>) is searched against " +"all bpf_local_storage residing at I<task>\\&." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"Return a BTF pointer to the \\[dq]current\\[dq] task. This pointer can also " +"be used in helpers that accept an I<ARG_PTR_TO_BTF_ID> of type " +"I<task_struct>\\&." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"Returns the stored IMA hash of the I<inode> (if it\\[aq]s available). If " +"the hash is larger than I<size>, then only I<size> bytes will be copied to " +"I<dst>" +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"Specifying I<ifindex> zero means the MTU check is performed against the " +"current net device. This is practical if this isn\\[aq]t used prior to " +"redirect." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"Find BTF type with given name and kind in vmlinux BTF or in module\\[aq]s " +"BTFs." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"0 on success. B<-EBUSY> if I<timer> is already initialized. B<-EINVAL> if " +"invalid I<flags> are passed. B<-EPERM> if I<timer> is in a map that " +"doesn\\[aq]t have any user references. The user space should either hold a " +"file descriptor to a map with timers or pin such map in bpffs. When map is " +"unpinned or file descriptor is closed all timers in the map will be " +"cancelled and freed." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"0 on success. B<-EINVAL> if I<timer> was not initialized with " +"bpf_timer_init() earlier. B<-EPERM> if I<timer> is in a map that " +"doesn\\[aq]t have any user references. The user space should either hold a " +"file descriptor to a map with timers or pin such map in bpffs. When map is " +"unpinned or file descriptor is closed all timers in the map will be " +"cancelled and freed." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"Set timer expiration N nanoseconds from the current time. The configured " +"callback will be invoked in soft irq context on some cpu and will not repeat " +"unless another bpf_timer_start() is made. In such case the next invocation " +"can migrate to a different cpu. Since struct bpf_timer is a field inside " +"map element the map owns the timer. The bpf_timer_set_callback() will " +"increment refcnt of BPF program to make sure that callback_fn code stays " +"valid. When user space reference to a map reaches zero all timers in a map " +"are cancelled and corresponding program\\[aq]s refcnts are decremented. This " +"is done to make sure that Ctrl-C of a user process doesn\\[aq]t leave any " +"timers running. If map is pinned in bpffs the callback_fn can re-arm itself " +"indefinitely. bpf_map_update/delete_elem() helpers and user space sys_bpf " +"commands cancel and free the timer in the given map element. The map can " +"contain timers that invoke callback_fn-s from different programs. The same " +"callback_fn can serve different timers from different maps if key/value " +"layout matches across maps. Every bpf_timer_set_callback() can have " +"different callback_fn." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"Do strncmp() between B<s1> and B<s2>\\&. B<s1> doesn\\[aq]t need to be null-" +"terminated and B<s1_sz> is the maximum storage size of B<s1>\\&. B<s2> must " +"be a read-only string." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"Get the BPF program\\[aq]s return value that will be returned to the upper " +"layers." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"This helper is currently supported by cgroup programs and only by the hooks " +"where BPF program\\[aq]s return value is returned to the userspace via errno." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "The BPF program\\[aq]s return value." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"Set the BPF program\\[aq]s return value that will be returned to the upper " +"layers." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"Note that there is the following corner case where the program exports an " +"error via bpf_set_retval but signals success via \\[aq]return 1\\[aq]:" +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"In this case, the BPF program\\[aq]s return value will use helper\\[aq]s -" +"EPERM. This still holds true for cgroup/bind{4,6} which supports extra " +"\\[aq]return 3\\[aq] success case." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"Read I<size> bytes from user space address I<user_ptr> in I<tsk>\\[aq]s " +"address space, and stores the data in I<dst>\\&. I<flags> is not used yet " +"and is provided for future extensibility. This helper can only be used by " +"sleepable programs." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"For more information on I<flags>, please see \\[aq]bpf_ringbuf_submit\\[aq]." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"For more information on I<flags>, please see \\[aq]bpf_ringbuf_discard\\[aq]." +msgstr "" + +#. type: TP +#: debian-bookworm +#, no-wrap +msgid "B<long bpf_dynptr_read(void *>I<dst>B<, u32 >I<len>B<, struct bpf_dynptr *>I<src>B<, u32 >I<offset>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"0 on success, -E2BIG if I<offset> + I<len> exceeds the length of " +"I<src>\\[aq]s data, -EINVAL if I<src> is an invalid dynptr or if I<flags> is " +"not 0." +msgstr "" + +#. type: TP +#: debian-bookworm +#, no-wrap +msgid "B<long bpf_dynptr_write(struct bpf_dynptr *>I<dst>B<, u32 >I<offset>B<, void *>I<src>B<, u32 >I<len>B<, u64 >I<flags>B<)>" +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"0 on success, -E2BIG if I<offset> + I<len> exceeds the length of " +"I<dst>\\[aq]s data, -EINVAL if I<dst> is an invalid dynptr or if I<dst> is a " +"read-only dynptr or if I<flags> is not 0." +msgstr "" + +#. type: TP +#: debian-bookworm +#, no-wrap +msgid "B<void *bpf_dynptr_data(struct bpf_dynptr *>I<ptr>B<, u32 >I<offset>B<, u32 >I<len>B<)>" +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "long (*callback_fn)(struct bpf_dynptr *dynptr, void *ctx);" +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"eBPF programs can have an associated license, passed along with the bytecode " +"instructions to the kernel when the programs are loaded. The format for that " +"string is identical to the one in use for kernel modules (Dual licenses, " +"such as \\[dq]Dual BSD/GPL\\[dq], may be used). Some helper functions are " +"only accessible to programs that are compatible with the GNU Privacy License " +"(GPL)." +msgstr "" + +#. type: Plain text +#: debian-bookworm +#, no-wrap +msgid "" +"^\".ft C$\n" +"char ____license[] __attribute__((section(\\[dq]license\\[dq]), used)) = \\[dq]GPL\\[dq];\n" +"^\".ft P$\n" +msgstr "" |