All of lore.kernel.org
 help / color / mirror / Atom feed
From: Prashant Bhole <bhole_prashant_q7@lab.ntt.co.jp>
To: Alexei Starovoitov <ast@kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>
Cc: Prashant Bhole <bhole_prashant_q7@lab.ntt.co.jp>,
	Jakub Kicinski <jakub.kicinski@netronome.com>,
	"David S . Miller" <davem@davemloft.net>,
	Quentin Monnet <quentin.monnet@netronome.com>,
	netdev@vger.kernel.org
Subject: [PATCH bpf-next 0/6] Error handling when map lookup isn't supported
Date: Tue,  9 Oct 2018 10:04:48 +0900	[thread overview]
Message-ID: <20181009010454.6652-1-bhole_prashant_q7@lab.ntt.co.jp> (raw)

Currently when map a lookup fails, user space API can not make any
distinction whether given key was not found or lookup is not supported
by particular map.

In this series we modify return value of maps which do not support
lookup. Lookup on such map implementation will return -EOPNOTSUPP.
bpf() syscall with BPF_MAP_LOOKUP_ELEM command will set EOPNOTSUPP
errno. We also handle this error in bpftool to print appropriate
message.

Patch 1: adds handling of BPF_MAP_LOOKUP ELEM command of bpf syscall
such that errno will set to EOPNOTSUPP when map doesn't support lookup

Patch 2: Modifies the return value of map_lookup_elem() to EOPNOTSUPP
for maps which do not support lookup

Patch 3: Splits do_dump() in bpftool/map.c. Element printing code is
moved out into new function dump_map_elem(). This was done in order to
reduce deep indentation and accomodate further changes.

Patch 4: Changes in bpftool to print strerror() message when lookup
error is occured. This will result in appropriate message like
"Operation not supported" when map doesn't support lookup.

Patch 5: test_verifier: change fixup map naming convention as
suggested by Alexei

Patch 6: Added verifier tests to check whether verifier rejects call 
to bpf_map_lookup_elem from bpf program. For all map types those
do not support map lookup.

Prashant Bhole (6):
  bpf: error handling when map_lookup_elem isn't supported
  bpf: return EOPNOTSUPP when map lookup isn't supported
  tools/bpf: bpftool, split the function do_dump()
  tools/bpf: bpftool, print strerror when map lookup error occurs
  selftests/bpf: test_verifier, change names of fixup maps
  selftests/bpf: test_verifier, check bpf_map_lookup_elem access in bpf
    prog

 kernel/bpf/arraymap.c                       |   2 +-
 kernel/bpf/sockmap.c                        |   2 +-
 kernel/bpf/stackmap.c                       |   2 +-
 kernel/bpf/syscall.c                        |   9 +-
 kernel/bpf/xskmap.c                         |   2 +-
 tools/bpf/bpftool/map.c                     | 102 ++--
 tools/testing/selftests/bpf/test_verifier.c | 501 ++++++++++++--------
 7 files changed, 389 insertions(+), 231 deletions(-)

-- 
2.17.1

             reply	other threads:[~2018-10-09  8:20 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-09  1:04 Prashant Bhole [this message]
2018-10-09  1:04 ` [PATCH bpf-next 1/6] bpf: error handling when map_lookup_elem isn't supported Prashant Bhole
2018-10-09  6:57   ` Song Liu
2018-10-09  1:04 ` [PATCH bpf-next 2/6] bpf: return EOPNOTSUPP when map lookup " Prashant Bhole
2018-10-09  6:58   ` Song Liu
2018-10-09  1:04 ` [PATCH bpf-next 3/6] tools/bpf: bpftool, split the function do_dump() Prashant Bhole
2018-10-09  6:58   ` Song Liu
2018-10-09  1:04 ` [PATCH bpf-next 4/6] tools/bpf: bpftool, print strerror when map lookup error occurs Prashant Bhole
2018-10-09  7:00   ` Song Liu
2018-10-09  1:04 ` [PATCH bpf-next 5/6] selftests/bpf: test_verifier, change names of fixup maps Prashant Bhole
2018-10-09  7:01   ` Song Liu
2018-10-09  1:04 ` [PATCH bpf-next 6/6] selftests/bpf: test_verifier, check bpf_map_lookup_elem access in bpf prog Prashant Bhole
2018-10-09  7:02   ` Song Liu
2018-10-25  8:54     ` Naresh Kamboju
2018-10-25  8:54       ` Naresh Kamboju
2018-10-25  8:54       ` naresh.kamboju
2018-10-25  9:09       ` Prashant Bhole
2018-10-25  9:09         ` Prashant Bhole
2018-10-25  9:09         ` bhole_prashant_q7
2018-10-10  4:55 ` [PATCH bpf-next 0/6] Error handling when map lookup isn't supported Alexei Starovoitov
     [not found] <20181005033601.6776-1-bhole_prashant_q7@lab.ntt.co.jp>
2018-10-05 18:35 ` Alexei Starovoitov
2018-10-09  0:02   ` Prashant Bhole
2018-10-09  0:43     ` Daniel Borkmann
2018-10-09  0:47       ` Prashant Bhole
2018-10-09  0:57         ` Alexei Starovoitov
2018-10-09  1:55     ` David Miller

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=20181009010454.6652-1-bhole_prashant_q7@lab.ntt.co.jp \
    --to=bhole_prashant_q7@lab.ntt.co.jp \
    --cc=ast@kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=davem@davemloft.net \
    --cc=jakub.kicinski@netronome.com \
    --cc=netdev@vger.kernel.org \
    --cc=quentin.monnet@netronome.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.