diff options
Diffstat (limited to 'doc')
24 files changed, 356 insertions, 75 deletions
diff --git a/doc/guides/contributing/documentation.rst b/doc/guides/contributing/documentation.rst index 170dacdb..20a2c482 100644 --- a/doc/guides/contributing/documentation.rst +++ b/doc/guides/contributing/documentation.rst @@ -80,7 +80,7 @@ added to by the developer. * **API documentation** The API documentation explains how to use the public DPDK functions. - The `API index page <http://dpdk.org/doc/api/>`_ shows the generated API documentation with related groups of functions. + The `API index page <http://doc.dpdk.org/api/>`_ shows the generated API documentation with related groups of functions. The API documentation should be updated via Doxygen comments when new functions are added. @@ -655,7 +655,7 @@ The following are some guidelines for use of Doxygen in the DPDK API documentati */ In the API documentation the functions will be rendered as links, see the - `online section of the rte_ethdev.h docs <http://dpdk.org/doc/api/rte__ethdev_8h.html>`_ that contains the above text. + `online section of the rte_ethdev.h docs <http://doc.dpdk.org/api/rte__ethdev_8h.html>`_ that contains the above text. * The ``@see`` keyword can be used to create a *see also* link to another file or library. This directive should be placed on one line at the bottom of the documentation section. diff --git a/doc/guides/contributing/patches.rst b/doc/guides/contributing/patches.rst index 40983c15..daa4edad 100644 --- a/doc/guides/contributing/patches.rst +++ b/doc/guides/contributing/patches.rst @@ -25,9 +25,9 @@ The DPDK development process has the following features: * All sub-repositories are merged into main repository for ``-rc1`` and ``-rc2`` versions of the release. * After the ``-rc2`` release all patches should target the main repository. -The mailing list for DPDK development is `dev@dpdk.org <http://dpdk.org/ml/archives/dev/>`_. -Contributors will need to `register for the mailing list <http://dpdk.org/ml/listinfo/dev>`_ in order to submit patches. -It is also worth registering for the DPDK `Patchwork <http://dpdk.org/dev/patchwork/project/dpdk/list/>`_ +The mailing list for DPDK development is `dev@dpdk.org <http://mails.dpdk.org/archives/dev/>`_. +Contributors will need to `register for the mailing list <http://mails.dpdk.org/listinfo/dev>`_ in order to submit patches. +It is also worth registering for the DPDK `Patchwork <http://patches.dpdk.org/project/dpdk/list/>`_ The development process requires some familiarity with the ``git`` version control system. Refer to the `Pro Git Book <http://www.git-scm.com/book/>`_ for further information. @@ -104,7 +104,7 @@ main repository:: git clone git://dpdk.org/dpdk git clone http://dpdk.org/git/dpdk -sub-repositories (`list <http://dpdk.org/browse/next>`_):: +sub-repositories (`list <http://git.dpdk.org/next>`_):: git clone git://dpdk.org/next/dpdk-next-* git clone http://dpdk.org/git/next/dpdk-next-* @@ -418,7 +418,7 @@ If the patch is in relation to a previous email thread you can add it to the sam git send-email --to dev@dpdk.org --in-reply-to <1234-foo@bar.com> 000*.patch The Message ID can be found in the raw text of emails or at the top of each Patchwork patch, -`for example <http://dpdk.org/dev/patchwork/patch/7646/>`_. +`for example <http://patches.dpdk.org/patch/7646/>`_. Shallow threading (``--thread --no-chain-reply-to``) is preferred for a patch series. Once submitted your patches will appear on the mailing list and in Patchwork. diff --git a/doc/guides/contributing/stable.rst b/doc/guides/contributing/stable.rst index 0f2f1f37..326381d2 100644 --- a/doc/guides/contributing/stable.rst +++ b/doc/guides/contributing/stable.rst @@ -75,7 +75,7 @@ The Stable and LTS release are coordinated on the stable@dpdk.org mailing list. All fix patches to the master branch that are candidates for backporting -should also be CCed to the `stable@dpdk.org <http://dpdk.org/ml/listinfo/stable>`_ +should also be CCed to the `stable@dpdk.org <http://mails.dpdk.org/listinfo/stable>`_ mailing list. @@ -86,10 +86,10 @@ A Stable Release will be released by: * Tagging the release with YY.MM.n (year, month, number). * Uploading a tarball of the release to dpdk.org. -* Sending an announcement to the `announce@dpdk.org <http://dpdk.org/ml/listinfo/announce>`_ +* Sending an announcement to the `announce@dpdk.org <http://mails.dpdk.org/listinfo/announce>`_ list. -Stable releases are available on the `dpdk.org download page <http://dpdk.org/download>`_. +Stable releases are available on the `dpdk.org download page <http://core.dpdk.org/download/>`_. ABI diff --git a/doc/guides/cryptodevs/features/qat.ini b/doc/guides/cryptodevs/features/qat.ini index 40da8985..eeaf7de4 100644 --- a/doc/guides/cryptodevs/features/qat.ini +++ b/doc/guides/cryptodevs/features/qat.ini @@ -51,3 +51,6 @@ ZUC EIA3 = Y AES GCM (128) = Y AES GCM (192) = Y AES GCM (256) = Y +AES CCM (128) = Y +AES CCM (192) = Y +AES CCM (256) = Y diff --git a/doc/guides/cryptodevs/qat.rst b/doc/guides/cryptodevs/qat.rst index 581cd2f7..8418115b 100644 --- a/doc/guides/cryptodevs/qat.rst +++ b/doc/guides/cryptodevs/qat.rst @@ -80,6 +80,7 @@ Hash algorithms: Supported AEAD algorithms: * ``RTE_CRYPTO_AEAD_AES_GCM`` +* ``RTE_CRYPTO_AEAD_AES_CCM`` Limitations diff --git a/doc/guides/freebsd_gsg/install_from_ports.rst b/doc/guides/freebsd_gsg/install_from_ports.rst index 67e63d27..178f710a 100644 --- a/doc/guides/freebsd_gsg/install_from_ports.rst +++ b/doc/guides/freebsd_gsg/install_from_ports.rst @@ -89,7 +89,7 @@ environmental variables should be set as below: .. note:: To install a copy of the DPDK compiled using gcc, please download the - official DPDK package from http://dpdk.org/ and install manually using + official DPDK package from http://core.dpdk.org/download/ and install manually using the instructions given in the next chapter, :ref:`building_from_source` An example application can therefore be copied to a user's home directory and diff --git a/doc/guides/howto/flow_bifurcation.rst b/doc/guides/howto/flow_bifurcation.rst index 61016a4f..3fbf3792 100644 --- a/doc/guides/howto/flow_bifurcation.rst +++ b/doc/guides/howto/flow_bifurcation.rst @@ -296,4 +296,4 @@ The typical procedure to achieve this is as follows: 'not involved', while ``00`` or no mask means 'involved'. * For more details of the configuration, refer to the - `cloud filter test plan <http://dpdk.org/browse/tools/dts/tree/test_plans/cloud_filter_test_plan.rst>`_ + `cloud filter test plan <http://git.dpdk.org/tools/dts/tree/test_plans/cloud_filter_test_plan.rst>`_ diff --git a/doc/guides/howto/rte_flow.rst b/doc/guides/howto/rte_flow.rst index 4a27c995..cc55413f 100644 --- a/doc/guides/howto/rte_flow.rst +++ b/doc/guides/howto/rte_flow.rst @@ -60,10 +60,10 @@ Code .. code-block:: c /* create the attribute structure */ - struct rte_flow_attr attr = {.ingress = 1}; + struct rte_flow_attr attr = { .ingress = 1 }; struct rte_flow_item pattern[MAX_PATTERN_IN_FLOW]; struct rte_flow_action actions[MAX_ACTIONS_IN_FLOW]; - struct rte_flow_item_etc eth; + struct rte_flow_item_eth eth; struct rte_flow_item_vlan vlan; struct rte_flow_item_ipv4 ipv4; struct rte_flow *flow; @@ -83,15 +83,15 @@ Code pattern[2].spec = &ipv4; /* end the pattern array */ - pattern[3].type = RTE_FLOW_ITEM)TYPE_END; + pattern[3].type = RTE_FLOW_ITEM_TYPE_END; /* create the drop action */ actions[0].type = RTE_FLOW_ACTION_TYPE_DROP; actions[1].type = RTE_FLOW_ACTION_TYPE_END; /* validate and create the flow rule */ - if (!rte_flow_validate(port_id, &attr, pattern, actions, &error) - flow = rte_flow_create(port_id, &attr, pattern, actions, &error) + if (!rte_flow_validate(port_id, &attr, pattern, actions, &error)) + flow = rte_flow_create(port_id, &attr, pattern, actions, &error); Output ~~~~~~ @@ -148,7 +148,7 @@ clarity):: tpmd> flow create 0 ingress pattern eth / vlan / ipv4 dst spec 192.168.3.0 dst mask 255.255.255.0 / - end actions drop / end + end actions drop / end Code ~~~~ @@ -158,7 +158,7 @@ Code struct rte_flow_attr attr = {.ingress = 1}; struct rte_flow_item pattern[MAX_PATTERN_IN_FLOW]; struct rte_flow_action actions[MAX_ACTIONS_IN_FLOW]; - struct rte_flow_item_etc eth; + struct rte_flow_item_eth eth; struct rte_flow_item_vlan vlan; struct rte_flow_item_ipv4 ipv4; struct rte_flow_item_ipv4 ipv4_mask; @@ -181,15 +181,15 @@ Code pattern[2].mask = &ipv4_mask; /* end the pattern array */ - pattern[3].type = RTE_FLOW_ITEM)TYPE_END; + pattern[3].type = RTE_FLOW_ITEM_TYPE_END; /* create the drop action */ actions[0].type = RTE_FLOW_ACTION_TYPE_DROP; actions[1].type = RTE_FLOW_ACTION_TYPE_END; /* validate and create the flow rule */ - if (!rte_flow_validate(port_id, &attr, pattern, actions, &error) - flow = rte_flow_create(port_id, &attr, pattern, actions, &error) + if (!rte_flow_validate(port_id, &attr, pattern, actions, &error)) + flow = rte_flow_create(port_id, &attr, pattern, actions, &error); Output ~~~~~~ @@ -255,10 +255,10 @@ Code .. code-block:: c - struct rte_flow_attr attr = {.ingress = 1}; + struct rte_flow_attr attr = { .ingress = 1 }; struct rte_flow_item pattern[MAX_PATTERN_IN_FLOW]; struct rte_flow_action actions[MAX_ACTIONS_IN_FLOW]; - struct rte_flow_item_etc eth; + struct rte_flow_item_eth eth; struct rte_flow_item_vlan vlan; struct rte_flow_action_queue queue = { .index = 3 }; struct rte_flow *flow; @@ -274,16 +274,16 @@ Code pattern[1].spec = &vlan; /* end the pattern array */ - pattern[2].type = RTE_FLOW_ITEM)TYPE_END; + pattern[2].type = RTE_FLOW_ITEM_TYPE_END; /* create the drop action */ actions[0].type = RTE_FLOW_ACTION_TYPE_QUEUE; - actions[0].conf = &queue + actions[0].conf = &queue; actions[1].type = RTE_FLOW_ACTION_TYPE_END; /* validate and create the flow rule */ - if (!rte_flow_validate(port_id, &attr, pattern, actions, &error) - flow = rte_flow_create(port_id, &attr, pattern, actions, &error) + if (!rte_flow_validate(port_id, &attr, pattern, actions, &error)) + flow = rte_flow_create(port_id, &attr, pattern, actions, &error); Output ~~~~~~ diff --git a/doc/guides/linux_gsg/nic_perf_intel_platform.rst b/doc/guides/linux_gsg/nic_perf_intel_platform.rst index febd7337..2ef6ed7c 100644 --- a/doc/guides/linux_gsg/nic_perf_intel_platform.rst +++ b/doc/guides/linux_gsg/nic_perf_intel_platform.rst @@ -64,7 +64,7 @@ This aligns with the previous output which showed that each channel has one memo Network Interface Card Requirements ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Use a `DPDK supported <http://dpdk.org/doc/nics>`_ high end NIC such as the Intel XL710 40GbE. +Use a `DPDK supported <http://core.dpdk.org/supported/>`_ high end NIC such as the Intel XL710 40GbE. Make sure each NIC has been flashed the latest version of NVM/firmware. diff --git a/doc/guides/linux_gsg/sys_reqs.rst b/doc/guides/linux_gsg/sys_reqs.rst index 3e7fe637..7a91b31c 100644 --- a/doc/guides/linux_gsg/sys_reqs.rst +++ b/doc/guides/linux_gsg/sys_reqs.rst @@ -91,7 +91,11 @@ Compilation of the DPDK x86_x32 ABI is currently supported with distribution packages only on Ubuntu higher than 13.10 or recent Debian distribution. The only supported compiler is gcc 4.9+. -* libnuma-devel - library for handling NUMA (Non Uniform Memory Access). +* Library for handling NUMA (Non Uniform Memory Access). + + * numactl-devel in Red Hat/Fedora; + + * libnuma-dev in Debian/Ubuntu; * Python, version 2.7+ or 3.2+, to use various helper scripts included in the DPDK package. diff --git a/doc/guides/nics/ena.rst b/doc/guides/nics/ena.rst index d19912e9..695960d4 100644 --- a/doc/guides/nics/ena.rst +++ b/doc/guides/nics/ena.rst @@ -187,11 +187,20 @@ Prerequisites ------------- #. Prepare the system as recommended by DPDK suite. This includes environment - variables, hugepages configuration, tool-chains and configuration + variables, hugepages configuration, tool-chains and configuration. -#. Insert igb_uio kernel module using the command 'modprobe igb_uio' +#. ENA PMD can operate with ``vfio-pci`` or ``igb_uio`` driver. -#. Bind the intended ENA device to igb_uio module +#. Insert ``vfio-pci`` or ``igb_uio`` kernel module using the command + ``modprobe vfio-pci`` or ``modprobe igb_uio`` respectively. + +#. For ``vfio-pci`` users only: + Please make sure that ``IOMMU`` is enabled in your system, + or use ``vfio`` driver in ``noiommu`` mode:: + + echo 1 > /sys/module/vfio/parameters/enable_unsafe_noiommu_mode + +#. Bind the intended ENA device to ``vfio-pci`` or ``igb_uio`` module. At this point the system should be ready to run DPDK applications. Once the diff --git a/doc/guides/nics/enic.rst b/doc/guides/nics/enic.rst index a11627a0..94ec6fb4 100644 --- a/doc/guides/nics/enic.rst +++ b/doc/guides/nics/enic.rst @@ -39,7 +39,7 @@ How to obtain ENIC PMD integrated DPDK -------------------------------------- ENIC PMD support is integrated into the DPDK suite. dpdk-<version>.tar.gz -should be downloaded from http://dpdk.org +should be downloaded from http://core.dpdk.org/download/ Configuration information diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst index d5bf38a2..f31aee93 100644 --- a/doc/guides/nics/features.rst +++ b/doc/guides/nics/features.rst @@ -235,7 +235,7 @@ Supports TCP Segmentation Offloading. * **[uses] rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_TCP_TSO``. * **[uses] rte_eth_desc_lim**: ``nb_seg_max``, ``nb_mtu_seg_max``. -* **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_TCP_SEG``. +* **[uses] mbuf**: ``mbuf.ol_flags:`` ``PKT_TX_TCP_SEG``, ``PKT_TX_IPV4``, ``PKT_TX_IPV6``, ``PKT_TX_IP_CKSUM``. * **[uses] mbuf**: ``mbuf.tso_segsz``, ``mbuf.l2_len``, ``mbuf.l3_len``, ``mbuf.l4_len``. * **[implements] datapath**: ``TSO functionality``. * **[provides] rte_eth_dev_info**: ``tx_offload_capa,tx_queue_offload_capa:DEV_TX_OFFLOAD_TCP_TSO,DEV_TX_OFFLOAD_UDP_TSO``. @@ -577,6 +577,7 @@ Supports L3 checksum offload. * **[uses] rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_IPV4_CKSUM``. * **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_IP_CKSUM``, ``mbuf.ol_flags:PKT_TX_IPV4`` | ``PKT_TX_IPV6``. +* **[uses] mbuf**: ``mbuf.l2_len``, ``mbuf.l3_len``. * **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_IP_CKSUM_UNKNOWN`` | ``PKT_RX_IP_CKSUM_BAD`` | ``PKT_RX_IP_CKSUM_GOOD`` | ``PKT_RX_IP_CKSUM_NONE``. @@ -597,6 +598,7 @@ Supports L4 checksum offload. * **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_IPV4`` | ``PKT_TX_IPV6``, ``mbuf.ol_flags:PKT_TX_L4_NO_CKSUM`` | ``PKT_TX_TCP_CKSUM`` | ``PKT_TX_SCTP_CKSUM`` | ``PKT_TX_UDP_CKSUM``. +* **[uses] mbuf**: ``mbuf.l2_len``, ``mbuf.l3_len``. * **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_L4_CKSUM_UNKNOWN`` | ``PKT_RX_L4_CKSUM_BAD`` | ``PKT_RX_L4_CKSUM_GOOD`` | ``PKT_RX_L4_CKSUM_NONE``. diff --git a/doc/guides/nics/features/ena.ini b/doc/guides/nics/features/ena.ini index 691c1e3d..aa6f05a7 100644 --- a/doc/guides/nics/features/ena.ini +++ b/doc/guides/nics/features/ena.ini @@ -23,5 +23,6 @@ Inner L4 checksum = Y Basic stats = Y Extended stats = Y Linux UIO = Y +Linux VFIO = Y x86-32 = Y x86-64 = Y diff --git a/doc/guides/nics/features/failsafe.ini b/doc/guides/nics/features/failsafe.ini index a42e344a..dc824107 100644 --- a/doc/guides/nics/features/failsafe.ini +++ b/doc/guides/nics/features/failsafe.ini @@ -11,7 +11,6 @@ Jumbo frame = Y Promiscuous mode = Y Allmulticast mode = Y Unicast MAC filter = Y -Multicast MAC filter = Y VLAN filter = Y Flow control = Y Flow API = Y diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst index 50fced3f..ee588233 100644 --- a/doc/guides/nics/mlx5.rst +++ b/doc/guides/nics/mlx5.rst @@ -32,9 +32,9 @@ MLX5 poll mode driver ===================== The MLX5 poll mode driver library (**librte_pmd_mlx5**) provides support -for **Mellanox ConnectX-4**, **Mellanox ConnectX-4 Lx** and **Mellanox -ConnectX-5** families of 10/25/40/50/100 Gb/s adapters as well as their -virtual functions (VF) in SR-IOV context. +for **Mellanox ConnectX-4**, **Mellanox ConnectX-4 Lx** , **Mellanox +ConnectX-5** and **Mellanox Bluefield** families of 10/25/40/50/100 Gb/s +adapters as well as their virtual functions (VF) in SR-IOV context. Information and documentation about these adapters can be found on the `Mellanox website <http://www.mellanox.com>`__. Help is also provided by the @@ -214,8 +214,8 @@ Run-time configuration Supported on: - - x86_64 with ConnectX-4, ConnectX-4 LX and ConnectX-5. - - POWER8 and ARMv8 with ConnectX-4 LX and ConnectX-5. + - x86_64 with ConnectX-4, ConnectX-4 LX, ConnectX-5 and Bluefield. + - POWER8 and ARMv8 with ConnectX-4 LX, ConnectX-5 and Bluefield. - ``txq_inline`` parameter [int] @@ -234,34 +234,54 @@ Run-time configuration This option should be used in combination with ``txq_inline`` above. - On ConnectX-4, ConnectX-4 LX and ConnectX-5 without Enhanced MPW: + On ConnectX-4, ConnectX-4 LX, ConnectX-5 and Bluefield without + Enhanced MPW: - Disabled by default. - In case ``txq_inline`` is set recommendation is 4. - On ConnectX-5 with Enhanced MPW: + On ConnectX-5 and Bluefield with Enhanced MPW: - Set to 8 by default. +- ``txqs_max_vec`` parameter [int] + + Enable vectorized Tx only when the number of TX queues is less than or + equal to this value. Effective only when ``tx_vec_en`` is enabled. + + On ConnectX-5: + + - Set to 8 by default on ARMv8. + - Set to 4 by default otherwise. + + On Bluefield + + - Set to 16 by default. + - ``txq_mpw_en`` parameter [int] A nonzero value enables multi-packet send (MPS) for ConnectX-4 Lx and - enhanced multi-packet send (Enhanced MPS) for ConnectX-5. MPS allows the - TX burst function to pack up multiple packets in a single descriptor - session in order to save PCI bandwidth and improve performance at the - cost of a slightly higher CPU usage. When ``txq_inline`` is set along - with ``txq_mpw_en``, TX burst function tries to copy entire packet data - on to TX descriptor instead of including pointer of packet only if there - is enough room remained in the descriptor. ``txq_inline`` sets - per-descriptor space for either pointers or inlined packets. In addition, - Enhanced MPS supports hybrid mode - mixing inlined packets and pointers - in the same descriptor. + enhanced multi-packet send (Enhanced MPS) for ConnectX-5 and Bluefield. + MPS allows the TX burst function to pack up multiple packets in a + single descriptor session in order to save PCI bandwidth and improve + performance at the cost of a slightly higher CPU usage. When + ``txq_inline`` is set along with ``txq_mpw_en``, TX burst function tries + to copy entire packet data on to TX descriptor instead of including + pointer of packet only if there is enough room remained in the + descriptor. ``txq_inline`` sets per-descriptor space for either pointers + or inlined packets. In addition, Enhanced MPS supports hybrid mode - + mixing inlined packets and pointers in the same descriptor. This option cannot be used in conjunction with ``tso`` below. When ``tso`` is set, ``txq_mpw_en`` is disabled. - It is currently only supported on the ConnectX-4 Lx and ConnectX-5 - families of adapters. Enabled by default. + It is currently only supported on the ConnectX-4 Lx, ConnectX-5 and Bluefield + families of adapters. + On ConnectX-4 Lx the MPW is considered un-secure hence disabled by default. + Users which enable the MPW should be aware that application which provides incorrect + mbuf descriptors in the Tx burst can lead to serious errors in the host including, on some cases, + NIC to get stuck. + On ConnectX-5 and Bluefield the MPW is secure and enabled by default. - ``txq_mpw_hdr_dseg_en`` parameter [int] @@ -287,10 +307,10 @@ Run-time configuration - ``tx_vec_en`` parameter [int] - A nonzero value enables Tx vector on ConnectX-5 only NIC if the number of - global Tx queues on the port is lesser than MLX5_VPMD_MIN_TXQS. + A nonzero value enables Tx vector on ConnectX-5 and Bluefield NICs if the number of + global Tx queues on the port is less than ``txqs_max_vec``. - Enabled by default on ConnectX-5. + Enabled by default on ConnectX-5 and Bluefield. - ``rx_vec_en`` parameter [int] @@ -318,8 +338,9 @@ DPDK and must be installed separately: - **libmlx5** - Low-level user space driver library for Mellanox ConnectX-4/ConnectX-5 - devices, it is automatically loaded by libibverbs. + Low-level user space driver library for Mellanox + ConnectX-4/ConnectX-5/Bluefield devices, it is automatically loaded + by libibverbs. This library basically implements send/receive calls to the hardware queues. @@ -333,15 +354,16 @@ DPDK and must be installed separately: Unlike most other PMDs, these modules must remain loaded and bound to their devices: - - mlx5_core: hardware driver managing Mellanox ConnectX-4/ConnectX-5 - devices and related Ethernet kernel network devices. + - mlx5_core: hardware driver managing Mellanox + ConnectX-4/ConnectX-5/Bluefield devices and related Ethernet kernel + network devices. - mlx5_ib: InifiniBand device driver. - ib_uverbs: user space driver for Verbs (entry point for libibverbs). - **Firmware update** - Mellanox OFED releases include firmware updates for ConnectX-4/ConnectX-5 - adapters. + Mellanox OFED releases include firmware updates for + ConnectX-4/ConnectX-5/Bluefield adapters. Because each release provides new features, these updates must be applied to match the kernel modules and libraries they come with. @@ -378,6 +400,7 @@ Mellanox OFED - ConnectX-4 Lx: **14.21.1000** and above. - ConnectX-5: **16.21.1000** and above. - ConnectX-5 Ex: **16.21.1000** and above. + - Bluefield: **18.99.3950** and above. While these libraries and kernel modules are available on OpenFabrics Alliance's `website <https://www.openfabrics.org/>`__ and provided by package @@ -589,7 +612,7 @@ Usage example ------------- This section demonstrates how to launch **testpmd** with Mellanox -ConnectX-4/ConnectX-5 devices managed by librte_pmd_mlx5. +ConnectX-4/ConnectX-5/Bluefield devices managed by librte_pmd_mlx5. #. Load the kernel modules: diff --git a/doc/guides/nics/virtio.rst b/doc/guides/nics/virtio.rst index af82f86e..9d05cca0 100644 --- a/doc/guides/nics/virtio.rst +++ b/doc/guides/nics/virtio.rst @@ -74,7 +74,7 @@ In this release, the virtio PMD driver provides the basic functionality of packe * The descriptor number for the Rx/Tx queue is hard-coded to be 256 by qemu 2.7 and below. If given a different descriptor number by the upper application, the virtio PMD generates a warning and fall back to the hard-coded value. - Rx queue size can be configureable and up to 1024 since qemu 2.8 and above. Rx queue size is 256 + Rx queue size can be configurable and up to 1024 since qemu 2.8 and above. Rx queue size is 256 by default. Tx queue size is still hard-coded to be 256. * Features of mac/vlan filter are supported, negotiation with vhost/backend are needed to support them. diff --git a/doc/guides/rel_notes/release_17_11.rst b/doc/guides/rel_notes/release_17_11.rst index e17fd2ca..740854f6 100644 --- a/doc/guides/rel_notes/release_17_11.rst +++ b/doc/guides/rel_notes/release_17_11.rst @@ -1462,3 +1462,227 @@ Fixes in 17.11 LTS Release * vhost: improve dirty pages logging performance * vhost: release locks on RARP packet failure * vhost: retranslate vring addr when memory table changes + +17.11.5 +~~~~~~~ + +* acl: forbid rule with priority zero +* app/pdump: fix port id storage size +* app/procinfo: fix sprintf overrun +* app/test-crypto-perf: fix check for auth key +* app/test-crypto-perf: fix check for cipher IV +* app/test-crypto-perf: fix double allocation of memory +* app/testpmd: check Rx VLAN offload flag to print VLAN TCI +* app/testpmd: fix csum parse-tunnel command invocation +* app/testpmd: fix duplicate exit +* app/testpmd: fix L4 length for UDP checksum +* app/testpmd: fix memory leak for TM object +* app/testpmd: fix metering and policing commands +* app/testpmd: fix physical port socket initialization +* app/testpmd: fix printf format in event callback +* app/testpmd: fix RED byte stats +* app/testpmd: fix shaper profile parameters +* app/testpmd: fix vdev socket initialization +* app/testpmd: optimize mbuf pool allocation +* app/testpmd: reserve NUMA node per port and per ring +* build: enable ARM NEON flag when __aarch64__ defined +* bus/dpaa: fix build with gcc 9.0 +* bus/dpaa: fix inconsistent struct alignment +* bus/pci: compare kernel driver instead of interrupt handler +* bus/pci: fix allocation of device path +* bus/pci: fix config r/w access +* bus/pci: replace strncpy by strlcpy +* crypto/aesni_mb: fix possible array overrun +* crypto/mvsam: update hash digest sizes +* crypto/scheduler: fix build with gcc 8.2 +* devtools: provide more generic grep in git check +* doc: add cross-compilation in sample apps guide +* doc: add VFIO in ENA guide +* doc: clarify L3 Tx checksum prerequisite +* doc: clarify L4 Tx checksum prerequisite +* doc: clarify TSO Tx offload prerequisite +* doc: fix formatting in IP reassembly app guide +* doc: fix missing CCM to QAT feature list +* doc: fix NUMA library name in Linux guide +* doc: fix spelling in PMD guides +* doc: fix style and syntax in flow API guide +* doc: fix typo in testpmd guide +* doc: fix typos in the flow API guide +* doc: fix wrong usage of bind command +* eal/arm64: fix instrinsic for GCC < 4.9 +* eal: declare trace buffer at top of own block +* eal: explicit cast in constant byte swap +* eal: explicit cast in rwlock functions +* eal: explicit cast of builtin for bsf32 +* eal: explicit cast of core id when getting index +* eal: explicit cast of strlcpy return +* eal: fix build +* eal: fix build with gcc 9.0 +* eal: fix build with -O1 +* eal: fix casts in random functions +* eal: introduce rte version of fls +* eal/linux: fix memory leak of logid +* eal/linux: handle UIO read failure in interrupt handler +* eal: support strlcpy function +* eal: use correct data type for bitmap slab operations +* eal/x86: fix type of variable in memcpy function +* eal/x86: remove unused memcpy file +* efd: fix write unlock during ring creation +* ethdev: explicit cast of buffered Tx number +* ethdev: explicit cast of queue count return +* ethdev: fix doxygen comment to be with structure +* ethdev: fix queue start and stop +* ethdev: fix type and scope of variables in Rx burst +* eventdev: fix eth Rx adapter hotplug incompatibility +* eventdev: fix unlock in Rx adapter +* event/sw: fix cq index check for unlink usecases +* examples/flow_filtering: remove VLAN item +* examples/ipv4_multicast: fix leak of cloned packets +* examples/vhost: remove unnecessary constant +* fix dpdk.org URLs +* gro: fix overflow of TCP payload calculation +* hash: explicit casts for truncation in CRC32c +* hash: move stack declaration at top of CRC32c function +* igb_uio: fix refcount if open returns error +* ip_frag: fix overflow in key comparison +* ip_frag: use key length for key comparison +* kni: fix build on Linux < 3.14 +* kni: fix build on Linux 4.19 +* kni: fix kernel FIFO synchronization +* kni: fix possible uninitialized variable +* kvargs: fix processing a null list +* latency: fix timestamp marking and latency calculation +* mbuf: avoid implicit demotion in 64-bit arithmetic +* mbuf: avoid integer promotion in prepend/adj/chain +* mbuf: explicit cast of headroom on reset +* mbuf: explicit cast of size on detach +* mbuf: explicit casts of reference counter +* mbuf: fix reference counter integer promotion +* mbuf: fix Tx offload mask +* mbuf: fix type of private size in detach +* mbuf: fix type of variables in linearize function +* mem: fix memory initialization time +* mem: fix undefined behavior in NUMA-aware mapping +* mk: disable gcc AVX512F support +* net/bnx2x: fix call to link handling periodic function +* net/bnx2x: fix logging to include device name +* net/bnx2x: fix to add PHY lock +* net/bnx2x: fix to disable further interrupts +* net/bnx2x: fix VF link state update +* net/bnxt: fix registration of VF async event completion ring +* net/bnxt: fix uninitialized pointer access in Tx +* net/bnxt: set MAC filtering as outer for non tunnel frames +* net/bnxt: set VLAN strip mode before default VNIC cfg +* net/bonding: do not ignore RSS key on device config +* net/bonding: fix crash when stopping mode 4 port +* net/bonding: fix possible silent failure in config +* net/bonding: fix Rx slave fairness +* net/bonding: stop and deactivate slaves on stop +* net/bonding: support matching QinQ ethertype +* net/bonding: use evenly distributed default RSS RETA +* net/e1000/base: fix uninitialized variable +* net/e1000: do not error out if Rx drop enable is set +* net/ena: fix passing RSS hash to mbuf +* net/enic: do not use non-standard integer types +* net/enic: fix flow API memory leak +* net/enic: set Rx VLAN offload flag for non-stripped packets +* net: explicit cast in L4 checksum +* net: explicit cast of IP checksum to 16-bit +* net: explicit cast of multicast bit clearing +* net: explicit cast of protocol in IPv6 checksum +* net/failsafe: add checks for deferred queue setup +* net/failsafe: fix crash on slave queue release +* net/failsafe: remove not supported multicast MAC filter +* net: fix build with pedantic +* net: fix Intel prepare function for IP checksum offload +* net/i40e/base: correct global reset timeout calculation +* net/i40e/base: fix comment referencing internal data +* net/i40e/base: gracefully clean the resources +* net/i40e/base: properly clean resources +* net/i40e: enable loopback function for X722 MAC +* net/i40e: fix link status update +* net/i40e: fix offload not supported mask +* net/i40e: fix send admin queue command before init +* net/i40e: fix X710 Rx after reading some registers +* net/i40e: keep promiscuous on if allmulticast is enabled +* net/i40e: update Tx offload mask +* net/igb: update Tx offload mask +* net/ixgbe: fix busy polling while fiber link update +* net/ixgbe: fix maximum wait time in comment +* net/ixgbe: stop link setup alarm handler before device start +* net/ixgbe: update Tx offload mask +* net/ixgbevf: fix link state +* net/ixgbe: wait longer for link after fiber MAC setup +* net/mlx4: fix possible uninitialized variable +* net/mlx5: add Bluefield device id +* net/mlx5: disable ConnectX-4 Lx Multi Packet Send by default +* net/mlx5: fix initialization of struct members +* net/mlx5: fix interrupt completion queue index wrapping +* net/mlx5: fix multi-chunk mempool support +* net/mlx5: make vectorized Tx threshold configurable +* net/mlx5: optimize Rx buffer replenishment threshold +* net: move stack variable at top of VLAN strip function +* net/mvpp2: fix array initialization +* net/nfp: fix mbuf flags with checksum good +* net/nfp: fix memcpy out of source range +* net/nfp: fix misuse of strlcpy +* net/nfp: fix RSS +* net/nfp: replace strncpy by strlcpy +* net/octeontx: fix failures when available ports > queues +* net/octeontx: fix mbuf corruption with large private sizes +* net/octeontx: fix packet corruption on Tx +* net/qede/base: fix MFW FLR flow +* net/qede/base: fix to handle stag update event +* net/qede: fix crash when configure fails +* net/qede: fix ethernet type in HW registers +* net/qede: fix flow director for IPv6 filter +* net/qede: fix Rx buffer size calculation +* net/qede: fix strncpy +* net/qede: fix Tx offload mask +* net/qede: fix Tx tunnel offload support mask +* net/qede: replace strncpy by strlcpy +* net/sfc: allow to query RSS key and HF in isolated mode +* net/sfc: allow to query RSS key and HF when RSS is disabled +* net/sfc/base: avoid usage of too big arrays on stack +* net/sfc/base: check size of memory to read sensors data to +* net/sfc/base: fix a typo in unicast filter insertion comment +* net/sfc/base: fix build because of no declaration +* net/sfc/base: fix ID retrieval in v3 licensing +* net/sfc/base: fix MAC Tx stats for less or equal to 64 bytes +* net/sfc/base: fix out of bounds read when dereferencing sdup +* net/sfc/base: fix PreFAST warnings because of unused return +* net/sfc/base: fix SAL annotation for input buffers +* net/sfc/base: make last byte of module information available +* net/sfc/base: prevent access to the NIC config before probe +* net/sfc/base: properly align on line continuation +* net/sfc/base: remove Falcon-specific concurrency check +* net/sfc: do not skip RSS configuration step on reconfigure +* net/sfc: fix an Rx queue double release possibility +* net/sfc: fix a Tx queue double release possibility +* net/sfc: make sure that stats name is nul-terminated +* net/sfc: receive prepared packets even in Rx exception case +* net/softnic: fix undefined dev info fields +* net/tap: fix file descriptor check +* net/thunderx: fix Tx desc corruption in scatter-gather mode +* net/vhost: fix parameters string +* net/virtio: fix PCI config error handling +* net/virtio: fix unchecked return value +* net/virtio: register/unregister intr handler on start/stop +* net/virtio-user: check negotiated features before set +* net/virtio-user: do not reset owner when driver resets +* net/virtio-user: fix typo in error message +* pci: fix parsing of address without function number +* ring: remove signed type flip-flopping +* ring: remove useless variables +* spinlock/x86: move stack declaration before code +* table: fix casting cuckoo hash function +* test/crypto: fix number of queue pairs +* test/event: check burst mode capability +* test/hash: fix bucket size in perf test +* test/hash: fix build +* test: release ring resources after PMD perf test +* test/reorder: fix out of bound access +* usertools: check for lspci dependency +* vfio: do not needlessly setup device in secondary process +* vhost: fix corner case for enqueue operation +* vhost: remove unneeded null pointer check diff --git a/doc/guides/sample_app_ug/compiling.rst b/doc/guides/sample_app_ug/compiling.rst index 8bedaa79..3fe71311 100644 --- a/doc/guides/sample_app_ug/compiling.rst +++ b/doc/guides/sample_app_ug/compiling.rst @@ -36,7 +36,6 @@ This section explains how to compile the DPDK sample applications. To compile all the sample applications -------------------------------------- - Set the path to DPDK source code if its not set: .. code-block:: console @@ -120,3 +119,17 @@ Build the application: export RTE_TARGET=build make + +To cross compile the sample application(s) +------------------------------------------ + +For cross compiling the sample application(s), please append 'CROSS=$(CROSS_COMPILER_PREFIX)' to the 'make' command. +In example of AARCH64 cross compiling: + + .. code-block:: console + + export RTE_TARGET=build + export RTE_SDK=/path/to/rte_sdk + make -C examples CROSS=aarch64-linux-gnu- + or + make CROSS=aarch64-linux-gnu- diff --git a/doc/guides/sample_app_ug/ip_reassembly.rst b/doc/guides/sample_app_ug/ip_reassembly.rst index 7dc80d0b..e5b8ef70 100644 --- a/doc/guides/sample_app_ug/ip_reassembly.rst +++ b/doc/guides/sample_app_ug/ip_reassembly.rst @@ -50,8 +50,8 @@ There are two key differences from the L2 Forwarding sample application: * The second difference is that the application differentiates between IP and non-IP traffic by means of offload flags. -The Longest Prefix Match (LPM for IPv4, LPM6 for IPv6) table is used to store/lookup an outgoing port number, associated with that IPv4 address. Any unmatched packets are forwarded to the originating port.Compiling the Application --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +The Longest Prefix Match (LPM for IPv4, LPM6 for IPv6) table is used to store/lookup an outgoing port number, +associated with that IPv4 address. Any unmatched packets are forwarded to the originating port. Compiling the Application diff --git a/doc/guides/sample_app_ug/ipv4_multicast.rst b/doc/guides/sample_app_ug/ipv4_multicast.rst index 7a8e7ebc..cca53096 100644 --- a/doc/guides/sample_app_ug/ipv4_multicast.rst +++ b/doc/guides/sample_app_ug/ipv4_multicast.rst @@ -346,7 +346,6 @@ It is the mcast_out_pkt() function that performs the packet duplication (either hdr->pkt.in_port = pkt->pkt.in_port; hdr->pkt.vlan_macip = pkt->pkt.vlan_macip; hdr->pkt.hash = pkt->pkt.hash; - hdr->ol_flags = pkt->ol_flags; rte_mbuf_sanity_check(hdr, RTE_MBUF_PKT, 1); return hdr; diff --git a/doc/guides/sample_app_ug/vhost.rst b/doc/guides/sample_app_ug/vhost.rst index 5735adbb..99e1a2d8 100644 --- a/doc/guides/sample_app_ug/vhost.rst +++ b/doc/guides/sample_app_ug/vhost.rst @@ -107,7 +107,7 @@ could be done by: .. code-block:: console modprobe uio_pci_generic - $RTE_SDK/usertools/dpdk-devbind.py -b=uio_pci_generic 0000:00:04.0 + $RTE_SDK/usertools/dpdk-devbind.py -b uio_pci_generic 0000:00:04.0 Then start testpmd for packet forwarding testing. diff --git a/doc/guides/testpmd_app_ug/run_app.rst b/doc/guides/testpmd_app_ug/run_app.rst index 4c0d2ced..e5028137 100644 --- a/doc/guides/testpmd_app_ug/run_app.rst +++ b/doc/guides/testpmd_app_ug/run_app.rst @@ -355,7 +355,7 @@ The commandline options are: io (the default) mac - mac_swap + macswap flowgen rxonly txonly diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst index c9ce85c9..3d7478e5 100644 --- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst +++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst @@ -2122,13 +2122,16 @@ Add port traffic management private shaper profile Add the port traffic management private shaper profile:: testpmd> add port tm node shaper profile (port_id) (shaper_profile_id) \ - (tb_rate) (tb_size) (packet_length_adjust) + (cmit_tb_rate) (cmit_tb_size) (peak_tb_rate) (peak_tb_size) \ + (packet_length_adjust) where: * ``shaper_profile id``: Shaper profile ID for the new profile. -* ``tb_rate``: Token bucket rate (bytes per second). -* ``tb_size``: Token bucket size (bytes). +* ``cmit_tb_rate``: Committed token bucket rate (bytes per second). +* ``cmit_tb_size``: Committed token bucket size (bytes). +* ``peak_tb_rate``: Peak token bucket rate (bytes per second). +* ``peak_tb_size``: Peak token bucket size (bytes). * ``packet_length_adjust``: The value (bytes) to be added to the length of each packet for the purpose of shaping. This parameter value can be used to correct the packet length with the framing overhead bytes that are consumed |