1 Release notes for VPP 19.04
2 ===========================
4 More than 700 commits since the 19.01 release.
12 - DPDK 19.02 integration
13 - Buffer manager rework and improvements
14 - Python3 migration (work in progress)
20 - “make test” python3 readiness and refactoring
22 - Add “make test-gcov” target to main Makefile
23 - Refactor multiarch code
24 - vfctl script: bind VF to vfio-pci after VF is created
25 - cmake cross-compilation support
26 - CLI control of graph dispatch elogs
27 - AppImage packaging (disabled by default)
28 - Complete upstreaming of wireshark dissector
29 - Remove JVPP which is now an FD.io project
30 - Punt infra: manage dispatch of exception packets
37 - Experimental TAP interface TCP segmentation offload
38 - Vmxnet3 driver plugin
40 - ACL plugin refactoring
41 - RDMA (ibverb) driver plugin - MLX5 with multiqueue
44 - Intel IPSEC-MB engine plugin
45 - Tunnel fragmentation
47 - Performance improvements
48 - API modernisation and improvements
49 - New Tests and test refactoring
53 - Introduce crypto infra
55 - Add support for AEAD and AES-GCM
56 - Implement rfc4231 test cases
57 - Implement crypto tests per RFC2202
59 - Perfmon improvements
61 - Python to C parser for intel CPUs
62 - 2-way parallel stat collection
63 - Collect data on selected thread(s)
68 - Improve ldp/vls/vcl support for multi-process and multi-threaded
70 - Major refactor/cleanup of session layer
71 - Refactor cut-through sessions to use a custom transport
72 - Baseline QUIC transport support
77 For the full list of issues please refer to fd.io
78 `JIRA <https://jira.fd.io>`__.
83 For the full list of fixed issues please refer to:
85 - fd.io `JIRA <https://jira.fd.io>`__
86 - git `commit log <https://git.fd.io/vpp/log/?h=stable/1904>`__
91 Description of results:
93 - *Definition changed*: indicates that the API file was modified
95 - *Only in image*: indicates the API is new for this release.
96 - *Only in file*: indicates the API has been removed in this release.
98 =============================================== ==================
100 =============================================== ==================
101 accept_session only in file
102 accept_session_reply only in file
103 bind_sock_reply definition changed
104 bind_uri_reply definition changed
105 bvi_create only in image
106 bvi_create_reply only in image
107 bvi_delete only in image
108 bvi_delete_reply only in image
109 connect_session only in file
110 connect_session_reply only in file
111 ct6_enable only in image
112 ct6_enable_disable only in image
113 gbp_contract_add_del_reply definition changed
114 gbp_endpoint_group_del definition changed
115 gbp_endpoint_learn_set_inactive_threshold only in file
116 gbp_endpoint_learn_set_inactive_threshold_reply only in file
117 ikev2_plugin_get_version only in image
118 ikev2_plugin_get_version_reply only in image
119 ip4_arp_event definition changed
120 ip6_nd_event definition changed
121 ip6_ra_event definition changed
122 ip6nd_proxy_add_del definition changed
123 ip6nd_proxy_details definition changed
124 ip_container_proxy_add_del definition changed
125 ip_neighbor_add_del definition changed
126 ip_neighbor_details definition changed
127 ip_probe_neighbor definition changed
128 ip_source_and_port_range_check_add_del definition changed
129 ipsec_backend_details definition changed
130 ipsec_gre_add_del_tunnel only in file
131 ipsec_gre_add_del_tunnel_reply only in file
132 ipsec_gre_tunnel_add_del only in image
133 ipsec_gre_tunnel_add_del_reply only in image
134 ipsec_gre_tunnel_details definition changed
135 ipsec_sa_details definition changed
136 ipsec_sa_set_key definition changed
137 ipsec_sad_add_del_entry only in file
138 ipsec_sad_add_del_entry_reply only in file
139 ipsec_sad_entry_add_del only in image
140 ipsec_sad_entry_add_del_reply only in image
141 ipsec_select_backend definition changed
142 ipsec_spd_add_del_entry only in file
143 ipsec_spd_add_del_entry_reply only in file
144 ipsec_spd_details definition changed
145 ipsec_spd_entry_add_del only in image
146 ipsec_spd_entry_add_del_reply only in image
147 ipsec_tunnel_if_add_del definition changed
148 lb_conf definition changed
149 map_add_domain definition changed
150 map_domain_details definition changed
151 nat_ha_flush only in image
152 nat_ha_flush_reply only in image
153 nat_ha_get_failover only in image
154 nat_ha_get_failover_reply only in image
155 nat_ha_get_listener only in image
156 nat_ha_get_listener_reply only in image
157 nat_ha_resync only in image
158 nat_ha_resync_completed_event only in image
159 nat_ha_resync_reply only in image
160 nat_ha_set_failover only in image
161 nat_ha_set_failover_reply only in image
162 nat_ha_set_listener only in image
163 nat_ha_set_listener_reply only in image
164 reset_session only in file
165 reset_session_reply only in file
166 sw_interface_ip6nd_ra_prefix definition changed
167 sw_interface_set_dpdk_hqos_pipe only in file
168 sw_interface_set_dpdk_hqos_pipe_reply only in file
169 sw_interface_set_dpdk_hqos_subport only in file
170 sw_interface_set_dpdk_hqos_subport_reply only in file
171 sw_interface_set_dpdk_hqos_tctbl only in file
172 sw_interface_set_dpdk_hqos_tctbl_reply only in file
173 sw_interface_tap_details only in file
174 sw_interface_tap_dump only in file
175 sw_interface_virtio_pci_details only in image
176 sw_interface_virtio_pci_dump only in image
177 tap_connect only in file
178 tap_connect_reply only in file
179 tap_delete only in file
180 tap_delete_reply only in file
181 tap_modify only in file
182 tap_modify_reply only in file
183 virtio_pci_create only in image
184 virtio_pci_create_reply only in image
185 virtio_pci_delete only in image
186 virtio_pci_delete_reply only in image
187 vmxnet3_create definition changed
188 vmxnet3_details definition changed
189 want_ip4_arp_events definition changed
190 want_ip6_nd_events definition changed
191 =============================================== ==================
193 Found 90 api message signature differences
195 Patches that changed API definitions
196 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
198 ``src/vlibmemory/memclnt.api``
200 * `eaec2a6d9 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=eaec2a6d9>`_ bapi: add options to have vpp cleanup client registration
202 ``src/vpp/api/vpe.api``
204 * `1aaf0e343 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=1aaf0e343>`_ deprecate tapcli
205 * `f49ba0e81 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=f49ba0e81>`_ stats: Deprecate old stats framework
206 * `413f4a5b2 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=413f4a5b2>`_ API: Use string type instead of u8.
208 ``src/vnet/interface.api``
210 * `3b0d7e42f <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=3b0d7e42f>`_ Revert "API: Cleanup APIs interface.api"
211 * `e63325e3c <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=e63325e3c>`_ API: Cleanup APIs interface.api
212 * `bb2c7b580 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=bb2c7b580>`_ Update documentation for src/vnet/interface.api sw_interface_dump
213 * `f49ba0e81 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=f49ba0e81>`_ stats: Deprecate old stats framework
214 * `53fffa1db <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=53fffa1db>`_ API: Add support for type aliases
215 * `5100aa9cb <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=5100aa9cb>`_ vnet: store hw interface speed in kbps instead of using flags
217 ``src/vnet/interface_types.api``
219 * `3b0d7e42f <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=3b0d7e42f>`_ Revert "API: Cleanup APIs interface.api"
220 * `e63325e3c <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=e63325e3c>`_ API: Cleanup APIs interface.api
221 * `53fffa1db <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=53fffa1db>`_ API: Add support for type aliases
223 ``src/vnet/bonding/bond.api``
225 * `ad9d52831 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=ad9d52831>`_ bonding: support custom interface IDs
227 ``src/vnet/ipip/ipip.api``
229 * `53fffa1db <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=53fffa1db>`_ API: Add support for type aliases
231 ``src/vnet/ipsec-gre/ipsec_gre.api``
233 * `e524d45ef <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=e524d45ef>`_ IPSEC-GRE: fixes and API update to common types.
235 ``src/vnet/syslog/syslog.api``
237 * `b4515b4be <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=b4515b4be>`_ Add RFC5424 syslog protocol support (VPP-1139)
239 ``src/vnet/devices/tap/tapv2.api``
241 * `754f24b35 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=754f24b35>`_ tapv2: add "tap_flags" field to the TAPv2 interface API
243 ``src/vnet/devices/virtio/virtio.api``
245 * `d6c15af33 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=d6c15af33>`_ virtio: Native virtio driver
247 ``src/vnet/fib/fib_types.api``
249 * `775f73c6b <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=775f73c6b>`_ FIB: encode the label stack in the FIB path during table dump
251 ``src/vnet/ip/ip_types.api``
253 * `8c8acc027 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=8c8acc027>`_ API: Change ip4_address and ip6_address to use type alias.
254 * `ffba3c377 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=ffba3c377>`_ MAP: Use explicit address/prefix types in API
256 ``src/vnet/ip/ip.api``
258 * `48ae19e90 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=48ae19e90>`_ API: Add python2.7 support for enum flags via aenum
259 * `37029305c <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=37029305c>`_ Use IP and MAC API types for neighbors
260 * `7c03ed47d <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=7c03ed47d>`_ VOM: mroutes
261 * `3460b014a <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=3460b014a>`_ api: ip_source_check_interface_add_del api is added.
262 * `609e1210c <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=609e1210c>`_ VPP-1507: Added binary api to dump configured ip_punt_redirect
263 * `2af0e3a74 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=2af0e3a74>`_ flow-hash: Add symmetric flag for flow hashing
264 * `47527b24a <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=47527b24a>`_ IP-punt: add documentation to the API and fix IP address init
265 * `5bb1ecae8 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=5bb1ecae8>`_ IPv6: Make link-local configurable per-interface (VPP-1446)
266 * `75b9f45a1 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=75b9f45a1>`_ ip: add container proxy dump API (VPP-1364)
268 ``src/vnet/ip/punt.api``
270 * `e88865d7b <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=e88865d7b>`_ VPP-1506: dump local punts and registered punt sockets
272 ``src/vnet/vxlan-gbp/vxlan_gbp.api``
274 * `4dd4cf4f9 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=4dd4cf4f9>`_ GBP: fixes for l3-out routing
275 * `93cc3ee3b <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=93cc3ee3b>`_ GBP Endpoint Learning
277 ``src/vnet/ethernet/ethernet_types.api``
279 * `8006c6aa4 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=8006c6aa4>`_ PAPI: Add MACAddress object wrapper for vl_api_mac_address_t
281 ``src/vnet/ipsec/ipsec.api``
283 * `1e3aa5e21 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=1e3aa5e21>`_ ipsec: USE_EXTENDED_SEQ_NUM -> USE_ESN
284 * `1ba5bc8d8 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=1ba5bc8d8>`_ ipsec: add ipv6 support for ipsec tunnel interface
285 * `5d704aea5 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=5d704aea5>`_ updates now that flags are supported on the API
286 * `53f526b68 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=53f526b68>`_ TEST: IPSEC NAT-T with UDP header
287 * `7c44d78ef <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=7c44d78ef>`_ IKEv2 to plugin
288 * `eba31eceb <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=eba31eceb>`_ IPSEC: move SA counters into the stats segment
289 * `8d7c50200 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=8d7c50200>`_ IPSEC: no second lookup after tunnel encap
290 * `a09c1ff5b <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=a09c1ff5b>`_ IPSEC: SPD counters in the stats sgement
291 * `17dcec0b9 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=17dcec0b9>`_ IPSEC: API modernisation
292 * `4c422f9a3 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=4c422f9a3>`_ Add IPSec interface FIB index for TX packet
293 * `b4a7a7dcf <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=b4a7a7dcf>`_ Add UDP encap flag
294 * `b4d305344 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=b4d305344>`_ ipsec: infra for selecting backends
295 * `871bca9aa <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=871bca9aa>`_ VPP-1450: binary api call for dumping SPD to interface registration
297 ``src/vnet/tcp/tcp.api``
299 * `c5df8c71c <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=c5df8c71c>`_ host stack: update stale copyright
301 ``src/vnet/l2/l2.api``
303 * `192b13f96 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=192b13f96>`_ BVI Interface
304 * `5daf0c55c <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=5daf0c55c>`_ add default NONE flag for bd_flags
305 * `e26c81fc8 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=e26c81fc8>`_ L2 BD API to flush all IP-MAC entries in the specified BD
306 * `8006c6aa4 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=8006c6aa4>`_ PAPI: Add MACAddress object wrapper for vl_api_mac_address_t
307 * `93cc3ee3b <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=93cc3ee3b>`_ GBP Endpoint Learning
308 * `4d5b917b1 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=4d5b917b1>`_ BD ARP entry use common API types
310 ``src/vnet/session/session.api``
312 * `6442401c2 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=6442401c2>`_ session: remove deprecated binary apis
313 * `d85de68ec <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=d85de68ec>`_ vcl: wait for segments with segment handle
314 * `fa76a76bf <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=fa76a76bf>`_ session: segment handle in accept/connect notifications
315 * `c1f5a4336 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=c1f5a4336>`_ session: cleanup use of api_client_index
316 * `c0d532d17 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=c0d532d17>`_ session: mark apis for deprecation
318 ``src/vnet/udp/udp.api``
320 * `c5df8c71c <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=c5df8c71c>`_ host stack: update stale copyright
322 ``src/plugins/cdp/cdp.api``
324 * `76ef6094c <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=76ef6094c>`_ tests: cdp plugin. Replace cdp enable cli command with API call.
326 ``src/plugins/nat/nat.api``
328 * `8feeaff56 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=8feeaff56>`_ Typos. A bunch of typos I've been collecting.
329 * `34931eb47 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=34931eb47>`_ NAT44: active-passive HA (VPP-1571)
330 * `b686508c4 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=b686508c4>`_ NAT44: nat44_add_del_lb_static_mapping enhancements (VPP-1514)
332 ``src/plugins/map/map.api``
334 * `4dc5c7b90 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=4dc5c7b90>`_ MAP: Add optional user-supplied 'tag' field in MAPs.
335 * `fc7344f9b <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=fc7344f9b>`_ MAP: Convert from DPO to input feature.
336 * `f34597fc8 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=f34597fc8>`_ MAP: Add API support for MAP input feature.
337 * `5a2e278a0 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=5a2e278a0>`_ MAP: Add API support for setting parameters.
338 * `a173a7a07 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=a173a7a07>`_ MAP: Use bool type in map.api instead of u8.
339 * `ffba3c377 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=ffba3c377>`_ MAP: Use explicit address/prefix types in API
341 ``src/plugins/gbp/gbp.api``
343 * `1aa35576e <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=1aa35576e>`_ GBP: Counters per-contract
344 * `8ea109e40 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=8ea109e40>`_ gbp: Add bd flags
345 * `7bd343509 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=7bd343509>`_ GBP: custom-dump functions
346 * `fa0ac2c56 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=fa0ac2c56>`_ GBP: contracts API fixed length of allowed ethertypes
347 * `5d704aea5 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=5d704aea5>`_ updates now that flags are supported on the API
348 * `4ba67723d <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=4ba67723d>`_ GBP: use sclass in the DP for policy
349 * `8da9fc659 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=8da9fc659>`_ GBP: learn from ARP and L2 packets
350 * `32f6d8e0c <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=32f6d8e0c>`_ GBP: per-group EP retention policy
351 * `879d11c25 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=879d11c25>`_ GBP: Sclass to src-epg conversions
352 * `1c17e2eca <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=1c17e2eca>`_ GBP: add allowed ethertypes to contracts
353 * `b6a479539 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=b6a479539>`_ GBP: l3-out subnets
354 * `33b81da54 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=33b81da54>`_ vom: Add support for redirect contracts in gbp
355 * `13a08cc09 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=13a08cc09>`_ GBP: redirect contracts
356 * `c29c0af40 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=c29c0af40>`_ GBP: Endpoints with VLAN tags and birdges that don't learn
357 * `93cc3ee3b <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=93cc3ee3b>`_ GBP Endpoint Learning
359 ``src/plugins/acl/acl.api``
361 * `bb5d22daf <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=bb5d22daf>`_ New api in order to get max entries of connection table is added.
363 ``src/plugins/vmxnet3/vmxnet3.api``
365 * `ee8ba6877 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=ee8ba6877>`_ vmxnet3: auto bind support
366 * `854559d15 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=854559d15>`_ vmxnet3: RSS support
367 * `773291163 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=773291163>`_ vmxnet3: multiple TX queues support
369 ``src/plugins/nsim/nsim.api``
371 * `10c5ff143 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=10c5ff143>`_ nsim: add packet loss simulation, docs
373 ``src/plugins/igmp/igmp.api``
375 * `97748cae2 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=97748cae2>`_ IGMP: proxy device
377 ``src/plugins/lb/lb.api``
379 * `f7f13347b <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=f7f13347b>`_ tests: update test_lb.py to use api call lb_conf.
381 ``src/plugins/ct6/ct6.api``
383 * `a55df1081 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=a55df1081>`_ ipv6 connection tracking plugin
385 ``src/plugins/ikev2/ikev2.api``
387 * `7c44d78ef <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=7c44d78ef>`_ IKEv2 to plugin