From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6462FA0559; Mon, 16 Mar 2020 07:01:25 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 9CE871C06A; Mon, 16 Mar 2020 07:00:55 +0100 (CET) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 8B0251C028 for ; Mon, 16 Mar 2020 07:00:51 +0100 (CET) IronPort-SDR: xDGxXVrBHpGHeNqaEEEwLDIDXHophjBkpF/kTlkS37c4octDWpJ35IAh+U74gZtvnz6M3ue2I+ 5CMJkqygV5qg== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Mar 2020 23:00:51 -0700 IronPort-SDR: wjCqtMO1DOpU7FtrVcP+WzevESvLxFwVtDrhXvfdLoQRqsoNVaJNAzlzPEc0/0ZRmUZw6yjmft fP1Mz/WtRR6Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,559,1574150400"; d="scan'208";a="247354827" Received: from npg-dpdk-haiyue-1.sh.intel.com ([10.67.119.213]) by orsmga006.jf.intel.com with ESMTP; 15 Mar 2020 23:00:49 -0700 From: Haiyue Wang To: dev@dpdk.org, xiaolong.ye@intel.com, qi.z.zhang@intel.com, qiming.yang@intel.com, beilei.xing@intel.com Cc: wei.zhao1@intel.com, Haiyue Wang Date: Mon, 16 Mar 2020 13:52:51 +0800 Message-Id: <20200316055255.19685-4-haiyue.wang@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200316055255.19685-1-haiyue.wang@intel.com> References: <20200309141437.11800-1-haiyue.wang@intel.com> <20200316055255.19685-1-haiyue.wang@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH v3 3/7] net/ice: acquire and disable the DCF capability X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Since the DCF (Device Config Function) controls the flow setting of other VFs by the mailbox with PF, for security, it needs to acquire the DCF capability from PF when starts, and disable it when exits. Signed-off-by: Haiyue Wang --- drivers/net/ice/ice_dcf.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/drivers/net/ice/ice_dcf.c b/drivers/net/ice/ice_dcf.c index 0a99cceb1..ab5bc7424 100644 --- a/drivers/net/ice/ice_dcf.c +++ b/drivers/net/ice/ice_dcf.c @@ -227,7 +227,7 @@ ice_dcf_get_vf_resource(struct ice_dcf_hw *hw) int err, i; caps = VIRTCHNL_VF_OFFLOAD_WB_ON_ITR | VIRTCHNL_VF_OFFLOAD_RX_POLLING | - VIRTCHNL_VF_CAP_ADV_LINK_SPEED | + VIRTCHNL_VF_CAP_ADV_LINK_SPEED | VIRTCHNL_VF_CAP_DCF | VF_BASE_MODE_OFFLOADS; err = ice_dcf_send_cmd_req_no_irq(hw, VIRTCHNL_OP_GET_VF_RESOURCES, @@ -264,6 +264,30 @@ ice_dcf_get_vf_resource(struct ice_dcf_hw *hw) return 0; } +static int +ice_dcf_mode_disable(struct ice_dcf_hw *hw) +{ + int err; + + err = ice_dcf_send_cmd_req_no_irq(hw, VIRTCHNL_OP_DCF_DISABLE, + NULL, 0); + if (err) { + PMD_DRV_LOG(ERR, "Fail to send msg OP_DCF_DISABLE"); + return err; + } + + err = ice_dcf_recv_cmd_rsp_no_irq(hw, VIRTCHNL_OP_DCF_DISABLE, + hw->arq_buf, ICE_DCF_AQ_BUF_SZ, NULL); + if (err) { + PMD_DRV_LOG(ERR, + "Fail to get response of OP_DCF_DISABLE %d", + err); + return -1; + } + + return 0; +} + static int ice_dcf_check_reset_done(struct ice_dcf_hw *hw) { @@ -467,6 +491,7 @@ ice_dcf_uninit_hw(struct rte_eth_dev *eth_dev, struct ice_dcf_hw *hw) rte_intr_callback_unregister(intr_handle, ice_dcf_dev_interrupt_handler, hw); + ice_dcf_mode_disable(hw); iavf_shutdown_adminq(&hw->avf); rte_free(hw->arq_buf); -- 2.25.1