The bpf_prog can store specific info to a sk by using bpf_sk_storage. In other words, a sk can be extended by a bpf_prog. This series is to support providing bpf_sk_storage data during inet_diag's dump. The primary target is the usage like iproute2's "ss". The first two patches are refactoring works in inet_diag to make adding bpf_sk_storage support easier. The next two patches do the actual work. Please see individual patch for details. Martin KaFai Lau (4): inet_diag: Refactor inet_sk_diag_fill(), dump(), and dump_one() inet_diag: Move the INET_DIAG_REQ_BYTECODE nlattr to cb->data bpf: INET_DIAG support in bpf_sk_storage bpf: inet_diag: Dump bpf_sk_storages in inet_diag_dump() include/linux/bpf.h | 1 + include/linux/inet_diag.h | 27 +-- include/linux/netlink.h | 4 +- include/net/bpf_sk_storage.h | 27 +++ include/uapi/linux/inet_diag.h | 5 +- include/uapi/linux/sock_diag.h | 26 +++ kernel/bpf/syscall.c | 15 ++ net/core/bpf_sk_storage.c | 283 +++++++++++++++++++++++++++++- net/dccp/diag.c | 9 +- net/ipv4/inet_diag.c | 304 ++++++++++++++++++++------------- net/ipv4/raw_diag.c | 24 ++- net/ipv4/tcp_diag.c | 8 +- net/ipv4/udp_diag.c | 41 +++-- net/sctp/diag.c | 7 +- 14 files changed, 596 insertions(+), 185 deletions(-) -- 2.17.1