docs: better docs, mv doxygen to sphinx
[vpp.git] / docs / aboutvpp / releasenotes / v18.07.rst
1 Release notes for VPP 18.07
2 ===========================
3
4 More than 533 commits since the 18.04 release.
5
6 Features
7 --------
8
9 Infrastructure
10 ~~~~~~~~~~~~~~
11
12 -  DPDK 18.02.1
13
14    -  Complete rework of the dpdk-input node
15    -  Display rx/tx burst function name in “show hardware detail”
16    -  Improve buffer alloc perfomance
17
18       -  This is ~50% improvement in buffer alloc performance. For a 256
19          buffer allocation, it was ~10 clocks/buffer, now is < 5 clocks.
20
21    -  Add per-numa page allocation info to ‘show memory’
22    -  Vectorized bihash_{48,40,24,16}_8 key compare
23
24       -  bihash_48_8 case:
25
26          -  Scalar code: 6 clocks
27          -  SSE4.2 code: 3 clocks
28          -  AVX2 code: 2.27 clocks
29          -  AVX512 code: 1.5 clocks
30
31    -  Pollable Stats
32
33       -  Stats are now available to a client in a shared memory segment
34          and in the form of a directory, allowing very high performance
35          polling of stats without directly querying VPP.
36
37 VNET & Plugins
38 ~~~~~~~~~~~~~~
39
40 -  IGMP improvements
41
42    -  Enable/Disable an interface for IGMP
43    -  improve logging
44    -  refactor common code
45    -  no orphaned timers
46    -  IGMP state changes in main thread only
47    -  Large groups split over multiple state-change reports
48    -  SSM range configuration API.
49    -  more tests
50
51 -  IP: vectorized IP checksum
52 -  VXLAN : HW offload RX flow
53 -  Rework kube-proxy into LB plugin and add NATA66
54 -  NAT:
55
56    -  Code refactor
57    -  Syslog
58    -  Multiple outside interfaces
59    -  Endpoint dependent filtering and mapping
60
61 -  ACL:
62
63    -  Tuple Merge algorithm cleanup and integration
64    -  Processing pipeline optimizations
65    -  Refactoring
66
67 -  Experimental AVF driver
68
69 Host stack
70 ~~~~~~~~~~
71
72 -  Session: performance improvements, add support for connectionless
73    transports, datagram reception and transmission
74 -  TCP: congestion control improvements and overall fixes
75 -  UDP: datagram mode
76 -  TLS async support
77
78 Known issues
79 ------------
80
81 For the full list of issues please refer to fd.io
82 `JIRA <https://jira.fd.io>`__.
83
84 Issues fixed
85 ------------
86
87 For the full list of fixed issues please refer to:
88
89 - fd.io `JIRA <https://jira.fd.io>`__
90 - git `commit log <https://git.fd.io/vpp/log/?h=stable/1807>`__
91
92
93 API changes
94 -----------
95
96 Description of results:
97
98 -  *Definition changed*: indicates that the API file was modified
99    between releases.
100
101 -  *Only in image*: indicates the API is new for this release.
102
103 -  *Only in file*: indicates the API has been removed in this release.
104
105    ::
106
107                         Message Name                         Result
108
109    abf_itf_attach_add_del definition changed abf_itf_attach_details only
110    in image abf_itf_attach_dump only in image abf_plugin_get_version
111    definition changed abf_policy_add_del definition changed
112    abf_policy_details only in image abf_policy_dump only in image
113    af_packet_details only in image af_packet_dump only in image
114    avf_create definition changed avf_delete definition changed
115    bind_sock_reply definition changed bind_uri_reply definition changed
116    dhcp6_client_enable_disable definition changed
117    dhcp6_clients_enable_disable definition changed dhcp6_duid_ll_set
118    definition changed dhcp6_pd_client_enable_disable definition changed
119    dhcp6_pd_reply_event only in image dhcp6_pd_send_client_message
120    definition changed dhcp6_reply_event only in image
121    dhcp6_send_client_message definition changed dhcp_client_config
122    definition changed dhcp_client_details only in image dhcp_client_dump
123    only in image dhcp_compl_event definition changed
124    dslite_address_details only in image dslite_address_dump only in
125    image gbp_endpoint_group_add_del definition changed
126    gbp_endpoint_group_details only in image gbp_endpoint_group_dump only
127    in image gbp_recirc_add_del definition changed gbp_recirc_details
128    only in image gbp_recirc_dump only in image gbp_subnet_add_del
129    definition changed gbp_subnet_details only in image gbp_subnet_dump
130    only in image hw_interface_set_mtu definition changed igmp_details
131    definition changed igmp_dump definition changed igmp_enable_disable
132    definition changed igmp_event definition changed
133    igmp_group_prefix_details only in image igmp_group_prefix_dump only
134    in image igmp_group_prefix_set definition changed igmp_listen
135    definition changed ikev2_profile_set_auth definition changed
136    ikev2_profile_set_id definition changed
137    ip6_add_del_address_using_prefix definition changed ip_mroute_add_del
138    definition changed ip_probe_neighbor definition changed
139    ip_scan_neighbor_enable_disable definition changed
140    ip_unnumbered_details only in image ip_unnumbered_dump only in image
141    ipip_6rd_add_tunnel definition changed ipip_add_tunnel definition
142    changed ipip_tunnel_details definition changed ipsec_sa_details
143    definition changed ipsec_sad_add_del_entry definition changed
144    ipsec_tunnel_if_add_del definition changed kp_add_del_pod definition
145    changed kp_add_del_vip definition changed kp_conf definition changed
146    lb_add_del_vip definition changed mactime_add_del definition changed
147    mactime_enable definition changed memclnt_create definition changed
148    memclnt_create_reply definition changed memfd_segment_create
149    definition changed nat44_add_del_lb_static_mapping definition changed
150    nat44_add_del_static_mapping definition changed nat44_del_session
151    definition changed nat44_lb_static_mapping_details definition changed
152    nat44_static_mapping_details definition changed
153    nat44_user_session_details definition changed pipe_create definition
154    changed pipe_delete definition changed pipe_details only in image
155    pipe_dump only in image pot_profile_activate definition changed
156    pot_profile_add definition changed pot_profile_del definition changed
157    proxy_arp_add_del definition changed proxy_arp_details only in image
158    proxy_arp_dump only in image proxy_arp_intfc_details only in image
159    proxy_arp_intfc_dump only in image sock_init_shm_reply definition
160    changed sockclnt_create definition changed sockclnt_create_reply
161    definition changed sr_localsid_add_del definition changed
162    sr_localsids_details definition changed sr_policies_details only in
163    image sr_policies_dump only in image sr_policy_add definition changed
164    sr_policy_del definition changed sr_policy_mod definition changed
165    sr_steering_pol_details only in image sr_steering_pol_dump only in
166    image sw_interface_details definition changed sw_interface_set_mtu
167    definition changed tap_create_v2 definition changed
168    vnet_bier_neighbor_counters only in image
169    vnet_get_summary_stats_reply definition changed vxlan_offload_rx
170    definition changed want_bier_neighbor_stats definition changed
171    want_dhcp6_pd_reply_events definition changed want_dhcp6_reply_events
172    definition changed Found 107 api message signature differences
173
174 Patches that changed API definitions
175 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
176
177 ``src/plugins/ioam/lib-pot/pot.api``
178
179 * `e9fcf23 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=e9fcf23>`_ Fix some build warnings about "Old Style VLA"
180
181 ``src/plugins/gbp/gbp.api``
182
183 * `25b0494 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=25b0494>`_ GBP V2
184
185 ``src/plugins/map/map.api``
186
187 * `381e9a9 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=381e9a9>`_ MAP: Move MAP-E/T to a plugin.
188
189 ``src/plugins/igmp/igmp.api``
190
191 * `947ea62 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=947ea62>`_ IGMP improvements
192
193 ``src/plugins/lb/lb.api``
194
195 * `d92a0b5 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=d92a0b5>`_ Rework kube-proxy into LB plugin
196
197 ``src/plugins/nat/nat.api``
198
199 * `70a26ac <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=70a26ac>`_ NAT44: nat44_del_session and nat44_user_session_details API update (VPP-1271)
200 * `ebdf190 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=ebdf190>`_ NAT44: TCP connection close detection (VPP-1266)
201 * `1e5c07d <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=1e5c07d>`_ Add special Twice-NAT feature (VPP-1221)
202 * `16aa7f8 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=16aa7f8>`_ DSLite: Implement new API call DSLITE_ADDRESS_DUMP.
203
204 ``src/plugins/avf/avf.api``
205
206 * `258a189 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=258a189>`_ avf: api fix
207 * `6c9b964 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=6c9b964>`_ avf: binary API and configurable RX/TX queue size
208
209 ``src/plugins/mactime/mactime.api``
210
211 * `7055e26 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=7055e26>`_ Driver level time-based src mac filter
212
213 ``src/plugins/abf/abf.api``
214
215 * `669d07d <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=669d07d>`_ ACL based forwarding
216
217 ``src/vlibmemory/memclnt.api``
218
219 * `dab732a <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=dab732a>`_ VPP-1335 vapi crash when memclnt_keepalive received
220 * `7895872 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=7895872>`_ Remove the historical memfd api segment bootstrap
221
222 ``src/vpp/stats/stats.api``
223
224 * `a21a367 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=a21a367>`_ VPP-1324 SIGSEGV vl_msg_api_handler_with_vm_node()
225 * `586479a <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=586479a>`_ BIER neighbor stats
226 * `e906aac <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=e906aac>`_ STATS: Separate socket for fd exchange.
227 * `048a4e5 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=048a4e5>`_ export counters in a memfd segment
228
229 ``src/vnet/interface.api``
230
231 * `d723161 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=d723161>`_ MTU: Software interface / Per-protocol MTU support
232 * `fe7d4a2 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=fe7d4a2>`_ Revert "MTU: Setting of MTU on software interface (instead of hardware interface)"
233 * `70083ee <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=70083ee>`_ MTU: Setting of MTU on software interface (instead of hardware interface)
234
235 ``src/vnet/ipfix-export/ipfix_export.api``
236
237 * `a9855ef <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=a9855ef>`_ Flow: Rename IPFIX exporter.
238
239 ``src/vnet/dhcp/dhcp6_pd_client_cp.api``
240
241 * `81119e8 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=81119e8>`_ Implement DHCPv6 PD client (VPP-718, VPP-1050)
242
243 ``src/vnet/dhcp/dhcp.api``
244
245 * `dd3b8f7 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=dd3b8f7>`_ Implement DHCPv6 IA NA client (VPP-1094)
246 * `d9778c2 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=d9778c2>`_ Update DHCPv6 DUID code and fix coverity warnings
247 * `81119e8 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=81119e8>`_ Implement DHCPv6 PD client (VPP-718, VPP-1050)
248 * `daff178 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=daff178>`_ DHCP Client Dump
249
250 ``src/vnet/dhcp/dhcp6_ia_na_client_cp.api``
251
252 * `dd3b8f7 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=dd3b8f7>`_ Implement DHCPv6 IA NA client (VPP-1094)
253
254 ``src/vnet/ip/ip.api``
255
256 * `947ea62 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=947ea62>`_ IGMP improvements
257 * `7eaaf74 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=7eaaf74>`_ proxy_arp: remove unused is_add
258 * `0053de6 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=0053de6>`_ ARP proxy dumps
259 * `9e2f915 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=9e2f915>`_ IP unnumbered dump
260 * `7f358b3 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=7f358b3>`_ Periodic scan and probe of IP neighbors to maintain neighbor pools
261 * `e821ab1 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=e821ab1>`_ IP mcast: allow unicast address as a next-hop
262 * `c7b4304 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=c7b4304>`_ Implement ip_probe_neighbor API
263
264 ``src/vnet/ip/ip_types.api``
265
266 * `947ea62 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=947ea62>`_ IGMP improvements
267 * `2c2feab <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=2c2feab>`_ VPPAPIGEN: Add union and enum support and IP4/IP6 address type.
268
269 ``src/vnet/devices/af_packet/af_packet.api``
270
271 * `04e0bb2 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=04e0bb2>`_ af_packet: Add support for dump interfaces
272
273 ``src/vnet/devices/tap/tapv2.api``
274
275 * `d600ffe <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=d600ffe>`_ Update tapv2 documentation
276 * `0b06111 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=0b06111>`_ VPP-1305: Add support for tags
277
278 ``src/vnet/devices/pipe/pipe.api``
279
280 * `ee8b973 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=ee8b973>`_ VOM: support for pipes
281 * `17ff3c1 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=17ff3c1>`_ Pipes
282
283 ``src/vnet/ipip/ipip.api``
284
285 * `d57f636 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=d57f636>`_ VPP-1277: IPIP - Copy TOS/TC from inner packet to outer.
286
287 ``src/vnet/session/session.api``
288
289 * `7fb0fe1 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=7fb0fe1>`_ udp/session: refactor to support dgram mode
290
291 ``src/vnet/ipsec/ipsec.api``
292
293 * `4b089f2 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=4b089f2>`_ ipsec: support UDP encap/decap for NAT traversal
294 * `e9fcf23 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=e9fcf23>`_ Fix some build warnings about "Old Style VLA"
295 * `8e1039a <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=8e1039a>`_ Allow an IPsec tunnel interface to be renumbered
296
297 ``src/vnet/vxlan/vxlan.api``
298
299 * `af86a48 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=af86a48>`_ vxlan:offload RX flow
300
301 ``src/vnet/srv6/sr.api``
302
303 * `3337bd2 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=3337bd2>`_ Fixed bugs in SRv6 API
304 * `e9fcf23 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=e9fcf23>`_ Fix some build warnings about "Old Style VLA"
305
306