From: Jiri Pirko <j...@mellanox.com> This patchset is a bit bigger, but most of the patches are doing the same changes in multiple classifiers and drivers. I could do some squashes, but I think it is better split.
This is another dependency on the way to shared block implementation. The goal is to remove use of tp->q in classifiers code. Also, this provides drivers possibility to track binding of blocks to qdiscs. Legacy drivers which do not support shared block offloading. register one callback per binding. That maintains the current functionality we have with ndo_setup_tc. Drivers which support block sharing offload register one callback per block which safes overhead. Patches 1-4 introduce the binding notifications and per-block callbacks Patches 5-8 add block callbacks calls to classifiers Patches 9-17 do convert from ndo_setup_tc calls to block callbacks for classifier offloads in drivers Patches 18-20 do cleanup --- v1->v2: - patch1: - move new enum value to the end Jiri Pirko (20): net: sched: add block bind/unbind notif. and extended block_get/put net: sched: use extended variants of block_get/put in ingress and clsact qdiscs net: sched: introduce per-block callbacks net: sched: use tc_setup_cb_call to call per-block callbacks net: sched: cls_matchall: call block callbacks for offload net: sched: cls_u32: swap u32_remove_hw_knode and u32_remove_hw_hnode net: sched: cls_u32: call block callbacks for offload net: sched: cls_bpf: call block callbacks for offload mlxsw: spectrum: Convert ndo_setup_tc offloads to block callbacks mlx5e: Convert ndo_setup_tc offloads to block callbacks bnxt: Convert ndo_setup_tc offloads to block callbacks cxgb4: Convert ndo_setup_tc offloads to block callbacks ixgbe: Convert ndo_setup_tc offloads to block callbacks mlx5e_rep: Convert ndo_setup_tc offloads to block callbacks nfp: flower: Convert ndo_setup_tc offloads to block callbacks nfp: bpf: Convert ndo_setup_tc offloads to block callbacks dsa: Convert ndo_setup_tc offloads to block callbacks net: sched: avoid ndo_setup_tc calls for TC_SETUP_CLS* net: sched: remove unused classid field from tc_cls_common_offload net: sched: remove unused is_classid_clsact_ingress/egress helpers drivers/net/ethernet/broadcom/bnxt/bnxt.c | 37 ++++- drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c | 3 +- drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c | 41 ++++- drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 42 ++++- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 45 ++++- drivers/net/ethernet/mellanox/mlx5/core/en.h | 4 +- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 45 ++++- drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 62 +++++-- drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 83 +++++++--- drivers/net/ethernet/netronome/nfp/bpf/main.c | 52 +++++- .../net/ethernet/netronome/nfp/flower/offload.c | 54 +++++- include/linux/netdevice.h | 1 + include/net/pkt_cls.h | 129 ++++++++++++++- include/net/pkt_sched.h | 13 -- include/net/sch_generic.h | 1 + net/dsa/slave.c | 64 ++++++-- net/sched/cls_api.c | 182 ++++++++++++++++++++- net/sched/cls_bpf.c | 28 +++- net/sched/cls_flower.c | 29 +--- net/sched/cls_matchall.c | 58 +++---- net/sched/cls_u32.c | 67 ++++---- net/sched/sch_ingress.c | 36 +++- 22 files changed, 849 insertions(+), 227 deletions(-) -- 2.9.5