docs: better docs, mv doxygen to sphinx
[vpp.git] / docs / aboutvpp / releasenotes / v18.01.rst
1 Release notes for VPP 18.01
2 ===========================
3
4 More than 560 commits since the 17.10 release.
5
6 Features
7 --------
8
9 -  Infrastructure
10
11    -  DPDK 17.11
12    -  TCP Checksum Offload
13    -  Arm64/Arm-v8 support
14    -  SUSE packaging
15    -  bihash_vec8_8 variant
16    -  PCI rework to support VFIO
17    -  chi-squared test calculator
18
19 -  SNAT / NAT
20
21    -  One armed NAT
22    -  Twice NAT44
23    -  NAT hairpinning rework
24    -  NAT64 multi-thread
25    -  NAT64 IPFIX
26    -  NAT64 Fragmentation
27    -  NAT: DS-Lite
28    -  Remove old SNAT API
29    -  ACL-based NAT
30
31 -  VNET
32
33    -  DNS name resolver
34    -  BIER
35    -  GENEVE Tunnel
36    -  IPSec Openssl 1.1.0 api support
37    -  FIB improvements
38    -  tap v2
39
40 -  API
41
42    -  VPP stats (Broadcast & Multicast support)
43    -  SR MPLS
44    -  VPP Object Model (VOM)
45
46 -  Host Stack
47
48    -  VPP TCP Stack scale / congestion improvements
49    -  Refactor UDP
50    -  Namespace support
51    -  Session rules table
52    -  VPP Comms Library (VCL) improvements
53
54 -  ACL
55
56    -  ACL stats
57
58 -  Plugins
59
60    -  Kube-proxy
61    -  L2 Emulation
62    -  Memif
63
64 Known issues
65 ------------
66
67 For the full list of issues please refer to fd.io
68 `JIRA <https://jira.fd.io>`__.
69
70 Issues fixed
71 ------------
72
73 For the full list of fixed issues please refer to:
74
75 - fd.io `JIRA <https://jira.fd.io>`__
76 - git `commit log <https://git.fd.io/vpp/log/?h=stable/1801>`__
77
78
79 API changes
80 -----------
81
82 ===================================== ==================
83 Message Name                          Result
84 ===================================== ==================
85 af_packet_set_l4_cksum_offload        definition changed
86 api_versions                          definition changed
87 app_namespace_add_del                 definition changed
88 application_attach                    definition changed
89 bier_disp_entry_add_del               definition changed
90 bier_disp_entry_details               only in image
91 bier_disp_entry_dump                  only in image
92 bier_disp_table_add_del               definition changed
93 bier_disp_table_details               only in image
94 bier_disp_table_dump                  only in image
95 bier_imp_add                          definition changed
96 bier_imp_del                          definition changed
97 bier_imp_details                      only in image
98 bier_imp_dump                         only in image
99 bier_route_add_del                    definition changed
100 bier_route_details                    only in image
101 bier_route_dump                       only in image
102 bier_table_add_del                    definition changed
103 bier_table_details                    only in image
104 bier_table_dump                       only in image
105 bind_sock_reply                       definition changed
106 connect_session_reply                 definition changed
107 connect_sock                          definition changed
108 connect_uri                           definition changed
109 dhcp_proxy_details                    definition changed
110 dhcp_proxy_set_vss                    definition changed
111 dns_enable_disable                    definition changed
112 dns_name_server_add_del               definition changed
113 dns_resolve_ip                        definition changed
114 dns_resolve_name                      definition changed
115 dslite_add_del_pool_addr_range        definition changed
116 dslite_set_aftr_addr                  definition changed
117 geneve_add_del_tunnel                 definition changed
118 geneve_tunnel_details                 only in image
119 geneve_tunnel_dump                    only in image
120 ip_add_del_route                      definition changed
121 ip_container_proxy_add_del            definition changed
122 ip_mroute_add_del                     definition changed
123 ip_neighbor_details                   definition changed
124 ip_punt_police                        definition changed
125 ip_punt_redirect                      definition changed
126 ipsec_sa_details                      only in image
127 ipsec_sa_dump                         only in image
128 ipsec_sad_add_del_entry               definition changed
129 ipsec_tunnel_if_set_key               definition changed
130 ipsec_tunnel_if_set_sa                definition changed
131 kp_add_del_pod                        definition changed
132 kp_add_del_vip                        definition changed
133 kp_conf                               definition changed
134 l2_emulation                          definition changed
135 l2_fib_table_details                  definition changed
136 l2fib_add_del                         definition changed
137 memclnt_keepalive                     definition changed
138 memfd_segment_create                  definition changed
139 mpls_ip_bind_unbind                   definition changed
140 mpls_route_add_del                    definition changed
141 nat44_add_del_address_range           definition changed
142 nat44_add_del_identity_mapping        definition changed
143 nat44_add_del_interface_addr          definition changed
144 nat44_add_del_lb_static_mapping       definition changed
145 nat44_add_del_static_mapping          definition changed
146 nat44_address_details                 definition changed
147 nat44_del_session                     definition changed
148 nat44_forwarding_enable_disable       definition changed
149 nat44_forwarding_is_enabled           definition changed
150 nat44_identity_mapping_details        only in image
151 nat44_identity_mapping_dump           only in image
152 nat44_interface_addr_details          definition changed
153 nat44_lb_static_mapping_details       definition changed
154 nat44_static_mapping_details          definition changed
155 nat64_add_del_interface_addr          definition changed
156 nat_get_reass                         definition changed
157 nat_reass_details                     only in image
158 nat_reass_dump                        only in image
159 nat_set_reass                         definition changed
160 reset_vrf                             definition changed
161 session_rule_add_del                  definition changed
162 session_rules_details                 only in image
163 session_rules_dump                    only in image
164 snat_add_address_range                definition changed
165 snat_add_del_interface_addr           definition changed
166 snat_add_det_map                      definition changed
167 snat_add_static_mapping               definition changed
168 snat_address_details                  only in file
169 snat_address_dump                     only in file
170 snat_control_ping                     definition changed
171 snat_det_close_session_in             definition changed
172 snat_det_close_session_out            definition changed
173 snat_det_forward                      definition changed
174 snat_det_get_timeouts                 definition changed
175 snat_det_map_details                  only in file
176 snat_det_map_dump                     only in file
177 snat_det_reverse                      definition changed
178 snat_det_session_details              only in file
179 snat_det_session_dump                 only in file
180 snat_det_set_timeouts                 definition changed
181 snat_interface_add_del_feature        definition changed
182 snat_interface_add_del_output_feature definition changed
183 snat_interface_addr_details           only in file
184 snat_interface_addr_dump              only in file
185 snat_interface_details                only in file
186 snat_interface_dump                   only in file
187 snat_interface_output_feature_details only in file
188 snat_interface_output_feature_dump    only in file
189 snat_ipfix_enable_disable             definition changed
190 snat_set_workers                      definition changed
191 snat_show_config                      definition changed
192 snat_static_mapping_details           only in file
193 snat_static_mapping_dump              only in file
194 snat_user_details                     only in file
195 snat_user_dump                        only in file
196 snat_user_session_details             only in file
197 snat_user_session_dump                only in file
198 snat_worker_details                   only in file
199 snat_worker_dump                      only in file
200 sockclnt_create                       definition changed
201 sockclnt_delete                       definition changed
202 sr_localsids_details                  only in image
203 sr_localsids_dump                     only in image
204 sr_mpls_policy_add                    definition changed
205 sr_mpls_policy_assign_endpoint_color  definition changed
206 sr_mpls_policy_del                    definition changed
207 sr_mpls_policy_mod                    definition changed
208 sr_mpls_steering_add_del              definition changed
209 sr_set_encap_source                   definition changed
210 stn_add_del_rule                      definition changed
211 stn_rule_details                      only in image
212 stn_rules_dump                        only in image
213 sw_interface_set_geneve_bypass        definition changed
214 sw_interface_set_lldp                 definition changed
215 sw_interface_set_rx_mode              definition changed
216 sw_interface_tap_v2_details           only in image
217 sw_interface_tap_v2_dump              only in image
218 tap_create_v2                         definition changed
219 tap_delete_v2                         definition changed
220 udp_encap_add_del                     definition changed
221 udp_encap_details                     only in image
222 udp_encap_dump                        only in image
223 vnet_ip4_mfib_counters                only in image
224 vnet_ip6_mfib_counters                only in image
225 want_ip4_mfib_stats                   definition changed
226 want_ip6_mfib_stats                   definition changed
227 ===================================== ==================
228
229 Found 142 api message signature differences
230
231 Patches that changed API definitions
232 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
233
234 * ``./src/examples/sample-plugin/sample/sample.api`` 0d056e5e vppapigen:
235   support per-file (major,minor,patch) version stamps
236 * ``./src/vnet/interface.api b8d4481a`` Break up vpe.api ad8015be devices: Add
237   binary API for set interface rx-mode 0d056e5e vppapigen: support
238   per-file (major,minor,patch) version stamps
239 * ``./src/vnet/feature/feature.api`` b8d4481a Break up vpe.api
240 * ``./src/vnet/srv6/sr.api`` 1a5e301f SRv6 improvements to binary API 0d056e5e
241   vppapigen: support per-file (major,minor,patch) version stamps
242 * ``./src/vnet/bier/bier.api`` be302d72 BIER coverity fix in route downlaod
243   ceb4d05b BIER disposition default route fa1da15c BIER: API documentation
244   fixes. 9128637e BIER in non-MPLS netowrks d792d9c0 BIER
245 * ``./src/vnet/vxlan-gpe/vxlan_gpe.api`` 0d056e5e vppapigen: support per-file
246   (major,minor,patch) version stamps
247 * ``./src/vnet/unix/tap.api`` 0d056e5e vppapigen: support per-file
248   (major,minor,patch) version stamps
249 * ``./src/vnet/lldp/lldp.api`` 9a6fcef4 LLDP: Add Management Address TLV
250   0d056e5e vppapigen: support per-file (major,minor,patch) version stamps
251 * ``./src/vnet/dns/dns.api`` d2080159 Add reverse DNS (ip to name) resolution
252   6545716c VPP-1027: DNS name resolver
253 * ``./src/vnet/session/session.api`` dcf55ce2 vppcom: improve listener session
254   handling 6e8c6679 session: add app ns index to ns create api c97a7398
255   session: add rule tags 6c36f53f session: add api to dump rules 1c710451
256   session: rules tables ade70e45 session: return local transport endpoint
257   in connect reply cea194d8 session: add support for application
258   namespacing 0d056e5e vppapigen: support per-file (major,minor,patch)
259   version stamps
260 * ``./src/vnet/devices/af_packet/af_packet.api`` 92b0275a af_packet: invalid
261   TCP/UDP offload checksum on RX node recalculation 0d056e5e vppapigen:
262   support per-file (major,minor,patch) version stamps
263 * ``./src/vnet/devices/netmap/netmap.api`` 0d056e5e vppapigen: support
264   per-file (major,minor,patch) version stamps
265 * ``./src/vnet/devices/tap/tapv2.api`` 73e7f427 tap_v2: include host-side
266   parameters in the dump binary API 2df39094 tapv2: multiple improvements
267   c99b4cd1 tap_v2: move code to vnet/devices/tap
268 * ``./src/vnet/devices/virtio/vhost_user.api`` 0d056e5e vppapigen: support
269   per-file (major,minor,patch) version stamps
270 * ``./src/vnet/lisp-gpe/lisp_gpe.api`` 0d056e5e vppapigen: support per-file
271   (major,minor,patch) version stamps
272 * ``./src/vnet/srmpls/sr_mpls.api`` 42998828 SR-MPLS: binary API and automated
273   steering
274 * ``./src/vnet/l2/l2.api`` b8d4481a Break up vpe.api 57938f63 l2fib: MAC: Fix
275   uint64 to u8 byte array 0d056e5e vppapigen: support per-file
276   (major,minor,patch) version stamps
277 * ``./src/vnet/udp/udp.api`` 810086d8 UDP Encapsulation.
278 * ``./src/vnet/policer/policer.api`` 0d056e5e vppapigen: support per-file
279   (major,minor,patch) version stamps
280 * ``./src/vnet/bfd/bfd.api`` 0d056e5e vppapigen: support per-file
281   (major,minor,patch) version stamps
282 * ``./src/vnet/geneve/geneve.api`` 556033a0 Add API versioning to GENEVE
283   tunnel implementation. b598f1d3 Initial GENEVE TUNNEL implementation and
284   tests.
285 * ``./src/vnet/gre/gre.api`` 0d056e5e vppapigen: support per-file
286   (major,minor,patch) version stamps
287 * ``./src/vnet/map/map.api`` 0d056e5e vppapigen: support per-file
288   (major,minor,patch) version stamps
289 * ``./src/vnet/flow/flow.api`` 0d056e5e vppapigen: support per-file
290   (major,minor,patch) version stamps
291 * ``./src/vnet/pg/pg.api`` b8d4481a Break up vpe.api
292 * ``./src/vnet/dhcp/dhcp.api`` 70bfcaf4 Add Support of DHCP VSS Type 0 where
293   VPN-ID is ASCII 0d056e5e vppapigen: support per-file (major,minor,patch)
294   version stamps
295 * ``./src/vnet/ipsec/ipsec.api`` ca514fda Allow IPsec interface to have SAs
296   reset 75d85609 Add API call to set keys on IPsec tunnel intf 0d056e5e
297   vppapigen: support per-file (major,minor,patch) version stamps 28029530
298   Add API support to dump IPsec SAs
299 * ``./src/vnet/mpls/mpls.api`` c42fc05b Remove the unused ‘create VRF if
300   needed’ API parameters b8d4481a Break up vpe.api d792d9c0 BIER d0a59722
301   Revert “Enforce FIB table creation before use” f9342023 Enforce FIB
302   table creation before use 0d056e5e vppapigen: support per-file
303   (major,minor,patch) version stamps
304 * ``./src/vnet/ethernet/p2p_ethernet.api`` 0d056e5e vppapigen: support
305   per-file (major,minor,patch) version stamps
306 * ``./src/vnet/span/span.api`` 0d056e5e vppapigen: support per-file
307   (major,minor,patch) version stamps
308 * ``./src/vnet/lisp-cp/lisp.api`` 0d056e5e vppapigen: support per-file
309   (major,minor,patch) version stamps
310 * ``./src/vnet/lisp-cp/one.api`` 0d056e5e vppapigen: support per-file
311   (major,minor,patch) version stamps
312 * ``./src/vnet/vxlan/vxlan.api`` 0d056e5e vppapigen: support per-file
313   (major,minor,patch) version stamps
314 * ``./src/vnet/ipsec-gre/ipsec_gre.api`` 0d056e5e vppapigen: support per-file
315   (major,minor,patch) version stamps
316 * ``./src/vnet/classify/classify.api`` b8d4481a Break up vpe.api 8527f12b add
317   classify session action set-sr-policy-index 0d056e5e vppapigen: support
318   per-file (major,minor,patch) version stamps
319 * ``./src/vnet/ip/punt.api`` b8d4481a Break up vpe.api
320 * ``./src/vnet/ip/ip.api`` c42fc05b Remove the unused ‘create VRF if needed’
321   API parameters b8d4481a Break up vpe.api af8dfbf6 Add sw_if_index to the
322   ip_neighbor_details_t response. d792d9c0 BIER 810086d8 UDP
323   Encapsulation. 595992c5 ip: add container proxy api 0164a06d Remove
324   unused ‘not_last’ parameter from ip_add_del_route d0a59722 Revert
325   “Enforce FIB table creation before use” 054c03ac Source Lookup
326   progammable via API f9342023 Enforce FIB table creation before use
327   d91c1dbd punt and drop features: - new IPv4 and IPv6 feature arcs on the
328   punt and drop nodes - new features: - redirect punted traffic to an
329   interface and nexthop - police punted traffic. 0d056e5e vppapigen:
330   support per-file (major,minor,patch) version stamps 6f631156 Distributed
331   Virtual Router Support
332 * ``./src/vnet/cop/cop.api`` 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps
333 * ``./src/vnet/l2tp/l2tp.api`` 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps
334 * ``./src/vpp/oam/oam.api`` b8d4481a Break up vpe.api
335 * ``./src/vpp/stats/stats.api`` ff233898 Stats for Multicast FIB 0d056e5e
336   vppapigen: support per-file (major,minor,patch) version stamps
337 * ``./src/vpp/api/vpe.api`` b8d4481a Break up vpe.api d792d9c0 BIER 0d056e5e
338   vppapigen: support per-file (major,minor,patch) version stamps b598f1d3
339   Initial GENEVE TUNNEL implementation and tests.
340 * ``./src/plugins/ioam/udp-ping/udp_ping.api`` 0d056e5e vppapigen: support
341   per-file (major,minor,patch) version stamps
342 * ``./src/plugins/ioam/ip6/ioam_cache.api`` 0d056e5e vppapigen: support
343   per-file (major,minor,patch) version stamps
344 * ``./src/plugins/ioam/lib-pot/pot.api`` 0d056e5e vppapigen: support per-file
345   (major,minor,patch) version stamps
346 * ``./src/plugins/ioam/lib-trace/trace.api`` 0d056e5e vppapigen: support
347   per-file (major,minor,patch) version stamps
348 * ``./src/plugins/ioam/export/ioam_export.api`` 0d056e5e vppapigen: support
349   per-file (major,minor,patch) version stamps
350 * ``./src/plugins/ioam/export-vxlan-gpe/vxlan_gpe_ioam_export.api`` 0d056e5e
351   vppapigen: support per-file (major,minor,patch) version stamps
352 * ``./src/plugins/ioam/lib-vxlan-gpe/ioam_vxlan_gpe.api`` 0d056e5e vppapigen:
353   support per-file (major,minor,patch) version stamps
354 * ``./src/plugins/pppoe/pppoe.api`` 0d056e5e vppapigen: support per-file
355   (major,minor,patch) version stamps
356 * ``./src/plugins/dpdk/api/dpdk.api`` 0d056e5e vppapigen: support per-file
357   (major,minor,patch) version stamps
358 * ``./src/plugins/acl/acl.api`` 0d056e5e vppapigen: support per-file
359   (major,minor,patch) version stamps
360 * ``./src/plugins/gtpu/gtpu.api`` 0d056e5e vppapigen: support per-file
361   (major,minor,patch) version stamps
362 * ``./src/plugins/l2e/l2e.api`` 4ec38711 L2 emulation: remove usued
363   ip-table-id from API 55d03788 L2 Emulation
364 * ``./src/plugins/flowprobe/flowprobe.api`` 0d056e5e vppapigen: support
365   per-file (major,minor,patch) version stamps
366 * ``./src/plugins/nat/nat.api`` 7b929793 Translate matching packets using NAT
367   (VPP-1069) b932d26e NAT: Twice NAT44 (VPP-969) ab7a805f NAT44: identity
368   NAT (VPP-1073) c6fb36fc NAT: Remove old SNAT API (VPP-1070) 0938dcf1
369   NAT64 to use IPv4 address from interface (VPP-1051) efcd1e9e SNAT: IP
370   fragmentation (VPP-890) 8ebe6253 NAT: DS-Lite (VPP-1040) 5ba86f72 NAT:
371   delete session API/CLI (VPP-1041) 36ea2d6d One armed NAT (VPP-1035)
372   0d056e5e vppapigen: support per-file (major,minor,patch) version stamps
373 * ``./src/plugins/memif/memif.api`` 0d056e5e vppapigen: support per-file
374   (major,minor,patch) version stamps
375 * ``./src/plugins/kubeproxy/kp.api`` c91f5024 Support kube-proxy data plane
376 * ``./src/plugins/lb/lb.api`` 0d056e5e vppapigen: support per-file
377   (major,minor,patch) version stamps
378 * ``./src/plugins/stn/stn.api`` 0906c5cf Plugin for IP-Address to Interface
379   Punting
380 * ``./src/vlibmemory/memclnt.api 0d056e5e`` vppapigen: support per-file
381   (major,minor,patch) version stamps 59b2565c Repair vlib API socket
382   server