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 807F5A2EFC for ; Fri, 20 Sep 2019 02:55:24 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 2BF551F1E1; Fri, 20 Sep 2019 02:55:23 +0200 (CEST) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 311851F1D6 for ; Fri, 20 Sep 2019 02:55:22 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 19 Sep 2019 17:55:21 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,526,1559545200"; d="scan'208";a="181653457" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga008.jf.intel.com with ESMTP; 19 Sep 2019 17:55:20 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 19 Sep 2019 17:55:20 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 19 Sep 2019 17:55:19 -0700 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Thu, 19 Sep 2019 17:55:19 -0700 Received: from shsmsx105.ccr.corp.intel.com ([169.254.11.23]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.32]) with mapi id 14.03.0439.000; Fri, 20 Sep 2019 08:55:17 +0800 From: "Zhang, Qi Z" To: "Pei, Andy" , "dev@dpdk.org" CC: "Xu, Rosen" , "Zhang, Tianfei" , "Ye, Xiaolong" , "Lomartire, David" , "Yigit, Ferruh" Thread-Topic: [PATCH v6 01/17] net/i40e: i40e support ipn3ke FPGA port bonding Thread-Index: AQHVbssRNbIkLmN/zUutjPgSwe4PDaczufIw Date: Fri, 20 Sep 2019 00:55:16 +0000 Message-ID: <039ED4275CED7440929022BC67E7061153D99147@SHSMSX105.ccr.corp.intel.com> References: <1568881185-89233-2-git-send-email-andy.pei@intel.com> <1568883774-92149-1-git-send-email-andy.pei@intel.com> <1568883774-92149-2-git-send-email-andy.pei@intel.com> In-Reply-To: <1568883774-92149-2-git-send-email-andy.pei@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZTMzZjdjMjAtYzY0Ny00ZTQyLWExNDUtM2Q4MWY2ZTQxMjhjIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiR2RFWU5mR1wvdEdNOVpYWEg0QzZ0VmFBSzZrY2c1RlJDdGRVXC9RYjZ6MU1QUW1ldXZjR3NsRER0aVwvb1JTNitsTCJ9 x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v6 01/17] net/i40e: i40e support ipn3ke FPGA port bonding 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" > -----Original Message----- > From: Pei, Andy > Sent: Thursday, September 19, 2019 5:03 PM > To: dev@dpdk.org > Cc: Xu, Rosen ; Zhang, Tianfei ; > Ye, Xiaolong ; Zhang, Qi Z ; > Lomartire, David ; Yigit, Ferruh > > Subject: [PATCH v6 01/17] net/i40e: i40e support ipn3ke FPGA port bonding >=20 > In ipn3ke, each FPGA network side port bonding to an i40e pf, each i40e p= f link > status should get data from FPGA network, side port. This patch provide > bonding relationship. >=20 > Signed-off-by: Rosen Xu > Signed-off-by: Andy Pei > --- > drivers/net/i40e/base/i40e_type.h | 3 +++ > drivers/net/i40e/i40e_ethdev.c | 20 ++++++++++++++++++++ > drivers/net/i40e/rte_pmd_i40e.h | 4 ++++ > 3 files changed, 27 insertions(+) >=20 > diff --git a/drivers/net/i40e/base/i40e_type.h > b/drivers/net/i40e/base/i40e_type.h > index 112866b..06863d7 100644 > --- a/drivers/net/i40e/base/i40e_type.h > +++ b/drivers/net/i40e/base/i40e_type.h > @@ -660,6 +660,9 @@ struct i40e_hw { > struct i40e_nvm_info nvm; > struct i40e_fc_info fc; >=20 > + /* switch device is used to get link status when i40e is in ipn3ke */ > + struct rte_eth_dev *switch_dev; > + > /* pci info */ > u16 device_id; > u16 vendor_id; > diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethde= v.c > index 4e40b7a..6c4b1e8 100644 > --- a/drivers/net/i40e/i40e_ethdev.c > +++ b/drivers/net/i40e/i40e_ethdev.c > @@ -1312,6 +1312,9 @@ static inline void i40e_config_automask(struct > i40e_pf *pf) > hw->adapter_stopped =3D 0; > hw->adapter_closed =3D 0; >=20 > + /* Init switch device pointer */ > + hw->switch_dev =3D NULL; > + > /* > * Switch Tag value should not be identical to either the First Tag > * or Second Tag values. So set something other than common Ethertype > @@ -2782,6 +2785,20 @@ void i40e_flex_payload_reg_set_default(struct > i40e_hw *hw) > } > } >=20 > +void > +i40e_set_switch_dev(struct rte_eth_dev *i40e_dev, struct rte_eth_dev > +*switch_dev) { > + struct i40e_hw *hw; > + > + if (!i40e_dev) > + return; > + > + hw =3D I40E_DEV_PRIVATE_TO_HW(i40e_dev->data->dev_private); > + > + hw->switch_dev =3D switch_dev; > +} Better to move the function implementation into rte_pmd_i40e.c since it is = declared at rte_pmd_i40e.h > + > int > i40e_dev_link_update(struct rte_eth_dev *dev, > int wait_to_complete) > @@ -2803,6 +2820,9 @@ void i40e_flex_payload_reg_set_default(struct > i40e_hw *hw) > else > update_link_aq(hw, &link, enable_lse, wait_to_complete); >=20 > + if (hw->switch_dev) > + rte_eth_linkstatus_get(hw->switch_dev, &link); > + > ret =3D rte_eth_linkstatus_set(dev, &link); > i40e_notify_all_vfs_link_status(dev); >=20 > diff --git a/drivers/net/i40e/rte_pmd_i40e.h > b/drivers/net/i40e/rte_pmd_i40e.h index faac9e2..9d77c85 100644 > --- a/drivers/net/i40e/rte_pmd_i40e.h > +++ b/drivers/net/i40e/rte_pmd_i40e.h > @@ -1061,4 +1061,8 @@ int rte_pmd_i40e_inset_set(uint16_t port, uint8_t > pctype, > return 0; > } >=20 > +void > +i40e_set_switch_dev(struct rte_eth_dev *i40e_dev, struct rte_eth_dev > +*switch_dev); 1. Missing doxygen header here for the new API. 2. Also as an external API, we should use port_id but not rte_eth_dev as pa= rameter. 3. you may also need to update the rte_pmd_i40e_version.map. Regards Qi > + > #endif /* _PMD_I40E_H_ */ > -- > 1.8.3.1