From c7f942175b8c25c77ddc21561b52e3e6b5620b80 Mon Sep 17 00:00:00 2001 From: Alberto Compagno Date: Sat, 19 Jan 2019 17:28:57 +0100 Subject: Improved performance on data-fwd node: - Removed full pit entry initialization in favor of a lighter initialization on few fields - Squeezed pit entry size in order to store only the number of incomplete faces (as set in HICN_PARAM_PIT_ENTRY_PHOPS_MAX). The bitmap size is now determined by HICN_PARAM_FACES_MAX and optimized to do a fast lookup Replaced the field is_appface with the field flags in the hicn_buffer_t: - is_appface is now a flag with value 0x01 (HICN_BUFFER_FLAGS_FACE_IS_APP) - Added flag HICN_BUFFER_FLAGS_PKT_LESS_TWO_CL (0x02) to handle the copy of pkt with length < than 2*CACHE_LINES (in this case cloning is prevented by the cloning function in vpp). Such flag is initialized by the incoming face of the pkt. Change-Id: Ia956fd5719a28ee29f7fa2fd23d283964743efd8 Signed-off-by: Alberto Compagno --- hicn-plugin/src/data_fwd.h | 5 ----- 1 file changed, 5 deletions(-) (limited to 'hicn-plugin/src/data_fwd.h') diff --git a/hicn-plugin/src/data_fwd.h b/hicn-plugin/src/data_fwd.h index 7390382ef..df74e9150 100755 --- a/hicn-plugin/src/data_fwd.h +++ b/hicn-plugin/src/data_fwd.h @@ -79,13 +79,10 @@ vlib_buffer_clone_256_2 (vlib_main_t * vm, u32 src_buffer, u32 * buffers, { vlib_buffer_t *d; d = vlib_buffer_copy (vm, s); - clib_memcpy (d->opaque2, s->opaque2, sizeof (s->opaque2)); if (d == 0) return i; buffers[i] = vlib_get_buffer_index (vm, d); } - s->current_data += head_end_offset; - s->current_length -= head_end_offset; return n_buffers; } n_buffers = vlib_buffer_alloc_from_free_list (vm, buffers, n_buffers, @@ -145,8 +142,6 @@ always_inline u16 vlib_buffer_clone2 (vlib_main_t * vm, u32 src_buffer, u32 * buffers, u16 n_buffers, u16 head_end_offset) { - ASSERT (head_end_offset >= VLIB_BUFFER_MIN_CHAIN_SEG_SIZE); - vlib_buffer_t *s = vlib_get_buffer (vm, src_buffer); /* -- cgit 1.2.3-korg