From: Jesper Dangaard Brouer <brouer@redhat.com>
To: Andrii Nakryiko <andrii.nakryiko@gmail.com>
Cc: "David Ahern" <dsahern@kernel.org>,
Networking <netdev@vger.kernel.org>,
"David S. Miller" <davem@davemloft.net>,
"Jakub Kicinski" <kuba@kernel.org>,
"Toke Høiland-Jørgensen" <toke@redhat.com>,
"Daniel Borkmann" <daniel@iogearbox.net>,
"john fastabend" <john.fastabend@gmail.com>,
"Alexei Starovoitov" <ast@kernel.org>,
"Martin Lau" <kafai@fb.com>, "Song Liu" <songliubraving@fb.com>,
"Yonghong Song" <yhs@fb.com>, "Andrii Nakryiko" <andriin@fb.com>,
"David Ahern" <dsahern@gmail.com>,
brouer@redhat.com
Subject: Re: [PATCH v2 bpf-next 5/5] selftest: Add tests for XDP programs in devmap entries
Date: Thu, 28 May 2020 12:25:10 +0200 [thread overview]
Message-ID: <20200528122510.1c475484@carbon> (raw)
In-Reply-To: <CAEf4BzapqhtWOz666YN1m1wQd0pWJtjYFe4DrUEQpEgPX5UL9g@mail.gmail.com>
On Thu, 28 May 2020 00:08:34 -0700
Andrii Nakryiko <andrii.nakryiko@gmail.com> wrote:
> > diff --git a/tools/testing/selftests/bpf/progs/test_xdp_with_devmap.c b/tools/testing/selftests/bpf/progs/test_xdp_with_devmap.c
> > new file mode 100644
> > index 000000000000..815cd59b4866
> > --- /dev/null
> > +++ b/tools/testing/selftests/bpf/progs/test_xdp_with_devmap.c
> > @@ -0,0 +1,17 @@
> > +// SPDX-License-Identifier: GPL-2.0
> > +
> > +#include <linux/bpf.h>
> > +#include <bpf/bpf_helpers.h>
> > +
> > +struct bpf_map_def SEC("maps") dm_ports = {
> > + .type = BPF_MAP_TYPE_DEVMAP,
> > + .key_size = sizeof(__u32),
> > + .value_size = sizeof(struct devmap_val),
> > + .max_entries = 4,
> > +};
> > +
>
> This is an old syntax for maps, all the selftests were converted to
> BTF-defined maps. Please update.
LOL - The map type BPF_MAP_TYPE_DEVMAP does not support BTF for key and
value, which it what I've been trying to point out... (and yes, I do
have code that makes it work in my tree.).
That said, you should use the new SEC(".maps") definitions, but you
need to use some tricks to avoid a BTF-ID getting generated. Let me
help you with something that should work:
/* DEVMAP values */
struct devmap_val {
__u32 ifindex; /* device index */
};
struct {
__uint(type, BPF_MAP_TYPE_DEVMAP);
__uint(key_size, sizeof(u32));
__uint(value_size, sizeof(struct devmap_val));
__uint(max_entries, 4);
} dm_ports SEC(".maps");
Notice by setting key_size and value_size, instead of the "__type",
then a BTF-ID will be generated for this map.
Normally with proper BTF it should look like:
struct {
__uint(type, BPF_MAP_TYPE_DEVMAP);
__type(key, u32);
__type(value, struct devmap_val);
__uint(max_entries, 4);
} dm_ports_with_BTF SEC(".maps");
--
Best regards,
Jesper Dangaard Brouer
MSc.CS, Principal Kernel Engineer at Red Hat
LinkedIn: http://www.linkedin.com/in/brouer
next prev parent reply other threads:[~2020-05-28 10:25 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-28 0:14 [PATCH v2 bpf-next 0/5] bpf: Add support for XDP programs in DEVMAP entries David Ahern
2020-05-28 0:14 ` [PATCH v2 bpf-next 1/5] devmap: Formalize map value as a named struct David Ahern
2020-05-28 7:01 ` Andrii Nakryiko
2020-05-28 22:37 ` David Ahern
2020-05-28 0:14 ` [PATCH v2 bpf-next 2/5] bpf: Add support to attach bpf program to a devmap entry David Ahern
2020-05-28 7:01 ` Andrii Nakryiko
2020-05-28 22:40 ` David Ahern
2020-05-28 22:54 ` Andrii Nakryiko
2020-05-28 8:54 ` Toke Høiland-Jørgensen
2020-05-28 0:14 ` [PATCH v2 bpf-next 3/5] xdp: Add xdp_txq_info to xdp_buff David Ahern
2020-05-28 0:14 ` [PATCH v2 bpf-next 4/5] libbpf: Add SEC name for xdp programs attached to device map David Ahern
2020-05-28 7:04 ` Andrii Nakryiko
2020-05-28 22:49 ` David Ahern
2020-05-28 0:14 ` [PATCH v2 bpf-next 5/5] selftest: Add tests for XDP programs in devmap entries David Ahern
2020-05-28 7:08 ` Andrii Nakryiko
2020-05-28 10:25 ` Jesper Dangaard Brouer [this message]
2020-05-28 22:56 ` David Ahern
2020-05-28 22:54 ` David Ahern
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200528122510.1c475484@carbon \
--to=brouer@redhat.com \
--cc=andrii.nakryiko@gmail.com \
--cc=andriin@fb.com \
--cc=ast@kernel.org \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=dsahern@gmail.com \
--cc=dsahern@kernel.org \
--cc=john.fastabend@gmail.com \
--cc=kafai@fb.com \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=songliubraving@fb.com \
--cc=toke@redhat.com \
--cc=yhs@fb.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.