From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f65.google.com (mail-wm0-f65.google.com [74.125.82.65]) by dpdk.org (Postfix) with ESMTP id 1501B5938 for ; Sun, 14 Feb 2016 23:18:04 +0100 (CET) Received: by mail-wm0-f65.google.com with SMTP id b205so5402005wmb.1 for ; Sun, 14 Feb 2016 14:18:04 -0800 (PST) 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=ZcMtVoX0rl2JU18MB4fkvX46RLYI9Dynim8CBc3M4Gc=; b=hSxEdUS5kquqvZHzbYtn3jPSVISVXwx6qq5M9dTxPFLZ1aKTk4vv9y9tY/ea7foxO0 66oXNihZ6z9FV8A+a/JVH3anHcj3aZbooSkZYKmOtDsY12g4dte+eLaEMxa6/v2HvmzR hMDdrdBuE5w+fvC7VXRwGnVw55wlzkF7I9V5HewLc5g5YaLCCWkLwksC+qS8Uh+yh2Rg PzwOeRMcsS9b/e3p6bhNibuzZter3eTrlqK2Q0u7OsSj60Gz6J86iImat34Ko0SVqCQm yYuiLQKL04rtmGqf0h9AoIzW8M89VJR9NPczkhLMo1x4s6z43tYeJBs6tYAAPsAREnVU wTjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=ZcMtVoX0rl2JU18MB4fkvX46RLYI9Dynim8CBc3M4Gc=; b=aAoI78t8XoXHpV1lYYeH2EnSOe11ij/5/2u8Xatw9Qp8wLQDCdyFLSLX404SBYLH2E VfXU22rmXJJEahQUk3NFvSdRBt4gJXWNMO1k2bw/fQ7pXinOTsrfHLLYfk8G9JF02I6F CjZG2MKjldLALVEMFyVZJdkzunsNX/8Vu+GxcxZmPCgGc18R5oOBVlrRP0uAqbC4YeMI J/yT+G/65SHIUVPOy4bA+pTQyJxY7YEI80JTVoextg3EH2UF7Ae60lEs3DNXTCnnLYw/ +zm3SDfXoY8ACu7+aE0KsE/soEw3kjmyYuLRkWiDKFqjfjZwQdwLUiOewXFwmlcc8+TW TAZw== X-Gm-Message-State: AG10YORkUEH/8YYQeZyYjTUNB+G14YxT8cG6lT/Sh36hpWCdomeONjLojvB0mPGpqXQIJw== X-Received: by 10.194.216.99 with SMTP id op3mr13100485wjc.26.1455488283965; Sun, 14 Feb 2016 14:18:03 -0800 (PST) Received: from localhost.localdomain (215.Red-79-147-159.dynamicIP.rima-tde.net. [79.147.159.215]) by smtp.gmail.com with ESMTPSA id 198sm12771024wml.22.2016.02.14.14.18.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 14 Feb 2016 14:18:03 -0800 (PST) From: Marc Sune To: dev@dpdk.org, Wenzhuo Lu , Helin Zhang , Harish Patil , Jing Chen Date: Sun, 14 Feb 2016 23:17:35 +0100 Message-Id: <1455488259-1000-1-git-send-email-marcdevel@gmail.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1454028127-10401-1-git-send-email-marcdevel@gmail.com> References: <1454028127-10401-1-git-send-email-marcdevel@gmail.com> Subject: [dpdk-dev] [PATCH v8 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, 14 Feb 2016 22:18:04 -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). 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. 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/rel_notes/release_2_3.rst | 102 ++++++++++++++++++++++++ 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 | 5 ++ 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 ++ 31 files changed, 573 insertions(+), 301 deletions(-) create mode 100644 doc/guides/rel_notes/release_2_3.rst -- 2.1.4