Fri, Nov 24, 2017 at 03:36:07AM CET, jakub.kicin...@netronome.com wrote: >Hi! > >The purpose of this series is to add a software model of BPF offloads >to make it easier for everyone to test them and make some of the more >arcane rules and assumptions more clear. > >The series starts with 3 patches aiming to make XDP handling in the >drivers less error prone. Currently driver authors have to remember >to free XDP programs if XDP is active during unregister. With this >series the core will disable XDP on its own. It will take place >after close, drivers are not expected to perform reconfiguration >when disabling XDP on a downed device. > >Next two patches add the software netdev driver. Last but not least
I wonder if for this it is needed to split the driver into multiple files. I think that a single file would be better as I don't expect the driver would get big. >there is a python test which exercises all the corner cases which >came to my mind. > >Test needs to be run as root. It will print basic information to >stdout, but can also create a more detailed log of all commands >when --log option is passed. Log is in Emacs Org-mode format. > > ./tools/testing/selftests/bpf/test_offload.py --log /tmp/log > >Something I'm still battling with, and would appreciate help of >wiser people is that occasionally during the test something makes >the refcount of init_net drop to 0 :S I tried to create a simple >reproducer, but seems like just running the script in the loop is >the easiest way to go... Could it have something to do with the >recent TC work? The driver is pretty simple and never touches I don't see how... >ref counts. The only slightly unusual thing is that the BPF code >sleeps for a bit on remove in the netdev notifier. > > >Jakub Kicinski (6): > net: xdp: avoid output parameters when querying XDP prog > net: xdp: report flags program was installed with on query > net: xdp: make the stack take care of the tear down > netdevsim: add software driver for testing offloads > netdevsim: add bpf offload support > selftests/bpf: add offload test based on netdevsim Patchset looks fine to me. Thanks for this! > > MAINTAINERS | 5 + > drivers/net/Kconfig | 10 + > drivers/net/Makefile | 1 + > drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 - > drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 3 - > drivers/net/ethernet/netronome/nfp/bpf/main.c | 7 - > .../net/ethernet/netronome/nfp/nfp_net_common.c | 4 +- > drivers/net/ethernet/qlogic/qede/qede_main.c | 4 - > drivers/net/netdevsim/Makefile | 7 + > drivers/net/netdevsim/bpf.c | 391 +++++++++++++ > drivers/net/netdevsim/netdev.c | 241 ++++++++ > drivers/net/netdevsim/netdevsim.h | 84 +++ > drivers/net/tun.c | 4 - > include/linux/netdevice.h | 5 +- > net/core/dev.c | 42 +- > net/core/rtnetlink.c | 6 +- > tools/testing/selftests/bpf/Makefile | 5 +- > tools/testing/selftests/bpf/sample_ret0.c | 8 + > tools/testing/selftests/bpf/test_offload.py | 634 +++++++++++++++++++++ > 19 files changed, 1426 insertions(+), 37 deletions(-) > create mode 100644 drivers/net/netdevsim/Makefile > create mode 100644 drivers/net/netdevsim/bpf.c > create mode 100644 drivers/net/netdevsim/netdev.c > create mode 100644 drivers/net/netdevsim/netdevsim.h > create mode 100644 tools/testing/selftests/bpf/sample_ret0.c > create mode 100755 tools/testing/selftests/bpf/test_offload.py > >-- >2.14.1 >