Berkeley Packet Filter (BPF) Enhancements
Several important updates are available in UEK 8 for the Berkeley Packet Filter (BPF), including:
- 
                     
                     
Introduction of a dedicated BPF memory allocator is added to improve the reliability of allocations made within BPF programs, which can run in a wide variety of contexts.
 - 
                     
                     
Addition of a new user ring buffer BPF map type for asynchronous message passing and faster data transfer between a BPF program and user space.
 - 
                     
                     
BPF programs can now call kernel functions from a loadable module, can access and store task_struct objects, and can use absolute time values.
 - 
                     
                     
Friendlier helper functions, such as
bpf_trace_vprintk, and also destructive helpers such ascrash_kexec, are included. - 
                     
                     
BPF programs can attach filter functions to kfuncs. The filter can limit the contexts from which the kfunc can be invoked.
 - 
                     
                     
Resilient BPF Type Format (BTF) information for modules is included so that out-of-tree modules can define BTF that works for the lifetime of a UEK release.
 - BPF trampoline is now available for aarch64 platforms to provide faster BPF tracing program execution using Fentry and Fexit programs.
 - 
                     
                     
BPF hooks:
- 
                           
                           
To see and filter complete packets.
 - 
                           
                           
To change the requested protocol for a new socket, primarily to transparently cause programs requesting TCP connections to use multipath TCP instead.
 
 -