/*
* ifindex, netns_dev, and netns_ino fields were introduced
- * by Linux commit v4.16-rc1~123^2~227^2~5^2~2.
+ * by Linux commit v4.16-rc1~123^2~227^2~5^2~2, and
+ * gpl_compatible was added later by Linux commit
+ * v4.18-rc1~114^2~376^2~6.
*/
if (len <= offsetof(struct bpf_prog_info_struct, ifindex))
goto print_bpf_prog_info_end;
PRINT_FIELD_IFINDEX(", ", info, ifindex);
+ tprintf(", gpl_compatible=%u", info.gpl_compatible);
PRINT_FIELD_DEV(", ", info, netns_dev);
PRINT_FIELD_U(", ", info, netns_ino);
uint64_t ATTRIBUTE_ALIGNED(8) map_ids;
char name[BPF_OBJ_NAME_LEN];
uint32_t ifindex;
+ uint32_t gpl_compatible:1;
/*
* The kernel UAPI is broken by Linux commit
* v4.16-rc1~123^2~227^2~5^2~2 .
if (bpf_prog_get_info_attr.info_len >
offsetof(struct bpf_prog_info_struct, ifindex))
printf(", ifindex=%u", prog_info->ifindex);
+ if (bpf_prog_get_info_attr.info_len >
+ offsetofend(struct bpf_prog_info_struct, ifindex))
+ printf(", gpl_compatible=%u", prog_info->gpl_compatible);
if (bpf_prog_get_info_attr.info_len >
offsetof(struct bpf_prog_info_struct, netns_dev))
printf(", netns_dev=makedev(%#x, %#x)",