[dpdk-dev] Manual link speed/duplex configuration not working with DPDK

Ananda Sathyanarayana ananda at versa-networks.com
Fri Oct 21 21:27:11 CEST 2016

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;


    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;






More information about the dev mailing list