From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Hemminger Subject: Re: [iproute2 -net-next] build broken ... Date: Tue, 28 Nov 2017 18:15:48 -0800 Message-ID: <20171128181548.0b7b66da@xeon-e3> References: <20171124021208.13419-1-jakub.kicinski@netronome.com> <5982488b-c6cb-71e0-356e-04d4e3485fe4@iogearbox.net> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: Jakub Kicinski , netdev@vger.kernel.org To: Daniel Borkmann Return-path: Received: from mail-pg0-f68.google.com ([74.125.83.68]:34700 "EHLO mail-pg0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751807AbdK2CP4 (ORCPT ); Tue, 28 Nov 2017 21:15:56 -0500 Received: by mail-pg0-f68.google.com with SMTP id j4so823914pgp.1 for ; Tue, 28 Nov 2017 18:15:56 -0800 (PST) In-Reply-To: <5982488b-c6cb-71e0-356e-04d4e3485fe4@iogearbox.net> Sender: netdev-owner@vger.kernel.org List-ID: On Wed, 29 Nov 2017 02:05:09 +0100 Daniel Borkmann wrote: > Hi Stephen, >=20 > after merge of master into net-next branch the build is now broken > for BPF loader as follows: >=20 > # make >=20 > lib > make[1]: Entering directory '/home/darkstar/iproute2/lib' > CC libgenl.o > CC ll_map.o > CC libnetlink.o > libnetlink.c:120:2: warning: #warning "libmnl required for error support"= [-Wcpp] > #warning "libmnl required for error support" > ^~~~~~~ > AR libnetlink.a > CC utils.o > CC rt_names.o > CC ll_types.o > CC ll_proto.o > CC ll_addr.o > CC inet_proto.o > CC namespace.o > CC json_writer.o > CC json_print.o > CC names.o > CC color.o > CC bpf.o > bpf.c: In function =E2=80=98bpf_prog_load_dev=E2=80=99: > bpf.c:1080:6: error: =E2=80=98union bpf_attr=E2=80=99 has no member named= =E2=80=98prog_ifindex=E2=80=99; did you mean =E2=80=98prog_id=E2=80=99? > attr.prog_ifindex =3D ifindex; > ^ > ../config.mk:39: recipe for target 'bpf.o' failed > make[1]: *** [bpf.o] Error 1 > make[1]: Leaving directory '/home/darkstar/iproute2/lib' > Makefile:59: recipe for target 'all' failed > make: *** [all] Error 2 >=20 > Can you rebase kernel headers to fix it, in net-next branch they > are not up to date which is why the build error occurs in combination > with below merged series? >=20 > Thanks, > Daniel >=20 >=20 > On 11/24/2017 03:11 AM, Jakub Kicinski wrote: > > Hi! > >=20 > > This series allows us to pass ifindex automatically when we > > set up TC cls_bpf or XDP offload. There is a fair bit of > > refactoring to separate the parse and load stages of lib/bpf.c. > > In case of TC the skip_sw flag may come after the program > > arguments (e.g. "bpf obj prog.o da skip_sw"), so we can't > > just load the program as we parse the arguments. Note that > > this impacts only loading of the program, all other supported > > methods of finding a program (pinned, bytecode, bytefile-file) > > are handled as previously, the load call will do nothing for > > them. > >=20 > > To simplify the implementation f_bpf and m_bpf will no longer > > allow specifying programs multiple times. Device ifindex is=20 > > also resolved before running filter-specific code. > >=20 > >=20 > > Jakub Kicinski (11): > > bpf: pass program type in struct bpf_cfg_in > > bpf: keep parsed program mode in struct bpf_cfg_in > > bpf: allocate opcode table in struct bpf_cfg_in > > bpf: split parse from program loading > > bpf: rename bpf_parse_common() to bpf_parse_and_load_common() > > bpf: expose bpf_parse_common() and bpf_load_common() > > bpf: allow loading programs for a specific ifindex > > {f,m}_bpf: don't allow specifying multiple bpf programs > > tc_filter: resolve device name before parsing filter > > f_bpf: communicate ifindex for eBPF offload > > iplink: communicate ifindex for xdp offload > >=20 > > include/bpf_util.h | 25 +++++++- > > ip/iplink.c | 4 +- > > ip/iplink_xdp.c | 13 ++++- > > ip/iproute_lwtunnel.c | 3 +- > > ip/xdp.h | 4 +- > > lib/bpf.c | 155 ++++++++++++++++++++++++++++++------------= -------- > > tc/f_bpf.c | 18 +++++- > > tc/m_bpf.c | 6 +- > > tc/tc_filter.c | 50 ++++++++-------- > > 9 files changed, 178 insertions(+), 100 deletions(-) > > =20 >=20 Are you using your own uapi headers? On current master branch... $ git grep prog_ifindex include/uapi/linux/bpf.h: __u32 prog_ifindex; /* = ifindex of netdev to prep for */ lib/bpf.c: attr.prog_ifindex =3D ifindex;