A new function ``rte_pktmbuf_alloc_bulk()`` has been added to allow the user
to allocate a bulk of mbufs.
+* **Added device link speed capabilities.**
+
+ The structure ``rte_eth_dev_info`` has now a ``speed_capa`` bitmap, which
+ allows the application to know the supported speeds of each device.
+
+* **Added bitmap of link speeds to advertise.**
+
+ Allow defining a set of advertised speeds for auto-negotiation,
+ explicitly disabling link auto-negotiation (single speed)
+ and full auto-negotiation.
+
+* **Added new poll-mode driver for Amazon Elastic Network Adapters (ENA).**
+
+ The driver operates variety of ENA adapters through feature negotiation
+ with the adapter and upgradable commands set.
+ ENA driver handles PCI Physical and Virtual ENA functions.
+
+* **Restored vmxnet3 Tx data ring.**
+
+ Tx data ring has been shown to improve small pkt forwarding performance
+ on vSphere environment.
+
+* **Added vmxnet3 Tx L4 checksum offload.**
+
+ Support TCP/UDP checksum offload.
+
+* **Added vmxnet3 TSO support.**
+
+* **Added vmxnet3 support for jumbo frames.**
+
+ Added support for linking multi-segment buffers together to
+ handle Jumbo packets.
+
* **Virtio 1.0.**
Enabled virtio 1.0 support for virtio pmd driver.
* **Added vhost-user live migration support.**
+* **Added vhost driver.**
+
+ Added virtual PMD that wraps librte_vhost.
+
* **Added multicast promiscuous mode support on VF for ixgbe.**
Added multicast promiscuous mode support on ixgbe VF driver. So all the VFs
* **Added i40e VEB switching support.**
+* **Added Flow director enhancements in i40e.**
+
+* **Added PF reset event reporting in i40e VF driver.**
+
* **Added fm10k Rx interrupt support.**
+* **Optimized fm10k Tx.**
+
+ * Free multiple mbufs at a time to reduce freeing mbuf cycles.
+
+* **Handled error flags in fm10k vector Rx.**
+
+ Parse err flags in Rx desc and set error bits in mbuf with vector instructions.
+
+* **Added fm10k FTAG based forwarding support.**
+
+* **Added mlx5 flow director support.**
+
+ Added flow director support (RTE_FDIR_MODE_PERFECT and
+ RTE_FDIR_MODE_PERFECT_MAC_VLAN).
+
+ Only available with Mellanox OFED >= 3.2.
+
+* **Added mlx5 RX VLAN stripping support.**
+
+ Added support for RX VLAN stripping.
+
+ Only available with Mellanox OFED >= 3.2.
+
+* **Added mlx5 link up/down callbacks.**
+
+ Implemented callbacks to bring link up and down.
+
+* **Added mlx5 support for operation in secondary processes.**
+
+ Implemented TX support in secondary processes (like mlx4).
+
+* **Added mlx5 RX CRC stripping configuration.**
+
+ Until now, CRC was always stripped. It can now be configured.
+
+ Only available with Mellanox OFED >= 3.2.
+
+* **Added mlx5 optional packet padding by HW.**
+
+ Added an option to make PCI bus transactions rounded to multiple of a
+ cache line size for better alignment.
+
+ Only available with Mellanox OFED >= 3.2.
+
+* **Added mlx5 TX VLAN insertion support.**
+
+ Added support for TX VLAN insertion.
+
+ Only available with Mellanox OFED >= 3.2.
+
+* **Changed szedata2 type of driver from vdev to pdev.**
+
+ Previously szedata2 device had to be added by ``--vdev`` option.
+ Now szedata2 PMD recognises the device automatically during EAL
+ initialization.
+
+* **Added szedata2 functions for setting link up/down.**
+
+* **Added szedata2 promiscuous and allmulticast modes.**
+
+* **Added af_packet dynamic removal function.**
+
+ Af_packet device can now be detached using API, like other PMD devices.
+
* **Increased number of next hops for LPM IPv4 to 2^24.**
The next_hop field is extended from 8 bits to 24 bits for IPv4.
Added new Crypto PMD to support null crypto operations in SW.
+* **Improved IP Pipeline Application.**
+
+ The following features have been added to ip_pipeline application;
+
+ * Added CPU utilization measurement and idle cycle rate computation.
+ * Added link idenfication support through existing port-mask option or by
+ specifying PCI device in every LINK section in the configuration file.
+ * Added load balancing support in passthrough pipeline.
+
* **Added IPsec security gateway example.**
New application implementing an IPsec Security Gateway.
Drivers
~~~~~~~
+* **ethdev: Fixed overflow for 100Gbps.**
+
+ 100Gbps in Mbps (100000) was exceeding 16-bit max value of ``link_speed``
+ in ``rte_eth_link``.
+
* **ethdev: Fixed byte order consistency between fdir flow and mask.**
Fixed issue in ethdev library that the structure for setting
The driver now set the MDIO clock speed prior to initializing PHY ops and
again after the MAC reset.
+* **ixgbe: Fixed maximum number of available TX queues.**
+
+ In IXGBE, the maximum number of TX queues varies depending on the NIC operating
+ mode. This was not being updated in the device information, providing
+ an incorrect number in some cases.
+
* **i40e: Generated MAC address for each VFs.**
It generates a MAC address for each VFs during PF host initialization,
under stress with traffic, which might result in application launch
failure.
+* **i40e: Enabled vector driver by default.**
+
+ Previously, vector driver is disabled by default as it cannot fill packet type
+ info for l3fwd to work well. Now there is an option for l3fwd to analysis
+ packet type softly, so enable vector driver by default.
+
+* **i40e: Fixed link info of VF.**
+
+ Previously, the VF's link speed kept as 10G and status always was up.
+ It did not change even the physical link's status changed.
+ Now this issue is fixed to make VF's link info consistent with physical link.
+
+* **mlx5: Fixed possible crash during initialization.**
+
+ A crash could occur when failing to allocate private device context.
+
+* **mlx5: Added port type check.**
+
+ Done to prevent port initialization on non-Ethernet link layers and
+ to report an error.
+
+* **mlx5: Applied VLAN filtering to broadcast and IPv6 multicast flows.**
+
+ Prevented reception of multicast frames outside of configured VLANs.
+
+* **mlx5: Fixed RX checksum offload in non L3/L4 packets.**
+
+ Fixed report of bad checksum for packets of unknown type.
+
* **aesni_mb: Fixed wrong return value when creating a device.**
cryptodev_aesni_mb_init() was returning the device id of the device created,
Fix crc32c hash functions to return a valid crc32c value for data lengths
not multiple of 4 bytes.
+* **hash: Fixed hash library to support multi-process mode.**
+
+ Fix hash library to support multi-process mode, using a jump table,
+ instead of storing a function pointer to the key compare function.
+ Multi-process mode only works with the built-in compare functions,
+ however a custom compare function (not in the jump table) can only
+ be used in single-process mode.
+
+* **lpm: Fixed return value when allocating an existing object.**
+
+ Changed the ``rte_lpm*_create()`` functions to return ``NULL`` and set
+ ``rte_errno`` to ``EEXIST`` when the object name already exists. This is
+ the behavior described in the API documentation in the header file.
+ The previous behavior was to return a pointer to the existing object in
+ that case, preventing the caller to know if the object had to be freed
+ or not.
+
+* **librte_port: Fixed segmentation fault for ring and ethdev writer nodrop.**
+
+ Fixed core dump issue on txq and swq when dropless is set to yes.
+
Examples
~~~~~~~~
other than IPv4 or IPv6, the mbuf was not released, and caused
a memory leak.
+* **l3fwd: Fixed using packet type blindly.**
+
+ l3fwd makes use of packet type information without even query if devices or PMDs
+ really set it. For those don't set ptypes, add an option to parse it softly.
+
* **examples/vhost: Fixed frequent mbuf allocation failure.**
vhost-switch often fails to allocate mbuf when dequeue from vring because it
* Add a short 1-2 sentence description of the API change. Use fixed width
quotes for ``rte_function_names`` or ``rte_struct_names``. Use the past tense.
+* The ethdev statistics counter imissed is considered to be independent of ierrors.
+ All drivers are now counting the missed packets only once, i.e. drivers will
+ not increment ierrors anymore for missed packets.
+
+* The ethdev structure ``rte_eth_dev_info`` was changed to support device
+ speed capabilities.
+
+* The ethdev structures ``rte_eth_link`` and ``rte_eth_conf`` were changed to
+ support the new link API.
+
* The functions ``rte_eth_dev_udp_tunnel_add`` and ``rte_eth_dev_udp_tunnel_delete``
have been renamed into ``rte_eth_dev_udp_tunnel_port_add`` and
``rte_eth_dev_udp_tunnel_port_delete``.
* A parameter ``vlan_type`` has been added to the function
``rte_eth_dev_set_vlan_ether_type``.
+* AF_packet device init function is no longer public. Device should be attached
+ with API.
+
* The LPM ``next_hop`` field is extended from 8 bits to 24 bits for IPv4
while keeping ABI compatibility.
* The RETA entry size in ``rte_eth_rss_reta_entry64`` has been increased
from 8-bit to 16-bit.
+* The ethdev flow director structure ``rte_eth_fdir_flow`` structure was
+ changed. New fields were added to extend flow director's input set.
+
* The cmdline buffer size has been increase from 256 to 512.