Hi everyone, We think BPF is a great and elegant technology to experiment with Linux network stack. Recently for some reasons we want to change TCP acknowledgement policy so that the kernel acknowledges a byte only after this byte has been read into the user space (e.g. via a recv syscall). As a comparison, a normal kernel will possibly send an ack once the data has been read into the TCP receive buffer, which lives in the kernel space. We're new to BPF and it seems that there are many different types of BPF programs. We're not sure about whether BPF is capable of this task. Could you please give us some advice on which parts of BPF should we look into first? Thanks, Xue Zhenliang