[dpdk-dev] ixgbe: fix the issue that auto negotiation for flow control cannot be disabled

Message ID 1436318045-21090-1-git-send-email-wenzhuo.lu@intel.com (mailing list archive)
State Accepted, archived
Headers

Commit Message

Wenzhuo Lu July 8, 2015, 1:14 a.m. UTC
  There's a parameter "autoneg on|off" in testpmd CLI "set flow_ctrl ...". This
parameter is used to enable/disable auto negotiation for flow control. But it's
not supported yet.
The auto negotiation is enabled by default, we have no way to disable it. This
patch lets the parameter "autoneg on|off" be supproted.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
---
 drivers/net/ixgbe/ixgbe_ethdev.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
  

Comments

Ouyang Changchun July 9, 2015, 3:34 a.m. UTC | #1
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Wenzhuo Lu
> Sent: Wednesday, July 8, 2015 9:14 AM
> To: dev@dpdk.org
> Subject: [dpdk-dev] [PATCH] ixgbe: fix the issue that auto negotiation for
> flow control cannot be disabled
> 
> There's a parameter "autoneg on|off" in testpmd CLI "set flow_ctrl ...". This
> parameter is used to enable/disable auto negotiation for flow control. But it's
> not supported yet.
> The auto negotiation is enabled by default, we have no way to disable it. This
> patch lets the parameter "autoneg on|off" be supproted.
> 
> Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>

Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
  
Thomas Monjalon July 10, 2015, 4:26 p.m. UTC | #2
> > There's a parameter "autoneg on|off" in testpmd CLI "set flow_ctrl ...". This
> > parameter is used to enable/disable auto negotiation for flow control. But it's
> > not supported yet.
> > The auto negotiation is enabled by default, we have no way to disable it. This
> > patch lets the parameter "autoneg on|off" be supproted.
> > 
> > Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
> 
> Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>

Applied, thanks
  

Patch

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index f18550c..b78f8f5 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -2549,8 +2549,6 @@  ixgbe_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
 	PMD_INIT_FUNC_TRACE();
 
 	hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	if (fc_conf->autoneg != !hw->fc.disable_fc_autoneg)
-		return -ENOTSUP;
 	rx_buf_size = IXGBE_READ_REG(hw, IXGBE_RXPBSIZE(0));
 	PMD_INIT_LOG(DEBUG, "Rx packet buffer size = 0x%x", rx_buf_size);
 
@@ -2571,6 +2569,7 @@  ixgbe_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
 	hw->fc.high_water[0]  = fc_conf->high_water;
 	hw->fc.low_water[0]   = fc_conf->low_water;
 	hw->fc.send_xon       = fc_conf->send_xon;
+	hw->fc.disable_fc_autoneg = !fc_conf->autoneg;
 
 	err = ixgbe_fc_enable(hw);