{
p = hash_get(lb_maps_by_path_index, lbmp->lbmp_index);
- ASSERT(NULL != p);
+ ALWAYS_ASSERT(NULL != p);
fib_node_list_remove(p[0], lbmp->lbmp_sibling);
}
tmp_buckets[jj++] = bucket++;
}
}
- else
+ else
{
bucket += lbmp->lbmp_weight;
}
{
load_balance_map_t *lbm;
u32 ii;
+ vlib_main_t *vm;
+ u8 did_barrier_sync;
+ dpo_pool_barrier_sync (vm, load_balance_map_pool, did_barrier_sync);
pool_get_aligned(load_balance_map_pool, lbm, CLIB_CACHE_LINE_BYTES);
- memset(lbm, 0, sizeof(*lbm));
+ dpo_pool_barrier_release (vm, did_barrier_sync);
+
+ clib_memset(lbm, 0, sizeof(*lbm));
vec_validate(lbm->lbm_paths, vec_len(paths)-1);
}
}
-static int
+static walk_rc_t
load_balance_map_path_state_change_walk (fib_node_ptr_t *fptr,
void *ctx)
{
load_balance_map_fill(lbm);
- return (!0);
+ return (WALK_CONTINUE);
}
/**
{
load_balance_map_t *lbm;
- pool_foreach(lbm, load_balance_map_pool,
- ({
+ pool_foreach (lbm, load_balance_map_pool)
+ {
vlib_cli_output (vm, "%U", format_load_balance_map,
load_balance_map_get_index(lbm), 0);
- }));
+ }
}
return 0;