net/i40e: fix link management
authorJingjing Wu <jingjing.wu@intel.com>
Thu, 12 May 2016 07:21:04 +0000 (15:21 +0800)
committerBruce Richardson <bruce.richardson@intel.com>
Wed, 15 Jun 2016 15:13:55 +0000 (17:13 +0200)
commitca7e599d4506f3d6b89dd846c901d09d46ea593c
tree98b6e8b07d0f924b29fdf7805d2b3b782d548bc8
parentcb326b1f5b49da60d6bb1880e35e12d36504e629
net/i40e: fix link management

Previously, there was a known issue "On IntelĀ® 40G Ethernet
Controller stopping the port does not really down the port link."

There were two reasons why the port was always kept up.
1. Old firmware versions had issues when "Set PHY config command"
   was used on 40G NICs.
2. The kernel i40e driver didn't call "Set PHY config command" when
   ifconfig up/down was used, it assumes the link is always up. But
   in DPDK, ports are forced down when an applications quits. So if
   the port is then switched to being controlled by kernel the driver,
   the port can not be brought up through "ifconfig <ethx> up".

This patch fixes this issue by adding in "Set PHY config command"
into our driver. This is now possible because with newer firmware
there is no longer a problem using this command.

With this fix, after DPDK quit, if the port is switched to being used
by the kernel driver, "ethtool -s <ethx> autoneg on" can be used to
turn on the auto negotiation, and then port can be brought up through
"ifconfig <ethx> up".
NOTE: requires kernel i40e driver version >= 1.4.X

Fixes: 2f1e22817420 ("i40e: skip link control as firmware workaround")
Fixes: 16c979f9adf2 ("i40e: disable setting of PHY configuration")

Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
doc/guides/rel_notes/known_issues.rst
drivers/net/i40e/i40e_ethdev.c