mbox series

[bpf-next,00/11] net: sched: add extack support for cls offload

Message ID 20180116003027.9405-1-jakub.kicinski@netronome.com
Headers show
Series net: sched: add extack support for cls offload | expand

Message

Jakub Kicinski Jan. 16, 2018, 12:30 a.m. UTC
Hi!

This series adds extack to cls offloads, as such it could arguably be
targeted at net-next.  Unfortunately, git am is not able to deal cleanly
with minor conflicts on the nfp patches..  Since the series is really
about cls_bpf I hope it's OK if it went via the bpf-next tree.

Quentin says:

This series tries to improve user experience when eBPF hardware offload
hits error paths at load time. In particular, it introduces netlink
extended ack support in the nfp driver.

To that aim, transmission of the pointer to the extack object is piped
through the `change()` operation of the existing classifiers (patch 1 to
6). Then it is used for TC offload in the nfp driver (patch 8) and in
netdevsim (patch 9, selftest in patch 10). Patch 7 adds a helper to handle
extack messages in the core when TC offload is disabled on the net device.

For completeness extack is propagated for classifiers other than cls_bpf,
but it's up to the drivers to make use of it.

Quentin Monnet (11):
  net: sched: add extack support to change() classifier operation
  net: sched: prepare extack support for offload via
    tc_cls_common_offload
  net: sched: cls_flower: propagate extack support for filter offload
  net: sched: cls_matchall: propagate extack support for filter offload
  net: sched: cls_u32: propagate extack support for filter offload
  net: sched: cls_bpf: plumb extack support in filter for hardware
    offload
  net: sched: create tc_can_offload_extack() wrapper
  nfp: bpf: plumb extack into functions related to XDP offload
  nfp: bpf: use extack support to improve debugging
  netdevsim: add extack support for TC eBPF offload
  selftests/bpf: add checks on extack messages for eBPF hw offload tests

 drivers/net/ethernet/netronome/nfp/bpf/main.c      | 35 +++++---
 drivers/net/ethernet/netronome/nfp/bpf/main.h      |  2 +-
 drivers/net/ethernet/netronome/nfp/bpf/offload.c   | 24 ++++--
 drivers/net/ethernet/netronome/nfp/nfp_app.h       |  9 +-
 .../net/ethernet/netronome/nfp/nfp_net_common.c    |  2 +-
 drivers/net/netdevsim/bpf.c                        | 35 ++++++--
 include/net/pkt_cls.h                              | 16 +++-
 include/net/sch_generic.h                          |  3 +-
 net/sched/cls_api.c                                |  3 +-
 net/sched/cls_basic.c                              |  3 +-
 net/sched/cls_bpf.c                                | 20 +++--
 net/sched/cls_cgroup.c                             |  3 +-
 net/sched/cls_flow.c                               |  2 +-
 net/sched/cls_flower.c                             | 14 ++--
 net/sched/cls_fw.c                                 |  2 +-
 net/sched/cls_matchall.c                           | 12 +--
 net/sched/cls_route.c                              |  3 +-
 net/sched/cls_rsvp.h                               |  2 +-
 net/sched/cls_tcindex.c                            |  3 +-
 net/sched/cls_u32.c                                | 21 ++---
 tools/testing/selftests/bpf/test_offload.py        | 97 ++++++++++++++++------
 21 files changed, 214 insertions(+), 97 deletions(-)