From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ig0-f182.google.com (mail-ig0-f182.google.com [209.85.213.182]) by dpdk.org (Postfix) with ESMTP id 9D5BA5A86 for ; Wed, 16 Dec 2015 21:37:59 +0100 (CET) Received: by mail-ig0-f182.google.com with SMTP id mv3so149985475igc.0 for ; Wed, 16 Dec 2015 12:37:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=Ey4PQMrMfou8gHEn8YG0Zrq1cq7CgWPsFhWDBnJm1cU=; b=L1Zu0bSmrr0+OTNm/Gr8LqWxo7KI2yRir026YS1/k/ouGOHU8g+In9iSVXPoT4fVaK ZzvxCCS1T4pzIUvL6AmgknooXyfgDxBN5JiSHLwB5dmUCXN2ndpptzEdFC2xRzhNm1F5 V42TVA0yCA2NRFUA58TxMw7BcGZkGO+6XO51wt/WoEMJZKulWjkfx5PBP6MTG57ldx/R 6SY2SIRA2TpUygWbLmwCVYXxYeiiNmPB9BBOIPtfsSq82Cf4Af8RfjiTM/vYeTAhiTvm WNAT3RMQ3VXomfhfw+STLK8hmWCMs7ynnFiKdXiAu98DYklKZSyMgBNe/YOz3zFVF5xr qAnw== MIME-Version: 1.0 X-Received: by 10.50.20.138 with SMTP id n10mr12772004ige.11.1450298278938; Wed, 16 Dec 2015 12:37:58 -0800 (PST) Received: by 10.79.109.9 with HTTP; Wed, 16 Dec 2015 12:37:58 -0800 (PST) In-Reply-To: <1445810400-8978-1-git-send-email-marcdevel@gmail.com> References: <1443993003-1059-1-git-send-email-marcdevel@gmail.com> <1445810400-8978-1-git-send-email-marcdevel@gmail.com> Date: Wed, 16 Dec 2015 21:37:58 +0100 Message-ID: From: Marc Sune To: dev@dpdk.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [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: Wed, 16 Dec 2015 20:38:00 -0000 2015-10-25 22:59 GMT+01:00 Marc Sune : > 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. > I will respin this patch to current HEAD targeting 2.3, but note that testing of PMDs other than i40 and e1000 (82540Em) is necessary for this patch to be merged. I do not have all the HW to test it, so I would like to ask for some help here. Some (more) peer reviews would also help. Regards marc > > * * * * * > > 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 > >