On Mon, Oct 26, 2020 at 09:15:00AM -0600, David Ahern wrote:
> >> actually, it already does: bpf_load_program
> >
> > Thanks for this info. Do you want to convert ipvrf.c to:
> >
> > @@ -256,8 +262,13 @@ static int prog_load(int idx)
> > BPF_EXIT_INSN(),
> > };
> >
> > +#ifdef HAVE_LIBBPF
> > + return bpf_load_program(BPF_PROG_TYPE_CGROUP_SOCK, prog, sizeof(prog),
> > + "GPL", 0, bpf_log_buf, sizeof(bpf_log_buf));
> > +#else
> > return bpf_prog_load_buf(BPF_PROG_TYPE_CGROUP_SOCK, prog, sizeof(prog),
> > "GPL", bpf_log_buf, sizeof(bpf_log_buf));
> > +#endif
> > }
> >
> > static int vrf_configure_cgroup(const char *path, int ifindex)
> > @@ -288,7 +299,11 @@ static int vrf_configure_cgroup(const char *path, int
> > ifindex)
> > goto out;
> > }
> >
> > +#ifdef HAVE_LIBBPF
> > + if (bpf_prog_attach(prog_fd, cg_fd, BPF_CGROUP_INET_SOCK_CREATE, 0)) {
> > +#else
> > if (bpf_prog_attach_fd(prog_fd, cg_fd, BPF_CGROUP_INET_SOCK_CREATE)) {
> > +#endif
> > fprintf(stderr, "Failed to attach prog to cgroup: '%s'\n",
> > strerror(errno));
> > goto out;
> >
>
> works for me. The rename in patch 2 can be dropped as well correct?
>
No, the BPF_MOV64_* micros are not defined in uapi, so we still need include
"bpf_util.h", which will got bpf_prog_load() conflicts.
Thanks
Hangbin