The issue is discovered for bpf selftest test_skb_cgroup.sh. Currently we have, $ ./test_skb_cgroup_id.sh Wait for testing link-local IP to become available ... OK Object has unknown BTF type: 13! [PASS]
In the above the BTF type 13 refers to BTF kind BTF_KIND_FUNC_PROTO. This patch added support of BTF_KIND_FUNC_PROTO and BTF_KIND_FUNC during type parsing. With this patch, I got $ ./test_skb_cgroup_id.sh Wait for testing link-local IP to become available ... OK [PASS] Signed-off-by: Yonghong Song <y...@fb.com> --- lib/bpf.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/bpf.c b/lib/bpf.c index 5e85cfc0..762f8857 100644 --- a/lib/bpf.c +++ b/lib/bpf.c @@ -2193,12 +2193,16 @@ static int bpf_btf_prep_type_data(struct bpf_elf_ctx *ctx) case BTF_KIND_ENUM: type_cur += var_len * sizeof(struct btf_enum); break; + case BTF_KIND_FUNC_PROTO: + type_cur += var_len * sizeof(struct btf_param); + break; case BTF_KIND_TYPEDEF: case BTF_KIND_PTR: case BTF_KIND_FWD: case BTF_KIND_VOLATILE: case BTF_KIND_CONST: case BTF_KIND_RESTRICT: + case BTF_KIND_FUNC: break; default: fprintf(stderr, "Object has unknown BTF type: %u!\n", kind); -- 2.17.1