aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--MAINTAINERS4
-rw-r--r--doc/guides/nics/mlx5.rst7
-rw-r--r--doc/guides/rel_notes/deprecation.rst34
-rw-r--r--doc/guides/rel_notes/known_issues.rst20
-rw-r--r--doc/guides/rel_notes/release_16_07.rst160
-rw-r--r--doc/guides/testpmd_app_ug/build_app.rst2
-rw-r--r--drivers/net/i40e/i40e_rxtx.c4
-rw-r--r--examples/ip_pipeline/config/flow.cfg4
-rw-r--r--lib/librte_eal/common/eal_common_options.c15
-rw-r--r--lib/librte_eal/common/include/rte_version.h4
-rw-r--r--lib/librte_ether/rte_ethdev.h13
-rw-r--r--pkg/dpdk.spec3
12 files changed, 231 insertions, 39 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index d0991313..6536c6b1 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -373,7 +373,7 @@ F: drivers/net/vmxnet3/
F: doc/guides/nics/vmxnet3.rst
Vhost PMD
-M: Tetsuya Mukawa <mukawa@igel.co.jp>
+M: Tetsuya Mukawa <mtetsuyah@gmail.com>
M: Yuanhan Liu <yuanhan.liu@linux.intel.com>
T: git://dpdk.org/next/dpdk-next-virtio
F: drivers/net/vhost/
@@ -392,7 +392,7 @@ F: app/test/test_pmd_ring.c
F: app/test/test_pmd_ring_perf.c
Null Networking PMD
-M: Tetsuya Mukawa <mukawa@igel.co.jp>
+M: Tetsuya Mukawa <mtetsuyah@gmail.com>
F: drivers/net/null/
diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
index 063c4a54..5c10cd34 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
@@ -154,6 +154,11 @@ Run-time configuration
allows to save PCI bandwidth and improve performance at the cost of a
slightly higher CPU usage. Enabled by default.
+ Supported on:
+
+ - x86_64 with ConnectX4 and ConnectX4 LX
+ - Power8 with ConnectX4 LX
+
- ``txq_inline`` parameter [int]
Amount of data to be inlined during TX operations. Improves latency.
@@ -234,7 +239,7 @@ DPDK and must be installed separately:
Currently supported by DPDK:
-- Mellanox OFED **3.3-1.0.0.0**.
+- Mellanox OFED **3.3-1.0.0.0** and **3.3-2.0.0.0**.
- Minimum firmware version:
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index f502f863..d2dc4a9a 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -11,6 +11,16 @@ Deprecation Notices
* The log history is deprecated.
It is voided in 16.07 and will be removed in release 16.11.
+* The ethdev library file will be renamed from libethdev.* to librte_ethdev.*
+ in release 16.11 in order to have a more consistent namespace.
+
+* In 16.11 ABI changes are planned: the ``rte_eth_dev`` structure will be
+ extended with new function pointer ``tx_pkt_prep`` allowing verification
+ and processing of packet burst to meet HW specific requirements before
+ transmit. Also new fields will be added to the ``rte_eth_desc_lim`` structure:
+ ``nb_seg_max`` and ``nb_mtu_seg_max`` providing information about number of
+ segments limit to be transmitted by device for TSO/non-TSO packets.
+
* The ethdev hotplug API is going to be moved to EAL with a notification
mechanism added to crypto and ethdev libraries so that hotplug is now
available to both of them. This API will be stripped of the device arguments
@@ -23,9 +33,11 @@ Deprecation Notices
do not need to care about the kind of devices that are being used, making it
easier to add new buses later.
-* ABI changes are planned for adding four new flow types. This impacts
- RTE_ETH_FLOW_MAX. The release 2.2 does not contain these ABI changes,
- but release 2.3 will. [postponed]
+* ABI changes are planned for 16.11 in the ``rte_mbuf`` structure: some fields
+ may be reordered to facilitate the writing of ``data_off``, ``refcnt``, and
+ ``nb_segs`` in one operation, because some platforms have an overhead if the
+ store address is not naturally aligned. Other mbuf fields, such as the
+ ``port`` field, may be moved or removed as part of this mbuf work.
* The mbuf flags PKT_RX_VLAN_PKT and PKT_RX_QINQ_PKT are deprecated and
are respectively replaced by PKT_RX_VLAN_STRIPPED and
@@ -41,3 +53,19 @@ Deprecation Notices
* The mempool functions for single/multi producer/consumer are deprecated and
will be removed in 16.11.
It is replaced by rte_mempool_generic_get/put functions.
+
+* The ``rte_ivshmem`` feature (including library and EAL code) will be removed
+ in 16.11 because it has some design issues which are not planned to be fixed.
+
+* The vhost-cuse will be removed in 16.11. Since v2.1, a large majority of
+ development effort has gone to vhost-user, such as multiple-queue, live
+ migration, reconnect etc. Therefore, vhost-user should be used instead.
+
+* Driver names are quite inconsistent among each others and they will be
+ renamed to something more consistent (net and crypto prefixes) in 16.11.
+ Some of these driver names are used publicly, to create virtual devices,
+ so a deprecation notice is necessary.
+
+* API will change for ``rte_port_source_params`` and ``rte_port_sink_params``
+ structures. The member ``file_name`` data type will be changed from
+ ``char *`` to ``const char *``. This change targets release 16.11.
diff --git a/doc/guides/rel_notes/known_issues.rst b/doc/guides/rel_notes/known_issues.rst
index 5ec19876..3cd42376 100644
--- a/doc/guides/rel_notes/known_issues.rst
+++ b/doc/guides/rel_notes/known_issues.rst
@@ -620,3 +620,23 @@ The last EAL argument is replaced by the program name in argv[]
**Driver/Module**:
Environment Abstraction Layer (EAL).
+
+
+I40e VF may not receive packets in the promiscuous mode
+-------------------------------------------------------
+
+**Description**:
+ Promiscuous mode is not supported by the DPDK i40e VF driver when using the
+ i40e Linux kernel driver as host driver.
+
+**Implication**:
+ The i40e VF does not receive packets when the destination MAC address is unknown.
+
+**Resolution/Workaround**:
+ Use a explicit destination MAC address that matches the VF.
+
+**Affected Environment/Platform**:
+ All.
+
+**Driver/Module**:
+ Poll Mode Driver (PMD).
diff --git a/doc/guides/rel_notes/release_16_07.rst b/doc/guides/rel_notes/release_16_07.rst
index d00a6ed5..a8a3fc11 100644
--- a/doc/guides/rel_notes/release_16_07.rst
+++ b/doc/guides/rel_notes/release_16_07.rst
@@ -34,32 +34,36 @@ New Features
Refer to the previous release notes for examples.
-* **Removed mempool cache if not needed.**
+* **Removed the mempool cache memory if caching is not being used.**
The size of the mempool structure is reduced if the per-lcore cache is disabled.
* **Added mempool external cache for non-EAL thread.**
Added new functions to create, free or flush a user-owned mempool
- cache for non-EAL threads. Previously the cache was always disabled
+ cache for non-EAL threads. Previously the caching was always disabled
on these threads.
-* **Changed the memory allocation in mempool library.**
+* **Changed the memory allocation scheme in the mempool library.**
- * Added ability to allocate a large mempool in virtually fragmented memory.
+ * Added the ability to allocate a large mempool in fragmented virtual memory.
* Added new APIs to populate a mempool with memory.
* Added an API to free a mempool.
* Modified the API of the ``rte_mempool_obj_iter()`` function.
- * Dropped specific Xen Dom0 code.
- * Dropped specific anonymous mempool code in testpmd.
+ * Dropped the specific Xen Dom0 code.
+ * Dropped the specific anonymous mempool code in testpmd.
-* **Added new driver for Broadcom NetXtreme-C devices.**
+* **Added a new driver for Broadcom NetXtreme-C devices.**
Added the new bnxt driver for Broadcom NetXtreme-C devices. See the
"Network Interface Controller Drivers" document for more details on this
new driver.
-* **Added new driver for ThunderX nicvf device.**
+* **Added a new driver for ThunderX nicvf devices.**
+
+ Added the new thunderx net driver for ThunderX nicvf devices. See the
+ "Network Interface Controller Drivers" document for more details on this new
+ driver.
* **Added mailbox interrupt support for ixgbe and igb VFs.**
@@ -94,6 +98,21 @@ New Features
* Added MTU update in non Scattered Rx mode and enabled MTU of up to 9208
with UCS Software release 2.2 on 1300 series VICs.
+* **Updated the mlx5 driver.**
+
+ The mlx5 driver was updated with changes including the following:
+
+ * Data path was refactored to bypass Verbs to improve RX and TX performance.
+ * Removed compilation parameters for inline send, ``MLX5_MAX_INLINE``, and
+ added command line parameter instead, ``txq_inline``.
+ * Improved TX scatter gather support:
+ Removed compilation parameter ``MLX5_PMD_SGE_WR_N``.
+ Scatter-gather elements is set to the maximum value the NIC supports.
+ Removed linearization logic, this decreases the memory consumption of the PMD.
+ * Improved jumbo frames support, by dynamically setting RX scatter gather elements
+ according to the MTU and mbuf size,
+ no need for compilation parameter ``MLX5_PMD_SGE_WR_N``
+
* **Added support for virtio on IBM POWER8.**
The ioports are mapped in memory when using Linux UIO.
@@ -123,8 +142,8 @@ New Features
DPDK vhost-user will also try to reconnect by default when:
- * The first connect fails (when QEMU is not started yet).
- * The connection is broken (when QEMU restarts).
+ * The first connect fails (for example when QEMU is not started yet).
+ * The connection is broken (for example when QEMU restarts).
It can be turned off by setting the ``RTE_VHOST_USER_NO_RECONNECT`` flag.
@@ -135,7 +154,7 @@ New Features
Now AESNI MB PMD supports 128/192/256-bit counter mode AES encryption and
decryption.
-* **Added support for AES counter mode with Intel QuickAssist devices.**
+* **Added AES counter mode support for Intel QuickAssist devices.**
Enabled support for the AES CTR algorithm for Intel QuickAssist devices.
Provided support for algorithm-chaining operations.
@@ -168,7 +187,7 @@ New Features
* **Added keepalive enhancements.**
- Added support for reporting of core states other than dead to
+ Added support for reporting of core states other than "dead" to
monitoring applications, enabling the support of broader liveness
reporting to external processes.
@@ -400,6 +419,52 @@ Tested Platforms
- Platform details.
- Platform details.
+#. SuperMicro 1U
+
+ - BIOS: 1.0c
+ - Processor: Intel(R) Atom(TM) CPU C2758 @ 2.40GHz
+
+#. SuperMicro 1U
+
+ - BIOS: 1.0a
+ - Processor: Intel(R) Xeon(R) CPU D-1540 @ 2.00GHz
+ - Onboard NIC: Intel(R) X552/X557-AT (2x10G)
+
+ - Firmware-version: 0x800001cf
+ - Device ID (PF/VF): 8086:15ad /8086:15a8
+
+ - kernel driver version: 4.2.5 (ixgbe)
+
+#. SuperMicro 2U
+
+ - BIOS: 1.0a
+ - Processor: Intel(R) Xeon(R) CPU E5-4667 v3 @ 2.00GHz
+
+#. Intel(R) Server board S2600GZ
+
+ - BIOS: SE5C600.86B.02.02.0002.122320131210
+ - Processor: Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
+
+#. Intel(R) Server board W2600CR
+
+ - BIOS: SE5C600.86B.02.01.0002.082220131453
+ - Processor: Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
+
+#. Intel(R) Server board S2600CWT
+
+ - BIOS: SE5C610.86B.01.01.0009.060120151350
+ - Processor: Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz
+
+#. Intel(R) Server board S2600WTT
+
+ - BIOS: SE5C610.86B.01.01.0005.101720141054
+ - Processor: Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz
+
+#. Intel(R) Server board S2600WTT
+
+ - BIOS: SE5C610.86B.11.01.0044.090120151156
+ - Processor: Intel(R) Xeon(R) CPU E5-2695 v4 @ 2.10GHz
+
Tested NICs
-----------
@@ -412,3 +477,74 @@ Tested NICs
- NIC details.
- NIC details.
+
+#. Intel(R) Ethernet Controller X540-AT2
+
+ - Firmware version: 0x80000389
+ - Device id (pf): 8086:1528
+ - Driver version: 3.23.2 (ixgbe)
+
+#. Intel(R) 82599ES 10 Gigabit Ethernet Controller
+
+ - Firmware version: 0x61bf0001
+ - Device id (pf/vf): 8086:10fb / 8086:10ed
+ - Driver version: 4.0.1-k (ixgbe)
+
+#. Intel(R) Corporation Ethernet Connection X552/X557-AT 10GBASE-T
+
+ - Firmware version: 0x800001cf
+ - Device id (pf/vf): 8086:15ad / 8086:15a8
+ - Driver version: 4.2.5 (ixgbe)
+
+#. Intel(R) Ethernet Converged Network Adapter X710-DA4 (4x10G)
+
+ - Firmware version: 5.04
+ - Device id (pf/vf): 8086:1572 / 8086:154c
+ - Driver version: 1.4.26 (i40e)
+
+#. Intel(R) Ethernet Converged Network Adapter X710-DA2 (2x10G)
+
+ - Firmware version: 5.04
+ - Device id (pf/vf): 8086:1572 / 8086:154c
+ - Driver version: 1.4.25 (i40e)
+
+#. Intel(R) Ethernet Converged Network Adapter XL710-QDA1 (1x40G)
+
+ - Firmware version: 5.04
+ - Device id (pf/vf): 8086:1584 / 8086:154c
+ - Driver version: 1.4.25 (i40e)
+
+#. Intel(R) Ethernet Converged Network Adapter XL710-QDA2 (2X40G)
+
+ - Firmware version: 5.04
+ - Device id (pf/vf): 8086:1583 / 8086:154c
+ - Driver version: 1.4.25 (i40e)
+
+#. Intel(R) Corporation I350 Gigabit Network Connection
+
+ - Firmware version: 1.48, 0x800006e7
+ - Device id (pf/vf): 8086:1521 / 8086:1520
+ - Driver version: 5.2.13-k (igb)
+
+#. Intel(R) Ethernet Multi-host Controller FM10000
+
+ - Firmware version: N/A
+ - Device id (pf/vf): 8086:15d0
+ - Driver version: 0.17.0.9 (fm10k)
+
+
+Tested OSes
+-----------
+
+.. This section should contain a list of OSes that were tested with this release.
+
+- CentOS 7.0
+- Fedora 23
+- Fedora 24
+- FreeBSD 10.3
+- Red Hat Enterprise Linux 7.2
+- SUSE Enterprise Linux 12
+- Ubuntu 15.10
+- Ubuntu 16.04 LTS
+- Wind River Linux 8
+
diff --git a/doc/guides/testpmd_app_ug/build_app.rst b/doc/guides/testpmd_app_ug/build_app.rst
index 7f32a7ca..4c7cf2e4 100644
--- a/doc/guides/testpmd_app_ug/build_app.rst
+++ b/doc/guides/testpmd_app_ug/build_app.rst
@@ -58,4 +58,4 @@ The basic compilation steps are:
.. code-block:: console
- $RTE_SDK/$RTE_TARGET/build/app/testpmd
+ $RTE_SDK/$RTE_TARGET/app/testpmd
diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c
index d3cfb98f..554d1679 100644
--- a/drivers/net/i40e/i40e_rxtx.c
+++ b/drivers/net/i40e/i40e_rxtx.c
@@ -1436,10 +1436,10 @@ i40e_recv_scattered_pkts(void *rx_queue,
i40e_rxd_pkt_type_mapping((uint8_t)((qword1 &
I40E_RXD_QW1_PTYPE_MASK) >> I40E_RXD_QW1_PTYPE_SHIFT));
if (pkt_flags & PKT_RX_RSS_HASH)
- rxm->hash.rss =
+ first_seg->hash.rss =
rte_le_to_cpu_32(rxd.wb.qword0.hi_dword.rss);
if (pkt_flags & PKT_RX_FDIR)
- pkt_flags |= i40e_rxd_build_fdir(&rxd, rxm);
+ pkt_flags |= i40e_rxd_build_fdir(&rxd, first_seg);
#ifdef RTE_LIBRTE_IEEE1588
pkt_flags |= i40e_get_iee15888_flags(first_seg, qword1);
diff --git a/examples/ip_pipeline/config/flow.cfg b/examples/ip_pipeline/config/flow.cfg
index 6895d393..cec990ab 100644
--- a/examples/ip_pipeline/config/flow.cfg
+++ b/examples/ip_pipeline/config/flow.cfg
@@ -64,8 +64,8 @@ pktq_in = RXQ0.0 RXQ1.0 RXQ2.0 RXQ3.0
pktq_out = TXQ0.0 TXQ1.0 TXQ2.0 TXQ3.0 SINK0
n_flows = 65536
;key_size = 8 ; QinQ key size
-;key_offset = 270 ; QinQ key offset
-;key_mask = 0000FFF00000FFF0 ; QinQ key mask
+;key_offset = 268 ; QinQ key offset
+;key_mask = 00000FFF00000FFF ; QinQ key mask
key_size = 16 ; IPv4 5-tuple key size
key_offset = 278 ; IPv4 5-tuple key offset
key_mask = 00FF0000FFFFFFFFFFFFFFFFFFFFFFFF ; IPv4 5-tuple key mask
diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c
index 481c732b..1a1bab36 100644
--- a/lib/librte_eal/common/eal_common_options.c
+++ b/lib/librte_eal/common/eal_common_options.c
@@ -530,6 +530,13 @@ eal_parse_set(const char *input, uint16_t set[], unsigned num)
str = end + 1;
} while (*end != '\0' && *end != ')');
+ /*
+ * to avoid failure that tail blank makes end character check fail
+ * in eal_parse_lcores( )
+ */
+ while (isblank(*str))
+ str++;
+
return str - input;
}
@@ -578,13 +585,12 @@ eal_parse_lcores(const char *lcores)
struct rte_config *cfg = rte_eal_get_configuration();
static uint16_t set[RTE_MAX_LCORE];
unsigned idx = 0;
- int i;
unsigned count = 0;
const char *lcore_start = NULL;
const char *end = NULL;
int offset;
rte_cpuset_t cpuset;
- int lflags = 0;
+ int lflags;
int ret = -1;
if (lcores == NULL)
@@ -593,9 +599,6 @@ eal_parse_lcores(const char *lcores)
/* Remove all blank characters ahead and after */
while (isblank(*lcores))
lcores++;
- i = strlen(lcores);
- while ((i > 0) && isblank(lcores[i - 1]))
- i--;
CPU_ZERO(&cpuset);
@@ -613,6 +616,8 @@ eal_parse_lcores(const char *lcores)
if (*lcores == '\0')
goto err;
+ lflags = 0;
+
/* record lcore_set start point */
lcore_start = lcores;
diff --git a/lib/librte_eal/common/include/rte_version.h b/lib/librte_eal/common/include/rte_version.h
index 1e147617..615deb7f 100644
--- a/lib/librte_eal/common/include/rte_version.h
+++ b/lib/librte_eal/common/include/rte_version.h
@@ -70,14 +70,14 @@ extern "C" {
/**
* Extra string to be appended to version number
*/
-#define RTE_VER_SUFFIX "-rc"
+#define RTE_VER_SUFFIX ""
/**
* Patch release number
* 0-15 = release candidates
* 16 = release
*/
-#define RTE_VER_RELEASE 5
+#define RTE_VER_RELEASE 16
/**
* Macro to compute a version number usable for comparisons
diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
index 4dac364a..b0fe0334 100644
--- a/lib/librte_ether/rte_ethdev.h
+++ b/lib/librte_ether/rte_ethdev.h
@@ -2042,9 +2042,8 @@ int rte_eth_dev_socket_id(uint8_t port_id);
int rte_eth_dev_is_valid_port(uint8_t port_id);
/**
- * Allocate mbuf from mempool, setup the DMA physical address
- * and then start RX for specified queue of a port. It is used
- * when rx_deferred_start flag of the specified queue is true.
+ * Start specified RX queue of a port. It is used when rx_deferred_start
+ * flag of the specified queue is true.
*
* @param port_id
* The port identifier of the Ethernet device
@@ -2053,7 +2052,7 @@ int rte_eth_dev_is_valid_port(uint8_t port_id);
* The value must be in the range [0, nb_rx_queue - 1] previously supplied
* to rte_eth_dev_configure().
* @return
- * - 0: Success, the transmit queue is correctly set up.
+ * - 0: Success, the receive queue is started.
* - -EINVAL: The port_id or the queue_id out of range.
* - -ENOTSUP: The function not supported in PMD driver.
*/
@@ -2069,7 +2068,7 @@ int rte_eth_dev_rx_queue_start(uint8_t port_id, uint16_t rx_queue_id);
* The value must be in the range [0, nb_rx_queue - 1] previously supplied
* to rte_eth_dev_configure().
* @return
- * - 0: Success, the transmit queue is correctly set up.
+ * - 0: Success, the receive queue is stopped.
* - -EINVAL: The port_id or the queue_id out of range.
* - -ENOTSUP: The function not supported in PMD driver.
*/
@@ -2086,7 +2085,7 @@ int rte_eth_dev_rx_queue_stop(uint8_t port_id, uint16_t rx_queue_id);
* The value must be in the range [0, nb_tx_queue - 1] previously supplied
* to rte_eth_dev_configure().
* @return
- * - 0: Success, the transmit queue is correctly set up.
+ * - 0: Success, the transmit queue is started.
* - -EINVAL: The port_id or the queue_id out of range.
* - -ENOTSUP: The function not supported in PMD driver.
*/
@@ -2102,7 +2101,7 @@ int rte_eth_dev_tx_queue_start(uint8_t port_id, uint16_t tx_queue_id);
* The value must be in the range [0, nb_tx_queue - 1] previously supplied
* to rte_eth_dev_configure().
* @return
- * - 0: Success, the transmit queue is correctly set up.
+ * - 0: Success, the transmit queue is stopped.
* - -EINVAL: The port_id or the queue_id out of range.
* - -ENOTSUP: The function not supported in PMD driver.
*/
diff --git a/pkg/dpdk.spec b/pkg/dpdk.spec
index 953f46c9..b594e583 100644
--- a/pkg/dpdk.spec
+++ b/pkg/dpdk.spec
@@ -30,7 +30,7 @@
# OF THE POSSIBILITY OF SUCH DAMAGE.
Name: dpdk
-Version: 16.04
+Version: 16.07
Release: 1
Packager: packaging@6wind.com
URL: http://dpdk.org
@@ -82,7 +82,6 @@ sed -ri 's,(RTE_NEXT_ABI=).*,\1n,' %{target}/.config
sed -ri 's,(LIBRTE_VHOST=).*,\1y,' %{target}/.config
sed -ri 's,(LIBRTE_PMD_PCAP=).*,\1y,' %{target}/.config
sed -ri 's,(LIBRTE_PMD_XENVIRT=).*,\1y,' %{target}/.config
-sed -ri 's,(LIBRTE_XEN_DOM0=).*,\1y,' %{target}/.config
make O=%{target} %{?_smp_mflags}
make O=%{target} doc