Hi! This set starts by separating Qdisc handling code into a new file. Next two patches allow early access to TLV-based capabilities during probe, previously the capabilities were parsed just before netdevs were registered, but its cleaner to do some basic validation earlier and avoid cleanup work.
Next three patches improve RED's parameter validation. First we provide a more precise message about why offload failed (and move the parameter validation to a helper). Next we make sure we don't set the top bit in the 32 bit max RED threshold value. Because FW is treating the value as signed it reportedly causes slow downs (unnecessary queuing and marking) when top bit is set with recent firmwares. Last (and perhaps least importantly) we offload the harddrop parameter of the Qdisc. We don't plan to offload harddrop RED, but it seems prudent to make sure user didn't set that flag as device behaviour would have differed. Jakub Kicinski (7): nfp: abm: split qdisc offload code into a separate file nfp: pass ctrl_bar pointer to nfp_net_alloc nfp: parse vNIC TLV capabilities at alloc time nfp: abm: provide more precise info about offload parameter validation nfp: abm: don't set negative threshold net: sched: red: inform offloads about harddrop setting nfp: abm: refuse RED offload with harddrop set drivers/net/ethernet/netronome/nfp/Makefile | 1 + drivers/net/ethernet/netronome/nfp/abm/main.c | 266 ---------------- drivers/net/ethernet/netronome/nfp/abm/main.h | 9 + .../net/ethernet/netronome/nfp/abm/qdisc.c | 301 ++++++++++++++++++ drivers/net/ethernet/netronome/nfp/nfp_net.h | 2 +- .../ethernet/netronome/nfp/nfp_net_common.c | 26 +- .../net/ethernet/netronome/nfp/nfp_net_main.c | 4 +- .../ethernet/netronome/nfp/nfp_netvf_main.c | 3 +- include/net/pkt_cls.h | 1 + net/sched/sch_red.c | 1 + 10 files changed, 335 insertions(+), 279 deletions(-) create mode 100644 drivers/net/ethernet/netronome/nfp/abm/qdisc.c -- 2.17.1