From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ig0-f181.google.com (mail-ig0-f181.google.com [209.85.213.181]) by dpdk.org (Postfix) with ESMTP id 8F0F78D99 for ; Sun, 4 Oct 2015 23:21:25 +0200 (CEST) Received: by igxx6 with SMTP id x6so45980970igx.1 for ; Sun, 04 Oct 2015 14:21:25 -0700 (PDT) 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=0UDRvkolIf3n3f0erPKFwE9uC/4wkdKoVMKPnOUT+VU=; b=0yShgk76fhGL5882K9Q28p0fB5S/IbPO7wZaTvr/UGoiNaQvbKBj9+MI4NygyH5N0H zU64LuuEdE/tmOAWrOkTctuSzWxD3tonlzbYcu1tMGsT989q1flC1Okz4ILe3Bka2p9K tIdJs981N3PniMJYFe5LNp+bUKRxfY2aoxsSGIsYzTr51PgkhbNyjprEQ/JKmwtUy5uN 8LiSV19FGGrSApVEkjD0w00BREDrstR0NYMR1qmXy8idJViWAIQEAZFJNRR7A7+fXw8D XWgH6dRyWVGV8NlZ/YIdZtcvaUGGyZbrFexCNDPCH1IJKjxg7p53aPpuimshvAozaIwV glxg== MIME-Version: 1.0 X-Received: by 10.50.50.240 with SMTP id f16mr7047804igo.95.1443993685024; Sun, 04 Oct 2015 14:21:25 -0700 (PDT) Received: by 10.79.109.22 with HTTP; Sun, 4 Oct 2015 14:21:24 -0700 (PDT) In-Reply-To: <1443993167-1150-1-git-send-email-marcdevel@gmail.com> References: <1440807373-24770-1-git-send-email-marc.sune@bisdn.de> <1443993167-1150-1-git-send-email-marcdevel@gmail.com> Date: Sun, 4 Oct 2015 23:21:24 +0200 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 v5 0/4] 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, 04 Oct 2015 21:21:26 -0000 2015-10-04 23:12 GMT+02: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. > Please mind this. I do not have access currently to my usual testbed (several 1000/igb + XL710). It may take some time to be rearmed, so in the meantime I've circulated it now to make sure I've correctly captured the conclusions of the discussion and to ask for some help on those PMDs I can anyway not test due to the lack of HW. 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. > > > Marc Sune (4): > 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 > > app/test-pmd/cmdline.c | 124 > +++++++++++++++-------------- > app/test/virtual_pmd.c | 4 +- > doc/guides/rel_notes/release_2_2.rst | 22 ++++- > 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 | 104 ++++++++++++------------ > drivers/net/e1000/igb_ethdev.c | 99 ++++++++++++----------- > drivers/net/fm10k/fm10k_ethdev.c | 5 +- > drivers/net/i40e/i40e_ethdev.c | 75 +++++++++-------- > 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/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 +++++++++++++++++----- > 35 files changed, 481 insertions(+), 318 deletions(-) > > -- > 2.1.4 > >