From patchwork Mon Dec 18 22:45:13 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Aring X-Patchwork-Id: 850471 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=mojatatu-com.20150623.gappssmtp.com header.i=@mojatatu-com.20150623.gappssmtp.com header.b="V/ach8EN"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z0x364tXJz9t2W for ; Tue, 19 Dec 2017 09:46:10 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965142AbdLRWqI (ORCPT ); Mon, 18 Dec 2017 17:46:08 -0500 Received: from mail-it0-f65.google.com ([209.85.214.65]:41308 "EHLO mail-it0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S964845AbdLRWpo (ORCPT ); Mon, 18 Dec 2017 17:45:44 -0500 Received: by mail-it0-f65.google.com with SMTP id x28so593742ita.0 for ; Mon, 18 Dec 2017 14:45:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mojatatu-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=bqafZxAQxVvbWdGLfRkPXFkmHQo5qcwC+s+S2MTwVLg=; b=V/ach8ENVZqMuuh4oP3lgOUDQm0jYGdArxnTlwoOnZQp5r6V9KuEikGl3O8a1AiilN bSdY4n2nD2hkMaIXOCsgV9OMk2mYpHXW2y6eKjEOpKiXtjRXtfxOjnA66AF4kRuUFxkq ieHWgE6qZYzT05RGKU6mj88U2FwHXqFJieVFqB4vZYNEhcEKTqo9J/oS8tY4OxBywHZx g9AuyEQSBkbVLiligePpo03VMKWMEnCAdbRdowqz+O9iaIsAyGgTli4s4qey/77gKUMH LUvJGqZahZQoKWe+qO3A8ZIfet8cgjYt3UUtNKEPXzl3USClP7jdN3TtzJlP1B6uXLzm ZzTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=bqafZxAQxVvbWdGLfRkPXFkmHQo5qcwC+s+S2MTwVLg=; b=RZOsJKPbFB8LyVes2RRcc2566ZjldtFn+Jwy70a3cYdorvENKjFv8+Xdot138YD1JM PFfVI6iS3x2toGWwi3UDNoXByA9iHSGhTnCbvBVgpPX3BaUu5UeZtqy9Y4fZ2rfoqXuM JSkf6GOiv8BTSyz9K6F9gaJ7jaW4ATgLzQpN337HQGOcSAad11dQxzqiZ9MKDgpYDIhD Qa57VVPVMaJfjwCLOacxFxUJpz6VZ4kfsshcmMU6QuGn1al5lKzYVVeWC7hPgTL+8BH2 jx+jEZggqM/JPsUCGo0DsGfbyzgwwy12mQRUmoGLiGAUArMssl672kCpIKBq5ZC/T7Z1 cQiQ== X-Gm-Message-State: AKGB3mLV/QfJPirMfhRE72+/RBzSwcxZbyjtSCXZbYpzR3k4IFyZh7Si lWBxEsASDBdM/GhuMQRQHgEEjeir X-Google-Smtp-Source: ACJfBot3u2t0Eml5P9GTEuU7SF0P963RhAO77g5J3Jqy+cCkREbbiIeaPxVb+ratMKaZZBmruOjcCQ== X-Received: by 10.36.214.20 with SMTP id o20mr834880itg.112.1513637143809; Mon, 18 Dec 2017 14:45:43 -0800 (PST) Received: from x220t.lan ([64.26.149.125]) by smtp.gmail.com with ESMTPSA id o71sm210867itb.28.2017.12.18.14.45.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 18 Dec 2017 14:45:43 -0800 (PST) From: Alexander Aring To: jhs@mojatatu.com Cc: xiyou.wangcong@gmail.com, jiri@resnulli.us, davem@davemloft.net, netdev@vger.kernel.org, kernel@mojatatu.com, Alexander Aring , David Ahern Subject: [PATCHv3 net-next 14/14] net: sch: sch_drr: add extack support Date: Mon, 18 Dec 2017 17:45:13 -0500 Message-Id: <20171218224513.29836-15-aring@mojatatu.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171218224513.29836-1-aring@mojatatu.com> References: <20171218224513.29836-1-aring@mojatatu.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This patch adds extack support for the drr qdisc implementation by adding NL_SET_ERR_MSG in validation of user input. Also it serves to illustrate a use case of how the infrastructure ops api changes are to be used by individual qdiscs. Cc: David Ahern Signed-off-by: Alexander Aring --- net/sched/sch_drr.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/net/sched/sch_drr.c b/net/sched/sch_drr.c index bf638ce57c50..e0b0cf8a9939 100644 --- a/net/sched/sch_drr.c +++ b/net/sched/sch_drr.c @@ -74,17 +74,21 @@ static int drr_change_class(struct Qdisc *sch, u32 classid, u32 parentid, u32 quantum; int err; - if (!opt) + if (!opt) { + NL_SET_ERR_MSG(extack, "DRR options are required for this operation"); return -EINVAL; + } - err = nla_parse_nested(tb, TCA_DRR_MAX, opt, drr_policy, NULL); + err = nla_parse_nested(tb, TCA_DRR_MAX, opt, drr_policy, extack); if (err < 0) return err; if (tb[TCA_DRR_QUANTUM]) { quantum = nla_get_u32(tb[TCA_DRR_QUANTUM]); - if (quantum == 0) + if (quantum == 0) { + NL_SET_ERR_MSG(extack, "Specified DRR quantum cannot be zero"); return -EINVAL; + } } else quantum = psched_mtu(qdisc_dev(sch)); @@ -95,8 +99,10 @@ static int drr_change_class(struct Qdisc *sch, u32 classid, u32 parentid, NULL, qdisc_root_sleeping_running(sch), tca[TCA_RATE]); - if (err) + if (err) { + NL_SET_ERR_MSG(extack, "Failed to replace estimator"); return err; + } } sch_tree_lock(sch); @@ -127,6 +133,7 @@ static int drr_change_class(struct Qdisc *sch, u32 classid, u32 parentid, qdisc_root_sleeping_running(sch), tca[TCA_RATE]); if (err) { + NL_SET_ERR_MSG(extack, "Failed to replace estimator"); qdisc_destroy(cl->qdisc); kfree(cl); return err; @@ -179,8 +186,10 @@ static struct tcf_block *drr_tcf_block(struct Qdisc *sch, unsigned long cl, { struct drr_sched *q = qdisc_priv(sch); - if (cl) + if (cl) { + NL_SET_ERR_MSG(extack, "DRR classid must be zero"); return NULL; + } return q->block; }