]> git.kaiwu.me - nginx.git/commit
QUIC: ngx_quic_bpf module.
authorVladimir Homutov <vl@nginx.com>
Fri, 25 Dec 2020 12:01:15 +0000 (15:01 +0300)
committerVladimir Homutov <vl@nginx.com>
Fri, 25 Dec 2020 12:01:15 +0000 (15:01 +0300)
commitc4f31ccca174ff617a594b49ef255354e979b72d
treed2ade5c91b17e009585c2b329823708e1ce91f76
parentb20b58ca7d1323664c5e8f91231ade0edf0d0f31
QUIC: ngx_quic_bpf module.

The quic kernel bpf helper inspects packet payload for DCID, extracts key
and routes the packet into socket matching the key.

Due to reuseport feature, each worker owns a personal socket, which is
identified by the same key, used to create DCID.

BPF objects are locked in RAM and are subject to RLIMIT_MEMLOCK.
The "ulimit -l" command may be used to setup proper limits, if maps
cannot be created with EPERM or updated with ETOOLONG.
12 files changed:
auto/modules
auto/options
auto/os/linux
src/core/nginx.c
src/event/quic/bpf/bpfgen.sh [new file with mode: 0644]
src/event/quic/bpf/makefile [new file with mode: 0644]
src/event/quic/bpf/ngx_quic_reuseport_helper.c [new file with mode: 0644]
src/event/quic/ngx_event_quic.c
src/event/quic/ngx_event_quic_bpf.c [new file with mode: 0644]
src/event/quic/ngx_event_quic_bpf_code.c [new file with mode: 0644]
src/event/quic/ngx_event_quic_transport.c
src/event/quic/ngx_event_quic_transport.h