summaryrefslogtreecommitdiffstats
path: root/doc/guides
diff options
context:
space:
mode:
authorChristian Ehrhardt <christian.ehrhardt@canonical.com>2016-12-05 11:42:44 +0100
committerChristian Ehrhardt <christian.ehrhardt@canonical.com>2016-12-05 11:46:26 +0100
commit32e04ea00cd159613e04acef75e52bfca6eeff2f (patch)
treef19e4885612e596bb8c8c3c5914157ae5417e180 /doc/guides
parent6cfa4f771efe39dbc944e799cbe465134c8931fa (diff)
Imported Upstream version 16.07.2
Change-Id: I76bc313e0942233ce259612069ded302dd6c87bb Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Diffstat (limited to 'doc/guides')
-rw-r--r--doc/guides/nics/enic.rst53
-rw-r--r--doc/guides/nics/i40e.rst48
-rw-r--r--doc/guides/nics/mlx5.rst3
-rw-r--r--doc/guides/rel_notes/release_16_07.rst141
-rw-r--r--doc/guides/testpmd_app_ug/testpmd_funcs.rst3
5 files changed, 240 insertions, 8 deletions
diff --git a/doc/guides/nics/enic.rst b/doc/guides/nics/enic.rst
index 42e781e3..26692022 100644
--- a/doc/guides/nics/enic.rst
+++ b/doc/guides/nics/enic.rst
@@ -59,11 +59,31 @@ Configuration information
- **Number of Queues**
- The maximum number of receive and transmit queues are configurable on a per
- vNIC basis through the Cisco UCS Manager (CIMC or UCSM). These values
- should be configured to be greater than or equal to the nb_rx_q and nb_tx_q
- parameters expected to used in the call to the rte_eth_dev_configure()
- function.
+ The maximum number of receive queues (RQs), work queues (WQs) and
+ completion queues (CQs) are configurable on a per vNIC basis
+ through the Cisco UCS Manager (CIMC or UCSM).
+
+ These values should be configured as follows:
+
+ - The number of WQs should be greater or equal to the value of the
+ expected nb_tx_q parameter in the call to the
+ rte_eth_dev_configure()
+
+ - The number of RQs configured in the vNIC should be greater or
+ equal to *twice* the value of the expected nb_rx_q parameter in
+ the call to rte_eth_dev_configure(). With the addition of rx
+ scatter, a pair of RQs on the vnic is needed for each receive
+ queue used by DPDK, even if rx scatter is not being used.
+ Having a vNIC with only 1 RQ is not a valid configuration, and
+ will fail with an error message.
+
+ - The number of CQs should set so that there is one CQ for each
+ WQ, and one CQ for each pair of RQs.
+
+ For example: If the application requires 3 Rx queues, and 3 Tx
+ queues, the vNIC should be configured to have at least 3 WQs, 6
+ RQs (3 pairs), and 6 CQs (3 for use by WQs + 3 for use by the 3
+ pairs of RQs).
- **Size of Queues**
@@ -71,6 +91,29 @@ Configuration information
a per vNIC bases via the UCS Manager and should be greater than or equal to
the nb_rx_desc and nb_tx_desc parameters expected to be used in the calls
to rte_eth_rx_queue_setup() and rte_eth_tx_queue_setup() respectively.
+ An application requesting more than the set size will be limited to that
+ size.
+
+ Unless there is a lack of resources due to creating many vNICs, it
+ is recommended that the WQ and RQ sizes be set to the maximum. This
+ gives the application the greatest amount of flexibility in its
+ queue configuration.
+
+ - *Note*: Since the introduction of rx scatter, for performance
+ reasons, this PMD uses two RQs on the vNIC per receive queue in
+ DPDK. One RQ holds descriptors for the start of a packet the
+ second RQ holds the descriptors for the rest of the fragments of
+ a packet. This means that the nb_rx_desc parameter to
+ rte_eth_rx_queue_setup() can be a greater than 4096. The exact
+ amount will depend on the size of the mbufs being used for
+ receives, and the MTU size.
+
+ For example: If the mbuf size is 2048, and the MTU is 9000, then
+ receiving a full size packet will take 5 descriptors, 1 from the
+ start of packet queue, and 4 from the second queue. Assuming
+ that the RQ size was set to the maximum of 4096, then the
+ application can specify up to 1024 + 4096 as the nb_rx_desc
+ parameter to rte_eth_rx_queue_setup().
- **Interrupts**
diff --git a/doc/guides/nics/i40e.rst b/doc/guides/nics/i40e.rst
index 4d12b10c..5780268f 100644
--- a/doc/guides/nics/i40e.rst
+++ b/doc/guides/nics/i40e.rst
@@ -411,3 +411,51 @@ configuration passed on the EAL command line.
The floating VEB functionality requires a NIC firmware version of 5.0
or greater.
+
+
+Limitations or Known issues
+---------------------------
+
+MPLS packet classification on X710/XL710
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+For firmware versions prior to 5.0, MPLS packets are not recognized by the NIC.
+The L2 Payload flow type in flow director can be used to classify MPLS packet
+by using a command in testpmd like:
+
+ testpmd> flow_director_filter 0 mode IP add flow l2_payload ether \
+ 0x8847 flexbytes () fwd pf queue <N> fd_id <M>
+
+With the NIC firmware version 5.0 or greater, some limited MPLS support
+is added: Native MPLS (MPLS in Ethernet) skip is implemented, while no
+new packet type, no classification or offload are possible. With this change,
+L2 Payload flow type in flow director cannot be used to classify MPLS packet
+as with previous firmware versions. Meanwhile, the Ethertype filter can be
+used to classify MPLS packet by using a command in testpmd like:
+
+ testpmd> ethertype_filter 0 add mac_ignr 00:00:00:00:00:00 ethertype \
+ 0x8847 fwd queue <M>
+
+16 Byte Descriptor cannot be used on DPDK VF
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If the Linux i40e kernel driver is used as host driver, while DPDK i40e PMD
+is used as the VF driver, DPDK cannot choose 16 byte receive descriptor. That
+is to say, user should keep ``CONFIG_RTE_LIBRTE_I40E_16BYTE_RX_DESC=n`` in
+config file.
+
+Link down with i40e kernel driver after DPDK application exist
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+After DPDK application quit, and the device is bound back to Linux i40e
+kernel driver, the link cannot be up after ``ifconfig <dev> up``.
+To work around this issue, ``ethtool -s <dev> autoneg on`` should be
+set first and then the link can be brought up through ``ifconfig <dev> up``.
+
+NOTE: requires Linux kernel i40e driver version >= 1.4.X
+
+Receive packets with Ethertype 0x88A8
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Due to the FW limitation, PF can receive packets with Ethertype 0x88A8
+only when floating VEB is disabled.
diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
index 5c10cd34..89231738 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
@@ -84,7 +84,8 @@ Features
- Promiscuous mode.
- Multicast promiscuous mode.
- Hardware checksum offloads.
-- Flow director (RTE_FDIR_MODE_PERFECT and RTE_FDIR_MODE_PERFECT_MAC_VLAN).
+- Flow director (RTE_FDIR_MODE_PERFECT, RTE_FDIR_MODE_PERFECT_MAC_VLAN and
+ RTE_ETH_FDIR_REJECT).
- Secondary process TX is supported.
- KVM and VMware ESX SR-IOV modes are supported.
diff --git a/doc/guides/rel_notes/release_16_07.rst b/doc/guides/rel_notes/release_16_07.rst
index a8a3fc11..4d6e0d50 100644
--- a/doc/guides/rel_notes/release_16_07.rst
+++ b/doc/guides/rel_notes/release_16_07.rst
@@ -548,3 +548,144 @@ Tested OSes
- Ubuntu 16.04 LTS
- Wind River Linux 8
+Fixes in Stable Release
+-----------------------
+
+16.07.1
+~~~~~~~
+
+The following fixes were applied in DPDK 16.07.01 Stable Release:
+
+* app/test: fix verification of digest for GCM
+* app/testpmd: fix crash when mempool allocation fails
+* app/testpmd: fix help of MTU set commmand
+* app/testpmd: fix timeout in Rx queue flushing
+* contigmem: zero all pages during mmap
+* crypto/null: fix key size increment value
+* crypto/qat: fix FreeBSD build
+* crypto: fix build with icc
+* examples/ip_pipeline: fix Python interpreter
+* examples/ip_pipeline: fix lcore mapping for ppc64
+* hash: fix false zero signature key hit lookup
+* hash: fix ring size
+* mbuf: fix error handling on pool creation
+* mem: fix build with -O1
+* mem: fix crash on hugepage mapping error
+* mempool: fix corruption due to invalid handler
+* net/e1000: fix returned number of available Rx descriptors
+* net/enic: fix bad L4 checksum flag on ICMP packets
+* net/enic: fix freeing memory for descriptor ring
+* net/fm10k: fix MAC address removal from switch
+* net/i40e/base: fix UDP packet header
+* net/i40e: fix dropping packets with ethertype 0x88A8
+* net/i40e: fix mbuf leak during Rx queue release
+* net/i40e: fix null pointer dereferences when using VMDq+RSS
+* net/i40e: fix parsing QinQ packets type
+* net/ixgbe/base: fix check for NACK
+* net/ixgbe/base: fix pointer check
+* net/ixgbe/base: fix possible corruption of shadow RAM
+* net/ixgbe/base: fix skipping PHY config
+* net/ixgbe: fix VF reset to apply to correct VF
+* net/ixgbe: fix mbuf leak during Rx queue release
+* net/mlx: fix debug build with gcc 6.1
+* net/nfp: fix copying MAC address
+* net/pcap: fix memory leak in jumbo frames
+* net/virtio: fix xstats name
+* net/virtio_user: fix error management during init
+* net/virtio_user: fix first queue pair without multiqueue
+* net/virtio_user: fix wrong sequence of messages
+* pci: fix memory leak when detaching device
+* pmdinfogen: fix clang build
+* sched: fix releasing enqueued packets
+* table: fix symbol exports
+* timer: fix lag delay
+* tools: fix json output of pmdinfo
+* tools: fix virtio interface name when binding
+
+
+16.07.2
+~~~~~~~
+
+* app/procinfo: free xstats memory upon failure
+* app/test: fix hash multiwriter sequence
+* app/testpmd: fix DCB configuration
+* app/testpmd: fix DCB configuration
+* app/testpmd: fix PF/VF check of flow director
+* app/testpmd: fix RSS hash key size
+* app/testpmd: fix flow director endianness
+* app/testpmd: fix flow director mask
+* doc: add limitations for i40e PMD
+* eal/arm: fix file descriptor leak when getting CPU features
+* eal/ppc: fix file descriptor leak when getting CPU features
+* ethdev: fix vendor id in debug message
+* ethdev: prevent duplicate event callback
+* examples/ip_pipeline: fix plugin loading
+* examples/ipsec-secgw: check SP only when setup
+* examples/l2fwd-crypto: fix verify with decrypt in chain
+* examples/qos_sched: fix dequeue from ring
+* examples/tep_term: fix L4 length
+* examples/tep_term: fix packet length with multi-segments
+* hash: fix bucket size usage
+* hash: fix unlimited cuckoo path
+* kni: fix build with kernel 4.8
+* kni: fix build with kernel 4.9
+* lpm: fix freeing memory
+* lpm: fix freeing unused sub-table on rule delete
+* mempool: fix leak if populate fails
+* mempool: fix search of maximum contiguous pages
+* net/bnx2x: fix build with icc
+* net/bnx2x: fix maximum PF queues
+* net/bnx2x: fix socket id for slowpath memory
+* net/bnxt: ensure entry length is unsigned
+* net/bnxt: fix bit shift size
+* net/bnxt: fix crash when closing
+* net/bonding: validate speed after link up
+* net/ena: improve safety of string handling
+* net/enic: document how to configure vNIC parameters
+* net/enic: fix Rx queue index when not using Rx scatter
+* net/enic: fix crash on MTU update or Rx queue reconfigure
+* net/enic: fix crash with removed flow director filters
+* net/enic: fix flow director
+* net/enic: fix max packet length check
+* net/enic: fix multi-queue Rx performance
+* net/enic: revert truncated packets counter fix
+* net/fm10k: fix Rx checksum flags
+* net/fm10k: fix VF Tx queue initialization
+* net/fm10k: fix out of order Rx read
+* net/i40e: do not use VSI before NULL check
+* net/i40e: fix DCB configuration
+* net/i40e: fix Rx hang when disable LLDP
+* net/i40e: fix VF bonded device link down
+* net/i40e: fix floating VEB
+* net/i40e: fix hash filter on X722
+* net/i40e: fix link status change interrupt
+* net/i40e: fix out of order Rx read
+* net/i40e: fixed build error with icc
+* net/ixgbe: fix VF registers
+* net/ixgbe: fix flow director mask
+* net/ixgbe: fix out of order Rx read
+* net/mlx5: fix Rx VLAN offload capability report
+* net/mlx5: fix Rx checksum macros
+* net/mlx5: fix Rx function selection
+* net/mlx5: fix flow director drop mode
+* net/mlx5: fix handling of small mbuf sizes
+* net/mlx5: fix hash key size retrieval
+* net/mlx5: fix inconsistent return value in flow director
+* net/mlx5: fix initialization in secondary process
+* net/mlx5: fix inline logic
+* net/mlx5: fix link speed capability information
+* net/mlx5: fix link status report
+* net/mlx5: fix possible NULL dereference in Rx path
+* net/mlx5: fix removing VLAN filter
+* net/mlx5: fix support for newer link speeds
+* net/mlx5: re-factorize functions
+* net/mlx5: refactor allocation of flow director queues
+* net/mlx5: support Mellanox OFED 3.4
+* net/qede/base: fix 32-bit build
+* net/ring: fix ring device creation via devargs
+* net/thunderx: fix Tx checksum handling
+* net/virtio: revert fix restart
+* net/vmxnet3: fix mbuf release on reset/stop
+* pci: fix probing error if no driver found
+* pdump: fix created directory permissions
+* vhost: fix Windows VM hang
diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
index f87e0c29..ed04532a 100644
--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
@@ -1844,8 +1844,7 @@ Set flow director's input masks::
src_mask (ipv4_src) (ipv6_src) (src_port) \
dst_mask (ipv4_dst) (ipv6_dst) (dst_port)
- flow_director_mask (port_id) mode MAC-VLAN vlan (vlan_value) \
- mac (mac_value)
+ flow_director_mask (port_id) mode MAC-VLAN vlan (vlan_value)
flow_director_mask (port_id) mode Tunnel vlan (vlan_value) \
mac (mac_value) tunnel-type (tunnel_type_value) \