Received: by 10.213.65.68 with SMTP id h4csp2260177imn; Thu, 5 Apr 2018 11:45:17 -0700 (PDT) X-Google-Smtp-Source: AIpwx49RB2PNGTLdyQey2aAimUxjXduKj050z4u6brXvm24Heri1GFxNHCeZVT2+RbWbZBReHov9 X-Received: by 10.101.99.193 with SMTP id n1mr8390470pgv.446.1522953917192; Thu, 05 Apr 2018 11:45:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522953917; cv=none; d=google.com; s=arc-20160816; b=TEk7foQXBvp1mVrv/qqOR2O0wU6GegyYHWWECUxzgX/8Ui+ffs0r2DMSn3JflJZ8lh 7SBPB/p8wsI2RvKxYsYANlFMj+RVjabIQORfBvAwz8Z/fPQZDtnaFvM++8uxoyx+SgeT StV2cVwPiSSlZr3RT6cUtIkxg/k3hDpYuXh5a4ajbEEV3paJYiVh/XhUI7cgklcNDnm2 UF0AzjHTS14P8JPymHbSZoBVM7uRbPxYXsZXiAu20/enJPltDgFwrIfd51T0hTwhGfrx IUsu1JRZEOWySNk4mI1i7NhBMMteq3p7dRd8u7HpOhN4hNhMAmppZAE5s0/GvO0Br6uQ Ig+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:reply-to:message-id:date:subject:cc:to :from:arc-authentication-results; bh=A4idImr02tj/T97dmkfgqnTZ/2Z4hoih+dMihaIdu/Y=; b=RG8rXUEC1pmBgR0rMzrdrrXNEfsYQwwIHvchU9GdnhEKZLgAsC4fMqE/U2xNm5jnKL csQMRVziCTRCAI30JHhI3mSjDlqyJrSTKnDBsjwIcj3LwvSeTX/WpShT+0VGjJIvZGTV Mec0EX67NZMQuIJmbw1R5tTRV0AqBCjiENEuHx1cgUTFqR8zJK0vSFE/cK57Zv8u1oNX GShFIRFx22a9/F812dNYCSMD6CFD5tM6r+p57jZLcaxCbFRnYYJvNdkzTGS9AsTEdKrP Pqj9Zo1OSHRyOzvKYgPWH71iVK5XA/oy8OQJGofIrJmHvKxtTvvAORhRlDfhczm8kUcr pLnw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u188si6589622pfb.220.2018.04.05.11.45.02; Thu, 05 Apr 2018 11:45:17 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752072AbeDESnp (ORCPT + 99 others); Thu, 5 Apr 2018 14:43:45 -0400 Received: from a2nlsmtp01-05.prod.iad2.secureserver.net ([198.71.225.49]:58760 "EHLO a2nlsmtp01-05.prod.iad2.secureserver.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751974AbeDESnc (ORCPT ); Thu, 5 Apr 2018 14:43:32 -0400 Received: from linuxonhyperv2.linuxonhyperv.com ([107.180.71.197]) by : HOSTING RELAY : with SMTP id 49q9f8vsIRnIx49q9fXOzY; Thu, 05 Apr 2018 11:42:30 -0700 x-originating-ip: 107.180.71.197 Received: from haiyangz by linuxonhyperv2.linuxonhyperv.com with local (Exim 4.89_1) (envelope-from ) id 1f49q9-0000pm-KW; Thu, 05 Apr 2018 11:42:29 -0700 From: Haiyang Zhang To: davem@davemloft.net, netdev@vger.kernel.org Cc: haiyangz@microsoft.com, kys@microsoft.com, sthemmin@microsoft.com, olaf@aepfle.de, vkuznets@redhat.com, devel@linuxdriverproject.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next] hv_netvsc: Add NetVSP v6 into version negotiation Date: Thu, 5 Apr 2018 11:42:22 -0700 Message-Id: <20180405184222.3167-1-haiyangz@linuxonhyperv.com> X-Mailer: git-send-email 2.15.1 Reply-To: haiyangz@microsoft.com X-CMAE-Envelope: MS4wfHHztkJcut50WMojePS2WQDb9Xong97Labg3DgXlz9NVJkoQEGUXVIHQ74V4f/FiqSQngfEm3KT7e+SIakRZyuXdrvdUwgCXoyvtK9MMHQt+bxI0mpYx zUleDuoRVpxeuwtfXYH6x13b/ZHGNrTluOS90Z7wnf+YFgMD1HEhQX7Nb9KUr5MAyt0hYpeSp2M1LurUtlo0onLOzNB4ADm1PDUcE7VBh+n58Xs5RM8RxL7N hSIPgbhViA6VPvoSCTYsAqq0cWobkIBEiDtcOO0Iy5OIyZautseVgcujPxJqgEQlSmtIPM6jb81uWUvnn0fllFCGATVkMsj9VvZr6hCK7KyintwV0rs1oNFs hyhnQcRVRLUMTy72uf605gEVBJgX2TiA1BSQUpQKQ5Fenip+K9SmTMNtMkcvFdAWF/kiaAoPfPY1fJfqBk4VsA6m0uVA4tbK5+qWEq5LNcQpbzbhmjdM7tdn 807oCUKkh2d/OdcBUgp4z9PCKplrxCSIvaYocg== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Haiyang Zhang This patch adds the NetVSP v6 message structures, and includes this version into NetVSC/NetVSP version negotiation process. Signed-off-by: Haiyang Zhang --- drivers/net/hyperv/hyperv_net.h | 33 +++++++++++++++++++++++++++++++++ drivers/net/hyperv/netvsc.c | 3 ++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/drivers/net/hyperv/hyperv_net.h b/drivers/net/hyperv/hyperv_net.h index 960f06141472..036cd55c66fe 100644 --- a/drivers/net/hyperv/hyperv_net.h +++ b/drivers/net/hyperv/hyperv_net.h @@ -237,6 +237,7 @@ void netvsc_switch_datapath(struct net_device *nv_dev, bool vf); #define NVSP_PROTOCOL_VERSION_2 0x30002 #define NVSP_PROTOCOL_VERSION_4 0x40000 #define NVSP_PROTOCOL_VERSION_5 0x50000 +#define NVSP_PROTOCOL_VERSION_6 0x60000 enum { NVSP_MSG_TYPE_NONE = 0, @@ -308,6 +309,11 @@ enum { NVSP_MSG5_TYPE_SEND_INDIRECTION_TABLE, NVSP_MSG5_MAX = NVSP_MSG5_TYPE_SEND_INDIRECTION_TABLE, + + /* Version 6 messages */ + NVSP_MSG6_TYPE_PD_API, + + NVSP_MSG6_MAX = NVSP_MSG6_TYPE_PD_API }; enum { @@ -619,12 +625,39 @@ union nvsp_5_message_uber { struct nvsp_5_send_indirect_table send_table; } __packed; +enum nvsp6_pd_api_op { + PD_API_OP_NOTIFY_VSP = 0, + PD_API_OP_CONFIG, + PD_API_OP_MAX +}; + +struct nvsp_6_pd_api_req { + u32 op; + u64 mmio_pa; /* MMIO Physical Address */ + u32 mmio_len; + u32 num_subchn; /* Number of PD subchannels */ +} __packed; + +struct nvsp_6_pd_api_comp { + u32 op; + u32 status; + u32 num_subchn; /* Number of PD subchannels */ + u8 is_supported; /* Is supported by VSP */ + u8 is_enabled; /* Is enabled by VSP */ +} __packed; + +union nvsp_6_message_uber { + struct nvsp_6_pd_api_req pd_req; + struct nvsp_6_pd_api_comp pd_comp; +} __packed; + union nvsp_all_messages { union nvsp_message_init_uber init_msg; union nvsp_1_message_uber v1_msg; union nvsp_2_message_uber v2_msg; union nvsp_4_message_uber v4_msg; union nvsp_5_message_uber v5_msg; + union nvsp_6_message_uber v6_msg; } __packed; /* ALL Messages */ diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c index c9910c33e671..3abe57bd85bb 100644 --- a/drivers/net/hyperv/netvsc.c +++ b/drivers/net/hyperv/netvsc.c @@ -509,7 +509,8 @@ static int netvsc_connect_vsp(struct hv_device *device, struct net_device *ndev = hv_get_drvdata(device); static const u32 ver_list[] = { NVSP_PROTOCOL_VERSION_1, NVSP_PROTOCOL_VERSION_2, - NVSP_PROTOCOL_VERSION_4, NVSP_PROTOCOL_VERSION_5 + NVSP_PROTOCOL_VERSION_4, NVSP_PROTOCOL_VERSION_5, + NVSP_PROTOCOL_VERSION_6 }; struct nvsp_message *init_packet; int ndis_version, i, ret; -- 2.15.1