Nathan Skrzypczak | 9ad39c0 | 2021-08-19 11:38:06 +0200 | [diff] [blame] | 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 | |