Similar to the existing btf_sock_ids, add a set for the same data. This allows searching for sockets using btf_set_contains. Signed-off-by: Lorenz Bauer <lmb@xxxxxxxxxxxxxx> --- include/linux/btf_ids.h | 1 + net/core/filter.c | 7 +++++++ tools/include/linux/btf_ids.h | 1 + 3 files changed, 9 insertions(+) diff --git a/include/linux/btf_ids.h b/include/linux/btf_ids.h index 42aa667d4433..eb6739ebbba4 100644 --- a/include/linux/btf_ids.h +++ b/include/linux/btf_ids.h @@ -174,6 +174,7 @@ MAX_BTF_SOCK_TYPE, }; extern u32 btf_sock_ids[]; +extern struct btf_id_set btf_sock_ids_set; #endif #endif diff --git a/net/core/filter.c b/net/core/filter.c index 47eef9a0be6a..c7f96cfea1b0 100644 --- a/net/core/filter.c +++ b/net/core/filter.c @@ -9903,8 +9903,15 @@ BTF_ID_LIST_GLOBAL(btf_sock_ids) #define BTF_SOCK_TYPE(name, type) BTF_ID(struct, type) BTF_SOCK_TYPE_xxx #undef BTF_SOCK_TYPE + +BTF_SET_START_GLOBAL(btf_sock_ids_set) +#define BTF_SOCK_TYPE(name, type) BTF_ID(struct, type) +BTF_SOCK_TYPE_xxx +#undef BTF_SOCK_TYPE +BTF_SET_END(btf_sock_ids_set) #else u32 btf_sock_ids[MAX_BTF_SOCK_TYPE]; +struct btf_id_set btf_sock_ids_set; #endif static bool check_arg_btf_id(u32 btf_id, u32 arg) diff --git a/tools/include/linux/btf_ids.h b/tools/include/linux/btf_ids.h index 42aa667d4433..eb6739ebbba4 100644 --- a/tools/include/linux/btf_ids.h +++ b/tools/include/linux/btf_ids.h @@ -174,6 +174,7 @@ MAX_BTF_SOCK_TYPE, }; extern u32 btf_sock_ids[]; +extern struct btf_id_set btf_sock_ids_set; #endif #endif -- 2.25.1