[dpdk-dev] [PATCH v1] net/ice: add link-up and link-down functions

Stillwell Jr, Paul M paul.m.stillwell.jr at intel.com
Tue Apr 30 20:43:30 CEST 2019


> -----Original Message-----
> From: Wang, Haiyue
> Sent: Tuesday, April 30, 2019 10:19 AM
> To: Stillwell Jr, Paul M <paul.m.stillwell.jr at intel.com>; dev at dpdk.org; Zhang,
> Qi Z <qi.z.zhang at intel.com>; Lu, Wenzhuo <wenzhuo.lu at intel.com>
> Subject: RE: [dpdk-dev] [PATCH v1] net/ice: add link-up and link-down
> functions
> 
> > -----Original Message-----
> > From: Stillwell Jr, Paul M
> > Sent: Wednesday, May 1, 2019 00:24
> > To: Wang, Haiyue <haiyue.wang at intel.com>; dev at dpdk.org; Zhang, Qi Z
> > <qi.z.zhang at intel.com>; Lu, Wenzhuo <wenzhuo.lu at intel.com>
> > Cc: Wang, Haiyue <haiyue.wang at intel.com>
> > Subject: RE: [dpdk-dev] [PATCH v1] net/ice: add link-up and link-down
> > functions
> >
> >
> > > -----Original Message-----
> > > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Haiyue Wang
> > > Sent: Tuesday, April 30, 2019 12:12 AM
> > > To: dev at dpdk.org; Zhang, Qi Z <qi.z.zhang at intel.com>; Lu, Wenzhuo
> > > <wenzhuo.lu at intel.com>
> > > Cc: Wang, Haiyue <haiyue.wang at intel.com>
> > > Subject: [dpdk-dev] [PATCH v1] net/ice: add link-up and link-down
> > > functions
> > >
> > > Support link up and down functions for ice, and when stop the ice,
> > > makes the link down also.
> > >
> > > Signed-off-by: Haiyue Wang <haiyue.wang at intel.com>
> > > ---
> > >  drivers/net/ice/ice_ethdev.c | 83
> > > ++++++++++++++++++++++++++++++++++++++++++++
> > >  1 file changed, 83 insertions(+)
> > >
> > > diff --git a/drivers/net/ice/ice_ethdev.c
> > > b/drivers/net/ice/ice_ethdev.c index 1f06a2c..8f58150 100644
> > > --- a/drivers/net/ice/ice_ethdev.c
> > > +++ b/drivers/net/ice/ice_ethdev.c
> > > @@ -32,6 +32,9 @@ static void ice_dev_info_get(struct rte_eth_dev
> *dev,
> > >  			     struct rte_eth_dev_info *dev_info);  static int
> > > ice_link_update(struct rte_eth_dev *dev,
> > > +	if (link_up)
> > > +		cfg.caps |= ICE_AQ_PHY_ENA_LINK;
> > > +	else
> > > +		cfg.caps &= ~ICE_AQ_PHY_ENA_LINK;
> > > +
> > > +	status = ice_aq_set_phy_cfg(hw, pi->lport, &cfg, NULL);
> > > +
> >
> > It seems like you should either check the return value here and tell
> > the user if it didn't work or change the code that calls this to tell
> > the user if something went wrong. Otherwise the user thinks things
> worked when it didn't.
> >
> I just make use of 'ICE_SUCCESS == 0' be treated as successful, and other
> value defined in 'enum ice_status ' will be treated as error code by function '
> eth_err ' through ' rte_eth_dev_set_link_down/up'.

OK, I see, that makes sense.

> 
> > > +out:
> > > +	ice_free(hw, pcaps);
> > > +	return status;
> > > +}
> > > +
> > > +static int
> > > +ice_dev_set_link_up(struct rte_eth_dev *dev) {
> > > +	struct ice_hw *hw = ICE_DEV_PRIVATE_TO_HW(dev->data-
> > > >dev_private);
> > > +
> > > +	return ice_force_phys_link_state(hw, true); }
> > > +
> > > +static int
> > > +ice_dev_set_link_down(struct rte_eth_dev *dev) {
> > > +	struct ice_hw *hw = ICE_DEV_PRIVATE_TO_HW(dev->data-
> > > >dev_private);
> > > +
> > > +	return ice_force_phys_link_state(hw, false); }
> > > +
> > >  static int
> > >  ice_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)  {
> > > --
> > > 2.7.4



More information about the dev mailing list