u32 ip6_hbh_pop_node_index;
u32 error_node_index;
u32 cleanup_process_node_index;
+
+ u32 ip6_add_from_cache_hbh_node_index;
+ u32 ip6_reset_ts_hbh_node_index;
} ioam_cache_main_t;
extern ioam_cache_main_t ioam_cache_main;
if (entry)
{
vec_free (entry->ioam_rewrite_string);
- memset (entry, 0, sizeof (*entry));
+ clib_memset (entry, 0, sizeof (*entry));
pool_put (cm->ioam_rewrite_pool, entry);
}
}
ioam_e2e_id_option_t *e2e = 0;
pool_get_aligned (cm->ioam_rewrite_pool, entry, CLIB_CACHE_LINE_BYTES);
- memset (entry, 0, sizeof (*entry));
+ clib_memset (entry, 0, sizeof (*entry));
pool_index = entry - cm->ioam_rewrite_pool;
- clib_memcpy (entry->dst_address.as_u64, ip0->dst_address.as_u64,
- sizeof (ip6_address_t));
- clib_memcpy (entry->src_address.as_u64, ip0->src_address.as_u64,
- sizeof (ip6_address_t));
+ clib_memcpy_fast (entry->dst_address.as_u64, ip0->dst_address.as_u64,
+ sizeof (ip6_address_t));
+ clib_memcpy_fast (entry->src_address.as_u64, ip0->src_address.as_u64,
+ sizeof (ip6_address_t));
entry->src_port = src_port;
entry->dst_port = dst_port;
entry->seq_no = seq_no;
}
e2e_id_offset = (u8 *) e2e - (u8 *) hbh0;
/* setup e2e id option to insert v6 address of the node caching it */
- clib_memcpy (entry->ioam_rewrite_string, hbh0, rewrite_len);
+ clib_memcpy_fast (entry->ioam_rewrite_string, hbh0, rewrite_len);
hbh0 = (ip6_hop_by_hop_header_t *) entry->ioam_rewrite_string;
/* suffix rewrite string with e2e ID option */
/* This nodes address and the original dest will be
* filled when the packet is processed */
vec_add2 (segments, this_seg, 1);
- memset (this_seg, 0xfe, sizeof (ip6_address_t));
+ clib_memset (this_seg, 0xfe, sizeof (ip6_address_t));
cm->sr_rewrite_template = ip6_sr_compute_rewrite_string_insert (segments);
vec_free (segments);
}
ioam_cache_entry_t *entry = 0;
/* free pool and hash table */
clib_bihash_free_8_8 (&cm->ioam_rewrite_cache_table);
- pool_foreach (entry, cm->ioam_rewrite_pool, (
- {
- ioam_cache_entry_free (entry);
- }));
+ pool_foreach (entry, cm->ioam_rewrite_pool)
+ {
+ ioam_cache_entry_free (entry);
+ }
pool_free (cm->ioam_rewrite_pool);
cm->ioam_rewrite_pool = 0;
vec_free (cm->sr_rewrite_template);
{
pool_alloc_aligned (cm->ioam_ts_pool[i],
MAX_CACHE_TS_ENTRIES, CLIB_CACHE_LINE_BYTES);
- memset (&cm->ts_stats[i], 0, sizeof (ioam_cache_ts_pool_stats_t));
+ clib_memset (&cm->ts_stats[i], 0, sizeof (ioam_cache_ts_pool_stats_t));
tw_timer_wheel_init_16t_2w_512sl (&cm->timer_wheels[i],
expired_cache_ts_timer_callback,
IOAM_CACHE_TS_TICK
}
pool_put (cm->ioam_ts_pool[thread_id], entry);
cm->ts_stats[thread_id].inuse--;
- memset (entry, 0, sizeof (*entry));
+ clib_memset (entry, 0, sizeof (*entry));
}
}
int i;
/* free pool and hash table */
- for (i = 0; i < no_of_threads; i++)
+ if (cm->ioam_ts_pool)
{
- pool_foreach (entry, cm->ioam_ts_pool[i], (
- {
- ioam_cache_ts_entry_free (i,
- entry,
- cm->error_node_index);
- }
- ));
- pool_free (cm->ioam_ts_pool[i]);
- cm->ioam_ts_pool = 0;
- tw_timer_wheel_free_16t_2w_512sl (&cm->timer_wheels[i]);
+ for (i = 0; i < no_of_threads; i++)
+ {
+ pool_foreach (entry, cm->ioam_ts_pool[i])
+ {
+ ioam_cache_ts_entry_free (i, entry, cm->error_node_index);
+ }
+ pool_free (cm->ioam_ts_pool[i]);
+ cm->ioam_ts_pool[i] = 0;
+ tw_timer_wheel_free_16t_2w_512sl (&cm->timer_wheels[i]);
+ }
+ vec_free (cm->ioam_ts_pool);
}
- vec_free (cm->ioam_ts_pool);
return (0);
}
pool_get_aligned (cm->ioam_ts_pool[thread_id], entry,
CLIB_CACHE_LINE_BYTES);
- memset (entry, 0, sizeof (*entry));
+ clib_memset (entry, 0, sizeof (*entry));
*pool_index = entry - cm->ioam_ts_pool[thread_id];
- clib_memcpy (entry->dst_address.as_u64, ip0->dst_address.as_u64,
- sizeof (ip6_address_t));
- clib_memcpy (entry->src_address.as_u64, ip0->src_address.as_u64,
- sizeof (ip6_address_t));
+ clib_memcpy_fast (entry->dst_address.as_u64, ip0->dst_address.as_u64,
+ sizeof (ip6_address_t));
+ clib_memcpy_fast (entry->src_address.as_u64, ip0->src_address.as_u64,
+ sizeof (ip6_address_t));
entry->src_port = src_port;
entry->dst_port = dst_port;
entry->seq_no = seq_no;