Re: [PATCH bpf-next v2 18/20] tools/bpf: selftests: add iterator programs for ipv6_route and netlink

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 5/5/20 11:04 PM, Andrii Nakryiko wrote:
On Sun, May 3, 2020 at 11:30 PM Yonghong Song <yhs@xxxxxx> wrote:

Two bpf programs are added in this patch for netlink and ipv6_route
target. On my VM, I am able to achieve identical
results compared to /proc/net/netlink and /proc/net/ipv6_route.

   $ cat /proc/net/netlink
   sk               Eth Pid        Groups   Rmem     Wmem     Dump  Locks    Drops    Inode
   000000002c42d58b 0   0          00000000 0        0        0     2        0        7
   00000000a4e8b5e1 0   1          00000551 0        0        0     2        0        18719
   00000000e1b1c195 4   0          00000000 0        0        0     2        0        16422
   000000007e6b29f9 6   0          00000000 0        0        0     2        0        16424
   ....
   00000000159a170d 15  1862       00000002 0        0        0     2        0        1886
   000000009aca4bc9 15  3918224839 00000002 0        0        0     2        0        19076
   00000000d0ab31d2 15  1          00000002 0        0        0     2        0        18683
   000000008398fb08 16  0          00000000 0        0        0     2        0        27
   $ cat /sys/fs/bpf/my_netlink
   sk               Eth Pid        Groups   Rmem     Wmem     Dump  Locks    Drops    Inode
   000000002c42d58b 0   0          00000000 0        0        0     2        0        7
   00000000a4e8b5e1 0   1          00000551 0        0        0     2        0        18719
   00000000e1b1c195 4   0          00000000 0        0        0     2        0        16422
   000000007e6b29f9 6   0          00000000 0        0        0     2        0        16424
   ....
   00000000159a170d 15  1862       00000002 0        0        0     2        0        1886
   000000009aca4bc9 15  3918224839 00000002 0        0        0     2        0        19076
   00000000d0ab31d2 15  1          00000002 0        0        0     2        0        18683
   000000008398fb08 16  0          00000000 0        0        0     2        0        27

   $ cat /proc/net/ipv6_route
   fe800000000000000000000000000000 40 00000000000000000000000000000000 00 00000000000000000000000000000000 00000100 00000001 00000000 00000001     eth0
   00000000000000000000000000000000 00 00000000000000000000000000000000 00 00000000000000000000000000000000 ffffffff 00000001 00000000 00200200       lo
   00000000000000000000000000000001 80 00000000000000000000000000000000 00 00000000000000000000000000000000 00000000 00000003 00000000 80200001       lo
   fe80000000000000c04b03fffe7827ce 80 00000000000000000000000000000000 00 00000000000000000000000000000000 00000000 00000002 00000000 80200001     eth0
   ff000000000000000000000000000000 08 00000000000000000000000000000000 00 00000000000000000000000000000000 00000100 00000003 00000000 00000001     eth0
   00000000000000000000000000000000 00 00000000000000000000000000000000 00 00000000000000000000000000000000 ffffffff 00000001 00000000 00200200       lo
   $ cat /sys/fs/bpf/my_ipv6_route
   fe800000000000000000000000000000 40 00000000000000000000000000000000 00 00000000000000000000000000000000 00000100 00000001 00000000 00000001     eth0
   00000000000000000000000000000000 00 00000000000000000000000000000000 00 00000000000000000000000000000000 ffffffff 00000001 00000000 00200200       lo
   00000000000000000000000000000001 80 00000000000000000000000000000000 00 00000000000000000000000000000000 00000000 00000003 00000000 80200001       lo
   fe80000000000000c04b03fffe7827ce 80 00000000000000000000000000000000 00 00000000000000000000000000000000 00000000 00000002 00000000 80200001     eth0
   ff000000000000000000000000000000 08 00000000000000000000000000000000 00 00000000000000000000000000000000 00000100 00000003 00000000 00000001     eth0
   00000000000000000000000000000000 00 00000000000000000000000000000000 00 00000000000000000000000000000000 ffffffff 00000001 00000000 00200200       lo

Signed-off-by: Yonghong Song <yhs@xxxxxx>
---

Just realized, this is only BPF programs, right? It would be good to
have at least minimal user-space program that would verify and load
it. Otherwise we'll be just testing compilation and it might "bit rot"
a bit...

Totally agree. My latest selftest in test_progs actually tested loading, anon iter creating and reading(). It did not verify contents though.


  .../selftests/bpf/progs/bpf_iter_ipv6_route.c | 63 ++++++++++++++++
  .../selftests/bpf/progs/bpf_iter_netlink.c    | 74 +++++++++++++++++++
  2 files changed, 137 insertions(+)
  create mode 100644 tools/testing/selftests/bpf/progs/bpf_iter_ipv6_route.c
  create mode 100644 tools/testing/selftests/bpf/progs/bpf_iter_netlink.c


[...]




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux