From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wi0-f170.google.com (mail-wi0-f170.google.com [209.85.212.170]) by dpdk.org (Postfix) with ESMTP id DB5D95682 for ; Sun, 25 Oct 2015 23:00:29 +0100 (CET) Received: by wijp11 with SMTP id p11so141116245wij.0 for ; Sun, 25 Oct 2015 15:00:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=ChbFV9pD76Q4vA7tn6z8DC9yclfORNt1LW7i9GTR/Do=; b=vuMBFonfKgZlbaf91UEesQ8/yVqollUyrbyd2mXgicvdg3dP0+bWmmqw6TJlYVMKoE 1qZzW6MexdI9CpHd8FNCNpS9B8RhtkdzVBJO8vojK4kgrfWfo0mR43dN6HpO3jB9v0lk 72afTlmP/hWouvrwlTMlvKgVsBB8148RrCQceT+QE2z8/IVhIjeos/q7DgoTwyZneZf0 MkiPUhCYIfYVAS8/EgyyjZUPnD42Hb4/6UB7TpRvmGwHD/n5dueVdbyyJk8EuUB2vQmp iscb9jTMN4FKIblmN38g8cHPMCGKie998bLmCHWRZ2HCEeP3kd9MEDZ1UMaDnxqOC8Gp sFyw== X-Received: by 10.194.243.102 with SMTP id wx6mr36044643wjc.68.1445810429730; Sun, 25 Oct 2015 15:00:29 -0700 (PDT) Received: from localhost.localdomain (189.Red-83-47-134.dynamicIP.rima-tde.net. [83.47.134.189]) by smtp.gmail.com with ESMTPSA id ev1sm8733669wic.21.2015.10.25.15.00.28 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 25 Oct 2015 15:00:28 -0700 (PDT) From: Marc Sune To: dev@dpdk.org Date: Sun, 25 Oct 2015 22:59:55 +0100 Message-Id: <1445810400-8978-1-git-send-email-marcdevel@gmail.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1443993003-1059-1-git-send-email-marcdevel@gmail.com> References: <1443993003-1059-1-git-send-email-marcdevel@gmail.com> Subject: [dpdk-dev] [PATCH v6 0/5] ethdev: add speed capabilities and refactor link API X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Oct 2015 22:00:30 -0000 The current rte_eth_dev_info abstraction does not provide any mechanism to get the supported speed(s) of an ethdev. For some drivers (e.g. ixgbe), an educated guess could be done based on the driver's name (driver_name in rte_eth_dev_info), see: http://dpdk.org/ml/archives/dev/2013-August/000412.html However, i) doing string comparisons is annoying, and can silently break existing applications if PMDs change their names ii) it does not provide all the supported capabilities of the ethdev iii) for some drivers it is impossible determine correctly the (max) speed by the application (e.g. in i40, distinguish between XL710 and X710). In addition, the link APIs do not allow to define a set of advertised link speeds for autonegociation. This series of patches adds the following capabilities: * speed_capa bitmap in rte_eth_dev_info, which is filled by the PMDs according to the physical device capabilities. * refactors link API in ethdev to allow the definition of the advertised link speeds, fix speed (no auto-negociation) or advertise all supported speeds (default). WARNING: this patch series, specifically 3/4, is NOT tested for most of the PMDs, due to the lack of hardware. Only generic EM is tested (VM). Minor bugs expected. * * * * * v2: rebase, converted speed_capa into 32 bits bitmap, fixed alignment (checkpatch). v3: rebase to v2.1. unified ETH_LINK_SPEED and ETH_SPEED_CAP into ETH_SPEED. Converted field speed in struct rte_eth_conf to speed, to allow a bitmap for defining the announced speeds, as suggested M. Brorup. Fixed spelling issues. v4: fixed errata in the documentation of field speeds of rte_eth_conf, and commit 1/2 message. rebased to v2.1.0. v3 was incorrectly based on ~2.1.0-rc1. v5: revert to v2 speed capabilities patch. Fixed MLX4 speed capabilities (thanks N. Laranjeiro). Refactored link speed API to allow setting advertised speeds (3/4). Added NO_AUTONEG option to explicitely disable auto-negociation. Updated 2.2 rel. notes (4/4). Rebased to current HEAD. v6: Move link_duplex to be part of bitfield. Fixed i40 autoneg flag link update code. Added rte_eth_speed_to_bm_flag() to .map file. Fixed other spelling issues. Rebased to current HEAD. Marc Sune (5): ethdev: Added ETH_SPEED_CAP bitmap for ports ethdev: Fill speed capability bitmaps in the PMDs ethdev: redesign link speed config API doc: update with link changes ethdev: add rte_eth_speed_to_bm_flag() to ver. map app/test-pmd/cmdline.c | 124 +++++++++++++++-------------- app/test/virtual_pmd.c | 4 +- doc/guides/rel_notes/release_2_2.rst | 23 ++++++ drivers/net/af_packet/rte_eth_af_packet.c | 5 +- drivers/net/bonding/rte_eth_bond_8023ad.c | 14 ++-- drivers/net/cxgbe/base/t4_hw.c | 8 +- drivers/net/e1000/base/e1000_80003es2lan.c | 6 +- drivers/net/e1000/base/e1000_82541.c | 8 +- drivers/net/e1000/base/e1000_82543.c | 4 +- drivers/net/e1000/base/e1000_82575.c | 11 +-- drivers/net/e1000/base/e1000_api.c | 2 +- drivers/net/e1000/base/e1000_api.h | 2 +- drivers/net/e1000/base/e1000_defines.h | 4 +- drivers/net/e1000/base/e1000_hw.h | 2 +- drivers/net/e1000/base/e1000_ich8lan.c | 4 +- drivers/net/e1000/base/e1000_mac.c | 9 ++- drivers/net/e1000/base/e1000_mac.h | 6 +- drivers/net/e1000/base/e1000_vf.c | 4 +- drivers/net/e1000/base/e1000_vf.h | 2 +- drivers/net/e1000/em_ethdev.c | 109 ++++++++++++------------- drivers/net/e1000/igb_ethdev.c | 104 +++++++++++++----------- drivers/net/fm10k/fm10k_ethdev.c | 5 +- drivers/net/i40e/i40e_ethdev.c | 78 ++++++++++-------- drivers/net/i40e/i40e_ethdev_vf.c | 11 +-- drivers/net/ixgbe/ixgbe_ethdev.c | 74 ++++++++--------- drivers/net/mlx4/mlx4.c | 6 ++ drivers/net/mpipe/mpipe_tilegx.c | 6 +- drivers/net/null/rte_eth_null.c | 5 +- drivers/net/pcap/rte_eth_pcap.c | 9 ++- drivers/net/ring/rte_eth_ring.c | 5 +- drivers/net/virtio/virtio_ethdev.c | 2 +- drivers/net/virtio/virtio_ethdev.h | 2 - drivers/net/vmxnet3/vmxnet3_ethdev.c | 5 +- drivers/net/xenvirt/rte_eth_xenvirt.c | 5 +- examples/ip_pipeline/config_parse.c | 3 +- lib/librte_ether/rte_ethdev.c | 49 ++++++++++++ lib/librte_ether/rte_ethdev.h | 97 +++++++++++++++++----- lib/librte_ether/rte_ether_version.map | 6 ++ 38 files changed, 501 insertions(+), 322 deletions(-) -- 2.1.4