From: Jesper Dangaard Brouer <brouer@redhat.com>
To: Andrii Nakryiko <andrii.nakryiko@gmail.com>
Cc: bpf <bpf@vger.kernel.org>, Networking <netdev@vger.kernel.org>,
"Daniel Borkmann" <borkmann@iogearbox.net>,
"Alexei Starovoitov" <alexei.starovoitov@gmail.com>,
"Maciej Żenczykowski" <maze@google.com>,
"Lorenz Bauer" <lmb@cloudflare.com>,
shaun@tigera.io, "Lorenzo Bianconi" <lorenzo@kernel.org>,
"Marek Majkowski" <marek@cloudflare.com>,
"John Fastabend" <john.fastabend@gmail.com>,
"Jakub Kicinski" <kuba@kernel.org>,
eyal.birger@gmail.com, colrack@gmail.com, brouer@redhat.com
Subject: Re: [PATCH bpf-next V7 8/8] bpf/selftests: activating bpf_check_mtu BPF-helper
Date: Tue, 24 Nov 2020 15:33:01 +0100 [thread overview]
Message-ID: <20201124153301.47abc09c@carbon> (raw)
In-Reply-To: <CAEf4BzbfqvCiHDaZk3yQCPfzwpGJ-35XBw3qaGuPNYkfBHR2Kw@mail.gmail.com>
On Fri, 20 Nov 2020 23:41:11 -0800
Andrii Nakryiko <andrii.nakryiko@gmail.com> wrote:
> On Fri, Nov 20, 2020 at 8:21 AM Jesper Dangaard Brouer
> <brouer@redhat.com> wrote:
> >
> > Adding selftest for BPF-helper bpf_check_mtu(). Making sure
> > it can be used from both XDP and TC.
> >
> > Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
> > ---
> > tools/testing/selftests/bpf/prog_tests/check_mtu.c | 37 ++++++++++++++++++++
> > tools/testing/selftests/bpf/progs/test_check_mtu.c | 33 ++++++++++++++++++
> > 2 files changed, 70 insertions(+)
> > create mode 100644 tools/testing/selftests/bpf/prog_tests/check_mtu.c
> > create mode 100644 tools/testing/selftests/bpf/progs/test_check_mtu.c
> >
> > diff --git a/tools/testing/selftests/bpf/prog_tests/check_mtu.c b/tools/testing/selftests/bpf/prog_tests/check_mtu.c
> > new file mode 100644
> > index 000000000000..09b8f986a17b
> > --- /dev/null
> > +++ b/tools/testing/selftests/bpf/prog_tests/check_mtu.c
> > @@ -0,0 +1,37 @@
> > +// SPDX-License-Identifier: GPL-2.0
> > +/* Copyright (c) 2020 Red Hat */
> > +#include <uapi/linux/bpf.h>
> > +#include <linux/if_link.h>
> > +#include <test_progs.h>
> > +
> > +#include "test_check_mtu.skel.h"
> > +#define IFINDEX_LO 1
> > +
> > +void test_check_mtu_xdp(struct test_check_mtu *skel)
>
> this should be static func, otherwise it's treated as an independent selftest.
Ok, fixed.
> > +{
> > + int err = 0;
> > + int fd;
> > +
> > + fd = bpf_program__fd(skel->progs.xdp_use_helper);
> > + err = bpf_set_link_xdp_fd(IFINDEX_LO, fd, XDP_FLAGS_SKB_MODE);
> > + if (CHECK_FAIL(err))
>
> please use CHECK() or one of ASSERT_xxx() helpers. CHECK_FAIL() should
> be used for high-volume unlikely to fail test (i.e., very rarely).
I could not get CHECK() macro working. I now realize that this is
because I've not defined a global static variable named 'duration'.
static __u32 duration;
I wonder, are there any best-practice documentation or blogpost on
howto write these bpf-selftests?
Below signature is the compile error for others to Google for, and
solution above.
-
Best regards,
Jesper Dangaard Brouer
MSc.CS, Principal Kernel Engineer at Red Hat
LinkedIn: http://www.linkedin.com/in/brouer
$ make
TEST-OBJ [test_progs] check_mtu.test.o
In file included from /home/jbrouer/git/kernel/bpf-next/tools/testing/selftests/bpf/prog_tests/check_mtu.c:6:
/home/jbrouer/git/kernel/bpf-next/tools/testing/selftests/bpf/prog_tests/check_mtu.c: In function ‘test_check_mtu’:
./test_progs.h:129:25: error: ‘duration’ undeclared (first use in this function)
129 | _CHECK(condition, tag, duration, format)
| ^~~~~~~~
./test_progs.h:111:25: note: in definition of macro ‘_CHECK’
111 | __func__, tag, duration); \
| ^~~~~~~~
/home/jbrouer/git/kernel/bpf-next/tools/testing/selftests/bpf/prog_tests/check_mtu.c:33:6: note: in expansion of macro ‘CHECK’
33 | if (CHECK(!skel, "open and load skel", "failed"))
| ^~~~~
./test_progs.h:129:25: note: each undeclared identifier is reported only once for each function it appears in
129 | _CHECK(condition, tag, duration, format)
| ^~~~~~~~
./test_progs.h:111:25: note: in definition of macro ‘_CHECK’
111 | __func__, tag, duration); \
| ^~~~~~~~
/home/jbrouer/git/kernel/bpf-next/tools/testing/selftests/bpf/prog_tests/check_mtu.c:33:6: note: in expansion of macro ‘CHECK’
33 | if (CHECK(!skel, "open and load skel", "failed"))
| ^~~~~
make: *** [Makefile:396: /home/jbrouer/git/kernel/bpf-next/tools/testing/selftests/bpf/check_mtu.test.o] Error 1
next prev parent reply other threads:[~2020-11-24 14:33 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-20 16:18 [PATCH bpf-next V7 0/8] bpf: New approach for BPF MTU handling Jesper Dangaard Brouer
2020-11-20 16:18 ` [PATCH bpf-next V7 1/8] bpf: Remove MTU check in __bpf_skb_max_len Jesper Dangaard Brouer
2020-11-20 16:18 ` [PATCH bpf-next V7 2/8] bpf: fix bpf_fib_lookup helper MTU check for SKB ctx Jesper Dangaard Brouer
2020-12-02 21:44 ` Daniel Borkmann
2020-12-02 22:00 ` Daniel Borkmann
2020-11-20 16:18 ` [PATCH bpf-next V7 3/8] bpf: bpf_fib_lookup return MTU value as output when looked up Jesper Dangaard Brouer
2020-11-20 16:18 ` [PATCH bpf-next V7 4/8] bpf: add BPF-helper for MTU checking Jesper Dangaard Brouer
2020-12-03 18:25 ` sdf
2020-12-14 11:52 ` Jesper Dangaard Brouer
2020-11-20 16:18 ` [PATCH bpf-next V7 5/8] bpf: drop MTU check when doing TC-BPF redirect to ingress Jesper Dangaard Brouer
2020-11-20 16:18 ` [PATCH bpf-next V7 6/8] bpf: make it possible to identify BPF redirected SKBs Jesper Dangaard Brouer
2020-11-20 16:18 ` [PATCH bpf-next V7 7/8] selftests/bpf: use bpf_check_mtu in selftest test_cls_redirect Jesper Dangaard Brouer
2020-11-20 16:18 ` [PATCH bpf-next V7 8/8] bpf/selftests: activating bpf_check_mtu BPF-helper Jesper Dangaard Brouer
2020-11-20 21:50 ` Alexei Starovoitov
2020-11-21 7:41 ` Andrii Nakryiko
2020-11-24 14:33 ` Jesper Dangaard Brouer [this message]
2020-11-24 16:50 ` Yonghong Song
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=20201124153301.47abc09c@carbon \
--to=brouer@redhat.com \
--cc=alexei.starovoitov@gmail.com \
--cc=andrii.nakryiko@gmail.com \
--cc=borkmann@iogearbox.net \
--cc=bpf@vger.kernel.org \
--cc=colrack@gmail.com \
--cc=eyal.birger@gmail.com \
--cc=john.fastabend@gmail.com \
--cc=kuba@kernel.org \
--cc=lmb@cloudflare.com \
--cc=lorenzo@kernel.org \
--cc=marek@cloudflare.com \
--cc=maze@google.com \
--cc=netdev@vger.kernel.org \
--cc=shaun@tigera.io \
/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.