This patch set introduces a new option TCP_ULP for bpf_{set,get}sockopt helper. The bpf prog can set and get TCP_ULP sock option on demand. With this, the bpf prog can set TCP_ULP based on strategies when socket create or other's socket hook point. For example, the bpf prog can control which socket should use tls or smc (WIP) ULP modules without modifying the applications. Patch 1 replaces if statement with switch to make it easy to extend. Patch 2 introduces TCP_ULP sock option. Tony Lu (2): bpf: Use switch statement in _bpf_setsockopt bpf: Introduce TCP_ULP option for bpf_{set,get}sockopt include/uapi/linux/bpf.h | 3 +- net/core/filter.c | 180 ++++++++++++++++++--------------- tools/include/uapi/linux/bpf.h | 3 +- 3 files changed, 104 insertions(+), 82 deletions(-) -- 2.32.0.3.g01195cf9f