On Fri, Sep 4, 2020 at 4:29 AM Lorenz Bauer <lmb@xxxxxxxxxxxxxx> wrote: > > 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 I haven't looked yet how this is going to be used, but instead of two pairs of #define/#undef, wouldn't it be more straightforward to do: #define BTF_SOCK_TYPE(name, type) BTF_ID(struct, type) BTF_ID_LIST_GLOBAL(btf_sock_ids) BTF_SOCK_TYPE_xxx BTF_SET_START_GLOBAL(btf_sock_ids_set) BTF_SOCK_TYPE_xxx BTF_SET_END(btf_sock_ids_set) #undef BTF_SOCK_TYPE ? > > 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 >