From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ananda Sathyanarayana Subject: Manual link speed/duplex configuration not working with DPDK Date: Fri, 21 Oct 2016 12:27:11 -0700 Message-ID: <68694134d146c7848435452dad3446d9@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Cc: ananda@versa-networks.com, Vignesh Chinnakkannu To: dev@dpdk.org Return-path: Received: from mail-ua0-f175.google.com (mail-ua0-f175.google.com [209.85.217.175]) by dpdk.org (Postfix) with ESMTP id 3407537B8 for ; Fri, 21 Oct 2016 21:27:12 +0200 (CEST) Received: by mail-ua0-f175.google.com with SMTP id p25so6195064uaa.0 for ; Fri, 21 Oct 2016 12:27:12 -0700 (PDT) List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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