netdevsim: Introduce support for L3 offload xstats
authorPetr Machata <petrm@nvidia.com>
Mon, 14 Mar 2022 14:01:15 +0000 (15:01 +0100)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 15 Mar 2022 13:00:51 +0000 (14:00 +0100)
commit1a6d7ae7d63c4572676f4cc94aa35a73dc14a757
tree798f4be8ad766e87d6fdf4132c3d6b4b07a22f20
parent231fdac3e58f4e52e387930c73bf535439607563
netdevsim: Introduce support for L3 offload xstats

Add support for testing of HW stats support that was added recently, namely
the L3 stats support. L3 stats are provided for devices for which the L3
stats have been turned on, and that were enabled for netdevsim through a
debugfs toggle:

    # echo $ifindex > /sys/kernel/debug/netdevsim/$DEV/hwstats/l3/enable_ifindex

For fully enabled netdevices, netdevsim counts 10pps of ingress traffic and
20pps of egress traffic. Similarly, L3 stats can be disabled for a given
device, and netdevsim ceases pretending there is any HW traffic going on:

    # echo $ifindex > /sys/kernel/debug/netdevsim/$DEV/hwstats/l3/disable_ifindex

Besides this, there is a third toggle to mark a device for future failure:

    # echo $ifindex > /sys/kernel/debug/netdevsim/$DEV/hwstats/l3/fail_next_enable

A future request to enable L3 stats on such netdevice will be bounced by
netdevsim:

    # ip -j l sh dev d | jq '.[].ifindex'
    66
    # echo 66 > /sys/kernel/debug/netdevsim/netdevsim10/hwstats/l3/enable_ifindex
    # echo 66 > /sys/kernel/debug/netdevsim/netdevsim10/hwstats/l3/fail_next_enable
    # ip stats set dev d l3_stats on
    Error: netdevsim: Stats enablement set to fail.

Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Acked-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/netdevsim/Makefile
drivers/net/netdevsim/dev.c
drivers/net/netdevsim/hwstats.c [new file with mode: 0644]
drivers/net/netdevsim/netdevsim.h