misc: VPP 22.10 Release Notes
[vpp.git] / docs / aboutvpp / releasenotes / v22.10.rst
1 Release notes for VPP 22.10
2 ===========================
3
4 More than 212 commits since the previous release, including 118 fixes.
5
6 Features
7 --------
8
9 - Packetforge
10
11   - Add packetforge for generic flow to extras (`ce4b64517 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=ce4b64517>`_)
12
13 - Plugins
14
15   - DPDK
16
17     - Enable interrupt support for vmxnet3 (`157e4f5d2 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=157e4f5d2>`_)
18     - Bump to 22.07 (`3c285b54a <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=3c285b54a>`_)
19     - Build MLX libraries into DPDK plugin when verified to be compatible with the DPDK & RDMA version specified
20       in the matrix file. (`4e939ced <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=4e939ced>`_)
21
22       | **NOTE**: A daily CI job verifies that the MLX libraries are being built into
23       | the DPDK plugin and sends an email to vpp-build@lists.fd.io if the job fails.
24       | Anyone desiring to be notified of the absense of the MLX drivers being built
25       | into the DPDK plugin should subscribe to the mailing list at
26       | https://lists.fd.io/g/vpp-build
27
28   - Wireguard
29
30     - Add processing of received cookie messages (`44ec846f4 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=44ec846f4>`_)
31     - Add dos mitigation support (`ce91af8ad <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=ce91af8ad>`_)
32     - Add handshake rate limiting support (`a6328e51e <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=a6328e51e>`_)
33     - Add peers roaming support (`fee9853a4 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=fee9853a4>`_)
34
35   - Performance counter
36
37     - Enable perfmon plugin for Arm (`268d7be66 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=268d7be66>`_)
38     - Add Arm event bundles (`af82211d3 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=af82211d3>`_)
39
40 - Test Infrastructure
41
42   - Add ipsec flow performance unit test (`422544363 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=422544363>`_)
43   - Add fast path ipv6 python tests for outbound policy matching (`651cc01b6 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=651cc01b6>`_)
44
45 - VNET
46
47   - IP Neighbors
48
49     - ARP and ND stats per-interface. (`fd2417b2a <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=fd2417b2a>`_)
50
51   - IPSec
52
53     - Introduce spd fast path types (`d699a347c <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=d699a347c>`_)
54     - Add/delete ipsec fast path policy (`0464310fd <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=0464310fd>`_)
55     - Add spd fast path matching (`e1dce3758 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=e1dce3758>`_)
56     - Add fast path configuration parser (`4da8a63a9 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=4da8a63a9>`_)
57     - Show fast path flag in cli (`93bc431df <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=93bc431df>`_)
58     - Add fast path python tests (`ab0bf0c0c <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=ab0bf0c0c>`_)
59     - Fast path outbound policy matching implementation for ipv6 (`86f8208af <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=86f8208af>`_)
60     - Introduce fast path ipv4 inbound matching (`993b6bee6 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=993b6bee6>`_)
61     - Make chacha20-poly1305 available via API (`d7c030d60 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=d7c030d60>`_)
62
63   - Segment Routing (IPv6 and MPLS)
64
65     - SRv6 TEF behavior support (`9cca694c8 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=9cca694c8>`_)
66     - Add support for SRv6 Path Tracing Infrastructure (`c933bb7e3 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=c933bb7e3>`_)
67     - SRv6 Path Tracing Sink node behavior (`d50e661d6 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=d50e661d6>`_)
68
69   - Session Layer
70
71     - Support dma option (`0654242d1 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=0654242d1>`_)
72
73 - VPP Comms Library
74
75   - Add hugepage for vcl configure and svm (`c795b8836 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=c795b8836>`_)
76
77 - Vector Library
78
79   - Introduce DMA infrastructure (`abd566942 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=abd566942>`_)
80
81 - VPP StrongSwan Daemon
82
83   - Add plugin for VPP-swan (`225d15cae <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=225d15cae>`_)
84
85 - VPP Host Stack
86
87   - Add test framework for host stack (`229f5fcf1 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=229f5fcf1>`_)
88
89 - Packetforge
90
91   - Add a tool to create generic flow rules using a format of naming protocols or json profile. (`ce4b64517 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=ce4b64517>`_)
92
93 Known issues
94 ------------
95
96 For the full list of issues please refer to fd.io `JIRA <https://jira.fd.io>`_.
97
98 Fixed issues
99 ------------
100
101 For the full list of fixed issues please refer to:
102 - fd.io `JIRA <https://jira.fd.io>`_
103 - git `commit log <https://git.fd.io/vpp/log/?h=master>`_
104
105
106 API changes
107 -----------
108
109 Description of results:
110
111 - *Definition changed*: indicates that the API file was modified between releases.
112 - *Only in image*: indicates the API is new for this release.
113 - *Only in file*: indicates the API has been removed in this release.
114
115 ============================================================= ==================
116 Message Name                                                  Result
117 ============================================================= ==================
118 ipsec_spd_entry_add_del_v2                                    only in image
119 ipsec_spd_entry_add_del_v2_reply                              only in image
120 ============================================================= ==================
121
122 Found 2 api message signature differences
123
124
125 Newly deprecated API messages
126 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
127
128 These messages are still there in the API, but can and probably
129 will disappear in the next release.
130
131 - ipsec_spd_entry_add_del
132
133 In-progress API messages
134 ~~~~~~~~~~~~~~~~~~~~~~~~
135
136 These messages are provided for testing and experimentation only.
137 They are *not* subject to any compatibility process,
138 and therefore can arbitrarily change or disappear at *any* moment.
139 Also they may have less than satisfactory testing, making
140 them unsuitable for other use than the technology preview.
141 If you are intending to use these messages in production projects,
142 please collaborate with the feature maintainer on their productization.
143
144 - abf_itf_attach_add_del
145 - abf_itf_attach_add_del_reply
146 - abf_itf_attach_details
147 - abf_itf_attach_dump
148 - abf_plugin_get_version
149 - abf_plugin_get_version_reply
150 - abf_policy_add_del
151 - abf_policy_add_del_reply
152 - abf_policy_details
153 - abf_policy_dump
154 - acl_plugin_use_hash_lookup_get
155 - acl_plugin_use_hash_lookup_get_reply
156 - acl_plugin_use_hash_lookup_set
157 - acl_plugin_use_hash_lookup_set_reply
158 - adl_allowlist_enable_disable
159 - adl_allowlist_enable_disable_reply
160 - adl_interface_enable_disable
161 - adl_interface_enable_disable_reply
162 - cnat_get_snat_addresses
163 - cnat_get_snat_addresses_reply
164 - cnat_session_details
165 - cnat_session_dump
166 - cnat_session_purge
167 - cnat_session_purge_reply
168 - cnat_set_snat_addresses
169 - cnat_set_snat_addresses_reply
170 - cnat_set_snat_policy
171 - cnat_set_snat_policy_reply
172 - cnat_snat_policy_add_del_exclude_pfx
173 - cnat_snat_policy_add_del_exclude_pfx_reply
174 - cnat_snat_policy_add_del_if
175 - cnat_snat_policy_add_del_if_reply
176 - cnat_translation_del
177 - cnat_translation_del_reply
178 - cnat_translation_details
179 - cnat_translation_dump
180 - cnat_translation_update
181 - cnat_translation_update_reply
182 - crypto_sw_scheduler_set_worker
183 - crypto_sw_scheduler_set_worker_reply
184 - det44_get_timeouts_reply
185 - det44_interface_add_del_feature
186 - det44_interface_add_del_feature_reply
187 - det44_interface_details
188 - det44_interface_dump
189 - det44_plugin_enable_disable
190 - det44_plugin_enable_disable_reply
191 - det44_set_timeouts
192 - det44_set_timeouts_reply
193 - flow_add
194 - flow_add_reply
195 - flow_add_v2
196 - flow_add_v2_reply
197 - flow_del
198 - flow_del_reply
199 - flow_disable
200 - flow_disable_reply
201 - flow_enable
202 - flow_enable_reply
203 - flowprobe_get_params
204 - flowprobe_get_params_reply
205 - flowprobe_interface_add_del
206 - flowprobe_interface_add_del_reply
207 - flowprobe_interface_details
208 - flowprobe_interface_dump
209 - flowprobe_set_params
210 - flowprobe_set_params_reply
211 - gbp_bridge_domain_add
212 - gbp_bridge_domain_add_reply
213 - gbp_bridge_domain_del
214 - gbp_bridge_domain_del_reply
215 - gbp_bridge_domain_details
216 - gbp_bridge_domain_dump
217 - gbp_bridge_domain_dump_reply
218 - gbp_contract_add_del
219 - gbp_contract_add_del_reply
220 - gbp_contract_details
221 - gbp_contract_dump
222 - gbp_endpoint_add
223 - gbp_endpoint_add_reply
224 - gbp_endpoint_del
225 - gbp_endpoint_del_reply
226 - gbp_endpoint_details
227 - gbp_endpoint_dump
228 - gbp_endpoint_group_add
229 - gbp_endpoint_group_add_reply
230 - gbp_endpoint_group_del
231 - gbp_endpoint_group_del_reply
232 - gbp_endpoint_group_details
233 - gbp_endpoint_group_dump
234 - gbp_ext_itf_add_del
235 - gbp_ext_itf_add_del_reply
236 - gbp_ext_itf_details
237 - gbp_ext_itf_dump
238 - gbp_recirc_add_del
239 - gbp_recirc_add_del_reply
240 - gbp_recirc_details
241 - gbp_recirc_dump
242 - gbp_route_domain_add
243 - gbp_route_domain_add_reply
244 - gbp_route_domain_del
245 - gbp_route_domain_del_reply
246 - gbp_route_domain_details
247 - gbp_route_domain_dump
248 - gbp_route_domain_dump_reply
249 - gbp_subnet_add_del
250 - gbp_subnet_add_del_reply
251 - gbp_subnet_details
252 - gbp_subnet_dump
253 - gbp_vxlan_tunnel_add
254 - gbp_vxlan_tunnel_add_reply
255 - gbp_vxlan_tunnel_del
256 - gbp_vxlan_tunnel_del_reply
257 - gbp_vxlan_tunnel_details
258 - gbp_vxlan_tunnel_dump
259 - ikev2_child_sa_details
260 - ikev2_child_sa_dump
261 - ikev2_initiate_del_child_sa
262 - ikev2_initiate_del_child_sa_reply
263 - ikev2_initiate_del_ike_sa
264 - ikev2_initiate_del_ike_sa_reply
265 - ikev2_initiate_rekey_child_sa
266 - ikev2_initiate_rekey_child_sa_reply
267 - ikev2_initiate_sa_init
268 - ikev2_initiate_sa_init_reply
269 - ikev2_nonce_get
270 - ikev2_nonce_get_reply
271 - ikev2_profile_add_del
272 - ikev2_profile_add_del_reply
273 - ikev2_profile_details
274 - ikev2_profile_disable_natt
275 - ikev2_profile_disable_natt_reply
276 - ikev2_profile_dump
277 - ikev2_profile_set_auth
278 - ikev2_profile_set_auth_reply
279 - ikev2_profile_set_id
280 - ikev2_profile_set_id_reply
281 - ikev2_profile_set_ipsec_udp_port
282 - ikev2_profile_set_ipsec_udp_port_reply
283 - ikev2_profile_set_liveness
284 - ikev2_profile_set_liveness_reply
285 - ikev2_profile_set_ts
286 - ikev2_profile_set_ts_reply
287 - ikev2_profile_set_udp_encap
288 - ikev2_profile_set_udp_encap_reply
289 - ikev2_sa_details
290 - ikev2_sa_dump
291 - ikev2_set_esp_transforms
292 - ikev2_set_esp_transforms_reply
293 - ikev2_set_ike_transforms
294 - ikev2_set_ike_transforms_reply
295 - ikev2_set_local_key
296 - ikev2_set_local_key_reply
297 - ikev2_set_responder
298 - ikev2_set_responder_hostname
299 - ikev2_set_responder_hostname_reply
300 - ikev2_set_responder_reply
301 - ikev2_set_sa_lifetime
302 - ikev2_set_sa_lifetime_reply
303 - ikev2_set_tunnel_interface
304 - ikev2_set_tunnel_interface_reply
305 - ikev2_traffic_selector_details
306 - ikev2_traffic_selector_dump
307 - ip_route_add_del_v2
308 - ip_route_add_del_v2_reply
309 - ip_route_lookup_v2
310 - ip_route_lookup_v2_reply
311 - ip_route_v2_details
312 - ip_route_v2_dump
313 - l2_emulation
314 - l2_emulation_reply
315 - lcp_default_ns_get_reply
316 - lcp_default_ns_set
317 - lcp_default_ns_set_reply
318 - lcp_itf_pair_add_del
319 - lcp_itf_pair_add_del_reply
320 - lcp_itf_pair_add_del_v2
321 - lcp_itf_pair_details
322 - mdata_enable_disable
323 - mdata_enable_disable_reply
324 - nat44_ei_add_del_address_range
325 - nat44_ei_add_del_address_range_reply
326 - nat44_ei_add_del_static_mapping
327 - nat44_ei_add_del_static_mapping_reply
328 - nat44_ei_address_details
329 - nat44_ei_address_dump
330 - nat44_ei_del_session
331 - nat44_ei_del_session_reply
332 - nat44_ei_del_user
333 - nat44_ei_del_user_reply
334 - nat44_ei_forwarding_enable_disable
335 - nat44_ei_forwarding_enable_disable_reply
336 - nat44_ei_ha_flush
337 - nat44_ei_ha_flush_reply
338 - nat44_ei_ha_resync
339 - nat44_ei_ha_resync_completed_event
340 - nat44_ei_ha_resync_reply
341 - nat44_ei_ha_set_failover
342 - nat44_ei_ha_set_failover_reply
343 - nat44_ei_ha_set_listener
344 - nat44_ei_ha_set_listener_reply
345 - nat44_ei_interface_add_del_feature
346 - nat44_ei_interface_add_del_feature_reply
347 - nat44_ei_interface_details
348 - nat44_ei_interface_dump
349 - nat44_ei_ipfix_enable_disable
350 - nat44_ei_ipfix_enable_disable_reply
351 - nat44_ei_plugin_enable_disable
352 - nat44_ei_plugin_enable_disable_reply
353 - nat44_ei_set_addr_and_port_alloc_alg
354 - nat44_ei_set_addr_and_port_alloc_alg_reply
355 - nat44_ei_set_fq_options
356 - nat44_ei_set_fq_options_reply
357 - nat44_ei_set_mss_clamping
358 - nat44_ei_set_mss_clamping_reply
359 - nat44_ei_set_timeouts
360 - nat44_ei_set_timeouts_reply
361 - nat44_ei_set_workers
362 - nat44_ei_set_workers_reply
363 - nat44_ei_show_fq_options
364 - nat44_ei_show_fq_options_reply
365 - nat44_ei_show_running_config
366 - nat44_ei_show_running_config_reply
367 - nat44_ei_static_mapping_details
368 - nat44_ei_static_mapping_dump
369 - nat44_ei_user_details
370 - nat44_ei_user_dump
371 - nat44_ei_user_session_details
372 - nat44_ei_user_session_dump
373 - nat44_ei_worker_details
374 - nat44_ei_worker_dump
375 - nat64_plugin_enable_disable
376 - nat64_plugin_enable_disable_reply
377 - oddbuf_enable_disable
378 - oddbuf_enable_disable_reply
379 - pg_interface_enable_disable_coalesce
380 - pg_interface_enable_disable_coalesce_reply
381 - pnat_binding_add
382 - pnat_binding_add_reply
383 - pnat_binding_add_v2
384 - pnat_binding_add_v2_reply
385 - pnat_binding_attach
386 - pnat_binding_attach_reply
387 - pnat_binding_del
388 - pnat_binding_del_reply
389 - pnat_binding_detach
390 - pnat_binding_detach_reply
391 - pnat_bindings_details
392 - pnat_bindings_get
393 - pnat_bindings_get_reply
394 - pnat_interfaces_details
395 - pnat_interfaces_get
396 - pnat_interfaces_get_reply
397 - sample_macswap_enable_disable
398 - sample_macswap_enable_disable_reply
399 - sr_policies_with_sl_index_details
400 - sr_policies_with_sl_index_dump
401 - sw_interface_set_vxlan_gbp_bypass
402 - sw_interface_set_vxlan_gbp_bypass_reply
403 - test_addresses
404 - test_addresses2
405 - test_addresses2_reply
406 - test_addresses3
407 - test_addresses3_reply
408 - test_addresses_reply
409 - test_empty
410 - test_empty_reply
411 - test_enum
412 - test_enum_reply
413 - test_interface
414 - test_interface_reply
415 - test_prefix
416 - test_prefix_reply
417 - test_string
418 - test_string2
419 - test_string2_reply
420 - test_string_reply
421 - test_vla
422 - test_vla2
423 - test_vla2_reply
424 - test_vla3
425 - test_vla3_reply
426 - test_vla4
427 - test_vla4_reply
428 - test_vla5
429 - test_vla5_reply
430 - test_vla_reply
431 - trace_capture_packets
432 - trace_capture_packets_reply
433 - trace_clear_capture
434 - trace_clear_capture_reply
435 - trace_details
436 - trace_dump
437 - trace_dump_reply
438 - trace_set_filters
439 - trace_set_filters_reply
440 - vxlan_gbp_tunnel_add_del
441 - vxlan_gbp_tunnel_add_del_reply
442 - vxlan_gbp_tunnel_details
443 - vxlan_gbp_tunnel_dump
444 - want_wireguard_peer_events
445 - want_wireguard_peer_events_reply
446 - wg_set_async_mode
447 - wg_set_async_mode_reply
448 - wireguard_interface_create
449 - wireguard_interface_create_reply
450 - wireguard_interface_delete
451 - wireguard_interface_delete_reply
452 - wireguard_interface_details
453 - wireguard_interface_dump
454 - wireguard_peer_add
455 - wireguard_peer_add_reply
456 - wireguard_peer_event
457 - wireguard_peer_remove
458 - wireguard_peer_remove_reply
459 - wireguard_peers_details
460 - wireguard_peers_dump
461
462 Patches that changed API definitions
463 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
464
465
466 ``src/vnet/ipsec/ipsec.api``
467
468 * `93688d734 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=93688d734>`_ ipsec: Use .api declared error counters
469 * `815c6a4fb <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=815c6a4fb>`_ ipsec: change wildcard value for any protocol of spd policy
470
471 ``src/vnet/ipsec/ipsec_types.api``
472
473 * `d7c030d60 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=d7c030d60>`_ ipsec: make chacha20-poly1305 available via API
474 * `815c6a4fb <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=815c6a4fb>`_ ipsec: change wildcard value for any protocol of spd policy
475
476 ``src/vnet/mpls/mpls.api``
477
478 * `41a85c0a2 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=41a85c0a2>`_ mpls: Use the .api for the definition of error/info counters
479
480 ``src/vnet/arp/arp.api``
481
482 * `13a74ae25 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=13a74ae25>`_ arp: Use the new style error count declaration
483
484 ``src/vnet/ip/ip.api``
485
486 * `b29c60660 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=b29c60660>`_ ip: Use .api declarative counters for ICMP.
487 * `e22a70416 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=e22a70416>`_ ip: Use .api declared error counters
488
489 ``src/vnet/ip-neighbor/ip_neighbor.api``
490
491 * `6e4a56e65 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=6e4a56e65>`_ ip-neighbor: Declarative .api counters.
492
493 ``src/vnet/bfd/bfd.api``
494
495 * `5c7e579f7 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=5c7e579f7>`_ bfd: Express node stats using the .api file
496
497 ``src/plugins/abf/abf.api``
498
499 * `755b529c1 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=755b529c1>`_ abf: add API parameter n_paths range checks
500
501 ``src/plugins/linux-cp/lcp.api``
502
503 * `3f245e687 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=3f245e687>`_ linux-cp: change namespace to netns
504 * `99e3b8b84 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=99e3b8b84>`_ linux-cp: API downgrade due to namespace keyword