summaryrefslogtreecommitdiffstats
path: root/docs/aboutvpp/releasenotes/v18.07.rst
blob: 472f38bb37d65a26c13b1d6e0368b8764fac18b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
Release notes for VPP 18.07
===========================

More than 533 commits since the 18.04 release.

Features
--------

Infrastructure
~~~~~~~~~~~~~~

-  DPDK 18.02.1

   -  Complete rework of the dpdk-input node
   -  Display rx/tx burst function name in “show hardware detail”
   -  Improve buffer alloc perfomance

      -  This is ~50% improvement in buffer alloc performance. For a 256
         buffer allocation, it was ~10 clocks/buffer, now is < 5 clocks.

   -  Add per-numa page allocation info to ‘show memory’
   -  Vectorized bihash_{48,40,24,16}_8 key compare

      -  bihash_48_8 case:

         -  Scalar code: 6 clocks
         -  SSE4.2 code: 3 clocks
         -  AVX2 code: 2.27 clocks
         -  AVX512 code: 1.5 clocks

   -  Pollable Stats

      -  Stats are now available to a client in a shared memory segment
         and in the form of a directory, allowing very high performance
         polling of stats without directly querying VPP.

VNET & Plugins
~~~~~~~~~~~~~~

-  IGMP improvements

   -  Enable/Disable an interface for IGMP
   -  improve logging
   -  refactor common code
   -  no orphaned timers
   -  IGMP state changes in main thread only
   -  Large groups split over multiple state-change reports
   -  SSM range configuration API.
   -  more tests

-  IP: vectorized IP checksum
-  VXLAN : HW offload RX flow
-  Rework kube-proxy into LB plugin and add NATA66
-  NAT:

   -  Code refactor
   -  Syslog
   -  Multiple outside interfaces
   -  Endpoint dependent filtering and mapping

-  ACL:

   -  Tuple Merge algorithm cleanup and integration
   -  Processing pipeline optimizations
   -  Refactoring

-  Experimental AVF driver

Host stack
~~~~~~~~~~

-  Session: performance improvements, add support for connectionless
   transports, datagram reception and transmission
-  TCP: congestion control improvements and overall fixes
-  UDP: datagram mode
-  TLS async support

Known issues
------------

For the full list of issues please refer to fd.io
`JIRA <https://jira.fd.io>`__.

Issues fixed
------------

For the full list of fixed issues please refer to:

- fd.io `JIRA <https://jira.fd.io>`__
- git `commit log <https://git.fd.io/vpp/log/?h=stable/1807>`__


API changes
-----------

Description of results:

-  *Definition changed*: indicates that the API file was modified
   between releases.

-  *Only in image*: indicates the API is new for this release.

-  *Only in file*: indicates the API has been removed in this release.

   ::

                        Message Name                         Result

   abf_itf_attach_add_del definition changed abf_itf_attach_details only
   in image abf_itf_attach_dump only in image abf_plugin_get_version
   definition changed abf_policy_add_del definition changed
   abf_policy_details only in image abf_policy_dump only in image
   af_packet_details only in image af_packet_dump only in image
   avf_create definition changed avf_delete definition changed
   bind_sock_reply definition changed bind_uri_reply definition changed
   dhcp6_client_enable_disable definition changed
   dhcp6_clients_enable_disable definition changed dhcp6_duid_ll_set
   definition changed dhcp6_pd_client_enable_disable definition changed
   dhcp6_pd_reply_event only in image dhcp6_pd_send_client_message
   definition changed dhcp6_reply_event only in image
   dhcp6_send_client_message definition changed dhcp_client_config
   definition changed dhcp_client_details only in image dhcp_client_dump
   only in image dhcp_compl_event definition changed
   dslite_address_details only in image dslite_address_dump only in
   image gbp_endpoint_group_add_del definition changed
   gbp_endpoint_group_details only in image gbp_endpoint_group_dump only
   in image gbp_recirc_add_del definition changed gbp_recirc_details
   only in image gbp_recirc_dump only in image gbp_subnet_add_del
   definition changed gbp_subnet_details only in image gbp_subnet_dump
   only in image hw_interface_set_mtu definition changed igmp_details
   definition changed igmp_dump definition changed igmp_enable_disable
   definition changed igmp_event definition changed
   igmp_group_prefix_details only in image igmp_group_prefix_dump only
   in image igmp_group_prefix_set definition changed igmp_listen
   definition changed ikev2_profile_set_auth definition changed
   ikev2_profile_set_id definition changed
   ip6_add_del_address_using_prefix definition changed ip_mroute_add_del
   definition changed ip_probe_neighbor definition changed
   ip_scan_neighbor_enable_disable definition changed
   ip_unnumbered_details only in image ip_unnumbered_dump only in image
   ipip_6rd_add_tunnel definition changed ipip_add_tunnel definition
   changed ipip_tunnel_details definition changed ipsec_sa_details
   definition changed ipsec_sad_add_del_entry definition changed
   ipsec_tunnel_if_add_del definition changed kp_add_del_pod definition
   changed kp_add_del_vip definition changed kp_conf definition changed
   lb_add_del_vip definition changed mactime_add_del definition changed
   mactime_enable definition changed memclnt_create definition changed
   memclnt_create_reply definition changed memfd_segment_create
   definition changed nat44_add_del_lb_static_mapping definition changed
   nat44_add_del_static_mapping definition changed nat44_del_session
   definition changed nat44_lb_static_mapping_details definition changed
   nat44_static_mapping_details definition changed
   nat44_user_session_details definition changed pipe_create definition
   changed pipe_delete definition changed pipe_details only in image
   pipe_dump only in image pot_profile_activate definition changed
   pot_profile_add definition changed pot_profile_del definition changed
   proxy_arp_add_del definition changed proxy_arp_details only in image
   proxy_arp_dump only in image proxy_arp_intfc_details only in image
   proxy_arp_intfc_dump only in image sock_init_shm_reply definition
   changed sockclnt_create definition changed sockclnt_create_reply
   definition changed sr_localsid_add_del definition changed
   sr_localsids_details definition changed sr_policies_details only in
   image sr_policies_dump only in image sr_policy_add definition changed
   sr_policy_del definition changed sr_policy_mod definition changed
   sr_steering_pol_details only in image sr_steering_pol_dump only in
   image sw_interface_details definition changed sw_interface_set_mtu
   definition changed tap_create_v2 definition changed
   vnet_bier_neighbor_counters only in image
   vnet_get_summary_stats_reply definition changed vxlan_offload_rx
   definition changed want_bier_neighbor_stats definition changed
   want_dhcp6_pd_reply_events definition changed want_dhcp6_reply_events
   definition changed Found 107 api message signature differences

Patches that changed API definitions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

``src/plugins/ioam/lib-pot/pot.api``

* `e9fcf23 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=e9fcf23>`_ Fix some build warnings about "Old Style VLA"

``src/plugins/gbp/gbp.api``

* `25b0494 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=25b0494>`_ GBP V2

``src/plugins/map/map.api``

* `381e9a9 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=381e9a9>`_ MAP: Move MAP-E/T to a plugin.

``src/plugins/igmp/igmp.api``

* `947ea62 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=947ea62>`_ IGMP improvements

``src/plugins/lb/lb.api``

* `d92a0b5 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=d92a0b5>`_ Rework kube-proxy into LB plugin

``src/plugins/nat/nat.api``

* `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)
* `ebdf190 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=ebdf190>`_ NAT44: TCP connection close detection (VPP-1266)
* `1e5c07d <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=1e5c07d>`_ Add special Twice-NAT feature (VPP-1221)
* `16aa7f8 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=16aa7f8>`_ DSLite: Implement new API call DSLITE_ADDRESS_DUMP.

``src/plugins/avf/avf.api``

* `258a189 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=258a189>`_ avf: api fix
* `6c9b964 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=6c9b964>`_ avf: binary API and configurable RX/TX queue size

``src/plugins/mactime/mactime.api``

* `7055e26 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=7055e26>`_ Driver level time-based src mac filter

``src/plugins/abf/abf.api``

* `669d07d <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=669d07d>`_ ACL based forwarding

``src/vlibmemory/memclnt.api``

* `dab732a <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=dab732a>`_ VPP-1335 vapi crash when memclnt_keepalive received
* `7895872 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=7895872>`_ Remove the historical memfd api segment bootstrap

``src/vpp/stats/stats.api``

* `a21a367 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=a21a367>`_ VPP-1324 SIGSEGV vl_msg_api_handler_with_vm_node()
* `586479a <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=586479a>`_ BIER neighbor stats
* `e906aac <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=e906aac>`_ STATS: Separate socket for fd exchange.
* `048a4e5 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=048a4e5>`_ export counters in a memfd segment

``src/vnet/interface.api``

* `d723161 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=d723161>`_ MTU: Software interface / Per-protocol MTU support
* `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)"
* `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)

``src/vnet/ipfix-export/ipfix_export.api``

* `a9855ef <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=a9855ef>`_ Flow: Rename IPFIX exporter.

``src/vnet/dhcp/dhcp6_pd_client_cp.api``

* `81119e8 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=81119e8>`_ Implement DHCPv6 PD client (VPP-718, VPP-1050)

``src/vnet/dhcp/dhcp.api``

* `dd3b8f7 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=dd3b8f7>`_ Implement DHCPv6 IA NA client (VPP-1094)
* `d9778c2 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=d9778c2>`_ Update DHCPv6 DUID code and fix coverity warnings
* `81119e8 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=81119e8>`_ Implement DHCPv6 PD client (VPP-718, VPP-1050)
* `daff178 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=daff178>`_ DHCP Client Dump

``src/vnet/dhcp/dhcp6_ia_na_client_cp.api``

* `dd3b8f7 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=dd3b8f7>`_ Implement DHCPv6 IA NA client (VPP-1094)

``src/vnet/ip/ip.api``

* `947ea62 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=947ea62>`_ IGMP improvements
* `7eaaf74 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=7eaaf74>`_ proxy_arp: remove unused is_add
* `0053de6 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=0053de6>`_ ARP proxy dumps
* `9e2f915 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=9e2f915>`_ IP unnumbered dump
* `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
* `e821ab1 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=e821ab1>`_ IP mcast: allow unicast address as a next-hop
* `c7b4304 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=c7b4304>`_ Implement ip_probe_neighbor API

``src/vnet/ip/ip_types.api``

* `947ea62 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=947ea62>`_ IGMP improvements
* `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.

``src/vnet/devices/af_packet/af_packet.api``

* `04e0bb2 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=04e0bb2>`_ af_packet: Add support for dump interfaces

``src/vnet/devices/tap/tapv2.api``

* `d600ffe <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=d600ffe>`_ Update tapv2 documentation
* `0b06111 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=0b06111>`_ VPP-1305: Add support for tags

``src/vnet/devices/pipe/pipe.api``

* `ee8b973 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=ee8b973>`_ VOM: support for pipes
* `17ff3c1 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=17ff3c1>`_ Pipes

``src/vnet/ipip/ipip.api``

* `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.

``src/vnet/session/session.api``

* `7fb0fe1 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=7fb0fe1>`_ udp/session: refactor to support dgram mode

``src/vnet/ipsec/ipsec.api``

* `4b089f2 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=4b089f2>`_ ipsec: support UDP encap/decap for NAT traversal
* `e9fcf23 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=e9fcf23>`_ Fix some build warnings about "Old Style VLA"
* `8e1039a <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=8e1039a>`_ Allow an IPsec tunnel interface to be renumbered

``src/vnet/vxlan/vxlan.api``

* `af86a48 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=af86a48>`_ vxlan:offload RX flow

``src/vnet/srv6/sr.api``

* `3337bd2 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=3337bd2>`_ Fixed bugs in SRv6 API
* `e9fcf23 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=e9fcf23>`_ Fix some build warnings about "Old Style VLA"