From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-io0-f195.google.com (mail-io0-f195.google.com [209.85.223.195]) by dpdk.org (Postfix) with ESMTP id 2CB3A2C4E for ; Tue, 8 Mar 2016 16:00:30 +0100 (CET) Received: by mail-io0-f195.google.com with SMTP id z76so2420028iof.1 for ; Tue, 08 Mar 2016 07:00:30 -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; bh=IyJh4m6q7nl4F7YAOKUBTNkGRa93KpJriZlc/09xRJ0=; b=LOOQHBhTmGj24CCpDI2r/xMb8wGhu0NNss2IEuO7OYfJnVdY/Vq20YJvwH3TofvKNa kKPSrraU1JoE7SahMtlC1KE9+HuQFvdBPP4suG0KvbVU3GFBoXXKuxsu0hNfMyv1nuhS OvekvaiFPYCm8khYlBnqA7pJM/PvW1QJZBz4PS44bwHLdSigp4eXo3j1jWs/34rvA42q 4dFYxpC6g2hDRH6sfIf39JyUb02U9a9Jlgpc+wb65EM7MC3JsKaPriyo07TclbZzVyOZ +bFY7TjACxtu1ZQZd6o98oRQbOoyUQfMakZOsfbPp7sfK+/gaFJG+oPyQ/kYXiQbizhp l+0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to; bh=IyJh4m6q7nl4F7YAOKUBTNkGRa93KpJriZlc/09xRJ0=; b=e9Tpy1Z7HOouqm3icPINam3t7kSRO3dUhEgPwxBc0A/WWO/uBtTOMj2Uw8Yzoeu/mg AuHXr51ejkRuBWBu/YbSBNErIeCE79O6uyOA2qTt2Iy9PX2+QGVjac5dUHGP8gQsO5Rc 6ndBLEAiUj5eDlf/VnVUEVEbuWVEJacsRM+yhy0t237UN/WwX4/6ojNlBUUHbelwCqo2 bnxGrhGrdL2kDmih5Oo9weJeMbYeleKBPJGHKrsSfBsin90L37CD03SIzBzB5pYj2dt1 wiY6GD30Hp5Rr70bQ2R/vDK9QPv8GcVJvEISDDwnkgussXCuPL/UVCR1sU1HwCM/iCFC Y2IA== X-Gm-Message-State: AD7BkJIu9N+1XvLuIxZMcD5GcVax9Y7xBARYd+kVlzzgWNyiYxHou9nJkoONkNbpWV5TadNsFxj4ONXlZTvhEQ== MIME-Version: 1.0 X-Received: by 10.107.135.202 with SMTP id r71mr23712539ioi.103.1457449229618; Tue, 08 Mar 2016 07:00:29 -0800 (PST) Received: by 10.79.14.215 with HTTP; Tue, 8 Mar 2016 07:00:29 -0800 (PST) In-Reply-To: <1456793151-1475-1-git-send-email-marcdevel@gmail.com> References: <1455488259-1000-1-git-send-email-marcdevel@gmail.com> <1456793151-1475-1-git-send-email-marcdevel@gmail.com> Date: Tue, 8 Mar 2016 16:00:29 +0100 Message-ID: From: Marc Sune To: "dev@dpdk.org" , "Lu, Wenzhuo" , "Zhang, Helin" , Harish Patil , "Chen, Jing D" Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-dev] [PATCH v9 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: Tue, 08 Mar 2016 15:00:30 -0000 2016-03-01 1:45 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). > Reviewing > and testing required by PMD maintainers. > > * * * * * > > 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. > > v7: Rebased to current HEAD. Moved documentation to v2.3. Still needs > testing > from PMD maintainers. > > v8: Rebased to current HEAD. Modified em driver impl. to not touch base > files. > Merged patch 5 into 3 (map file). Changed numeric speed to a 64 bit > value. > Filled-in speed capabilities for drivers bnx2x, cxgbe, mlx5 and nfp in > addition to the ones of previous patch sets. > > v9: rebased to current HEAD. Reverted numeric speed to 32 bit in struct > rte_eth_link (no atomic link get > 64bit). Fixed mlx5 driver > compilation > and link speeds. Moved documentation to release_16_04.rst and fixed > several > issues. Upgrade NIC notes with speed capabilities. > Anyone interested in reviewing and _testing_ this series? Thank you Marc > > 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-pipeline/init.c | 2 +- > app/test-pmd/cmdline.c | 124 > +++++++++++++++--------------- > app/test-pmd/config.c | 4 +- > app/test/virtual_pmd.c | 4 +- > doc/guides/nics/overview.rst | 1 + > doc/guides/rel_notes/release_16_04.rst | 27 +++++++ > drivers/net/af_packet/rte_eth_af_packet.c | 5 +- > drivers/net/bnx2x/bnx2x_ethdev.c | 7 +- > drivers/net/bonding/rte_eth_bond_8023ad.c | 14 ++-- > drivers/net/cxgbe/base/t4_hw.c | 8 +- > drivers/net/cxgbe/cxgbe_ethdev.c | 1 + > drivers/net/e1000/em_ethdev.c | 112 > ++++++++++++++------------- > drivers/net/e1000/igb_ethdev.c | 107 +++++++++++++++----------- > drivers/net/fm10k/fm10k_ethdev.c | 6 +- > drivers/net/i40e/i40e_ethdev.c | 78 +++++++++++-------- > drivers/net/i40e/i40e_ethdev_vf.c | 11 +-- > drivers/net/ixgbe/ixgbe_ethdev.c | 80 +++++++++---------- > drivers/net/mlx4/mlx4.c | 6 ++ > drivers/net/mlx5/mlx5_ethdev.c | 7 ++ > drivers/net/mpipe/mpipe_tilegx.c | 6 +- > drivers/net/nfp/nfp_net.c | 4 +- > 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 ++ > 32 files changed, 501 insertions(+), 301 deletions(-) > > -- > 2.1.4 > >