From patchwork Wed Feb 14 08:55:19 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadi Sharshevsky X-Patchwork-Id: 873285 X-Patchwork-Delegate: shemminger@vyatta.com 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 (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="oMqsFSE6"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zhCtl0ylQz9t2x for ; Wed, 14 Feb 2018 19:56:15 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S966555AbeBNI4M (ORCPT ); Wed, 14 Feb 2018 03:56:12 -0500 Received: from mail-db5eur01on0068.outbound.protection.outlook.com ([104.47.2.68]:43664 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S935004AbeBNIzu (ORCPT ); Wed, 14 Feb 2018 03:55:50 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=YuE2zScvJkTRO0mk2c+/LIMolIr4Wr912CMXi+SqDro=; b=oMqsFSE6/OD3wUaQQWFDm1R9f4dv0tkuGsbw283ac1uciekMBWaod499r2LHWowKu94jyshfj9YoMBqcUow2l+uVddupuOyrucZQVfdVI6OO31bO8fegNJ+nSYcOFUJsK/avQub7T13GUtWF1YYcjfo1QiOZzaUQ75uibvyg9/U= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=arkadis@mellanox.com; Received: from dev-r-vrt-156.mtr.labs.mlnx (37.142.13.130) by VI1PR0501MB2461.eurprd05.prod.outlook.com (2603:10a6:800:68::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.485.10; Wed, 14 Feb 2018 08:55:44 +0000 From: Arkadi Sharshevsky To: netdev@vger.kernel.org Cc: davem@davemloft.net, stephen@networkplumber.org, dsa@cumulusnetworks.com, mlxsw@mellanox.com, Arkadi Sharshevsky Subject: [PATCH iproute2 4/7] devlink: Add support for hot reload Date: Wed, 14 Feb 2018 10:55:19 +0200 Message-Id: <1518598522-27713-5-git-send-email-arkadis@mellanox.com> X-Mailer: git-send-email 2.4.11 In-Reply-To: <1518598522-27713-1-git-send-email-arkadis@mellanox.com> References: <1518598522-27713-1-git-send-email-arkadis@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: HE1PR0102CA0039.eurprd01.prod.exchangelabs.com (2603:10a6:7:7d::16) To VI1PR0501MB2461.eurprd05.prod.outlook.com (2603:10a6:800:68::12) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 99b68791-0e50-4302-95aa-08d57388bcc5 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603307)(7153060)(7193020); SRVR:VI1PR0501MB2461; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0501MB2461; 3:foeq2wMku9ANyQUXlUb0d64WnzasZljKd39NrJ0t4pNvY973iimwBlW/c+z3AwdYPLKfWvsDy4nvlUOO5yOLEOap5xC2Xvt/kKmbhsJqFtncNHSRR2OzIcb2Vg5AkKt4qxeCE1CHyBwAg2jb9MrTfeaEGBMK4PFCKCnmoMDJwaHgaqn/LydKptLN9nM1sA6TV8E1IEtRMeeRuH7h/Zt5W6Ckv3JGR0ntks1oWPdcOPaG/be9SDbTRswR7vLE+dKD; 25:k16VD2NpomEsj2mU2HM1BzNxrFpAYUgNDMhQtk1xxIi5DFfu1DFqAitxNnkmqZ59THtxLU4lmxTrqSvbCQc78YresRKvc62zskqxCPeXd2GPRGHf8tgyyb65pnTsL/SiXh7jTA4teZJr/lCcduaSQxFDNN8YILUGhg09XZoMwYR8hiG4kzg4gfdk84YHD+VtuMhnrBL9rpCwXfXs913WrD/ur1TpdfLZkeST89SNH3pgOzsEO1oF5Ic0NbqE+0dCzENstaOaAsYqehRK+92USlMknJHs8+mybnAxVgCNiMVwEOBRuf5Qb9qgeueg/sLrzramyaAtYqv9hkqBiKolng==; 31:X/i5WQn23YIRA5nVHX0MM9tuRMR+kwhMk1vaCKaqDzLJgK9hZRmU6Dc5tg/AlLlQdQRtwZuWpb0ahZTqbs+b/y2td2c+uDPl6dBGbQxVV6x3ego3keoY8BUsBx3fqzS/3wpwV73u4e8CulD7IgQTN5jhUzJo6uOrcDaxf+YEimL5OGQKnvyTNHvgAXnPXcR8E6CCKPcI3OnP6FOEbuNzezNutcLHweM3XCGISpx5UAw= X-MS-TrafficTypeDiagnostic: VI1PR0501MB2461: X-Microsoft-Exchange-Diagnostics: 1; VI1PR0501MB2461; 20:b3tfSBV0DQDSz4fySFboTEUATUFrtQfU21AXakcH1gUIz/JayLSkFG8GwbwevVofq+P99rIgPwa8rSkSIoByKIx/VsUYC4wIQxkvCm3BrWJI0b03kcLeqj6jy3sFhRUPcTT0jqQys24gzeUXwgujJVLq8+kRWyLX1sz+tKF8VxHbD6KBphVMLUCgKuoZiqO1KSA8e1wRbJfnpb4byOrfmF9fy4YuPNU5sO0jLdrADBW5ec5JJ61P/BmFZA8Fw6H3anj+UAIVp8qBeN3+ACwf+ZpKjkcW30POuIzVErjReqgrD4c2o03U2cIiG56S3bWueMBNYu9igZYZcnCBSkix396Tz/uZps7k1IR1SBUNR3hwWHUJNd9y1bWSztqcRHzASaGFAKOviE+dxqEaQXsZxMybRvt2o8TfoZiZ7Dfqyc8nysxNd68YyRghzVOkk/Z5oX24YPbdPba2Q9Zzot7BxpS9sF0+PCWSL8EhWSMWrwnzgGG+M066ooSO6Sq/Xp8A; 4:SiJLSOJjn7YJA0a249p7Jh/fYV53dKztf0zyMDOIdcA/LOz6uUVDsQvUyOcLR0GDPYvqGAxw4VaHBKe/hTi6sU3OP+KG275tXhO8I8QCUhz9KxTKwGR2zz8RgS3H/TtH1BX0b7vz3gw3FnB+b+0Y6xr/gFq/VxBoZdV9T1fnOgJiDG3Rt5T5RL5iyhGc5OuIDzlp/0+Dug4WndiI2Psj3s4KQmpnz53yBERWM61pbMwkCp9eoAHBvXuc8ErWTfgkHnfjFU1yfDYs7E/D5eHG/Q== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(5005006)(8121501046)(3231101)(944501161)(10201501046)(3002001)(93006095)(93001095)(6055026)(6041288)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123560045)(20161123564045)(20161123562045)(6072148)(201708071742011); SRVR:VI1PR0501MB2461; BCL:0; PCL:0; RULEID:; SRVR:VI1PR0501MB2461; X-Forefront-PRVS: 0583A86C08 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(39380400002)(39860400002)(366004)(396003)(376002)(189003)(199004)(50226002)(81156014)(2361001)(6116002)(6512007)(7736002)(26005)(86362001)(3846002)(81166006)(47776003)(305945005)(107886003)(316002)(6506007)(106356001)(8676002)(16586007)(53936002)(478600001)(386003)(5660300001)(76176011)(25786009)(48376002)(52116002)(4326008)(2950100002)(6916009)(97736004)(6666003)(8936002)(66066001)(2906002)(68736007)(2351001)(36756003)(105586002)(186003)(50466002)(16526019)(59450400001)(6486002)(51416003); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR0501MB2461; H:dev-r-vrt-156.mtr.labs.mlnx; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; VI1PR0501MB2461; 23:ze4kQMjJJ78fJa55JpxfLBUMtg4+yJ21T5REtsA7G/K2eH024vdLQI7+uAG7fCzH87BJ0TP3I5HZIXpEWzWhLKy1HUwdx7egVeMB3D9C6u/1/0cSGNQk/99VxY9XijOplPzm9+g9b6IgqUvpdgo65+L5cDbTemrKfWpjITFShztJcwXHf/udZxLCz8wQm9aTXHStKDuZ38AgkXiug3N+Y13zFTolOOb6CEqgTpO3fxnlRUMyMfKUcPI7E3cvhG5JUBDodzpB82BZj42xd7tEtBCpNzJ3y2xDZDgP4CrRspcL9feWtZkyLR8TfEU4W1LKAGEo7zqSkXdwms/k3zqdpj6kY1OKUqvMIieGpSTnX/9nLkmTsArSW/uBZrgLrnzyc/gg4tvl+DCfPsIqT74AiKBiOCoqhPEW0QsWnmqGS3HFaXcIaqvqh1aekLEa4hJLYVgst9rzey0dzqGRhqUVKAF5v8LDeYVMTIlCUGDzn4fJEILIG7bJaFjO8Jrv3cTZK5L3INyYtb2lvwmakDPkxyakjoto69zEj17yfJs038qngqpErwWnPwGW4Lzav/bf/ap16PyJwegXVWzLdJLWq5t3sw8hoK57WVP3cpJE+a4wLdOWdztIpvVQXPaMrcx+MuGciMreqhdw29sMyFn/mNfIixNNAmJ96Pn2i666F5ogXiceDC+0bAF5QMiIq99xTmJyXFZUVsKdqBy5qMjg1lLGJmt5tbW2pZ17akK8tBB1oLeJ/iONfQ9x8sildwzFXPCJm4L2WZOWwhxveTigNC0ankQcCoGHLQWHmysYBnO86zusTEYopsQzqMviuu0c8O79z0IeM2lfIuYapZ0BL3ml+1NkorRf9d++Yk5UMT172M6259QvIoReOHbQG7LYh8i+0ntPezZJcx58p6zjl3J3/GU8ojs3lotg7/9y7S/P1PmUsaxMX5heMBGMnUga9/2MJS/PAL5kB9sxvAQpL3O2IDfXZal5a9vgMyF34oyAiDINAj16MNOIaHzttqUC2aPHMGTQqMx5EwLi3MKjklo/Z5uEa6c29cCc4Q4ioru2RtiTbyGY6UTllrLLdmZZB/JM4NnwI6Onh7Vr0b933ByRn51Yow/jiNDULXsJJHBFpXjs1jz7JVDfiSUp97VmK9YFfKjOMkYhHz1ynO5S5ib+z5/GPqVLad7rwh+88J4= X-Microsoft-Exchange-Diagnostics: 1; VI1PR0501MB2461; 6:qCmDs995XGTaNxge/PNNWskQgx60T9KItR8WvcBy/IemSarQOKTVu4OBJzXeMOtBWDEx8x0m58I1tRpZOOBEqIcEjIXtEv5ALvg/b9uUlYupQgVyuHKqvFkcIRnWIox0SO4GBpSCkCMM3jIKcoChh4sm+eoCiLKYTYrI6T2JaEOuEDIZzy3V5d1lEynAsW7fS6lnCuvJA6x51tJUbwFSBVZezDS0N0uAFFwOxwJNcdh5SgithxUQTIIHx2B+Yt7TmI/PSVWwgaWQTWilTEKbopOsv36EjMqwVqEa0EZNsja/jnjF8blNNzIg3WZGVkmuemEhPwOFN4W+9GReG5L8PBUey1H0N/N/3piNv3t5+RM=; 5:2EghlT/dNFTCOgA4QH6DEXd3sdjZ80L5ZxBrjfh+T3ObkeKKC+lg7IDRJtQQ5eSolRlnZtRxEKpUvHCYALqhpMI9xAd4WY3kGWoO/gG2YGcKeO+A1X5eIlu7JIkpt6kHLtYMNMciuE41iBEI6C5heak50XhNaeU0MA6gT+xM2Vw=; 24:lUVUfcGbMmw1nm8DsAU5Lqshqr+DSK8bAmmJ0Ko+zgCxOP3IG3Mlfiz65igIKLBW+ohO//FeDYkGrSZtA2nAAqU+iQ+Md92vEQMs6yzM7jE=; 7:nTiFpOIKY1zmejr+MvDpDMoeieOJNghotqmpq2l2VMDyIGxPZeoXkwUuWKaaWlswi1AIg+pGerCdxwhLHUUy6kcJb611QThJygoavIH1xFYZaN4/7GQsKgNevt17ygCnJMDlyxOa+mK1ph38ewBvuGSIgAS0YhDudGjd01dsYhzhbyTKDF+DF/k+Dh6ID+XbTGNg4Pv6jFJ7oZObc5jGzd3288uewwnEqN3ic8PJVQH2KXDojamVOjHfR2XsUeLr SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Feb 2018 08:55:44.9323 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 99b68791-0e50-4302-95aa-08d57388bcc5 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0501MB2461 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Add support for hot reload. It should be used in order for resource updates to take place. Signed-off-by: Arkadi Sharshevsky Acked-by: Jiri Pirko --- devlink/devlink.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/devlink/devlink.c b/devlink/devlink.c index 4c392a7..21835d9 100644 --- a/devlink/devlink.c +++ b/devlink/devlink.c @@ -1179,6 +1179,7 @@ static void cmd_dev_help(void) pr_err(" [ inline-mode { none | link | network | transport } ]\n"); pr_err(" [ encap { disable | enable } ]\n"); pr_err(" devlink dev eswitch show DEV\n"); + pr_err(" devlink dev reload DEV\n"); } static bool cmp_arr_last_handle(struct dl *dl, const char *bus_name, @@ -1620,6 +1621,31 @@ static int cmd_dev_show(struct dl *dl) return err; } +static void cmd_dev_reload_help(void) +{ + pr_err("Usage: devlink dev reload [ DEV ]\n"); +} + +static int cmd_dev_reload(struct dl *dl) +{ + struct nlmsghdr *nlh; + int err; + + if (dl_argv_match(dl, "help") || dl_no_arg(dl)) { + cmd_dev_reload_help(); + return 0; + } + + nlh = mnlg_msg_prepare(dl->nlg, DEVLINK_CMD_RELOAD, + NLM_F_REQUEST | NLM_F_ACK); + + err = dl_argv_parse_put(nlh, dl, DL_OPT_HANDLE, 0); + if (err) + return err; + + return _mnlg_socket_sndrcv(dl->nlg, nlh, NULL, NULL); +} + static int cmd_dev(struct dl *dl) { if (dl_argv_match(dl, "help")) { @@ -1632,6 +1658,9 @@ static int cmd_dev(struct dl *dl) } else if (dl_argv_match(dl, "eswitch")) { dl_arg_inc(dl); return cmd_dev_eswitch(dl); + } else if (dl_argv_match(dl, "reload")) { + dl_arg_inc(dl); + return cmd_dev_reload(dl); } pr_err("Command \"%s\" not found\n", dl_argv(dl)); return -ENOENT;