# Release Notes {#release_notes} * @subpage release_notes_1804 * @subpage release_notes_18012 * @subpage release_notes_18011 * @subpage release_notes_1801 * @subpage release_notes_1710 * @subpage release_notes_1707 * @subpage release_notes_1704 * @subpage release_notes_17011 * @subpage release_notes_1701 * @subpage release_notes_1609 * @subpage release_notes_1606 @page release_notes_1807 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
/*
* Copyright (c) 2013 Cisco and/or its affiliates.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef included_vnet_l2_emulation_h
#define included_vnet_l2_emulation_h
#include <vlib/vlib.h>
#include <vnet/vnet.h>
/**
* Per-interface L2 configuration
*/
typedef struct l2_emulation_t_
{
/**
* Enabled or Disabled.
* this is required since one L3 protocl can be enabled, but others not
*/
u8 enabled;
} l2_emulation_t;
/**
* per-packet trace data
*/
typedef struct l2_emulation_trace_t_
{
/* per-pkt trace data */
u8 extracted;
} l2_emulation_trace_t;
/**
* Grouping of global data for the L2 emulation feature
*/
typedef struct l2_emulation_main_t_
{
u16 msg_id_base;
u32 l2_emulation_node_index;
/**
* Per-interface vector of emulation configs
*/
l2_emulation_t *l2_emulations;
/**
* Next nodes for L2 output features
*/
u32 l2_input_feat_next[32];
} l2_emulation_main_t;
/**
* L2 Emulation is a feautre that is applied to L2 ports to 'extract'
* IP packets from the L2 path and inject them into the L3 path (i.e.
* into the appropriate ip[4|6]_input node).
* L3 routes in the table_id for that interface should then be configured
* as DVR routes, therefore the forwarded packet has the L2 header
* preserved and togehter the L3 routed system behaves like an L2 bridge.
*/
extern void l2_emulation_enable (u32 sw_if_index);
extern void l2_emulation_disable (u32 sw_if_index);
extern l2_emulation_main_t l2_emulation_main;
#endif
/*
* fd.io coding-style-patch-verification: ON
*
* Local Variables:
* eval: (c-set-style "gnu")
* End:
*/