Hi All,
While testing manual link speed/duplex configuration with DPDK 1.7.1, I observed the same issues mentioned by the below post http://dpdk.org/ml/archives/dev/2015-January/010834.html. I see the same issue with 16.04 as well. Looks like the above patch is not accepted by the DPDK community yet. Any specific reason ? >From the code, it looks like, hw->mac.autoneg, variable is used to switch between calling either autoneg function or forcing speed/duplex function. But this variable is not modified in eth_em_start/eth_igb_start routines (it is always set to 1) while forcing the link. s32 e1000_setup_copper_link_generic(struct e1000_hw *hw) { s32 ret_val; bool link; DEBUGFUNC("e1000_setup_copper_link_generic"); if (hw->mac.autoneg) { <<<<<<<<<<<< always set, is not modified in eth_em_start/eth_igb_start /* Setup autoneg and flow control advertisement and perform * autonegotiation. */ ret_val = e1000_copper_link_autoneg(hw); if (ret_val) return ret_val; } else { /* PHY will be set to 10H, 10F, 100H or 100F * depending on user settings. */ DEBUGOUT("Forcing Speed and Duplex\n"); ret_val = hw->phy.ops.force_speed_duplex(hw); <<<<<<<<<<<< Not called at all if (ret_val) { DEBUGOUT("Error Forcing Speed and Duplex\n"); return ret_val; } } } Thanks, Ananda