android_kernel_motorola_sm6375/scripts
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jakub Sitnicki c4937609e1
UPSTREAM: bpf: Introduce SK_LOOKUP program type with a dedicated attach point
Add a new program type BPF_PROG_TYPE_SK_LOOKUP with a dedicated attach type
BPF_SK_LOOKUP. The new program kind is to be invoked by the transport layer
when looking up a listening socket for a new connection request for
connection oriented protocols, or when looking up an unconnected socket for
a packet for connection-less protocols.

When called, SK_LOOKUP BPF program can select a socket that will receive
the packet. This serves as a mechanism to overcome the limits of what
bind() API allows to express. Two use-cases driving this work are:

 (1) steer packets destined to an IP range, on fixed port to a socket

     192.0.2.0/24, port 80 -> NGINX socket

 (2) steer packets destined to an IP address, on any port to a socket

     198.51.100.1, any port -> L7 proxy socket

In its run-time context program receives information about the packet that
triggered the socket lookup. Namely IP version, L4 protocol identifier, and
address 4-tuple. Context can be further extended to include ingress
interface identifier.

To select a socket BPF program fetches it from a map holding socket
references, like SOCKMAP or SOCKHASH, and calls bpf_sk_assign(ctx, sk, ...)
helper to record the selection. Transport layer then uses the selected
socket as a result of socket lookup.

In its basic form, SK_LOOKUP acts as a filter and hence must return either
SK_PASS or SK_DROP. If the program returns with SK_PASS, transport should
look for a socket to receive the packet, or use the one selected by the
program if available, while SK_DROP informs the transport layer that the
lookup should fail.

This patch only enables the user to attach an SK_LOOKUP program to a
network namespace. Subsequent patches hook it up to run on local delivery
path in ipv4 and ipv6 stacks.

Suggested-by: Marek Majkowski <marek@cloudflare.com>
Change-Id: I4a245236f759b4789883365ffea7ef1e793c3ac8
Signed-off-by: Jakub Sitnicki <jakub@cloudflare.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20200717103536.397595-3-jakub@cloudflare.com
2026-01-14 18:12:05 -08:00
..
atomic
basic
coccinelle
dtc
gcc-plugins Merge tag 'ASB-2025-10-06_11-5.4' of https://android.googlesource.com/kernel/common into android13-5.4-lahaina 2025-10-08 15:17:54 +03:00
gdb
genksyms genksyms: fix memory leak when the same symbol is read from *.symref file 2025-03-13 12:43:00 +01:00
gki
kconfig Merge branch 'android11-5.4-lts' of https://android.googlesource.com/kernel/common into android13-5.4-lahaina 2025-12-11 01:41:51 -08:00
ksymoops
mod Merge tag 'LA.UM.9.14.r1-25800-LAHAINA.QSSI15.0' of https://git.codelinaro.org/clo/la/kernel/msm-5.4 into android13-5.4-lahaina 2025-02-14 02:42:56 +02:00
package
selinux selinux: Chain up tool resolving errors in install_policy.sh 2025-04-10 14:29:39 +02:00
tracing
.gitignore
adjust_autoksyms.sh
asn1_compiler.c
bin2c.c
bloat-o-meter
bootgraph.pl
bpf_helpers_doc.py UPSTREAM: bpf: Introduce SK_LOOKUP program type with a dedicated attach point 2026-01-14 18:12:05 -08:00
build-all.py
cc-can-link.sh
check-config-debug-exemptions
check-config-perf-exemptions
check-config.py
check_extable.sh
checkincludes.pl
checkkconfigsymbols.py
checkpatch.pl Merge android11-5.4.259+ (70db018) into msm-5.4 2024-01-31 01:01:26 -08:00
checkstack.pl
checksyscalls.sh
checkversion.pl
clang-version.sh
cleanfile
cleanpatch
coccicheck
config kbuild: fix argument parsing in scripts/config 2025-06-04 14:32:31 +02:00
conmakehash.c
const_structs.checkpatch
decode_stacktrace.sh
decodecode
depmod.sh
diffconfig
documentation-file-ref-check
export_report.pl
extract-cert.c
extract-ikconfig
extract-module-sig.pl
extract-sys-certs.pl
extract-vmlinux
extract_xc3028.pl
faddr2line
file-size.sh
find-unused-docs.sh
gcc-goto.sh
gcc-ld
gcc-plugin.sh
gcc-version.sh
gcc-x86_32-has-stack-protector.sh kbuild: Fix '-S -c' in x86 stack protector scripts 2024-08-19 05:33:53 +02:00
gcc-x86_64-has-stack-protector.sh kbuild: Fix '-S -c' in x86 stack protector scripts 2024-08-19 05:33:53 +02:00
gen_autoksyms.sh
gen_compile_commands.py
gen_ksymdeps.sh
generate_initcall_order.pl
get_abi.pl
get_dvb_firmware
get_maintainer.pl
gfp-translate
headerdep.pl
headers_check.pl
headers_install.sh
insert-sys-cert.c
kallsyms.c
Kbuild.include Merge tag 'ASB-2025-10-06_11-5.4' of https://android.googlesource.com/kernel/common into android13-5.4-lahaina 2025-10-08 15:17:54 +03:00
Kconfig.include
kernel-doc
ld-version.sh
leaking_addresses.pl
Lindent
link-vmlinux.sh BACKPORT: bpf: Resolve BTF IDs in vmlinux image 2026-01-14 18:12:02 -08:00
Makefile
Makefile.asm-generic
Makefile.build kbuild: add infrastructure to build userspace programs 2025-09-28 10:00:32 +02:00
Makefile.clean kbuild: add infrastructure to build userspace programs 2025-09-28 10:00:32 +02:00
Makefile.dtbinst
Makefile.dtbo
Makefile.extrawarn kbuild: Move -Wenum-enum-conversion to W=2 2025-03-13 12:43:09 +01:00
Makefile.gcc-plugins
Makefile.headersinst
Makefile.host kbuild: use -MMD instead of -MD to exclude system headers from dependency 2025-07-17 18:24:51 +02:00
Makefile.kasan
Makefile.kcov
Makefile.lib Merge tag 'ASB-2025-09-05_11-5.4' of https://android.googlesource.com/kernel/common into android13-5.4-lahaina 2025-09-12 18:48:05 +03:00
Makefile.modbuiltin
Makefile.modfinal
Makefile.modinst
Makefile.modpost
Makefile.modsign
Makefile.package
Makefile.ubsan
Makefile.userprogs kbuild: add infrastructure to build userspace programs 2025-09-28 10:00:32 +02:00
makelst
markup_oops.pl
mkcompile_h Merge 5.4.287 into android11-5.4-lts 2024-12-16 10:50:16 +00:00
mkmakefile
mksysmap
mkuboot.sh
module-common.lds
module-lto.lds
modules-check.sh
namespace.pl
nsdeps
objdiff
parse-maintainers.pl
patch-kernel
pnmtologo.c
profile2linkerlist.pl
prune-kernel
recordmcount.c
recordmcount.h
recordmcount.pl
setlocalversion
show_delta
sign-file.c sign-file: Fix incorrect return values check 2023-12-20 15:41:17 +01:00
sortextable.c
sortextable.h
spdxcheck-test.sh
spdxcheck.py
spelling.txt
sphinx-pre-install
split-man.pl
stackdelta
stackusage
subarch.include
tags.sh
tools-support-relr.sh
unifdef.c
ver_linux
xen-hypercalls.sh
xz_wrap.sh