# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2024-05-01 15:35+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \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-rawhide opensuse-tumbleweed #, no-wrap msgid "2023-11-10" msgstr "" #. type: TH #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed #, no-wrap msgid "Linux v6.8" 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 "BIB<, const void *>IB<)>" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Perform a lookup in I for an entry associated to I\\&." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Map value associated to I, or B if no entry was found." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, const void *>IB<, const void *>IB<, u64 >IB<)>" 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 in I with " "I\\&. I is one of:" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "The entry for I must not exist in the map." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "The entry for I must already exist in the map." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "B" 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\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Flag value B cannot be used for maps of types " "B or B (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 "BIB<, const void *>IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Delete entry with I from I\\&." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u32 >IB<, const void *>IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "For tracing programs, safely attempt to read I bytes from kernel space " "address I and store the data in I\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Generally, use B() or B() " "instead." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "B" 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(B)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Current I\\&." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u32 >IB<, ...)>" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "This helper is a \"printk()-like\" facility for debugging. It prints a " "message defined by format I (of size I) to file I from TraceFS, if available. It can take up to three " "additional B arguments (as an eBPF helpers, the total number of " "arguments is limited to five)." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "Each time the helper is called, it appends a line to the trace. Lines are " "discarded while I is open, use I to avoid this. The format of the trace is customizable, " "and the exact output one will get depends on the options set in I (see also the I file under the same " "directory). However, it usually defaults to something like:" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed #, no-wrap msgid "telnet-470 [001] .N.. 419421.045894: 0x00000001: Eformatted msgE\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 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 means that B and " "B 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-bookworm debian-unstable fedora-rawhide opensuse-tumbleweed msgid "Bformatted msgE> is the message formatted with I\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "The conversion specifiers supported by I 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() 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() 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" 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" 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 "BIB<, u32 >IB<, const void *>IB<, u32 >IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Store I bytes from address I into the packet associated to " "I, at I\\&. I are a combination of " "B (automatically recompute the checksum for the packet " "after storing the bytes) and B (set IB<-" "Ehash>, IB<-Eswhash> and IB<-El4hash> 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 "BIB<, u32 >IB<, u64 >IB<, u64 >IB<, u64 >IB<)>" 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\\&. Computation is incremental, so the helper must know the former " "value of the header field that was modified (I), the new value of this " "field (I), and the number of bytes (2 or 4) for this field, stored in " "I\\&. Alternatively, it is possible to store the difference between " "the previous and the new values of the header field in I, by setting " "I and I to 0. For both methods, I 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(), 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 "BIB<, u32 >IB<, u64 >IB<, u64 >IB<, u64 >IB<)>" 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\\&. Computation is incremental, so the helper must know " "the former value of the header field that was modified (I), the new " "value of this field (I), and the number of bytes (2 or 4) for this " "field, stored on the lowest four bits of I\\&. Alternatively, it is " "possible to store the difference between the previous and the new values of " "the header field in I, by setting I and the four lowest bits of " "I to 0. For both methods, I indicates the location of the IP " "checksum within the packet. In addition to the size of the field, I " "can be added (bitwise OR) actual flags. With B, a null " "checksum is left untouched (unless B is added as well), " "and for updates resulting in a null checksum the value is set to " "B instead. Flag B 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 "BIB<, struct bpf_map *>IB<, u32 >IB<)>" 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 in I, a special map of type " "B, and passes I, 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 is superior " "to the number of entries in I), 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 (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 "BIB<, u32 >IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Clone and redirect the packet associated to I to another net device of " "index I\\&. Both ingress and egress interfaces can be used for " "redirection. The B value in I 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() helper, B() has the " "associated cost of duplicating the packet buffer, but this can be executed " "out of the eBPF program. Conversely, B() is more efficient, " "but it is handled through an action code where the redirection happens only " "after the eBPF program has returned." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "0 on success, or a negative error in case of failure. Positive error " "indicates a potential drop or congestion in the target device. The " "particular positive error codes are not defined." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "B" 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: " "IB<-Etgid EE 32 |> IB<-Epid>\\&." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "B" 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 BE 32 |> I\\&." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u32 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Copy the B attribute of the current task into I of " "I\\&. The B attribute contains the name of the executable " "(excluding the path) for the current task. The I must be " "strictly positive. On success, the helper makes sure that the I 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 "BIB<)>" 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 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\\&." 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 configuration option set to \"B\" or to " "\"B\"." 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 "BIB<, __be16 >IB<, u16 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Push a I (VLAN tag control information) of protocol I " "to the packet associated to I, then update the checksum. Note that if " "I is different from B and B, it is " "considered to be B\\&." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<)>" 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\\&." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, struct bpf_tunnel_key *>IB<, u32 >IB<, u64 >IB<)>" 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 to an empty B of B, that will be filled with tunnel metadata for the " "packet associated to I\\&. The I can be set to " "B, 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 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 " "IB<-Eremote_ipv4> or IB<-Eremote_ipv6>\\&. Also, this " "struct exposes the IB<-Etunnel_id>, which is generally mapped to a " "VNI (Virtual Network Identifier), making it programmable together with the " "B() 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-unstable fedora-rawhide opensuse-tumbleweed #, no-wrap msgid "" "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 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-unstable fedora-rawhide opensuse-tumbleweed #, no-wrap msgid "return TC_ACT_OK; // accept packet\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 "BIB<, struct bpf_tunnel_key *>IB<, u32 >IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Populate tunnel metadata for packet associated to I The tunnel " "metadata is set to the contents of I, of I\\&. The I 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" 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" 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" 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" 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: TP #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "Add a flag to tunnel metadata indicating that no tunnel key should be set in " "the resulting tunnel header." 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-unstable fedora-rawhide opensuse-tumbleweed #, no-wrap msgid "" "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" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "See also the description of the B() helper for " "additional information." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u64 >IB<)>" 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 of " "type B\\&. The nature of the perf event " "counter is selected when I is updated with perf event file descriptors. " "The I 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, that contains the index of the CPU to look up, masked " "with B\\&. Alternatively, I can be set to " "B 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() is " "recommended over B() 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(), which at the same time provides more " "features over the B() interface. Please refer to the " "description of B() 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 "BIB<, u64 >IB<)>" 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\\&. This " "helper is somewhat similar to B(), 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 value in I 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(), 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 on success or B on " "error. For other program types, the values are B on success " "or B on error." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<)>" 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 field of the " "destination for the I\\&. The identifier retrieved is a user-provided " "tag, similar to the one used with the net_cls cgroup (see description for " "B() 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), 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() for a classful qdisc until the " "I 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 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, or 0 if none was " "found." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, struct bpf_map *>IB<, u64 >IB<, void *>IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Write raw I blob into a special BPF perf event held by I of type " "B\\&. This perf event must have the following " "attributes: B as B, B as " "B, and B as B\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "The I are used to indicate the index in I for which the value " "must be put, masked with B\\&. Alternatively, I " "can be set to B 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, is passed through eBPF stack and pointed by " "I\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "The context of the program I 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() on the perf event (either for one or for all CPUs) and " "to store the file descriptor into the I\\&. This must be done before " "the eBPF program can send data into it. An example is available in file " "I in the Linux kernel source tree (the eBPF " "program counterpart is in I)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "B() achieves better performance than " "B() 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 "BIB<, u32 >IB<, void *>IB<, u32 >IB<)>" 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 bytes from I from the packet associated to " "I, into the buffer pointed by I\\&." 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 IB<-" "Edata> and IB<-Edata_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 "BIB<, struct bpf_map *>IB<, u64 >IB<)>" 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, which is a pointer to the context on which the tracing program " "is executed, and a pointer to a I of type " "B\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "The last argument, I, holds the number of stack frames to skip (from " "0 to 255), masked with B\\&. 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" 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" 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" 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, 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(), " "which can be used with unrolled loops but is not efficient and consumes a " "lot of eBPF instructions. Instead, B() can collect up to " "B both kernel and user frames. Note that this limit " "can be controlled with the B 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-unstable fedora-rawhide opensuse-tumbleweed #, no-wrap msgid "# sysctl kernel.perf_event_max_stack=Enew valueE\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 "BIB<, u32 >IB<, __be32 *>IB<, u32 >IB<, __wsum >IB<)>" 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, of " "length I (that must be a multiple of 4), towards the raw buffer " "pointed by I, of size I (same remark). An optional I 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 == 0, I E 0 and I 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 E 0, I == 0 and I 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 E 0, I E 0 and I set to 0, it can " "be used to compute a diff. Note that I and I 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() and " "B(), to which one can feed in the difference computed " "with B()." 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 "BIB<, void *>IB<, u32 >IB<)>" 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, and " "store the raw tunnel option data to the buffer I of I\\&." 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() 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() 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 "BIB<, void *>IB<, u32 >IB<)>" 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 to the " "option data contained in the raw buffer I of I\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "See also the description of the B() helper for " "additional information." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, __be16 >IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Change the protocol of the I to I\\&. 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() and to recompute the checksums with " "B() and B(). 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 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 "BIB<, u32 >IB<)>" 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\\&. This comes " "down to setting IB<-Epkt_type> to I, except the eBPF program " "does not have a write access to IB<-Epkt_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 in a " "programmatic way instead of having to recirculate via B(..., " "B), for example." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Note that I 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" 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" 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" 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" 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 "BIB<, struct bpf_map *>IB<, u32 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Check whether I is a descendant of the cgroup2 held by I of type " "B, at I\\&." 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 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 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 "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Retrieve the hash of the packet, IB<-Ehash>\\&. 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 IB<-Ehash>\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Calling B(), changing a packet prototype with " "B(), or calling B() with the " "B are actions susceptible to clear the hash and to " "trigger a new computation for the next call to B()." 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" 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 "BIB<, const void *>IB<, u32 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Attempt in a safe way to write I bytes from the buffer I to I " "in memory. It only works for threads that are in user context, and I " "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 "BIB<, u32 >IB<)>" 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 of type " "B, at I\\&." 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 "BIB<, u32 >IB<, u64 >IB<)>" 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 to the new I\\&. " "The I 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(), B(), " "B() 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\\&." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u32 >IB<)>" 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 is non-linear and not all of " "I are part of the linear section. Make I bytes from I " "readable and writable. If a zero value is passed for I, then all bytes " "in the linear part of I 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 IB<-Edata_end>) is susceptible to fail if " "offsets are invalid, or if the requested data is in non-linear parts of the " "I\\&. 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() helper is a first solution to access the data. " "Another one consists in using B 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 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 to effectively unclone the I 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 "BIB<, __wsum >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Add the checksum I into IB<-Ecsum> 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(), 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 "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Invalidate the current IB<-Ehash>\\&. 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() 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" 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 option (see also " "B), but the helper is also available to other eBPF program types, " "similarly to B()." 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 "BIB<, u32 >IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Grows headroom of packet associated to I and adjusts the offset of the " "MAC header accordingly, adding I 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 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 "BIB<, int >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Adjust (move) IB<-Edata> by I bytes. Note that it is " "possible to use a negative value for I\\&. 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 "BIB<, u32 >IB<, const void *>IB<)>" 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 to " "I\\&. See B() for more details." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Generally, use B() or " "B() 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 "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "If the B pointed by I 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\\&." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<)>" 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, but gets " "socket from B 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 "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Equivalent to B() helper that accepts I, but " "gets socket from B context." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Equivalent to B() helper that accepts I, but gets " "socket from a BTF B\\&. 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 is NULL." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<)>" 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\\&." 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\\&. If the socket is " "B, or if it is not a full socket (i.e. if it is a time-wait or a " "request socket instead), B value is returned (note that " "B 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 "BIB<, u32 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Set the full hash for I (set the field IB<-Ehash>) to value " "I\\&." 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 "BIB<, int >IB<, int >IB<, void *>IB<, int >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Emulate a call to B on the socket associated to I, " "which must be a full socket. The I at which the option resides and " "the name I of the option must be specified, see B " "for more information. The option value of length I is pointed by " "I\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "I should be one of the following:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "B for B\\&." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "B for B, " "B and B\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "This helper actually implements a subset of B\\&. It supports " "the following Is:" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed msgid "" "B, which supports the following Is: B, " "B, B, B, B, " "B, B, B, B, " "B, B, B\\&." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed msgid "" "B, which supports the following Is: B, " "B, B, B, B, " "B, B, B, B, " "B, B, B, B, " "B, B, B\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "B, which supports I B\\&." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed msgid "" "B, which supports the following Is: B, " "B\\&." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, s32 >IB<, u32 >IB<, u64 >IB<)>" 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 by " "I, and according to the selected I\\&." 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: 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: 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: 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: 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, B: 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, B: 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(I): Use with ENCAP_L3/L4 flags to further " "specify the tunnel type; I 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: Use with BPF_F_ADJ_ROOM_ENCAP_L2 flag to " "further specify the L2 type as Ethernet." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "B, B: Indicate " "the new IP header version after decapsulating the outer IP header. Used when " "the inner and outer IP versions are different." msgstr "" #. type: TP #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed #, no-wrap msgid "BIB<, u64 >IB<, u64 >IB<)>" 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 at index I\\&. " "Depending on its type, this I 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 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, as chosen by the caller. The higher bits of I " "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(), 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 on success, or the value of the two lower bits of the " "I argument on error." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, struct bpf_map *>IB<, u32 >IB<, u64 >IB<)>" 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 (of type " "B) at index I\\&. Both ingress and egress " "interfaces can be used for redirection. The B value in " "I 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 on success, or B on error." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, struct bpf_map *>IB<, void *>IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Add an entry to, or update a I referencing sockets. The I is " "used as a new value for the entry associated to I\\&. I is one " "of:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "If the I 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 "BIB<, int >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Adjust the address pointed by IB<-Edata_meta> by I (which " "can be positive or negative). Note that this operation modifies the address " "stored in IB<-Edata>, 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 IB<-Edata_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 or B 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 "BIB<, u64 >IB<, struct bpf_perf_event_value *>IB<, u32 >IB<)>" 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 of size " "I\\&. This helper relies on a I of type " "B\\&. The nature of the perf event counter is " "selected when I is updated with perf event file descriptors. The I " "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, that contains the index of the CPU to look up, masked with " "B\\&. Alternatively, I can be set to " "B 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() helper, save " "that instead of just returning the value observed, it fills the I " "structure. This allows for additional data to be retrieved: in particular, " "the enabled and running times (in IB<-Eenabled> and IB<-" "Erunning>, respectively) are copied. In general, " "B() is recommended over B(), " "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-unstable fedora-rawhide opensuse-tumbleweed #, no-wrap msgid "normalized_counter = counter * t_enabled / t_running\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 "BIB<, struct bpf_perf_event_value *>IB<, u32 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "For an eBPF program attached to a perf event, retrieve the value of the " "event counter associated to I and store it in the structure pointed by " "I and of size I\\&. Enabled and running times are also stored " "in the structure (see description of helper B() " "for more details)." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, int >IB<, int >IB<, void *>IB<, int >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Emulate a call to B on the socket associated to I, " "which must be a full socket. The I at which the option resides and " "the name I of the option must be specified, see B " "for more information. The retrieved value is stored in the structure " "pointed by I and of length I\\&." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed msgid "" "This helper actually implements a subset of B\\&. It supports " "the same set of Is that is supported by the B() " "helper. The exceptions are B is B() only and " "B is B() only." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u64 >IB<)>" 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\\&. The first argument " "is the context I 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 configuration option, and in this case it only " "works on functions tagged with B 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 "BIB<, int >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Attempt to set the value of the B field for the full " "TCP socket associated to I to I\\&." 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 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 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 (retransmission time out)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "B (retransmission)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "B (TCP state change)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "B (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" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Bbpf_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 "BIB<, struct bpf_map *>IB<, u32 >IB<, u64 >IB<)>" 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 is allowed to pass (i.e. if the verdict eBPF program " "returns B), redirect it to the socket referenced by I (of type " "B) at index I\\&. Both ingress and egress " "interfaces can be used for redirection. The B value in " "I 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 "BIB<, u32 >IB<)>" 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 (number of bytes) of message I\\&." 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() or B() 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 of a I\\&. 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\\&. If I is smaller than the current data being " "processed from a B() or B() system call, the first " "I will be sent and the eBPF program will be re-run with the pointer " "for start of data pointing to byte number I B<+ 1>\\&. If I is " "larger than the current data being processed, then the eBPF verdict will be " "applied to multiple B() or B() calls until I 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 " "and is sent as it is received." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u32 >IB<)>" 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 until I (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() or " "B() calls. The extreme case would be a user calling B() " "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 " "to validate a header, this helper can be used to prevent the eBPF program to " "be called again until I have been accumulated." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u32 >IB<, u32 >IB<, u64 >IB<)>" 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 and " "set pointers IB<-Edata> and IB<-Edata_end> to I and " "I bytes offsets into I, respectively." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "If a program of type B is run on a I it can only " "parse data that the (B, B) pointers have already consumed. " "For B() hooks this is likely the first scatterlist element. But for " "calls relying on the B handler (e.g. B()) 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 "BIB<, struct sockaddr *>IB<, int >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Bind the socket associated to I to the address pointed by I, of " "length I\\&. 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 " "(IB<-Esa_family>) must be B (or B). It\\(aqs " "advised to pass zero port (B or B) 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 "BIB<, int >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Adjust (move) IB<-Edata_end> by I bytes. It is possible " "to both shrink and grow the packet tail. Shrink done via I being a " "negative integer." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u32 >IB<, struct bpf_xfrm_state *>IB<, u32 >IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed msgid "" "Retrieve the XFRM state (IP transform framework, see also B) at " "I in XFRM \"security path\" for I\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "The retrieved value is stored in the B pointed by " "I and of length I\\&." 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 " "configuration option." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, void *>IB<, u32 >IB<, u64 >IB<)>" 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, which is a pointer to the context on which " "the tracing program is executed. To store the stacktrace, the bpf program " "provides I with a nonnegative I\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "The last argument, I, holds the number of stack frames to skip (from " "0 to 255), masked with B\\&. 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" 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 is also specified." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed msgid "" "I is an offset relative to the beginning of the executable or " "shared object file backing the vma which the I falls in. It is I 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 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() can collect up to B both kernel and " "user frames, subject to sufficient large buffer size. Note that this limit " "can be controlled with the B 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 length equal to or less than I 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 "BIB<, u32 >IB<, void *>IB<, u32 >IB<, u32 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "This helper is similar to B() in that it provides an " "easy way to load I bytes from I from the packet associated to " "I, into the buffer pointed by I\\&. The difference to " "B() is that a fifth argument I exists in " "order to select a base offset to start from. I can be one of:" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed msgid "Base offset to load data from is I\\(aqs mac header." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed msgid "Base offset to load data from is I\\(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 IB<-Edata> 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 "BIB<, struct bpf_fib_lookup *>IB<, int >IB<, u32 >IB<)>" 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\\&. 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 argument is the size of the passed in struct. I 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" 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-unstable fedora-rawhide opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "Used with BPF_FIB_LOOKUP_DIRECT. Use the routing table ID present in " "I-Etbid for the fib lookup." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "B" 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: TP #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "Skip the neighbour table lookup. I-Edmac and I-Esmac " "will not be set as output. A common use case is to call " "B() after doing B()." msgstr "" #. type: TP #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "Derive and set source IP addr in I-Eipv{4,6}_src for the " "nexthop. If the src addr cannot be derived, B " "is returned. In this case, I-Edmac and I-Esmac are " "not set either." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "I is either B for XDP programs or B tc " "cls_act programs." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "E 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 0 one of B 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-Emtu_result contains the MTU." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, struct bpf_map *>IB<, void *>IB<, u64 >IB<)>" 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 referencing sockets. The " "I is used as a new value for the entry associated to I\\&. " "I is one of:" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, struct bpf_map *>IB<, void *>IB<, u64 >IB<)>" 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 is allowed to pass (i.e. if the verdict eBPF program " "returns B), redirect it to the socket referenced by I (of type " "B) using hash I\\&. Both ingress and egress " "interfaces can be used for redirection. The B value in " "I 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 "BIB<, struct bpf_map *>IB<, void *>IB<, u64 >IB<)>" 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 is allowed to pass (i.e. if the verdict eBPF " "program returns B), redirect it to the socket referenced by I " "(of type B) using hash I\\&. Both ingress and " "egress interfaces can be used for redirection. The B value in " "I 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 "BIB<, u32 >IB<, void *>IB<, u32 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Encapsulate the packet associated to I within a Layer 3 protocol " "header. This header is provided in the buffer at address I, with I " "its size in bytes. I 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" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "IPv6 encapsulation with Segment Routing Header (B). " "I 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" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Only works if I contains an IPv6 packet. Insert a Segment Routing " "Header (B) inside the IPv6 header." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "B" 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 " "total bytes in all prepended headers. Please note that if " "B(I) 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* types can be called by BPF programs of type " "B; B type can be called by bpf " "programs of types B and B\\&." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u32 >IB<, const void *>IB<, u32 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Store I bytes from address I into the packet associated to " "I, at I\\&. 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 "BIB<, u32 >IB<, s32 >IB<)>" 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, at position I " "by I bytes. Only offsets after the segments are accepted. I " "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 "BIB<, u32 >IB<, void *>IB<, u32 >IB<)>" 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 to the packet " "associated to I\\&. Each action takes a parameter contained at address " "I, and of length I bytes. I can be one of:" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "B" 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: " "B\\&." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "B" 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: " "B\\&." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "B" 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: B\\&." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "B" 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: B\\&." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<)>" 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 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 configuration option set to \"B\"." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u32 >IB<, u64 >IB<, u32 >IB<)>" 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, I value in the " "given I\\&. 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() again with the same values, or calling " "B()." 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 is the decoded protocol number (see B for " "some predefined values)." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<)>" 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\\&. This " "is roughly similar to the B() 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 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" 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 "BIB<, u64 >IB<)>" 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 argument. The I 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 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 "BIB<, struct bpf_map *>IB<, void *>IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Select a B socket from a B " "I\\&. 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 "BIB<, int >IB<)>" 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 " "at the I\\&. The root cgroup is at I zero " "and each step down the hierarchy increments the level. If I " "== level of cgroup associated with I, then return value will be same as " "that of B()." 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\\&." 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()." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, struct bpf_sock_tuple *>IB<, u32 >IB<, u64 >IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Look for TCP socket matching I, optionally in a child network " "namespace I\\&. The return value must be checked, and if non-B, " "released via B()." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "The I 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 must be one of:" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<-Eipv4)>" 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 "BIB<-Eipv6)>" 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 is a negative signed 32-bit integer, then the socket lookup " "table in the netns associated with the I 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 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\\&. I 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 " "configuration option." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Pointer to B, or B in case of failure. For sockets " "with reuseport option, the B result is from IB<-" "Esocks>[] using the hash of the tuple." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, struct bpf_sock_tuple *>IB<, u32 >IB<, u64 >IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Look for UDP socket matching I, optionally in a child network " "namespace I\\&. The return value must be checked, and if non-B, " "released via B()." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Release the reference held by I\\&. I must be a non-B " "pointer that was returned from B()." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, const void *>IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Push an element I in I\\&. I 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 "BIB<, void *>IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Pop an element from I\\&." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, void *>IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Get an element from I without removing it." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u32 >IB<, u32 >IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "For socket policies, insert I bytes into I at offset I\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "If a program of type B is run on a I it may want " "to insert metadata or options into the I\\&. 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 "BIB<, u32 >IB<, u32 >IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Will remove I bytes from a I starting at byte I\\&. This " "may result in B 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 byte not being valid part of " "I payload and/or I value being to large." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, s32 >IB<, s32 >IB<)>" 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 "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Acquire a spinlock represented by the pointer I, 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(I)." 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 objects are only allowed inside maps of types " "B and B (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 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 and B 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() 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 only via the " "B() and B() helpers. Loading or storing " "data into the B IB<;> 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() helper, the BTF description of the map value " "must be a struct and have B IB<;> 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 I 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 does not copy the " "B field to user space." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Syscall with command B, or update from a BPF program, " "do not update the B field." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "B 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 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() " "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 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 "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Release the I previously locked by a call to B(I)." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "This helper gets a B pointer such that all the fields in " "this B can be accessed." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "A B pointer on success, or B in case of failure." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "This helper gets a B pointer from a B " "pointer." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "A B pointer on success, or B in case of failure." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<)>" 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 " "(Congestion Encountered) if current value is B (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 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 "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Return a B pointer in B state. " "B() is unnecessary and not allowed." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, struct bpf_sock_tuple *>IB<, u32 >IB<, u64 >IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "This function is identical to B(), except that it also " "returns timewait or request sockets. Use B() or " "B() to access the full structure." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, void *>IB<, u32 >IB<, struct tcphdr *>IB<, u32 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Check whether I and I contain a valid SYN cookie ACK for the " "listening socket in I\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "I points to the start of the IPv4 or IPv6 header, while I " "contains B(B) or B(B)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "I points to the start of the TCP header, while I contains the " "length of the TCP header (at least B(B))." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "0 if I and I 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 "BIB<, char *>IB<, size_t >IB<, u64 >IB<)>" 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 of size I\\&." 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 is zero, full name (e.g. \"net/ipv4/tcp_mem\") is copied. Use " "B 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 will contain truncated " "name in this case)." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, char *>IB<, size_t >IB<)>" 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 of size " "I\\&." 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 "BIB<, char *>IB<, size_t >IB<)>" 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 of " "size I\\&." 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 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 "BIB<, const char *>IB<, size_t >IB<)>" 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 of size I\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "I 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 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 is too big." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, size_t >IB<, u64 >IB<, long *>IB<)>" 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 of size I " "to a long integer according to the given base and save the result in " "I\\&." 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(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 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(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\\&." 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 "BIB<, size_t >IB<, u64 >IB<, unsigned long *>IB<)>" 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 of size I " "to an unsigned long integer according to the given base and save the result " "in I\\&." 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(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(3)." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, void *>IB<, void *>IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Get a bpf-local-storage from a I\\&." 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 with I " "as the B\\&. From this perspective, the usage is not much different " "from B(I, B<&>I) except this helper enforces " "the key must be a full socket and the map must be a " "B also." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed msgid "" "Underneath, the value is stored locally at I instead of the I\\&. " "The I is used as the bpf-local-storage \"type\". The bpf-local-storage " "\"type\" (i.e. the I) is searched against all bpf-local-storages " "residing at I\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "I is a kernel B pointer for LSM program. I is a " "B pointer for other program types." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "An optional I (B) can be used such that " "a new bpf-local-storage will be created if one does not exist. I can " "be used together with B to specify the initial " "value of a bpf-local-storage. If I is B, 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 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 "BIB<, void *>IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Delete a bpf-local-storage from a I\\&." 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 "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed msgid "" "Send signal I 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 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\\&." 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 "BIB<, void *>IB<, u32 >IB<, struct tcphdr *>IB<, u32 >IB<)>" 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 and I, on the listening socket in I\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "I points to the start of the TCP header, while I contains the " "length of the TCP header with options (at least B(B))." 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 "BIB<, struct bpf_map *>IB<, u64 >IB<, void *>IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "I 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() but restricted to " "raw_tracepoint bpf programs." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u32 >IB<, const void *>IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Safely attempt to read I bytes from user space address I " "and store the data in I\\&." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u32 >IB<, const void *>IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Safely attempt to read I bytes from kernel space address I " "and store the data in I\\&." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u32 >IB<, const void *>IB<)>" 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 to " "I\\&. The I should include the terminating NUL byte. In case the " "string length is smaller than I, the target is not padded with further " "NUL bytes. If the string length is larger than I, just I-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-rawhide opensuse-tumbleweed #, no-wrap msgid "" "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 = bpf_probe_read_user_str(buf, sizeof(buf),\n" " ctx-Edi);\n" msgstr "" #. type: Plain text #: archlinux debian-unstable 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" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "In comparison, using B() 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 IB<-Emm-" "Earg_start> and IB<-Emm-Eenv_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 "BIB<, u32 >IB<, const void *>IB<)>" 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 to " "I\\&. Same semantics as with B() apply." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u32 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Send out a tcp-ack. I is the in-kernel struct B\\&. " "I 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 "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Send signal I 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" 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 "BIB<, void *>IB<, u32 >IB<, u64 >IB<)>" 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) associated to I and store it in the " "buffer pointed by I up to size I 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\\&. On error, a negative value." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "The I can be set to B to instead " "return the number of bytes required to store all the branch entries. If this " "flag is set, I 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 not a multiple of " "B(B)." 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 "BIB<, u64 >IB<, struct bpf_pidns_info *>IB<, u32 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Returns 0 on success, values for I and I as seen from the current " "I will be returned in I\\&." 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 "BIB<, struct bpf_map *>IB<, u64 >IB<, void *>IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "I 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() but restricted to " "raw_tracepoint bpf programs." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<)>" 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 is associated with. The network namespace cookie remains stable " "for its lifetime and provides a global identifier that can be assumed " "unique. If I is NULL, then the helper returns the cookie for the " "initial network namespace. The cookie itself is very similar to that of " "B() 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 "BIB<)>" 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\\&. The root cgroup is at " "I zero and each step down the hierarchy increments the " "level. If I == level of cgroup associated with the current " "task, then return value will be the same as that of " "B()." 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()." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, void *>IB<, u64 >IB<)>" 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 and B programs." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Assign the I to the I\\&. When combined with appropriate routing " "configuration to receive the packet towards the socket, will cause I to " "be delivered to the specified socket. Subsequent redirection of I via " "B(), B() 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 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 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: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, struct bpf_sock *>IB<, u64 >IB<)>" 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 programs." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Select the I 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 object." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "L4 protocol (B or B) must be an exact match. While " "IP family (B or B) 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 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 argument can combination of following values:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "B 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 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 Isk> 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 (Ifamily>) is not compatible with " "packet family (Ifamily>)." 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 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 (Iprotocol>) doesn\\(aqt match " "packet protocol (Iprotocol>)." 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" 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(B)" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, const char *>IB<, u32 >IB<, const void *>IB<, u32 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "B() uses seq_file B() to print out the format " "string. The I represents the seq_file. The I and I are " "for the format string itself. The I and I are format string " "arguments. The I are a B 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 array. The " "I is the size of I 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() 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 is invalid/unsupported." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "B<-E2BIG> if I 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 "BIB<, const void *>IB<, u32 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "B() uses seq_file B() to write the data. The I " "represents the seq_file. The I and I represent the data to write " "in bytes." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<)>" 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\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "I must be a non-B pointer to a socket, e.g. one returned from " "B(), B(), etc. The format of returned id " "is same as in B()." 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 configuration option." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, int >IB<)>" 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 " "at the I\\&. The root cgroup is at I zero " "and each step down the hierarchy increments the level. If I " "== level of cgroup associated with I, then return value will be same as " "that of B()." 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\\&." 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()." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, void *>IB<, u64 >IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Copy I bytes from I into a ring buffer I\\&. If " "B is specified in I, no notification of new data " "availability is sent. If B is specified in I, " "notification of new data availability is sent unconditionally. If B<0> is " "specified in I, 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 "BIB<, u64 >IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Reserve I bytes of payload in a ring buffer I\\&. I " "must be 0." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Valid pointer with I bytes of memory available; NULL, otherwise." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u64 >IB<)>" 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\\&. If " "B is specified in I, no notification of new data " "availability is sent. If B is specified in I, " "notification of new data availability is sent unconditionally. If B<0> is " "specified in I, 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 "BIB<, u64 >IB<)>" 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\\&. If " "B is specified in I, no notification of new data " "availability is sent. If B is specified in I, " "notification of new data availability is sent unconditionally. If B<0> is " "specified in I, 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 "BIB<, u64 >IB<)>" 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:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "B: Amount of data not yet consumed." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "B: The size of ring buffer." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "B: Consumer position (can wrap around)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "B: 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 are not recognized." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u64 >IB<)>" 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() helper with passing in " "B flag would require one call to " "B() with B since the UDP header is " "removed. Similarly, an encap of the latter into the former could be " "accompanied by a helper call to B() with " "B 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: Increases skb-Ecsum_level for skbs with " "CHECKSUM_UNNECESSARY." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "B: Decreases skb-Ecsum_level for skbs with " "CHECKSUM_UNNECESSARY." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "B: Resets skb-Ecsum_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: No-op, returns the current skb-Ecsum_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, the current skb-Ecsum_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 "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Dynamically cast a I pointer to a I pointer." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "I if casting is valid, or B otherwise." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Dynamically cast a I pointer to a I pointer." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Dynamically cast a I pointer to a I pointer." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Dynamically cast a I pointer to a I pointer." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Dynamically cast a I pointer to a I pointer." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, void *>IB<, u32 >IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "Return a user or a kernel stack in bpf program provided buffer. Note: the " "user stack will only be populated if the I is the current task; all " "other tasks will return -EOPNOTSUPP. To achieve this, the helper needs " "I, which is a valid pointer to B\\&. To store the " "stacktrace, the bpf program provides I with a nonnegative I\\&." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "Collect a user space stack instead of a kernel stack. The I must be " "the current task." 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 is also specified." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "B() can collect up to B both " "kernel and user frames, subject to sufficient large buffer size. Note that " "this limit can be controlled with the B 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 "BIB<, void *>IB<, u32 >IB<, u64 >IB<)>" 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)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "If I is 0, it will search the option from the IB<-" "Eskb_data>\\&. The comment in B has details on " "what skb_data contains under different IB<-Eop>\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "The first byte of the I 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 " "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 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 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 0 when found, the header option is copied to I\\&. 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 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 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 IB<-" "Eop>\\&." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, const void *>IB<, u32 >IB<, u64 >IB<)>" 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 with " "length I to the TCP header." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "The buffer I should have the whole option that includes the kind, kind-" "length, and the actual option data. The I 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-" "Edoff." 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\\&." 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 "BIB<, u32 >IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Reserve I bytes for the bpf header option. The space will be used by " "B() later in B\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "If B() 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\\&." 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 "BIB<, void *>IB<, void *>IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Get a bpf_local_storage from an I\\&." 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 with " "I as the B\\&. From this perspective, the usage is not much " "different from B(I, B<&>I) except this " "helper enforces the key must be an inode and the map must also be a " "B\\&." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed msgid "" "Underneath, the value is stored locally at I instead of the " "I\\&. The I is used as the bpf-local-storage \"type\". The bpf-" "local-storage \"type\" (i.e. the I) is searched against all " "bpf_local_storage residing at I\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "An optional I (B) can be used such " "that a new bpf_local_storage will be created if one does not exist. " "I can be used together with B to " "specify the initial value of a bpf_local_storage. If I is B, " "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 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 "BIB<, void *>IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Delete a bpf_local_storage from an I\\&." 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 "BIB<, char *>IB<, u32 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Return full path for given B object, which needs to be the " "kernel BTF I object. The path is returned in the provided buffer " "I of size I and is zero terminated." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u32 >IB<, const void *>IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Read I bytes from user space address I and store the data in " "I\\&. This is a wrapper of B()." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u32 >IB<, struct btf_ptr *>IB<, u32 >IB<, u64 >IB<)>" 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-Eptr in I, using " "I-Etype_id. This value should specify the type that I-" "Eptr 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 - 1 bytes of " "I\\&. 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 is a combination of" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "B" 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" 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" 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" 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 "BIB<, struct btf_ptr *>IB<, u32 >IB<, u64 >IB<)>" 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-Eptr, " "using I-Etype_id as per bpf_snprintf_btf(). I 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 "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed msgid "" "See B() for the main description. This helper " "differs from B() in that the cgroup v1 net_cls class " "is retrieved only from the I\\(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 "BIB<, struct bpf_redir_neigh *>IB<, int >IB<, u64 >IB<)>" 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 and fill in L2 " "addresses from neighboring subsystem. This helper is somewhat similar to " "B(), 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 argument. The I argument indicates the len of " "I and should be set to 0 if I is NULL." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "The I 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 on success or B on error." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u32 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed msgid "" "Take a pointer to a percpu ksym, I, and return a pointer to the " "percpu kernel variable on I\\&. 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\\&." 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 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, or NULL, if " "I is invalid." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed msgid "" "Take a pointer to a percpu ksym, I, and return a pointer to the " "percpu kernel variable on this cpu. See the description of \\(aqksym\\(aq in " "B()." 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(), 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 "BIB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed msgid "" "Redirect the packet to another net device of index I\\&. This " "helper is somewhat similar to B(), except that the redirection " "happens to the I\\(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 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 "BIB<, struct task_struct *>IB<, void *>IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Get a bpf_local_storage from the I\\&." 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 with " "I as the B\\&. From this perspective, the usage is not much " "different from B(I, B<&>I) except this " "helper enforces the key must be a task_struct and the map must also be a " "B\\&." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed msgid "" "Underneath, the value is stored locally at I instead of the " "I\\&. The I is used as the bpf-local-storage \"type\". The bpf-" "local-storage \"type\" (i.e. the I) is searched against all " "bpf_local_storage residing at I\\&." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, struct task_struct *>IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Delete a bpf_local_storage from a I\\&." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "B" 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 of type I\\&." 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 "BIB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Set or clear certain options on I:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "B Set the secureexec bit which sets the B " "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 are passed, zero otherwise." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "B" 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(B)" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, void *>IB<, u32 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed msgid "" "Returns the stored IMA hash of the I (if it\\(aqs available). If the " "hash is larger than I, then only I bytes will be copied to I" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "The B 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 "BIB<)>" 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 "BIB<, u32 >IB<, u32 *>IB<, s32 >IB<, u64 >IB<)>" 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). 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 can be used for querying with a planned size " "change. This allows to check MTU prior to changing packet ctx. Providing a " "I 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 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 must be a valid pointer, else verifier will reject BPF " "program. If the value I is initialized to zero then the ctx packet " "size is use. When value I 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() helper." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "I is either B for XDP programs or B for " "tc cls_act programs." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "The I 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" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "This flag will only works for I B\\&. 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 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 pointer." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "E 0 if any input argument is invalid (I 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 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" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "B" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, void *>IB<, void *>IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "For each element in B, call B function with B, " "B and other map-specific parameters. The B " "should be a static function and the B should be a pointer to " "the stack. The B is used to control certain aspects of the helper. " "Currently, the B 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 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\\&." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u32 >IB<, const char *>IB<, u64 *>IB<, u32 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Outputs a string into the B buffer of size B based on a " "format string stored in a read-only map pointed by B\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Each format specifier in B corresponds to one u64 element in the " "B array. For strings and pointers where pointees are accessed, only " "the pointer values are stored in the I array. The I is the " "size of I 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() 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, B " "contains a truncated string, guaranteed to be zero-terminated except when " "B 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 "BIB<, void *>IB<, u32 >IB<)>" 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 "BIB<, int >IB<, u32 >IB<, int >IB<)>" 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 "BIB<)>" 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 "BIB<, struct bpf_map *>IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Initialize the timer. First 4 bits of I specify clockid. Only " "CLOCK_MONOTONIC, CLOCK_REALTIME, CLOCK_BOOTTIME are allowed. All other bits " "of I are reserved. The verifier will reject the program if I " "is not from the same I\\&." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed msgid "" "0 on success. B<-EBUSY> if I is already initialized. B<-EINVAL> if " "invalid I are passed. B<-EPERM> if I 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 "BIB<, void *>IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Configure the timer to call I static function." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed msgid "" "0 on success. B<-EINVAL> if I was not initialized with " "bpf_timer_init() earlier. B<-EPERM> if I 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 "BIB<, u64 >IB<, u64 >IB<)>" 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-unstable fedora-rawhide opensuse-tumbleweed msgid "I can be one of:" msgstr "" #. type: TP #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "Start the timer in absolute expire value instead of the default relative one." msgstr "" #. type: TP #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "Timer will be pinned to the CPU of the caller." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "0 on success. B<-EINVAL> if I was not initialized with " "bpf_timer_init() earlier or invalid I are passed." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<)>" 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 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 "BIB<)>" 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-unstable fedora-rawhide opensuse-tumbleweed msgid "" "When called for kprobe program attached as uprobe it returns probe address " "for both entry and return uprobe." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "Address of the traced function for kprobe. 0 for kprobes placed within the " "function (not at the entry). Address of the probe for uprobe and return " "uprobe." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<)>" 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 as a first argument." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "B" 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 "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Get the struct pt_regs associated with B\\&." 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 "BIB<, u32 >IB<, u64 >IB<)>" 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\\&. I is the size of I in bytes. I 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 is not zero." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u32 >IB<, const void *>IB<, u32 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Behaves like B() 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() helper." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Dynamically cast a I pointer to a I pointer." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, int >IB<, int >IB<, u64 *>IB<)>" 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\\&. I 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 is not the same size as I\\&." 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 "BIB<, u64 >IB<, void *>IB<, void *>IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Find vma of I that contains I, call I function with " "I, I, and I\\&. The I should be a " "static function and the I should be a pointer to the stack. " "The I is used to control certain aspects of the helper. Currently, " "the I 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 Imm> is NULL, or no vma contains " "I\\&. B<-EBUSY> if failed to try lock mmap_lock. B<-EINVAL> for " "invalid B\\&." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, void *>IB<, void *>IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "For B, call B function with B as the " "context parameter. The B should be a static function and the " "B should be a pointer to the stack. The B is used to " "control certain aspects of the helper. Currently, the B must be 0. " "Currently, nr_loops is limited to 1 EE 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 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 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, B<-E2BIG> if " "B exceeds the maximum number of loops." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u32 >IB<, const char *>IB<)>" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed msgid "" "Do strncmp() between B and B\\&. B doesn\\(aqt need to be null-" "terminated and B is the maximum storage size of B\\&. B 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 " "bytes of B is found to be less than, to match, or be greater than " "B\\&." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u32 >IB<, u64 *>IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Get B-th argument register (zero based) of the traced function (for " "tracing programs) returned in B\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "0 on success. B<-EINVAL> if n E= argument register count of traced " "function." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u64 *>IB<)>" 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\\&." 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 "BIB<)>" 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" 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 "BIB<)>" 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 "BIB<)>" 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 "BIB<, u32 >IB<, void *>IB<, u32 >IB<)>" 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 bytes from I from the frame associated to " "I, into the buffer pointed by I\\&." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u32 >IB<, void *>IB<, u32 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Store I bytes from buffer I into the frame associated to " "I, at I\\&." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u32 >IB<, const void *>IB<, struct task_struct *>IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed msgid "" "Read I bytes from user space address I in I\\(aqs " "address space, and stores the data in I\\&. I 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 buffer " "is zeroed out." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u64 >IB<, u32 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Change the __sk_buff-Etstamp_type to I and set I to " "the __sk_buff-Etstamp 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-Etstamp_type, the tstamp " "value can be directly written to __sk_buff-Etstamp 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 must be used with the " "BPF_SKB_TSTAMP_DELIVERY_MONO I\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "A BPF_SKB_TSTAMP_UNSPEC I can only be used with a zero " "I\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Only IPv4 and IPv6 skb-Eprotocol 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-Etstamp and then bpf_redirect_*() to the egress of an iface. " "For example, changing the (rcv) timestamp in __sk_buff-Etstamp 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 "BIB<, void *>IB<, u32 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Returns a calculated IMA hash of the I\\&. If the hash is larger than " "I, then only I bytes will be copied to I" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "The B 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 "BIB<, void *>IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Exchange kptr at pointer I with I, and return the old value. " "I 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 "BIB<, const void *>IB<, u32 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Perform a lookup in I for an entry associated to I on " "I\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Map value associated to I on I, or B if no entry was found " "or I is invalid." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Dynamically cast a I pointer to a I pointer." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u32 >IB<, u64 >IB<, struct bpf_dynptr *>IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "Get a dynptr to local memory I\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "I must be a ptr to a map value. The maximum I supported is " "DYNPTR_MAX_SIZE. I 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 "BIB<, u32 >IB<, u64 >IB<, struct bpf_dynptr *>IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Reserve I bytes of payload in a ring buffer I through the " "dynptr interface. I 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, 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 "BIB<, u64 >IB<)>" 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, 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, please see \\(aqbpf_ringbuf_submit\\(aq." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, u64 >IB<)>" 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, please see \\(aqbpf_ringbuf_discard\\(aq." msgstr "" #. type: TP #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed #, no-wrap msgid "BIB<, u32 >IB<, const struct bpf_dynptr *>IB<, u32 >IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Read I bytes from I into I, starting from I into " "I\\&. I is currently unused." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed msgid "" "0 on success, -E2BIG if I + I exceeds the length of " "I\\(aqs data, -EINVAL if I is an invalid dynptr or if I is " "not 0." msgstr "" #. type: TP #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed #, no-wrap msgid "BIB<, u32 >IB<, void *>IB<, u32 >IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "Write I bytes from I into I, starting from I into " "I\\&." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "I must be 0 except for skb-type dynptrs." msgstr "" #. type: TP #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "All data slices of the dynptr are automatically invalidated after " "B(). This is because writing may pull the skb and change " "the underlying packet buffer." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "For I, please see the flags accepted by B()." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "0 on success, -E2BIG if I + I exceeds the length of " "I\\(aqs data, -EINVAL if I is an invalid dynptr or if I is a " "read-only dynptr or if I is not correct. For skb-type dynptrs, other " "errors correspond to errors returned by B()." msgstr "" #. type: TP #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed #, no-wrap msgid "BIB<, u32 >IB<, u32 >IB<)>" 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 must be a statically known value. The returned data slice is " "invalidated whenever the dynptr is invalidated." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "skb and xdp type dynptrs may not use bpf_dynptr_data. They should instead " "use bpf_dynptr_slice and bpf_dynptr_slice_rdwr." 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 "BIB<, struct tcphdr *>IB<, u32 >IB<)>" 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 and I, without depending on a listening socket." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "I 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 is invalid." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, struct tcphdr *>IB<, u32 >IB<)>" 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 and I, without depending on a listening socket." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "I 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 "BIB<, struct tcphdr *>IB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Check whether I and I 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 points to the TCP header." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "0 if I and I 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 "BIB<, struct tcphdr *>IB<)>" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "B" 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(B)" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed #, no-wrap msgid "BIB<, void *>IB<, void *>IB<, u64 >IB<)>" 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 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 "BIB<, struct cgroup *>IB<, void *>IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed msgid "Get a bpf_local_storage from the I\\&." 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 with " "I as the B\\&. From this perspective, the usage is not much " "different from B(I, B<&>I) except this " "helper enforces the key must be a cgroup struct and the map must also be a " "B\\&." 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 object itself, rather than being located in the " "B map. When the local-storage value is queried " "for some I on a I object, the kernel will perform an O(n) " "iteration over all of the live local-storage values for that I " "object until the local-storage value for the I is found." msgstr "" #. type: TP #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed #, no-wrap msgid "BIB<, struct cgroup *>IB<)>" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide opensuse-tumbleweed msgid "Delete a bpf_local_storage from a I\\&." 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" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "I" 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-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 General Public " "License (GNU 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) to the B() 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-rawhide opensuse-tumbleweed #, no-wrap msgid "char ____license[] __attribute__((section(\"license\"), used)) = \"GPL\";\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 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 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 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 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 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 (see " "B(8) for details). Add the B 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 objects and for functions returning them: these functions " "contain a list of helpers that a given program type can call. Note that the " "B label of the B used to filter helpers can call " "other functions, themselves allowing access to additional helpers. The " "requirement for GPL license is also in those B\\&." 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() function in file I\\&." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: opensuse-tumbleweed msgid "" "Helper functions that invalidate the checks on B and B " "pointers for network processing are listed in function " "B() in file I\\&." 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(2), B(8), B(7), B(8), B(2), " "B(2), B(7), B(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 (of size I) to file I from DebugFS, if available. It can take up to " "three additional B arguments (as an eBPF helpers, the total number of " "arguments is limited to five)." msgstr "" #. type: Plain text #: debian-bookworm fedora-40 msgid "" "Each time the helper is called, it appends a line to the trace. Lines are " "discarded while I is open, use I to avoid this. The format of the trace is " "customizable, and the exact output one will get depends on the options set " "in I (see also the I file " "under the same directory). However, it usually defaults to something like:" msgstr "" #. type: Plain text #: debian-bookworm #, no-wrap msgid "" "^\".ft C$\n" "telnet-470 [001] .N.. 419421.045894: 0x00000001: Eformatted msgE\n" "^\".ft P$\n" msgstr "" #. type: IP #: debian-bookworm #, no-wrap msgid "\\[bu]" msgstr "" #. type: Plain text #: debian-bookworm msgid "" "Also, note that B() 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() 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 configuration option set to \\[dq]B\\[dq] or " "to \\[dq]B\\[dq]." msgstr "" #. type: Plain text #: debian-bookworm msgid "" "The B 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 IB<-Eremote_ipv4> or IB<-Eremote_ipv6>\\&. Also, " "this struct exposes the IB<-Etunnel_id>, which is generally mapped " "to a VNI (Virtual Network Identifier), making it programmable together with " "the B() 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 fedora-40 #, no-wrap msgid "" "^\".ft C$\n" "int ret;\n" "struct bpf_tunnel_key key = {};\n" msgstr "" #. type: Plain text #: debian-bookworm fedora-40 #, no-wrap msgid "" "return TC_ACT_OK; // accept packet\n" "^\".ft P$\n" 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 fedora-40 #, 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 #: 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 IB<-Edata> and IB<-Edata_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 fedora-40 #, no-wrap msgid "" "^\".ft C$\n" "# sysctl kernel.perf_event_max_stack=Enew valueE\n" "^\".ft P$\n" 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() 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() 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 fedora-40 msgid "" "B for B and " "B\\&." msgstr "" #. type: Plain text #: debian-bookworm msgid "" "B, which supports the following Is: B, " "B, B, B, B, " "B, B, B\\&." msgstr "" #. type: Plain text #: debian-bookworm msgid "" "B, which supports the following Is: B, " "B, B, B, B, " "B, B, B, B, " "B\\&." msgstr "" #. type: Plain text #: debian-bookworm msgid "B, which supports I B\\&." msgstr "" #. type: TP #: debian-bookworm #, no-wrap msgid "BIB<, u32 >IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: debian-bookworm msgid "" "See also B(), which only supports redirecting to an ifindex, " "but doesn\\[aq]t require a map to do so." msgstr "" #. type: Plain text #: debian-bookworm fedora-40 #, no-wrap msgid "" "^\".ft C$\n" "normalized_counter = counter * t_enabled / t_running\n" "^\".ft P$\n" msgstr "" #. type: Plain text #: debian-bookworm fedora-40 msgid "" "For en eBPF program attached to a perf event, retrieve the value of the " "event counter associated to I and store it in the structure pointed by " "I and of size I\\&. Enabled and running times are also stored " "in the structure (see description of helper B() " "for more details)." msgstr "" #. type: Plain text #: debian-bookworm msgid "" "This helper actually implements a subset of B\\&. It supports " "the following Is:" msgstr "" #. type: Plain text #: debian-bookworm msgid "B, which supports I B\\&." msgstr "" #. type: Plain text #: debian-bookworm msgid "" "This helper works for IPv4 and IPv6, TCP and UDP sockets. The domain " "(IB<-Esa_family>) must be B (or B). It\\[aq]s " "advised to pass zero port (B or B) 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) at " "I in XFRM \\[dq]security path\\[dq] for I\\&." msgstr "" #. type: Plain text #: debian-bookworm msgid "" "I is an offset relative to the beginning of the executable or " "shared object file backing the vma which the I falls in. It is I 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 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\\[aq]s mac header." msgstr "" #. type: Plain text #: debian-bookworm msgid "Base offset to load data from is I\\[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 IB<-Edata> 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 configuration option set to \\[dq]B\\[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 is zero, full name (e.g. \\[dq]net/ipv4/tcp_mem\\[dq]) is " "copied. Use B 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 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(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 instead of the I\\&. " "The I is used as the bpf-local-storage \\[dq]type\\[dq]. The bpf-local-" "storage \\[dq]type\\[dq] (i.e. the I) is searched against all bpf-local-" "storages residing at I\\&." msgstr "" #. type: Plain text #: debian-bookworm msgid "" "Send signal I 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-Edi);\n" msgstr "" #. type: Plain text #: debian-bookworm fedora-40 #, 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 #: 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 fedora-40 msgid "B<-ESOCKTNOSUPPORT> if the socket type is not supported (reuseport)." msgstr "" #. type: Plain text #: debian-bookworm msgid "" "B<-EPROTOTYPE> if socket L4 protocol (Iprotocol>) doesn\\[aq]t " "match packet protocol (Iprotocol>)." 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 fedora-40 msgid "" "Return a user or a kernel stack in bpf program provided buffer. To achieve " "this, the helper needs I, which is a valid pointer to B\\&. To store the stacktrace, the bpf program provides I " "with a nonnegative I\\&." 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 instead of the " "I\\&. The I is used as the bpf-local-storage \\[dq]type\\[dq]. " "The bpf-local-storage \\[dq]type\\[dq] (i.e. the I) is searched against " "all bpf_local_storage residing at I\\&." msgstr "" #. type: Plain text #: debian-bookworm msgid "" "See B() for the main description. This helper " "differs from B() in that the cgroup v1 net_cls class " "is retrieved only from the I\\[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 argument. The I argument indicates the len of " "I and should be set to 0 if I is NULL." msgstr "" #. type: Plain text #: debian-bookworm msgid "" "Take a pointer to a percpu ksym, I, and return a pointer to the " "percpu kernel variable on I\\&. 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\\&." msgstr "" #. type: Plain text #: debian-bookworm msgid "" "Take a pointer to a percpu ksym, I, and return a pointer to the " "percpu kernel variable on this cpu. See the description of \\[aq]ksym\\[aq] " "in B()." msgstr "" #. type: Plain text #: debian-bookworm msgid "" "Redirect the packet to another net device of index I\\&. This " "helper is somewhat similar to B(), except that the redirection " "happens to the I\\[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 instead of the " "I\\&. The I is used as the bpf-local-storage \\[dq]type\\[dq]. " "The bpf-local-storage \\[dq]type\\[dq] (i.e. the I) is searched against " "all bpf_local_storage residing at I\\&." 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 of type " "I\\&." msgstr "" #. type: Plain text #: debian-bookworm msgid "" "Returns the stored IMA hash of the I (if it\\[aq]s available). If " "the hash is larger than I, then only I bytes will be copied to " "I" msgstr "" #. type: Plain text #: debian-bookworm msgid "" "Specifying I 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 is already initialized. B<-EINVAL> if " "invalid I are passed. B<-EPERM> if I 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 was not initialized with " "bpf_timer_init() earlier. B<-EPERM> if I 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 fedora-40 msgid "" "Address of the traced function. 0 for kprobes placed within the function " "(not at the entry)." msgstr "" #. type: Plain text #: debian-bookworm msgid "" "Do strncmp() between B and B\\&. B doesn\\[aq]t need to be null-" "terminated and B is the maximum storage size of B\\&. B 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 bytes from user space address I in I\\[aq]s " "address space, and stores the data in I\\&. I 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, please see \\[aq]bpf_ringbuf_submit\\[aq]." msgstr "" #. type: Plain text #: debian-bookworm msgid "" "For more information on I, please see \\[aq]bpf_ringbuf_discard\\[aq]." msgstr "" #. type: TP #: debian-bookworm #, no-wrap msgid "BIB<, u32 >IB<, struct bpf_dynptr *>IB<, u32 >IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: debian-bookworm msgid "" "0 on success, -E2BIG if I + I exceeds the length of " "I\\[aq]s data, -EINVAL if I is an invalid dynptr or if I is " "not 0." msgstr "" #. type: TP #: debian-bookworm #, no-wrap msgid "BIB<, u32 >IB<, void *>IB<, u32 >IB<, u64 >IB<)>" msgstr "" #. type: Plain text #: debian-bookworm fedora-40 msgid "" "Write I bytes from I into I, starting from I into " "I\\&. I is currently unused." msgstr "" #. type: Plain text #: debian-bookworm msgid "" "0 on success, -E2BIG if I + I exceeds the length of " "I\\[aq]s data, -EINVAL if I is an invalid dynptr or if I is a " "read-only dynptr or if I is not 0." msgstr "" #. type: TP #: debian-bookworm #, no-wrap msgid "BIB<, u32 >IB<, u32 >IB<)>" 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 "" #. type: TH #: fedora-40 #, no-wrap msgid "2023-04-11" msgstr "" #. type: TH #: fedora-40 #, no-wrap msgid "Linux v6.2" msgstr "" #. type: Plain text #: fedora-40 msgid "" "This helper is a \"printk()-like\" facility for debugging. It prints a " "message defined by format I (of size I) to file I from DebugFS, if available. It can take up to " "three additional B arguments (as an eBPF helpers, the total number of " "arguments is limited to five)." msgstr "" #. type: Plain text #: fedora-40 #, no-wrap msgid "" "^\".ft C$\n" "telnet-470 [001] .N.. 419421.045894: 0x00000001: EfmtE\n" "^\".ft P$\n" msgstr "" #. type: Plain text #: fedora-40 msgid "BfmtE> is the message formatted with I\\&." msgstr "" #. type: Plain text #: fedora-40 #, 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 #: fedora-40 #, no-wrap msgid "" " res = bpf_probe_read_user_str(buf, sizeof(buf),\n" " ctx-Edi);\n" msgstr "" #. type: Plain text #: fedora-40 msgid "" "0 on success, -E2BIG if I + I exceeds the length of " "I\\(aqs data, -EINVAL if I is an invalid dynptr or if I is a " "read-only dynptr or if I is not 0." msgstr "" #. type: Plain text #: fedora-40 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 #: fedora-40 #, no-wrap msgid "" "^\".ft C$\n" "char ____license[] __attribute__((section(\"license\"), used)) = \"GPL\";\n" "^\".ft P$\n" msgstr ""