From f7a9461e29147c47ce2bb81bd157ac1833cf5eb1 Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Wed, 20 Mar 2019 14:45:09 +0000 Subject: New upstream version 16.11.9 Change-Id: Ia1ac246c53e5050b6a29d6952fb668ad6c782996 Signed-off-by: Luca Boccassi --- doc/guides/contributing/documentation.rst | 4 +- doc/guides/contributing/patches.rst | 8 +- doc/guides/cryptodevs/qat.rst | 3 +- doc/guides/freebsd_gsg/install_from_ports.rst | 2 +- doc/guides/howto/flow_bifurcation.rst | 2 +- doc/guides/linux_gsg/nic_perf_intel_platform.rst | 2 +- doc/guides/linux_gsg/sys_reqs.rst | 6 ++ doc/guides/nics/ena.rst | 15 ++- doc/guides/nics/enic.rst | 46 ++++++++- doc/guides/nics/features/ena.ini | 1 + doc/guides/rel_notes/release_16_11.rst | 117 +++++++++++++++++++++++ doc/guides/sample_app_ug/ip_reassembly.rst | 4 +- doc/guides/sample_app_ug/ipv4_multicast.rst | 1 - doc/guides/sample_app_ug/vhost.rst | 2 +- doc/guides/testpmd_app_ug/run_app.rst | 2 +- doc/guides/testpmd_app_ug/testpmd_funcs.rst | 2 +- 16 files changed, 193 insertions(+), 24 deletions(-) (limited to 'doc') diff --git a/doc/guides/contributing/documentation.rst b/doc/guides/contributing/documentation.rst index 2cfb1a29..2545abc7 100644 --- a/doc/guides/contributing/documentation.rst +++ b/doc/guides/contributing/documentation.rst @@ -81,7 +81,7 @@ added to by the developer. * **API documentation** The API documentation explains how to use the public DPDK functions. - The `API index page `_ shows the generated API documentation with related groups of functions. + The `API index page `_ shows the generated API documentation with related groups of functions. The API documentation should be updated via Doxygen comments when new functions are added. @@ -669,7 +669,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 `_ that contains the above text. + `online section of the rte_ethdev.h docs `_ 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 729aea71..db851b51 100644 --- a/doc/guides/contributing/patches.rst +++ b/doc/guides/contributing/patches.rst @@ -22,9 +22,9 @@ The DPDK development process has the following features: * Patches are reviewed publicly on the mailing list. * Successfully reviewed patches are merged to the master branch of the repository. -The mailing list for DPDK development is `dev@dpdk.org `_. -Contributors will need to `register for the mailing list `_ in order to submit patches. -It is also worth registering for the DPDK `Patchwork `_ +The mailing list for DPDK development is `dev@dpdk.org `_. +Contributors will need to `register for the mailing list `_ in order to submit patches. +It is also worth registering for the DPDK `Patchwork `_ The development process requires some familiarity with the ``git`` version control system. Refer to the `Pro Git Book `_ for further information. @@ -347,7 +347,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 `_. +`for example `_. 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/cryptodevs/qat.rst b/doc/guides/cryptodevs/qat.rst index 2173819e..c46a62ea 100644 --- a/doc/guides/cryptodevs/qat.rst +++ b/doc/guides/cryptodevs/qat.rst @@ -89,7 +89,7 @@ To use the DPDK QAT PMD an SRIOV-enabled QAT kernel driver is required. The VF devices exposed by this driver will be used by QAT PMD. To enable QAT in DPDK, follow the instructions mentioned in -http://dpdk.org/doc/guides/linux_gsg/build_dpdk.html +http://doc.dpdk.org/guides/linux_gsg/build_dpdk.html Quick instructions as follows: @@ -107,7 +107,6 @@ For **Intel QuickAssist Technology C62x** and **Intel QuickAssist Technology C3x device, kernel 4.5 or greater is needed. See instructions for `Installation using kernel.org driver`_ below. - Installation using 01.org QAT driver ------------------------------------ diff --git a/doc/guides/freebsd_gsg/install_from_ports.rst b/doc/guides/freebsd_gsg/install_from_ports.rst index 81770291..44bbdfef 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 0d7226ae..cf5d6942 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 `_ + `cloud filter test plan `_ diff --git a/doc/guides/linux_gsg/nic_perf_intel_platform.rst b/doc/guides/linux_gsg/nic_perf_intel_platform.rst index d4a83624..e6cf1b94 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 `_ high end NIC such as the Intel XL710 40GbE. +Use a `DPDK 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 3d743421..4845ca45 100644 --- a/doc/guides/linux_gsg/sys_reqs.rst +++ b/doc/guides/linux_gsg/sys_reqs.rst @@ -86,6 +86,12 @@ Compilation of the DPDK .. note:: +* Library for handling NUMA (Non Uniform Memory Access). + + * numactl-devel in Red Hat/Fedora; + + * libnuma-dev in Debian/Ubuntu; + Python, version 2.6 or 2.7, 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 073b35ae..9062d7bf 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 c535b589..7738829e 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-.tar.gz -should be downloaded from http://dpdk.org +should be downloaded from http://core.dpdk.org/download/ Configuration information @@ -140,6 +140,35 @@ Masking of these feilds for partial match is also supported. Without advanced filter support, the flow director is limited to IPv4 perfect filtering of the 5-tuple with no masking of fields supported. +Ingress VLAN Rewrite +-------------------- + +VIC adapters can tag, untag, or modify the VLAN headers of ingress +packets. The ingress VLAN rewrite mode controls this behavior. By +default, it is set to pass-through, where the NIC does not modify the +VLAN header in any way so that the application can see the original +header. This mode is sufficient for many applications, but may not be +suitable for others. Such applications may change the mode by setting +``devargs`` parameter ``ig-vlan-rewrite`` to one of the following. + +- ``pass``: Pass-through mode. The NIC does not modify the VLAN + header. This is the default mode. + +- ``priority``: Priority-tag default VLAN mode. If the ingress packet + is tagged with the default VLAN, the NIC replaces its VLAN header + with the priority tag (VLAN ID 0). + +- ``trunk``: Default trunk mode. The NIC tags untagged ingress packets + with the default VLAN. Tagged ingress packets are not modified. To + the application, every packet appears as tagged. + +- ``untag``: Untag default VLAN mode. If the ingress packet is tagged + with the default VLAN, the NIC removes or untags its VLAN header so + that the application sees an untagged packet. As a result, the + default VLAN becomes `untagged`. This mode can be useful for + applications such as OVS-DPDK performance benchmarks that utilize + only the default VLAN and want to see only untagged packets. + Limitations ----------- @@ -153,9 +182,10 @@ Limitations In test setups where an Ethernet port of a Cisco adapter in TRUNK mode is connected point-to-point to another adapter port or connected though a router instead of a switch, all ingress packets will be VLAN tagged. Programs such - as l3fwd which do not account for VLAN tags in packets will misbehave. The - solution is to enable VLAN stripping on ingress. The follow code fragment is - example of how to accomplish this: + as l3fwd may not account for VLAN tags in packets and may misbehave. One + solution is to enable VLAN stripping on ingress so the VLAN tag is removed + from the packet and put into the mbuf->vlan_tci field. Here is an example + of how to accomplish this: .. code-block:: console @@ -163,6 +193,14 @@ Limitations vlan_offload |= ETH_VLAN_STRIP_OFFLOAD; rte_eth_dev_set_vlan_offload(port, vlan_offload); +Another alternative is modify the adapter's ingress VLAN rewrite mode so that +packets with the default VLAN tag are stripped by the adapter and presented to +DPDK as untagged packets. In this case mbuf->vlan_tci and the PKT_RX_VLAN and +PKT_RX_VLAN_STRIPPED mbuf flags would not be set. This mode is enabled with the +``devargs`` parameter ``ig-vlan-rewrite=untag``. For example:: + + -w 12:00.0,ig-vlan-rewrite=untag + - Limited flow director support on 1200 series and 1300 series Cisco VIC adapters with old firmware. Please see :ref:`enic-flow-director`. diff --git a/doc/guides/nics/features/ena.ini b/doc/guides/nics/features/ena.ini index 74969fd0..d607fcc3 100644 --- a/doc/guides/nics/features/ena.ini +++ b/doc/guides/nics/features/ena.ini @@ -22,5 +22,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/rel_notes/release_16_11.rst b/doc/guides/rel_notes/release_16_11.rst index 012cf73a..5d54b23a 100644 --- a/doc/guides/rel_notes/release_16_11.rst +++ b/doc/guides/rel_notes/release_16_11.rst @@ -1363,3 +1363,120 @@ Fixes in 16.11 LTS Release * test/hash: fix potential memory leak * test/virtual_pmd: add MAC address setting fake op * vhost: fix missing increment of log cache count + +16.11.9 +~~~~~~~ + +* acl: forbid rule with priority zero +* app/testpmd: fix csum parse-tunnel command invocation +* app/testpmd: fix displaying RSS hash functions +* app/testpmd: fix duplicate exit +* app/testpmd: fix L4 length for UDP checksum +* app/testpmd: optimize mbuf pool allocation +* build: enable ARM NEON flag when __aarch64__ defined +* bus/pci: fix allocation of device path +* config: enable more than 128 cores for arm64 +* config: make AVX and AVX512 configurable +* doc: add VFIO in ENA guide +* doc: fix formatting in IP reassembly app guide +* doc: fix NUMA library name in Linux guide +* doc: fix typo in testpmd guide +* doc: fix wrong usage of bind command +* eal: fix build +* eal: fix build with gcc 9.0 +* eal: fix build with -O1 +* eal: introduce rte version of fls +* eal/linux: fix memory leak of logid +* eal/linux: handle UIO read failure in interrupt handler +* eal: use correct data type for bitmap slab operations +* ethdev: fix doxygen comment to be with structure +* ethdev: fix invalid configuration after failure +* ethdev: fix queue start and stop +* examples/ipv4_multicast: fix leak of cloned packets +* examples/vhost: remove unnecessary constant +* fix dpdk.org URLs +* fix global variable issues +* hash: fix key store element alignment +* hash: remove unnecessary pause +* igb_uio: fix unexpected removal for hot-unplug +* igb_uio: issue FLR during open and release of device file +* igb_uio: remove device reset in open +* igb_uio: remove device reset in release +* ip_frag: check fragment length of incoming packet +* ip_frag: fix overflow in key comparison +* ip_frag: use key length for key comparison +* kni: fix build on CentOS 7.4 +* kni: fix build on Linux < 3.14 +* kni: fix build on Linux 4.19 +* kni: fix build on Suse 12 SP3 +* kni: fix kernel FIFO synchronization +* kni: fix possible uninitialized variable +* kni: fix SLE version detection +* kvargs: fix processing a null list +* 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 uninitialized pointer access in Tx +* net/bnxt: reduce polling interval for valid bit +* net/bnxt: remove excess log messages +* net/bnxt: set a VNIC as default only once +* net/bnxt: set MAC filtering as outer for non tunnel frames +* net/bonding: do not ignore RSS key on device config +* net/bonding: fix crash when stopping mode 4 port +* net/bonding: fix Rx slave fairness +* net/bonding: reduce slave starvation on Rx poll +* 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: add dependency on librte_kvargs +* net/enic: add devarg to specify ingress VLAN rewrite mode +* net/enic: do not use non-standard integer types +* net/enic: set Rx VLAN offload flag for non-stripped packets +* net: fix build with pedantic +* net/i40e/base: correct global reset timeout calculation +* net/i40e/base: fix partition id calculation for X722 +* net/i40e/base: gracefully clean the resources +* net/i40e/base: properly clean resources +* net/i40e: enable loopback function for X722 MAC +* 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 maximum wait time in comment +* net/ixgbe: fix TDH register write +* net/ixgbe: update Tx offload mask +* net/ixgbevf: fix link state +* net/ixgbe: wait longer for link after fiber MAC setup +* net/mlx5: fix build on PPC64 +* net/nfp: fix live MAC changes not supported +* net/nfp: fix mbuf flags with checksum good +* net/nfp: fix RSS +* net/thunderx: fix Tx desc corruption in scatter-gather mode +* net/vhost: fix parameters string +* net/virtio: add missing supported features +* net/virtio: register/unregister intr handler on start/stop +* 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 +* test/crypto: fix number of queue pairs +* test/hash: fix bucket size in perf test +* test/hash: fix build +* test/kni: check module dependency +* test/reorder: fix out of bound access +* usertools: check for lspci dependency +* version: 16.11.9-rc1 +* version: 16.11.9-rc2 +* vfio: fix build +* vfio: fix build on old kernel +* vhost: fix corner case for enqueue operation +* vhost: fix payload size of reply +* vhost: remove unneeded null pointer check +* vhost-user: drop connection on message handling failures +* vhost-user: fix false negative in handling user messages diff --git a/doc/guides/sample_app_ug/ip_reassembly.rst b/doc/guides/sample_app_ug/ip_reassembly.rst index 3c5cc708..4c75bd08 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. To compile the application: diff --git a/doc/guides/sample_app_ug/ipv4_multicast.rst b/doc/guides/sample_app_ug/ipv4_multicast.rst index 72da8c42..6badc681 100644 --- a/doc/guides/sample_app_ug/ipv4_multicast.rst +++ b/doc/guides/sample_app_ug/ipv4_multicast.rst @@ -365,7 +365,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 1f6d0d96..c9a605fc 100644 --- a/doc/guides/sample_app_ug/vhost.rst +++ b/doc/guides/sample_app_ug/vhost.rst @@ -115,7 +115,7 @@ could be done by: .. code-block:: console modprobe uio_pci_generic - $RTE_SDK/tools/dpdk-devbind.py -b=uio_pci_generic 0000:00:04.0 + $RTE_SDK/tools/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 ac7d4582..65d54224 100644 --- a/doc/guides/testpmd_app_ug/run_app.rst +++ b/doc/guides/testpmd_app_ug/run_app.rst @@ -337,7 +337,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 a906974f..45280c1c 100644 --- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst +++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst @@ -201,7 +201,7 @@ show port rss-hash Display the RSS hash functions and RSS hash key of a port:: - testpmd> show port (port_id) rss-hash ipv4|ipv4-frag|ipv4-tcp|ipv4-udp|ipv4-sctp|ipv4-other|ipv6|ipv6-frag|ipv6-tcp|ipv6-udp|ipv6-sctp|ipv6-other|l2-payload|ipv6-ex|ipv6-tcp-ex|ipv6-udp-ex [key] + testpmd> show port (port_id) rss-hash [key] clear port ~~~~~~~~~~ -- cgit 1.2.3-korg