From patchwork Thu Oct 18 11:51:18 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 985824 X-Patchwork-Delegate: dsahern@gmail.com Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@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; dmarc=pass (p=none dis=none) header.from=kernel.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.b="qeXU1m0Q"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 42bS7Q53HNz9s89 for ; Thu, 18 Oct 2018 22:51:30 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728203AbeJRTwI (ORCPT ); Thu, 18 Oct 2018 15:52:08 -0400 Received: from mail.kernel.org ([198.145.29.99]:34740 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728196AbeJRTwI (ORCPT ); Thu, 18 Oct 2018 15:52:08 -0400 Received: from localhost (unknown [213.57.179.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 39EAD2086E; Thu, 18 Oct 2018 11:51:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1539863488; bh=8cGB1v4OwUCsyTuMUaGyaE/sgBqhGNc4Sco3D3V1SWA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qeXU1m0QR/txzjFZDRLuckt4MFTKdZBQmt1pK1KnWcutJpsbD4X8L2GTqAu9fO2HY 4SUmskjCfFoZ5GvxVyXaWAquWUos0ZFDHz2k6vgI/dt7qeVmQNpaIev3H9IGcjpk1V hiHFYOvOqs0daRREY0NEiQzvDInbNweIplbpifMo= From: Leon Romanovsky To: David Ahern Cc: Leon Romanovsky , netdev , RDMA mailing list , Stephen Hemminger Subject: [PATCH iproute2-next 1/3] rdma: Update kernel include file to support IB device renaming Date: Thu, 18 Oct 2018 14:51:18 +0300 Message-Id: <20181018115120.17893-2-leon@kernel.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181018115120.17893-1-leon@kernel.org> References: <20181018115120.17893-1-leon@kernel.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Leon Romanovsky Bring kernel header file changes upto commit 05d940d3a3ec ("RDMA/nldev: Allow IB device rename through RDMA netlink") Signed-off-by: Leon Romanovsky --- rdma/include/uapi/rdma/rdma_netlink.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rdma/include/uapi/rdma/rdma_netlink.h b/rdma/include/uapi/rdma/rdma_netlink.h index 6513fb89..e2228c09 100644 --- a/rdma/include/uapi/rdma/rdma_netlink.h +++ b/rdma/include/uapi/rdma/rdma_netlink.h @@ -227,8 +227,9 @@ enum rdma_nldev_command { RDMA_NLDEV_CMD_UNSPEC, RDMA_NLDEV_CMD_GET, /* can dump */ + RDMA_NLDEV_CMD_SET, - /* 2 - 4 are free to use */ + /* 3 - 4 are free to use */ RDMA_NLDEV_CMD_PORT_GET = 5, /* can dump */ From patchwork Thu Oct 18 11:51:19 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 985825 X-Patchwork-Delegate: dsahern@gmail.com Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@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; dmarc=pass (p=none dis=none) header.from=kernel.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.b="DkvQQ0r1"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 42bS7T75Vjz9s4Z for ; Thu, 18 Oct 2018 22:51:33 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728217AbeJRTwL (ORCPT ); Thu, 18 Oct 2018 15:52:11 -0400 Received: from mail.kernel.org ([198.145.29.99]:34770 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727745AbeJRTwL (ORCPT ); Thu, 18 Oct 2018 15:52:11 -0400 Received: from localhost (unknown [213.57.179.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 61E992086E; Thu, 18 Oct 2018 11:51:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1539863492; bh=p9Go19Dx1G0qHEFt3h49jlnKz9fQemPZTN3QAffA88Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DkvQQ0r1UmWKf8IniSuC/A7kHg9XS3p5McI0cmJTBhWi/HqbcazoUkOYpRAGa5Njn VufrBhyysigxFFpEYz0/hsZgsggFBWc9kpXAMOkmOa14IS1ynyaNj/2od5uzqa2rJB THz3XVZiKa5J4W5gsD/bZ4aIgkP01WJnSmAQ/oV0= From: Leon Romanovsky To: David Ahern Cc: Leon Romanovsky , netdev , RDMA mailing list , Stephen Hemminger Subject: [PATCH iproute2-next 2/3] rdma: Introduce command execution helper with required device name Date: Thu, 18 Oct 2018 14:51:19 +0300 Message-Id: <20181018115120.17893-3-leon@kernel.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181018115120.17893-1-leon@kernel.org> References: <20181018115120.17893-1-leon@kernel.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Leon Romanovsky In contradiction to various show commands, the set command explicitly requires to use device name as an argument. Provide new command execution helper which enforces it. Signed-off-by: Leon Romanovsky --- rdma/rdma.h | 1 + rdma/utils.c | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/rdma/rdma.h b/rdma/rdma.h index d4b7ba19..dde9e128 100644 --- a/rdma/rdma.h +++ b/rdma/rdma.h @@ -90,6 +90,7 @@ int cmd_link(struct rd *rd); int cmd_res(struct rd *rd); int rd_exec_cmd(struct rd *rd, const struct rd_cmd *c, const char *str); int rd_exec_dev(struct rd *rd, int (*cb)(struct rd *rd)); +int rd_exec_require_dev(struct rd *rd, int (*cb)(struct rd *rd)); int rd_exec_link(struct rd *rd, int (*cb)(struct rd *rd), bool strict_port); void rd_free(struct rd *rd); int rd_set_arg_to_devname(struct rd *rd); diff --git a/rdma/utils.c b/rdma/utils.c index 4840bf22..61f4aeb1 100644 --- a/rdma/utils.c +++ b/rdma/utils.c @@ -577,6 +577,16 @@ out: return ret; } +int rd_exec_require_dev(struct rd *rd, int (*cb)(struct rd *rd)) +{ + if (rd_no_arg(rd)) { + pr_err("Please provide device name.\n"); + return -EINVAL; + } + + return rd_exec_dev(rd, cb); +} + int rd_exec_cmd(struct rd *rd, const struct rd_cmd *cmds, const char *str) { const struct rd_cmd *c; From patchwork Thu Oct 18 11:51:20 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 985826 X-Patchwork-Delegate: dsahern@gmail.com Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@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; dmarc=pass (p=none dis=none) header.from=kernel.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.b="FOQfi3WW"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 42bS7Y4W1pz9s4Z for ; Thu, 18 Oct 2018 22:51:37 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728226AbeJRTwP (ORCPT ); Thu, 18 Oct 2018 15:52:15 -0400 Received: from mail.kernel.org ([198.145.29.99]:34804 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727745AbeJRTwP (ORCPT ); Thu, 18 Oct 2018 15:52:15 -0400 Received: from localhost (unknown [213.57.179.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 8D39921473; Thu, 18 Oct 2018 11:51:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1539863495; bh=UGx3n2VOWkKyRKreLXHP2bRACYIXxb20bAa2NlJdDTs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FOQfi3WWfmMyK9Q7Fkor2L9BEbpqNPkA4uL4E7KFIGvzTwvykwWApXWNzjS3EpKjG lU4yhS13DNp+nq1DHT46z/YfvGx2eKd9h3bjj2ZGe7F5lqtMngRDncT8MvBdPuC8FG 47l+Wz+NFl3kE9W5kLM/wD3qvVngoa2ZpgFPQcAE= From: Leon Romanovsky To: David Ahern Cc: Leon Romanovsky , netdev , RDMA mailing list , Stephen Hemminger Subject: [PATCH iproute2-next 3/3] rdma: Add an option to rename IB device interface Date: Thu, 18 Oct 2018 14:51:20 +0300 Message-Id: <20181018115120.17893-4-leon@kernel.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181018115120.17893-1-leon@kernel.org> References: <20181018115120.17893-1-leon@kernel.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Leon Romanovsky Enrich rdmatool with an option to rename IB devices, the command interface follows Iproute2 convention: "rdma dev set [OLD-DEVNAME] name NEW-DEVNAME" Signed-off-by: Leon Romanovsky --- rdma/dev.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/rdma/dev.c b/rdma/dev.c index e2eafe47..760b7fb3 100644 --- a/rdma/dev.c +++ b/rdma/dev.c @@ -14,6 +14,7 @@ static int dev_help(struct rd *rd) { pr_out("Usage: %s dev show [DEV]\n", rd->filename); + pr_out(" %s dev set [DEV] name DEVNAME\n", rd->filename); return 0; } @@ -240,17 +241,51 @@ static int dev_one_show(struct rd *rd) return rd_exec_cmd(rd, cmds, "parameter"); } +static int dev_set_name(struct rd *rd) +{ + uint32_t seq; + + if (rd_no_arg(rd)) { + pr_err("Please provide device new name.\n"); + return -EINVAL; + } + + rd_prepare_msg(rd, RDMA_NLDEV_CMD_SET, + &seq, (NLM_F_REQUEST | NLM_F_ACK)); + mnl_attr_put_u32(rd->nlh, RDMA_NLDEV_ATTR_DEV_INDEX, rd->dev_idx); + mnl_attr_put_strz(rd->nlh, RDMA_NLDEV_ATTR_DEV_NAME, rd_argv(rd)); + + return rd_send_msg(rd); +} + +static int dev_one_set(struct rd *rd) +{ + const struct rd_cmd cmds[] = { + { NULL, dev_help}, + { "name", dev_set_name}, + { 0 } + }; + + return rd_exec_cmd(rd, cmds, "parameter"); +} + static int dev_show(struct rd *rd) { return rd_exec_dev(rd, dev_one_show); } +static int dev_set(struct rd *rd) +{ + return rd_exec_require_dev(rd, dev_one_set); +} + int cmd_dev(struct rd *rd) { const struct rd_cmd cmds[] = { { NULL, dev_show }, { "show", dev_show }, { "list", dev_show }, + { "set", dev_set }, { "help", dev_help }, { 0 } };