1DPDK Release 16.04 2================== 3 4 5**Read this first** 6 7The text below explains how to update the release notes. 8 9Use proper spelling, capitalization and punctuation in all sections. 10 11Variable and config names should be quoted as fixed width text: ``LIKE_THIS``. 12 13Build the docs and view the output file to ensure the changes are correct:: 14 15 make doc-guides-html 16 17 firefox build/doc/html/guides/rel_notes/release_16_04.html 18 19 20New Features 21------------ 22 23This section should contain new features added in this release. Sample format: 24 25* **Add a title in the past tense with a full stop.** 26 27 Add a short 1-2 sentence description in the past tense. The description 28 should be enough to allow someone scanning the release notes to understand 29 the new feature. 30 31 If the feature adds a lot of sub-features you can use a bullet list like this. 32 33 * Added feature foo to do something. 34 * Enhanced feature bar to do something else. 35 36 Refer to the previous release notes for examples. 37 38* **Added function to check primary process state.** 39 40 A new function ``rte_eal_primary_proc_alive()`` has been added 41 to allow the user to detect if a primary process is running. 42 Use cases for this feature include fault detection, and monitoring 43 using secondary processes. 44 45* **Enabled bulk allocation of mbufs.** 46 47 A new function ``rte_pktmbuf_alloc_bulk()`` has been added to allow the user 48 to allocate a bulk of mbufs. 49 50* **Virtio 1.0.** 51 52 Enabled virtio 1.0 support for virtio pmd driver. 53 54* **Supported virtio for ARM.** 55 56 Enabled virtio support for armv7/v8. Tested for arm64. 57 Virtio for arm support VFIO-noiommu mode only. 58 Virtio can work with other non-x86 arch too like powerpc. 59 60* **Supported virtio offload in vhost-user.** 61 62 Add the offload and negotiation of checksum and TSO between vhost-user and 63 vanilla Linux virtio guest. 64 65* **Added vhost-user live migration support.** 66 67* **Added support for E-tag on X550.** 68 69 E-tag is defined in 802.1br. Please reference 70 http://www.ieee802.org/1/pages/802.1br.html. 71 72 This feature is for VF, but the settings are on PF. It means 73 the CLIs should be used on PF, but some of their effects will be shown on VF. 74 The forwarding of E-tag packets based on GRP and E-CID_base will have effect 75 on PF. Theoretically the E-tag packets can be forwarded to any pool/queue. 76 But normally we'd like to forward the packets to the pools/queues belonging 77 to the VFs. And E-tag insertion and stripping will have effect on VFs. When 78 VF receives E-tag packets, it should strip the E-tag. When VF transmits 79 packets, it should insert the E-tag. Both can be offloaded. 80 81 When we want to use this E-tag support feature, the forwarding should be 82 enabled to forward the packets received by PF to indicated VFs. And insertion 83 and stripping should be enabled for VFs to offload the effort to HW. 84 85 * Support E-tag offloading of insertion and stripping. 86 * Support Forwarding E-tag packets to pools based on 87 GRP and E-CID_base. 88 89* **Added support for VxLAN & NVGRE checksum off-load on X550.** 90 91 * Added support for VxLAN & NVGRE RX/TX checksum off-load on 92 X550. RX/TX checksum off-load is provided on both inner and 93 outer IP header and TCP header. 94 * Added functions to support VxLAN port configuration. The 95 default VxLAN port number is 4789 but this can be updated 96 programmatically. 97 98* **Enabled PCI extended tag for i40e.** 99 100 It enabled extended tag by checking and writing corresponding PCI config 101 space bytes, to boost the performance. In the meanwhile, it deprecated the 102 legacy way via reading/writing sysfile supported by kernel module igb_uio. 103 104* **Supported ether type setting of single and double VLAN for i40e** 105 106* **Increased number of next hops for LPM IPv4 to 2^24.** 107 108 The next_hop field is extended from 8 bits to 24 bits for IPv4. 109 110* **Added support of SNOW 3G (UEA2 and UIA2) for Intel Quick Assist devices.** 111 112 Enabled support for SNOW 3G wireless algorithm for Intel Quick Assist devices. 113 Support for cipher only, hash only is also provided 114 along with alg-chaining operations. 115 116* **Added SNOW3G SW PMD.** 117 118 A new Crypto PMD has been added, which provides SNOW 3G UEA2 ciphering 119 and SNOW3G UIA2 hashing. 120 121* **Added AES GCM PMD.** 122 123 Added new Crypto PMD to support AES-GCM authenticated encryption and 124 authenticated decryption in SW. 125 126* **Added NULL Crypto PMD** 127 128 Added new Crypto PMD to support null crypto operations in SW. 129 130Resolved Issues 131--------------- 132 133This section should contain bug fixes added to the relevant sections. Sample format: 134 135* **code/section: Fixed issue in the past tense with a full stop.** 136 137 Add a short 1-2 sentence description of the resolved issue in the past tense. 138 The title should contain the code/lib section like a commit message. 139 Add the entries in alphabetic order in the relevant sections below. 140 141 142EAL 143~~~ 144 145 146Drivers 147~~~~~~~ 148 149* **ethdev: Fixed byte order consistency between fdir flow and mask.** 150 151 Fixed issue in ethdev library that the structure for setting 152 fdir's mask and flow entry was not consistent in byte ordering. 153 154* **aesni_mb: Fixed wrong return value when creating a device.** 155 156 cryptodev_aesni_mb_init() was returning the device id of the device created, 157 instead of 0 (when success), that rte_eal_vdev_init() expects. 158 This made impossible the creation of more than one aesni_mb device 159 from command line. 160 161* **qat: Fixed AES GCM decryption.** 162 163 Allowed AES GCM on the cryptodev API, but in some cases gave invalid results 164 due to incorrect IV setting. 165 166 167Libraries 168~~~~~~~~~ 169 170* **hash: Fixed CRC32c hash computation for non multiple of 4 bytes sizes.** 171 172 Fix crc32c hash functions to return a valid crc32c value for data lengths 173 not multiple of 4 bytes. 174 175 176Examples 177~~~~~~~~ 178 179* **examples/vhost: Fixed frequent mbuf allocation failure.** 180 181 vhost-switch often fails to allocate mbuf when dequeue from vring because it 182 wrongly calculates the number of mbufs needed. 183 184* **examples/ipsec-secgw: ipsec security gateway** 185 186 New application implementing an IPsec Security Gateway. 187 188Other 189~~~~~ 190 191 192Known Issues 193------------ 194 195This section should contain new known issues in this release. Sample format: 196 197* **Add title in present tense with full stop.** 198 199 Add a short 1-2 sentence description of the known issue in the present 200 tense. Add information on any known workarounds. 201 202 203API Changes 204----------- 205 206This section should contain API changes. Sample format: 207 208* Add a short 1-2 sentence description of the API change. Use fixed width 209 quotes for ``rte_function_names`` or ``rte_struct_names``. Use the past tense. 210 211* The functions ``rte_eth_dev_udp_tunnel_add`` and ``rte_eth_dev_udp_tunnel_delete`` 212 have been renamed into ``rte_eth_dev_udp_tunnel_port_add`` and 213 ``rte_eth_dev_udp_tunnel_port_delete``. 214 215* The ``outer_mac`` and ``inner_mac`` fields in structure 216 ``rte_eth_tunnel_filter_conf`` are changed from pointer to struct in order 217 to keep code's readability. 218 219* The fields in ethdev structure ``rte_eth_fdir_masks`` were changed 220 to be in big endian. 221 222* A parameter ``vlan_type`` has been added to the function 223 ``rte_eth_dev_set_vlan_ether_type``. 224 225* The LPM ``next_hop`` field is extended from 8 bits to 24 bits for IPv4 226 while keeping ABI compatibility. 227 228* A new ``rte_lpm_config`` structure is used so LPM library will allocate 229 exactly the amount of memory which is necessary to hold application’s rules. 230 The previous ABI is kept for compatibility. 231 232* The prototype for the pipeline input port, output port and table action 233 handlers are updated: the pipeline parameter is added, 234 the packets mask parameter has been either removed or made input-only. 235 236 237ABI Changes 238----------- 239 240* Add a short 1-2 sentence description of the ABI change that was announced in 241 the previous releases and made in this release. Use fixed width quotes for 242 ``rte_function_names`` or ``rte_struct_names``. Use the past tense. 243 244* The RETA entry size in ``rte_eth_rss_reta_entry64`` has been increased 245 from 8-bit to 16-bit. 246 247* The cmdline buffer size has been increase from 256 to 512. 248 249 250Shared Library Versions 251----------------------- 252 253Update any library version updated in this release and prepend with a ``+`` sign. 254 255The libraries prepended with a plus sign were incremented in this version. 256 257.. code-block:: diff 258 259 + libethdev.so.3 260 librte_acl.so.2 261 librte_cfgfile.so.2 262 + librte_cmdline.so.2 263 librte_distributor.so.1 264 librte_eal.so.2 265 librte_hash.so.2 266 librte_ip_frag.so.1 267 librte_ivshmem.so.1 268 librte_jobstats.so.1 269 librte_kni.so.2 270 librte_kvargs.so.1 271 librte_lpm.so.2 272 librte_mbuf.so.2 273 librte_mempool.so.1 274 librte_meter.so.1 275 + librte_pipeline.so.3 276 librte_pmd_bond.so.1 277 librte_pmd_ring.so.2 278 librte_port.so.2 279 librte_power.so.1 280 librte_reorder.so.1 281 librte_ring.so.1 282 librte_sched.so.1 283 librte_table.so.2 284 librte_timer.so.1 285 librte_vhost.so.2 286