X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fbier%2Fbier_imp.c;h=6150ea1c0671a2ab2645a2f331ddac40ed05a0b8;hb=refs%2Fchanges%2F16%2F15916%2F4;hp=c51dede9c0a60654d1e78cd817d4eaa0220d7cf6;hpb=d792d9c01e60656cbfe1b0f1fd6a9b125f5dab0c;p=vpp.git diff --git a/src/vnet/bier/bier_imp.c b/src/vnet/bier/bier_imp.c index c51dede9c0a..6150ea1c067 100644 --- a/src/vnet/bier/bier_imp.c +++ b/src/vnet/bier/bier_imp.c @@ -68,7 +68,7 @@ bier_imp_add_or_lock (const bier_table_id_t *bti, pool_get_aligned(bier_imp_pool, bi, CLIB_CACHE_LINE_BYTES); bi->bi_tbl = *bti; - btii = bier_table_add_or_lock(bti, MPLS_LABEL_INVALID); + btii = bier_table_lock(bti); /* * init the BIER header we will paint on in the data plane @@ -80,7 +80,7 @@ bier_imp_add_or_lock (const bier_table_id_t *bti, 0, // entropy sender); bier_hdr_hton(&bi->bi_hdr); - clib_memcpy(&bi->bi_bits, bs->bbs_buckets, bs->bbs_len); + clib_memcpy_fast(&bi->bi_bits, bs->bbs_buckets, bs->bbs_len); bier_imp_lock_i(bi); @@ -157,7 +157,7 @@ format_bier_imp (u8* s, va_list *args) bier_hdr_ntoh(©); bier_bit_string_init(&bbs, bier_hdr_get_len_id(©), - bi->bi_bits.bits); + bi->bi_bits); s = format(s, "\n%U%U", format_white_space, indent, @@ -275,8 +275,15 @@ show_bier_imp (vlib_main_t * vm, } else { - vlib_cli_output(vm, "%U", format_bier_imp, bii, 1, - BIER_SHOW_DETAIL); + if (pool_is_free_index(bier_imp_pool, bii)) + { + vlib_cli_output(vm, "No such BIER imposition: %d", bii); + } + else + { + vlib_cli_output(vm, "%U", format_bier_imp, bii, 1, + BIER_SHOW_DETAIL); + } } return (NULL); }