[dpdk-dev] [PATCH v9 0/4] ethdev: add speed capabilities and refactor link API
On 9 March 2016 at 11:09, N?lio Laranjeiro wrote: > On Wed, Mar 09, 2016 at 10:29:38AM +0100, N?lio Laranjeiro wrote: > > On Tue, Mar 08, 2016 at 05:53:05PM +0100, N?lio Laranjeiro wrote: > > > On Tue, Mar 08, 2016 at 04:00:29PM +0100, Marc Sune wrote: > > > > 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 > > > > > > Hi Marc, > > > > > > I will take a look tomorrow morning and run test on Mellanox NICs > > > (ConnectX 3 and 4). > > > > > > I do not have access to the others NICs, if those who have can do > > > it, could be really great. > > > > > > Regards, > > > > It works as expected with Mellanox NICs. > > > > Regards, > > > > -- > > N?lio Laranjeiro > > 6WIND > > Tested-by: Nelio Laranjeiro > > - OS/Kernel: Debian 8/3.16.0-4-amd64 > - GCC: gcc (Debian 4.9.2-10) 4.9.2 > - CPU: Intel(R) Xeon(R) CPU E5-2697 v2 @ 2.70GHz > - MLNX OFED: 3.2-2.0.0.0 > - NIC: ConnectX 4 100G > > - OS/Kernel: Debian 7/3.16.0-0.bpo.4-amd64 > - GCC: gcc (Debian 4.7.2-5) 4.7.2 > - CPU: Intel(R) Xeon(R) CPU E5-2648L 0 @ 1.80GHz > - MLNX OFED: 3.2-2.0.0.0 > - NIC: ConnectX 3 Pro > > > 1. Link displayed at the correct negotiated speed:
[dpdk-dev] [PATCH v9 0/4] ethdev: add speed capabilities and refactor link API
On Wed, Mar 09, 2016 at 10:29:38AM +0100, N?lio Laranjeiro wrote: > On Tue, Mar 08, 2016 at 05:53:05PM +0100, N?lio Laranjeiro wrote: > > On Tue, Mar 08, 2016 at 04:00:29PM +0100, Marc Sune wrote: > > > 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 > > > > Hi Marc, > > > > I will take a look tomorrow morning and run test on Mellanox NICs > > (ConnectX 3 and 4). > > > > I do not have access to the others NICs, if those who have can do > > it, could be really great. > > > > Regards, > > It works as expected with Mellanox NICs. > > Regards, > > -- > N?lio Laranjeiro > 6WIND Tested-by: Nelio Laranjeiro - OS/Kernel: Debian 8/3.16.0-4-amd64 - GCC: gcc (Debian 4.9.2-10) 4.9.2 - CPU: Intel(R) Xeon(R) CPU E5-2697 v2 @ 2.70GHz - MLNX OFED: 3.2-2.0.0.0 - NIC: ConnectX 4 100G - OS/Kernel: Debian 7/3.16.0-0.bpo.4-amd64 - GCC: gcc (Debian 4.7.2-5) 4.7.2 - CPU: Intel(R) Xeon(R) CPU E5-2648L 0 @ 1.80GHz - MLNX OFED: 3.2-2.0.0.0 - NIC: ConnectX 3 Pro 1. Link displayed at the correct negotiated speed: - 40Gbps for ConnectX3 Pro - 100Gbps for ConnectX4 100G - 40Gbps for ConnectX4 100G on a 40G link. 2. Configuring speed: - Not supported yet for Mellanox as expected. -- N?lio Laranjeiro 6WIND
[dpdk-dev] [PATCH v9 0/4] ethdev: add speed capabilities and refactor link API
On Tue, Mar 08, 2016 at 05:53:05PM +0100, N?lio Laranjeiro wrote: > On Tue, Mar 08, 2016 at 04:00:29PM +0100, Marc Sune wrote: > > 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 > > Hi Marc, > > I will take a look tomorrow morning and run test on Mellanox NICs > (ConnectX 3 and 4). > > I do not have access to the others NICs, if those who have can do > it, could be really great. > > Regards, It works as expected with Mellanox NICs. Regards, -- N?lio Laranjeiro 6WIND
[dpdk-dev] [PATCH v9 0/4] ethdev: add speed capabilities and refactor link API
On Tue, Mar 08, 2016 at 04:00:29PM +0100, Marc Sune wrote: > 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 Hi Marc, I will take a look tomorrow morning and run test on Mellanox NICs (ConnectX 3 and 4). I do not have access to the others NICs, if those who have can do it, could be really great. Regards, -- N?lio Laranjeiro 6WIND
[dpdk-dev] [PATCH v9 0/4] ethdev: add speed capabilities and refactor link API
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 +- >
[dpdk-dev] [PATCH v9 0/4] ethdev: add speed capabilities and refactor link API
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. 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(+),