From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: [PATCH v10 0/8] ethdev: 100G and link speed API refactoring Date: Mon, 14 Mar 2016 22:55:38 +0100 Message-ID: <1457992546-32230-1-git-send-email-thomas.monjalon@6wind.com> References: <1456793151-1475-1-git-send-email-marcdevel@gmail.com> Cc: dev@dpdk.org To: marcdevel@gmail.com, bruce.richardson@intel.com, declan.doherty@intel.com, konstantin.ananyev@intel.com, wenzhuo.lu@intel.com, helin.zhang@intel.com, jing.d.chen@intel.com, harish.patil@qlogic.com, rahul.lakkireddy@chelsio.com, johndale@cisco.com, vido@cesnet.cz, adrien.mazarguil@6wind.com, alejandro.lucero@netronome.com Return-path: Received: from mail-wm0-f44.google.com (mail-wm0-f44.google.com [74.125.82.44]) by dpdk.org (Postfix) with ESMTP id 2A7382C6B for ; Mon, 14 Mar 2016 22:57:16 +0100 (CET) Received: by mail-wm0-f44.google.com with SMTP id p65so120084563wmp.1 for ; Mon, 14 Mar 2016 14:57:16 -0700 (PDT) In-Reply-To: <1456793151-1475-1-git-send-email-marcdevel@gmail.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Re-spin of the Marc's patchset. The first version was sent 10 months ago! There are still too few tests and reviews but it is now time to move forward with this rework. Some issues were remaining in v9 and were difficult to see because it was mainly one big patch. That's why I've split it in several steps and fixed/reworked some pieces. There will be an exception to integrate this feature in 16.04-rc2. Please test and review shortly, thanks! -------- 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 the patch 6/8, is NOT tested for most of the drivers. Reviewing and testing are required by PMD maintainers. -------- Marc Sune (6): ethdev: use constants for link duplex app/testpmd: move speed and duplex parsing in a function ethdev: rename link speed constants ethdev: add speed capabilities ethdev: redesign link speed config ethdev: convert speed number to bitmap flag Thomas Monjalon (2): ethdev: use constants for link state ethdev: add 100G link speed v10: - rebase - rework release notes - rearrange patch splitting - fix doxygen comments - fix typos - removed log format of link.link_speed as %d (keep %u) - complete ETH_LINK_[DOWN/UP] replacement from 0/1 - change ETH_LINK_SPEED_AUTONEG to 1 - replace ETH_LINK_SPEED_NEG by ETH_LINK_SPEED_AUTONEG (1) - replace ETH_LINK_SPEED_NO_AUTONEG by ETH_LINK_SPEED_FIXED (0) - rework rte_eth_speed_to_bm_flag to rte_eth_speed_bitflag - complete 100G support in testpmd 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. 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. v7: Rebased to current HEAD. Moved documentation to v2.3. Still needs testing from PMD maintainers. 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. 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. 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. 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. v2: rebase, converted speed_capa into 32 bits bitmap, fixed alignment (checkpatch). app/test-pipeline/init.c | 2 +- app/test-pmd/cmdline.c | 125 ++++++++++----------- app/test-pmd/testpmd.c | 2 +- app/test/test_pmd_perf.c | 2 +- app/test/virtual_pmd.c | 8 +- doc/guides/nics/overview.rst | 1 + doc/guides/rel_notes/release_16_04.rst | 22 ++++ doc/guides/testpmd_app_ug/testpmd_funcs.rst | 2 +- drivers/net/af_packet/rte_eth_af_packet.c | 9 +- drivers/net/bnx2x/bnx2x_ethdev.c | 7 +- drivers/net/bnx2x/elink.c | 2 +- drivers/net/bonding/rte_eth_bond_8023ad.c | 14 +-- drivers/net/bonding/rte_eth_bond_api.c | 4 +- drivers/net/bonding/rte_eth_bond_pmd.c | 12 +- drivers/net/cxgbe/base/t4_hw.c | 8 +- drivers/net/cxgbe/cxgbe_ethdev.c | 1 + drivers/net/e1000/em_ethdev.c | 111 +++++++++--------- drivers/net/e1000/igb_ethdev.c | 104 +++++++++-------- drivers/net/fm10k/fm10k_ethdev.c | 6 +- drivers/net/i40e/i40e_ethdev.c | 76 +++++++------ drivers/net/i40e/i40e_ethdev_vf.c | 11 +- drivers/net/ixgbe/ixgbe_ethdev.c | 76 ++++++------- drivers/net/mlx4/mlx4.c | 4 + drivers/net/mlx5/mlx5_ethdev.c | 3 + drivers/net/mpipe/mpipe_tilegx.c | 18 +-- drivers/net/nfp/nfp_net.c | 6 +- drivers/net/null/rte_eth_null.c | 9 +- drivers/net/pcap/rte_eth_pcap.c | 9 +- drivers/net/ring/rte_eth_ring.c | 13 ++- drivers/net/szedata2/rte_eth_szedata2.c | 7 +- drivers/net/virtio/virtio_ethdev.c | 8 +- drivers/net/virtio/virtio_ethdev.h | 2 - drivers/net/vmxnet3/vmxnet3_ethdev.c | 5 +- drivers/net/xenvirt/rte_eth_xenvirt.c | 9 +- examples/exception_path/main.c | 2 +- examples/ip_fragmentation/main.c | 2 +- examples/ip_pipeline/config_parse.c | 3 +- examples/ip_pipeline/init.c | 2 +- examples/ip_reassembly/main.c | 2 +- examples/ipsec-secgw/ipsec-secgw.c | 2 +- examples/ipv4_multicast/main.c | 2 +- examples/kni/main.c | 2 +- examples/l2fwd-crypto/main.c | 2 +- examples/l2fwd-ivshmem/host/host.c | 2 +- examples/l2fwd-jobstats/main.c | 2 +- examples/l2fwd-keepalive/main.c | 2 +- examples/l2fwd/main.c | 2 +- examples/l3fwd-acl/main.c | 2 +- examples/l3fwd-power/main.c | 2 +- examples/l3fwd/main.c | 2 +- examples/link_status_interrupt/main.c | 2 +- examples/load_balancer/init.c | 2 +- .../client_server_mp/mp_server/init.c | 2 +- examples/multi_process/l2fwd_fork/main.c | 2 +- examples/multi_process/symmetric_mp/main.c | 2 +- examples/performance-thread/l3fwd-thread/main.c | 2 +- lib/librte_ether/rte_ethdev.c | 33 ++++++ lib/librte_ether/rte_ethdev.h | 91 +++++++++++---- lib/librte_ether/rte_ether_version.map | 1 + 59 files changed, 503 insertions(+), 365 deletions(-) -- 2.7.0