bpftool: Improve handling of ENOSPC on reuseport_array map dumps
authorBenjamin Poirier <bpoirier@suse.com>
Mon, 15 Apr 2019 07:15:36 +0000 (16:15 +0900)
committerDaniel Borkmann <daniel@iogearbox.net>
Tue, 16 Apr 2019 08:16:33 +0000 (10:16 +0200)
commit3da6e7e408b9c229e5e5cc1ddab7445c7561afc3
tree9097ac7ca26c6bbd6ba77ef690824fc64dec739b
parent0478c3bf812451315da6eeb79f8cf151db094767
bpftool: Improve handling of ENOSPC on reuseport_array map dumps

avoids outputting a series of
value:
No space left on device

The value itself is not wrong but bpf_fd_reuseport_array_lookup_elem() can
only return it if the map was created with value_size = 8. There's nothing
bpftool can do about it. Instead of repeating this error for every key in
the map, print an explanatory warning and a specialized error.

example before:
key: 00 00 00 00
value:
No space left on device
key: 01 00 00 00
value:
No space left on device
key: 02 00 00 00
value:
No space left on device
Found 0 elements

example after:
Warning: cannot read values from reuseport_sockarray map with value_size != 8
key: 00 00 00 00  value: <cannot read>
key: 01 00 00 00  value: <cannot read>
key: 02 00 00 00  value: <cannot read>
Found 0 elements

Signed-off-by: Benjamin Poirier <bpoirier@suse.com>
Reviewed-by: Quentin Monnet <quentin.monnet@netronome.com>
Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
tools/bpf/bpftool/map.c