BPF_PROG_TYPE_EXT
BPF_PROG_TYPE(BPF_PROG_TYPE_EXT, bpf_extension,
return (prog->type == BPF_PROG_TYPE_EXT && prog->aux->saved_dst_prog_type) ?
if (prog->type == BPF_PROG_TYPE_EXT ||
case BPF_PROG_TYPE_EXT:
if (tgt_prog->type == BPF_PROG_TYPE_EXT)
if (prog_type == BPF_PROG_TYPE_EXT)
case BPF_PROG_TYPE_EXT:
case BPF_PROG_TYPE_EXT:
prog_type != BPF_PROG_TYPE_EXT)
case BPF_PROG_TYPE_EXT:
case BPF_PROG_TYPE_EXT: /* extends any prog */
case BPF_PROG_TYPE_EXT: /* extends any prog */
if (type == BPF_PROG_TYPE_EXT && dst_prog &&
case BPF_PROG_TYPE_EXT:
if (prog->type != BPF_PROG_TYPE_EXT) {
case BPF_PROG_TYPE_EXT:
case BPF_PROG_TYPE_EXT:
case BPF_PROG_TYPE_EXT:
case BPF_PROG_TYPE_EXT:
if (subprog || env->prog->type == BPF_PROG_TYPE_EXT) {
bool prog_extension = prog->type == BPF_PROG_TYPE_EXT;
prog->type != BPF_PROG_TYPE_EXT)
if (tgt_prog && prog->type == BPF_PROG_TYPE_EXT) {
if (env->prog->type == BPF_PROG_TYPE_EXT)
if (prog->type == BPF_PROG_TYPE_EXT || attach_prog_fd) {
if (prog->type != BPF_PROG_TYPE_EXT) {
[BPF_PROG_TYPE_EXT] = "ext",
case BPF_PROG_TYPE_EXT:
case BPF_PROG_TYPE_EXT:
if (ASSERT_EQ(info.allowed_progs, bit(BPF_PROG_TYPE_EXT), "token_info_progs_ext"))
.progs = bit(BPF_PROG_TYPE_EXT) | bit(BPF_PROG_TYPE_XDP),
.progs = bit(BPF_PROG_TYPE_EXT) | bit(BPF_PROG_TYPE_XDP),
.prog_type = BPF_PROG_TYPE_EXT,
if (bpf_program__type(prog) == BPF_PROG_TYPE_EXT) {