blob: b2311c8495079930b7f22f2ec498f03988cdac4e [file] [log] [blame]
Nathan Skrzypczak9ad39c02021-08-19 11:38:06 +02001Release notes for VPP 19.01
2===========================
3
4More than 649 commits since the 18.10 release.
5
6Features
7--------
8
9Infrastructure
10~~~~~~~~~~~~~~
11
12- NUMA-aware, growable physical memory allocator (pmalloc)
13- FIB: sticky load-balance
14- C11 safe string handling: provide and use safe C string handling
15 functions
16- vlib: allocate buffers on local numa, not on numa 1
17- vppinfra: autodetect default hugepage size
18- Move RPC traffic off the shared-memory API queue
19- IPv6: Make link-local configurable per-interface
20- IGMP: improve CLI debug output
21- IPSec: split ipsec nodes into ip4/ip6 nodes
22- IPSec: infra for selecting backends
23- vhost-user: cleanup and performance optimizations
24- ethernet-input, memif improvements and optimizations
25- DPDK: bump to DPDK 18.11
26- reassembly: harden reassembly code
27- stats: Deprecate old (event-based) stats framework
28- vlib: support Hyper-V/Azure VMBus
29- binary api clients: wait for vpp to start
30- graph dispatch trace: capture packet data and buffer metadata, output
31 in pcap format
32- improve feature arc order constraint specification
33
34VNET & Plugins
35~~~~~~~~~~~~~~
36
37- pktgen: correctly replay a mix of single and multi-buffer packets
38- add wireshark dissector to extras
39- avf: optimizations
40- acl-plugin: use L2 feature arc instead of L2 classifier
41- acl-plugin: performance enhancement
42- dpdk: allow interface name to be specified from startup.conf
43- dpdk: blacklist PCI devices by type
44- dpdk: switch to in-memory mode, deprecate use of socket-mem
45- vnet: store hw interface speed in kbps instead of using flags
46- vmxnet3: enable promiscuous mode & cli enhancements
47- gbp: Add support for flow hash profile & l3-out subnets
48- map: Add API support for setting parameters.
49- map: Convert from DPO to input feature
50- nat: improve expired sessions reuse in NAT44
51- nat: syslog - sessions logging
52- nsim: add packet loss simulation, docs
53- perfmon: x86_64 perf counter plugin
54- vnet: L2 feature arc infrastructure
55
56Host stack
57~~~~~~~~~~
58
59- TCP congestion control improvements
60- TCP Cubic congestion control algorithm
61- TCP fast path optimizations
62- Transport tx connection pacer. TCP uses it by default
63- Basic support for session flushing and TCP PSH segments
64- TCP/session api support for configuring custom local src ip/port
65- VCL/LDP basic support for multi-process applications
66- Overall code hardening, cleanup and bugfixing for tcp, session, vcl
67 and ldp
68
69PAPI & Test framework
70~~~~~~~~~~~~~~~~~~~~~
71
72- add specific API types for IP addresses, MAC address, interface index
73 etc.
74- add timeout support for socket transport
75- add support for format/unformat functions
76- generic API types format/unformat support for VAT and custom dump
77- python3 test adjustments
78- make test: create virtualenv under /test/
79- make test: print TEST= values for failed tests
80- add human-friendly annotations to log messages
81
82VOM
83~~~
84
85- Add support for redirect contracts in gbp
86- deprecate TAP add ip-punt redirect dump
87- vxlan-gbp support
88
89Known issues
90------------
91
92For the full list of issues please refer to fd.io
93`JIRA <https://jira.fd.io>`__.
94
95Issues fixed
96------------
97
98For the full list of fixed issues please refer to:
99
100- fd.io `JIRA <https://jira.fd.io>`__
101- git `commit log <https://git.fd.io/vpp/log/?h=stable/1901>`__
102
103
104API changes
105-----------
106
107Description of results:
108
109- *Definition changed*: indicates that the API file was modified
110 between releases.
111- *Only in image*: indicates the API is new for this release.
112- *Only in file*: indicates the API has been removed in this release.
113
114=============================================== ==================
115Message Name Results
116=============================================== ==================
117acl_plugin_get_conn_table_max_entries only in image
118acl_plugin_get_conn_table_max_entries_reply only in image
119app_worker_add_del definition changed
120app_worker_add_del_reply definition changed
121application_attach_reply definition changed
122bd_ip_mac_add_del definition changed
123bd_ip_mac_details definition changed
124bd_ip_mac_flush only in image
125bd_ip_mac_flush_reply only in image
126bond_create definition changed
127cli_inband definition changed
128cli_inband_reply definition changed
129gbp_bridge_domain_add only in image
130gbp_bridge_domain_add_reply only in image
131gbp_bridge_domain_del only in image
132gbp_bridge_domain_del_reply only in image
133gbp_bridge_domain_details only in image
134gbp_bridge_domain_dump only in image
135gbp_bridge_domain_dump_reply only in image
136gbp_endpoint_details definition changed
137gbp_endpoint_group_add only in image
138gbp_endpoint_group_add_del only in file
139gbp_endpoint_group_add_del_reply only in file
140gbp_endpoint_group_add_reply only in image
141gbp_endpoint_group_del only in image
142gbp_endpoint_group_del_reply only in image
143gbp_endpoint_learn_set_inactive_threshold only in image
144gbp_endpoint_learn_set_inactive_threshold_reply only in image
145gbp_ext_itf_add_del only in image
146gbp_ext_itf_add_del_reply only in image
147gbp_ext_itf_details only in image
148gbp_ext_itf_dump only in image
149gbp_route_domain_add only in image
150gbp_route_domain_add_reply only in image
151gbp_route_domain_del only in image
152gbp_route_domain_del_reply only in image
153gbp_route_domain_details only in image
154gbp_route_domain_dump only in image
155gbp_route_domain_dump_reply only in image
156gbp_vxlan_tunnel_add only in image
157gbp_vxlan_tunnel_add_reply only in image
158gbp_vxlan_tunnel_del only in image
159gbp_vxlan_tunnel_del_reply only in image
160gbp_vxlan_tunnel_details only in image
161gbp_vxlan_tunnel_dump only in image
162igmp_proxy_device_add_del only in image
163igmp_proxy_device_add_del_interface only in image
164igmp_proxy_device_add_del_interface_reply only in image
165igmp_proxy_device_add_del_reply only in image
166ip6_mfib_details definition changed
167ip_container_proxy_details only in image
168ip_container_proxy_dump only in image
169ip_mfib_details definition changed
170ip_punt_redirect definition changed
171ip_punt_redirect_details only in image
172ip_punt_redirect_dump only in image
173ip_source_check_interface_add_del only in image
174ip_source_check_interface_add_del_reply only in image
175ipip_6rd_add_tunnel_reply definition changed
176ipip_6rd_del_tunnel definition changed
177ipip_add_tunnel_reply definition changed
178ipip_del_tunnel definition changed
179ipip_tunnel_details definition changed
180ipip_tunnel_dump definition changed
181ipsec_backend_details only in image
182ipsec_backend_dump only in image
183ipsec_sa_details definition changed
184ipsec_select_backend only in image
185ipsec_select_backend_reply only in image
186ipsec_tunnel_if_add_del definition changed
187map_add_del_rule definition changed
188map_add_domain definition changed
189map_another_segment definition changed
190map_domain_details definition changed
191map_if_enable_disable only in image
192map_if_enable_disable_reply only in image
193map_param_add_del_pre_resolve only in image
194map_param_add_del_pre_resolve_reply only in image
195map_param_get only in image
196map_param_get_reply only in image
197map_param_set_fragmentation only in image
198map_param_set_fragmentation_reply only in image
199map_param_set_icmp6 only in image
200map_param_set_icmp6_reply only in image
201map_param_set_icmp only in image
202map_param_set_icmp_reply only in image
203map_param_set_reassembly only in image
204map_param_set_reassembly_reply only in image
205map_param_set_security_check only in image
206map_param_set_security_check_reply only in image
207map_param_set_tcp only in image
208map_param_set_tcp_reply only in image
209map_param_set_traffic_class only in image
210map_param_set_traffic_class_reply only in image
211map_rule_details definition changed
212memclnt_delete definition changed
213nat44_add_del_lb_static_mapping definition changed
214nat44_lb_static_mapping_add_del_local only in image
215nat44_lb_static_mapping_add_del_local_reply only in image
216nat44_lb_static_mapping_details definition changed
217nsim_configure definition changed
218punt only in file
219punt_details only in image
220punt_dump only in image
221punt_reply only in file
222punt_socket_deregister definition changed
223punt_socket_details only in image
224punt_socket_dump only in image
225punt_socket_register definition changed
226set_ip_flow_hash definition changed
227set_punt only in image
228set_punt_reply only in image
229show_version_reply definition changed
230stats_get_poller_delay only in file
231stats_get_poller_delay_reply only in file
232sw_interface_bond_details definition changed
233sw_interface_details definition changed
234sw_interface_ip6_set_link_local_address only in file
235sw_interface_ip6_set_link_local_address_reply only in file
236sw_interface_tap_v2_details definition changed
237syslog_get_filter only in image
238syslog_get_filter_reply only in image
239syslog_get_sender only in image
240syslog_get_sender_reply only in image
241syslog_set_filter only in image
242syslog_set_filter_reply only in image
243syslog_set_sender only in image
244syslog_set_sender_reply only in image
245tap_create_v2 definition changed
246unmap_segment definition changed
247vnet_bier_neighbor_counters only in file
248vnet_get_summary_stats only in file
249vnet_get_summary_stats_reply only in file
250vnet_interface_combined_counters only in file
251vnet_interface_simple_counters only in file
252vnet_ip4_fib_counters only in file
253vnet_ip4_mfib_counters only in file
254vnet_ip4_nbr_counters only in file
255vnet_ip6_fib_counters only in file
256vnet_ip6_mfib_counters only in file
257vnet_ip6_nbr_counters only in file
258vnet_per_interface_combined_counters only in file
259vnet_per_interface_simple_counters only in file
260vnet_udp_encap_counters only in file
261want_bier_neighbor_stats only in file
262want_bier_neighbor_stats_reply only in file
263want_interface_combined_stats only in file
264want_interface_combined_stats_reply only in file
265want_interface_simple_stats only in file
266want_interface_simple_stats_reply only in file
267want_ip4_fib_stats only in file
268want_ip4_fib_stats_reply only in file
269want_ip4_mfib_stats only in file
270want_ip4_mfib_stats_reply only in file
271want_ip4_nbr_stats only in file
272want_ip4_nbr_stats_reply only in file
273want_ip6_fib_stats only in file
274want_ip6_fib_stats_reply only in file
275want_ip6_mfib_stats only in file
276want_ip6_mfib_stats_reply only in file
277want_ip6_nbr_stats only in file
278want_ip6_nbr_stats_reply only in file
279want_per_interface_combined_stats only in file
280want_per_interface_combined_stats_reply only in file
281want_per_interface_simple_stats only in file
282want_per_interface_simple_stats_reply only in file
283want_stats only in file
284want_stats_reply only in file
285want_udp_encap_stats only in file
286want_udp_encap_stats_reply only in file
287=============================================== ==================
288
289Found 170 api message signature differences
290
291Patches that changed API definitions
292~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
293
294``src/vnet/interface_types.api``
295
296* `53fffa1 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=53fffa1>`_ API: Add support for type aliases
297
298``src/vnet/interface.api``
299
300* `f49ba0e <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=f49ba0e>`_ stats: Deprecate old stats framework
301* `53fffa1 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=53fffa1>`_ API: Add support for type aliases
302* `5100aa9 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=5100aa9>`_ vnet: store hw interface speed in kbps instead of using flags
303
304``src/vnet/syslog/syslog.api``
305
306* `b4515b4 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=b4515b4>`_ Add RFC5424 syslog protocol support (VPP-1139)
307
308``src/vnet/fib/fib_types.api``
309
310* `775f73c <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=775f73c>`_ FIB: encode the label stack in the FIB path during table dump
311
312``src/vnet/ip/ip.api``
313
314* `7c03ed4 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=7c03ed4>`_ VOM: mroutes
315* `3460b01 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=3460b01>`_ api: ip_source_check_interface_add_del api is added.
316* `609e121 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=609e121>`_ VPP-1507: Added binary api to dump configured ip_punt_redirect
317* `2af0e3a <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=2af0e3a>`_ flow-hash: Add symmetric flag for flow hashing
318* `47527b2 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=47527b2>`_ IP-punt: add documentation to the API and fix IP address init
319* `5bb1eca <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=5bb1eca>`_ IPv6: Make link-local configurable per-interface (VPP-1446)
320* `75b9f45 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=75b9f45>`_ ip: add container proxy dump API (VPP-1364)
321
322``src/vnet/ip/ip_types.api``
323
324* `8c8acc0 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=8c8acc0>`_ API: Change ip4_address and ip6_address to use type alias.
325* `ffba3c3 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=ffba3c3>`_ MAP: Use explicit address/prefix types in API
326
327``src/vnet/ip/punt.api``
328
329* `e88865d <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=e88865d>`_ VPP-1506: dump local punts and registered punt sockets
330
331``src/vnet/ipsec/ipsec.api``
332
333* `4c422f9 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=4c422f9>`_ Add IPSec interface FIB index for TX packet
334* `b4a7a7d <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=b4a7a7d>`_ Add UDP encap flag
335* `b4d3053 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=b4d3053>`_ ipsec: infra for selecting backends
336* `871bca9 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=871bca9>`_ VPP-1450: binary api call for dumping SPD to interface registration
337
338``src/vnet/l2/l2.api``
339
340* `e26c81f <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=e26c81f>`_ L2 BD API to flush all IP-MAC entries in the specified BD
341* `8006c6a <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=8006c6a>`_ PAPI: Add MACAddress object wrapper for vl_api_mac_address_t
342* `93cc3ee <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=93cc3ee>`_ GBP Endpoint Learning
343* `4d5b917 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=4d5b917>`_ BD ARP entry use common API types
344
345``src/vnet/vxlan-gbp/vxlan_gbp.api``
346
347* `93cc3ee <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=93cc3ee>`_ GBP Endpoint Learning
348
349``src/vnet/ipip/ipip.api``
350
351* `53fffa1 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=53fffa1>`_ API: Add support for type aliases
352
353``src/vnet/session/session.api``
354
355* `d85de68 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=d85de68>`_ vcl: wait for segments with segment handle
356* `fa76a76 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=fa76a76>`_ session: segment handle in accept/connect notifications
357* `c1f5a43 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=c1f5a43>`_ session: cleanup use of api_client_index
358* `c0d532d <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=c0d532d>`_ session: mark apis for deprecation
359
360``src/vnet/ethernet/ethernet_types.api``
361
362* `8006c6a <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=8006c6a>`_ PAPI: Add MACAddress object wrapper for vl_api_mac_address_t
363
364``src/vnet/bonding/bond.api``
365
366* `ad9d528 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=ad9d528>`_ bonding: support custom interface IDs
367
368``src/vnet/devices/tap/tapv2.api``
369
370* `754f24b <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=754f24b>`_ tapv2: add "tap_flags" field to the TAPv2 interface API
371
372``src/vlibmemory/memclnt.api``
373
374* `eaec2a6 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=eaec2a6>`_ bapi: add options to have vpp cleanup client registration
375
376``src/vpp/api/vpe.api``
377
378* `f49ba0e <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=f49ba0e>`_ stats: Deprecate old stats framework
379* `413f4a5 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=413f4a5>`_ API: Use string type instead of u8.
380
381``src/plugins/acl/acl.api``
382
383* `bb5d22d <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=bb5d22d>`_ New api in order to get max entries of connection table is added.
384
385``src/plugins/nsim/nsim.api``
386
387* `10c5ff1 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=10c5ff1>`_ nsim: add packet loss simulation, docs
388
389``src/plugins/gbp/gbp.api``
390
391* `1c17e2e <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=1c17e2e>`_ GBP: add allowed ethertypes to contracts
392* `b6a4795 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=b6a4795>`_ GBP: l3-out subnets
393* `33b81da <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=33b81da>`_ vom: Add support for redirect contracts in gbp
394* `13a08cc <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=13a08cc>`_ GBP: redirect contracts
395* `c29c0af <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=c29c0af>`_ GBP: Endpoints with VLAN tags and birdges that don't learn
396* `93cc3ee <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=93cc3ee>`_ GBP Endpoint Learning
397
398``src/plugins/nat/nat.api``
399
400* `b686508 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=b686508>`_ NAT44: nat44_add_del_lb_static_mapping enhancements (VPP-1514)
401
402``src/plugins/map/map.api``
403
404* `fc7344f <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=fc7344f>`_ MAP: Convert from DPO to input feature.
405* `f34597f <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=f34597f>`_ MAP: Add API support for MAP input feature.
406* `5a2e278 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=5a2e278>`_ MAP: Add API support for setting parameters.
407* `a173a7a <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=a173a7a>`_ MAP: Use bool type in map.api instead of u8.
408* `ffba3c3 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=ffba3c3>`_ MAP: Use explicit address/prefix types in API
409
410``src/plugins/igmp/igmp.api``
411
412* `97748ca <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=97748ca>`_ IGMP: proxy device
413