From patchwork Fri Feb 26 15:47:12 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Rose, Gregory V" X-Patchwork-Id: 589207 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ozlabs.org (Postfix) with ESMTP id D574C140C3B for ; Sat, 27 Feb 2016 04:29:07 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id E9E6295781; Fri, 26 Feb 2016 17:29:06 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id cVibqNhjoZxq; Fri, 26 Feb 2016 17:29:04 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by hemlock.osuosl.org (Postfix) with ESMTP id 1193F9574C; Fri, 26 Feb 2016 17:29:04 +0000 (UTC) X-Original-To: intel-wired-lan@lists.osuosl.org Delivered-To: intel-wired-lan@lists.osuosl.org Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id 90EFB1C1EF5 for ; Fri, 26 Feb 2016 15:47:16 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 8A1C524F4C for ; Fri, 26 Feb 2016 15:47:16 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QygXWsrSgqXm for ; Fri, 26 Feb 2016 15:47:15 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by silver.osuosl.org (Postfix) with ESMTP id 7DC2732206 for ; Fri, 26 Feb 2016 15:47:15 +0000 (UTC) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga102.jf.intel.com with ESMTP; 26 Feb 2016 07:47:14 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.22,498,1449561600"; d="scan'208";a="55346185" Received: from orsmsx110.amr.corp.intel.com ([10.22.240.8]) by fmsmga004.fm.intel.com with ESMTP; 26 Feb 2016 07:47:14 -0800 Received: from orsmsx161.amr.corp.intel.com (10.22.240.84) by ORSMSX110.amr.corp.intel.com (10.22.240.8) with Microsoft SMTP Server (TLS) id 14.3.248.2; Fri, 26 Feb 2016 07:47:13 -0800 Received: from orsmsx116.amr.corp.intel.com ([169.254.7.137]) by ORSMSX161.amr.corp.intel.com ([169.254.4.152]) with mapi id 14.03.0248.002; Fri, 26 Feb 2016 07:47:13 -0800 From: "Rose, Gregory V" To: Hiroshi Shimamoto , "Kirsher, Jeffrey T" , Stephen Hemminger Thread-Topic: [PATCH iproute2 v2] iplink: Support VF Trust Thread-Index: AdFwPlgR3ROF3PlzRfWjWU0kW6j4TwAboDVw Date: Fri, 26 Feb 2016 15:47:12 +0000 Message-ID: References: <7F861DC0615E0C47A872E6F3C5FCDDBD05FB353F@BPXM14GP.gisp.nec.co.jp> In-Reply-To: <7F861DC0615E0C47A872E6F3C5FCDDBD05FB353F@BPXM14GP.gisp.nec.co.jp> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.22.254.140] MIME-Version: 1.0 X-Mailman-Approved-At: Fri, 26 Feb 2016 17:29:03 +0000 Cc: "nhorman@redhat.com" , "Choi, Sy Jong" , Rony Efraim , David Miller , "intel-wired-lan@lists.osuosl.org" , Linux Netdev List , Edward Cree , Or Gerlitz , "sassmann@redhat.com" Subject: Re: [Intel-wired-lan] [PATCH iproute2 v2] iplink: Support VF Trust X-BeenThere: intel-wired-lan@lists.osuosl.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Intel Wired Ethernet Linux Kernel Driver Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-wired-lan-bounces@lists.osuosl.org Sender: "Intel-wired-lan" -----Original Message----- From: Hiroshi Shimamoto [mailto:h-shimamoto@ct.jp.nec.com] Sent: Thursday, February 25, 2016 6:40 PM To: Kirsher, Jeffrey T ; Stephen Hemminger Cc: Rose, Gregory V ; Or Gerlitz ; Alexander Duyck ; Skidmore, Donald C ; intel-wired-lan@lists.osuosl.org; nhorman@redhat.com; jogreene@redhat.com; Linux Netdev List ; Choi, Sy Jong ; Rony Efraim ; Edward Cree ; David Miller ; sassmann@redhat.com Subject: [PATCH iproute2 v2] iplink: Support VF Trust From: Hiroshi Shimamoto Add IFLA_VF_TRUST message to trust the VF. PF can accept some privileged operation from the trusted VF. For example, ixgbe PF doesn't allow to enable VF promiscuous mode until the VF is trusted because it may hurt performance. To trust VF. # ip link set dev eth0 vf 1 trust on To untrust VF. # ip link set dev eth0 vf 1 trust off Signed-off-by: Hiroshi Shimamoto --- v1 -> v2: rebase to the latest code of iproute2. The VF trust patch has been in kernel and the IFLA_VF_TRUST netlink attribute has been included iproute2, but no actual handler for this. This patch add the functionality to trust vf from ip command. ip/iplink.c | 13 +++++++++++++ man/man8/ip-link.8.in | 7 ++++++- 2 files changed, 19 insertions(+), 1 deletion(-) +.BI trust " on|off" +- trust the specified VF user. This enables that VF user can set a +specific feature which may impact security and/or performance. (e.g. VF +multicast promiscuous mode) .in -8 .TP -- 1.8.3.1 Acked-by: Greg Rose diff --git a/ip/iplink.c b/ip/iplink.c index 5ab9d61..69f5057 100644 --- a/ip/iplink.c +++ b/ip/iplink.c @@ -82,6 +82,7 @@ void iplink_usage(void) fprintf(stderr, " [ spoofchk { on | off} ] ]\n"); fprintf(stderr, " [ query_rss { on | off} ] ]\n"); fprintf(stderr, " [ state { auto | enable | disable} ] ]\n"); + fprintf(stderr, " [ trust { on | off} ] ]\n"); fprintf(stderr, " [ master DEVICE ]\n"); fprintf(stderr, " [ nomaster ]\n"); fprintf(stderr, " [ addrgenmode { eui64 | none | stable_secret | random } ]\n"); @@ -356,6 +357,18 @@ static int iplink_parse_vf(int vf, int *argcp, char ***argvp, ivs.vf = vf; addattr_l(&req->n, sizeof(*req), IFLA_VF_RSS_QUERY_EN, &ivs, sizeof(ivs)); + } else if (matches(*argv, "trust") == 0) { + struct ifla_vf_trust ivt; + NEXT_ARG(); + if (matches(*argv, "on") == 0) + ivt.setting = 1; + else if (matches(*argv, "off") == 0) + ivt.setting = 0; + else + invarg("Invalid \"trust\" value\n", *argv); + ivt.vf = vf; + addattr_l(&req->n, sizeof(*req), IFLA_VF_TRUST, &ivt, sizeof(ivt)); + } else if (matches(*argv, "state") == 0) { struct ifla_vf_link_state ivl; diff --git a/man/man8/ip-link.8.in b/man/man8/ip-link.8.in index 4d32343..7dd7a90 100644 --- a/man/man8/ip-link.8.in +++ b/man/man8/ip-link.8.in @@ -142,7 +142,8 @@ ip-link \- network device configuration .B min_tx_rate .IR TXRATE " ] [" .B spoofchk { on | off } ] [ -.B state { auto | enable | disable} +.B state { auto | enable | disable} ] [ .B trust { on | off } ] | .br .B master @@ -1019,6 +1020,10 @@ parameter must be specified. reflection of the PF link state, enable lets the VF to communicate with other VFs on this host even if the PF link state is down, disable causes the HW to drop any packets sent by the VF. +.sp