Improve log messages printed when RED can't be offloaded because
of Qdisc parameters.

Signed-off-by: Jakub Kicinski <jakub.kicin...@netronome.com>
Reviewed-by: John Hurley <john.hur...@netronome.com>
Reviewed-by: Quentin Monnet <quentin.mon...@netronome.com>
---
 .../net/ethernet/netronome/nfp/abm/qdisc.c    | 24 ++++++++++++++++---
 1 file changed, 21 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/netronome/nfp/abm/qdisc.c 
b/drivers/net/ethernet/netronome/nfp/abm/qdisc.c
index f36da95827ee..04b91cc12434 100644
--- a/drivers/net/ethernet/netronome/nfp/abm/qdisc.c
+++ b/drivers/net/ethernet/netronome/nfp/abm/qdisc.c
@@ -72,6 +72,26 @@ nfp_abm_red_destroy(struct net_device *netdev, struct 
nfp_abm_link *alink,
        }
 }
 
+static bool
+nfp_abm_red_check_params(struct nfp_abm_link *alink,
+                        struct tc_red_qopt_offload *opt)
+{
+       struct nfp_cpp *cpp = alink->abm->app->cpp;
+
+       if (!opt->set.is_ecn) {
+               nfp_warn(cpp, "RED offload failed - drop is not supported (ECN 
option required) (p:%08x h:%08x)\n",
+                        opt->parent, opt->handle);
+               return false;
+       }
+       if (opt->set.min != opt->set.max) {
+               nfp_warn(cpp, "RED offload failed - unsupported min/max 
parameters (p:%08x h:%08x)\n",
+                        opt->parent, opt->handle);
+               return false;
+       }
+
+       return true;
+}
+
 static int
 nfp_abm_red_replace(struct net_device *netdev, struct nfp_abm_link *alink,
                    struct tc_red_qopt_offload *opt)
@@ -82,9 +102,7 @@ nfp_abm_red_replace(struct net_device *netdev, struct 
nfp_abm_link *alink,
        i = nfp_abm_red_find(alink, opt);
        existing = i >= 0;
 
-       if (opt->set.min != opt->set.max || !opt->set.is_ecn) {
-               nfp_warn(alink->abm->app->cpp,
-                        "RED offload failed - unsupported parameters\n");
+       if (!nfp_abm_red_check_params(alink, opt)) {
                err = -EINVAL;
                goto err_destroy;
        }
-- 
2.17.1

Reply via email to