[dpdk-dev] [PATCH v10 0/8] ethdev: 100G and link speed API refactoring
Thomas Monjalon
thomas.monjalon at 6wind.com
Mon Mar 14 22:55:38 CET 2016
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
More information about the dev
mailing list