A mirror of the official Linux kernel repository just in case
Go to file
Joanne Koong 05421aecd4 bpf: Add xdp dynptrs
Add xdp dynptrs, which are dynptrs whose underlying pointer points
to a xdp_buff. The dynptr acts on xdp data. xdp dynptrs have two main
benefits. One is that they allow operations on sizes that are not
statically known at compile-time (eg variable-sized accesses).
Another is that parsing the packet data through dynptrs (instead of
through direct access of xdp->data and xdp->data_end) can be more
ergonomic and less brittle (eg does not need manual if checking for
being within bounds of data_end).

For reads and writes on the dynptr, this includes reading/writing
from/to and across fragments. Data slices through the bpf_dynptr_data
API are not supported; instead bpf_dynptr_slice() and
bpf_dynptr_slice_rdwr() should be used.

For examples of how xdp dynptrs can be used, please see the attached
selftests.

Signed-off-by: Joanne Koong <joannelkoong@gmail.com>
Link: https://lore.kernel.org/r/20230301154953.641654-9-joannelkoong@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
2023-03-01 09:55:24 -08:00
arch bpf, mips: Implement R4000 workarounds for JIT 2023-02-28 14:52:55 +01:00
block Updates for the interrupt subsystem: 2023-02-21 10:03:48 -08:00
certs certs: don't try to update blacklist keys 2023-02-13 10:11:20 +02:00
crypto Networking changes for 6.3. 2023-02-21 18:24:12 -08:00
Documentation bpf: Add __uninit kfunc annotation 2023-03-01 09:55:24 -08:00
drivers Networking changes for 6.3. 2023-02-21 18:24:12 -08:00
fs Networking changes for 6.3. 2023-02-21 18:24:12 -08:00
include bpf: Add xdp dynptrs 2023-03-01 09:55:24 -08:00
init Networking changes for 6.3. 2023-02-21 18:24:12 -08:00
io_uring for-6.3/block-2023-02-16 2023-02-20 14:27:21 -08:00
ipc fs: port ->permission() to pass mnt_idmap 2023-01-19 09:24:28 +01:00
kernel bpf: Add xdp dynptrs 2023-03-01 09:55:24 -08:00
lib Networking changes for 6.3. 2023-02-21 18:24:12 -08:00
LICENSES LICENSES: Add the copyleft-next-0.3.1 license 2022-11-08 15:44:01 +01:00
mm Networking changes for 6.3. 2023-02-21 18:24:12 -08:00
net bpf: Add xdp dynptrs 2023-03-01 09:55:24 -08:00
rust Rust changes for v6.3 2023-02-20 10:40:42 -08:00
samples samples/bpf: Use bpf_{btf,link,map,prog}_get_info_by_fd() 2023-02-16 15:32:45 -08:00
scripts Networking changes for 6.3. 2023-02-21 18:24:12 -08:00
security This update includes the following changes: 2023-02-21 18:10:50 -08:00
sound ARM: unused boardfile removal for 6.3 2023-02-20 15:28:57 -08:00
tools bpf: Add xdp dynptrs 2023-03-01 09:55:24 -08:00
usr usr/gen_init_cpio.c: remove unnecessary -1 values from int file 2022-10-03 14:21:44 -07:00
virt VFIO fixes for v6.2-rc6 2023-01-23 11:56:07 -08:00
.clang-format iommufd for 6.2 2022-12-14 09:15:43 -08:00
.cocciconfig
.get_maintainer.ignore get_maintainer: add Alan to .get_maintainer.ignore 2022-08-20 15:17:44 -07:00
.gitattributes .gitattributes: use 'dts' diff driver for dts files 2019-12-04 19:44:11 -08:00
.gitignore .gitignore: ignore *.rpm 2022-12-30 17:22:14 +09:00
.mailmap 12 hotfixes, mostly against mm/. Five of these fixes are cc:stable. 2023-02-13 14:09:20 -08:00
.rustfmt.toml rust: add .rustfmt.toml 2022-09-28 09:02:20 +02:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS MAINTAINERS: update SCTP maintainers 2023-02-02 11:35:33 -08:00
Kbuild Kbuild updates for v6.1 2022-10-10 12:00:45 -07:00
Kconfig kbuild: ensure full rebuild when the compiler is updated 2020-05-12 13:28:33 +09:00
MAINTAINERS Networking changes for 6.3. 2023-02-21 18:24:12 -08:00
Makefile Rust changes for v6.3 2023-02-20 10:40:42 -08:00
README Drop all 00-INDEX files from Documentation/ 2018-09-09 15:08:58 -06:00

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.