On 12/13/19 4:47 PM, Martin KaFai Lau wrote: > This series introduces BPF STRUCT_OPS. It is an infra to allow > implementing some specific kernel's function pointers in BPF. > The first use case included in this series is to implement > TCP congestion control algorithm in BPF (i.e. implement > struct tcp_congestion_ops in BPF). > > There has been attempt to move the TCP CC to the user space > (e.g. CCP in TCP). The common arguments are faster turn around, > get away from long-tail kernel versions in production...etc, > which are legit points. > > BPF has been the continuous effort to join both kernel and > userspace upsides together (e.g. XDP to gain the performance > advantage without bypassing the kernel). The recent BPF > advancements (in particular BTF-aware verifier, BPF trampoline, > BPF CO-RE...) made implementing kernel struct ops (e.g. tcp cc) > possible in BPF. > > The idea is to allow implementing tcp_congestion_ops in bpf. > It allows a faster turnaround for testing algorithm in the > production while leveraging the existing (and continue growing) BPF > feature/framework instead of building one specifically for > userspace TCP CC. > This is awesome work Martin !