X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fbier%2Fbier_table.h;h=5264e4c2fbf50d68d7d557962d5f191b2e445d68;hb=f94c63ea392a79b509a7b8263f5a9372a58786f9;hp=a22e2e335b20a00df4c949c91229b396f5fb09c3;hpb=d792d9c01e60656cbfe1b0f1fd6a9b125f5dab0c;p=vpp.git diff --git a/src/vnet/bier/bier_table.h b/src/vnet/bier/bier_table.h index a22e2e335b2..5264e4c2fbf 100644 --- a/src/vnet/bier/bier_table.h +++ b/src/vnet/bier/bier_table.h @@ -36,6 +36,12 @@ struct bier_route_update_t_; * bit-position. Since this is smal <4096, the table is a flat arry */ typedef struct bier_table_t_ { + /** + * required for pool_get_aligned. + * memebers used in the switch path come first! + */ + CLIB_CACHE_LINE_ALIGN_MARK(cacheline0); + /** * Save the MPLS local label associated with the table */ @@ -64,11 +70,6 @@ typedef struct bier_table_t_ { */ index_t *bt_entries; - /** - * Everything before this declaration is unused in the switch path - */ - CLIB_CACHE_LINE_ALIGN_MARK(cacheline0); - /** * The identity/key or the table. we need the hdr_len in the data-path */ @@ -90,14 +91,20 @@ STATIC_ASSERT((sizeof(bier_table_t) <= 2*CLIB_CACHE_LINE_BYTES), extern index_t bier_table_add_or_lock(const bier_table_id_t *id, mpls_label_t ll); +extern index_t bier_table_lock(const bier_table_id_t *id); extern void bier_table_unlock(const bier_table_id_t *id); -extern void bier_table_route_add(const bier_table_id_t *bti, - bier_bp_t bp, - fib_route_path_t *brp); -extern void bier_table_route_remove(const bier_table_id_t *bti, - bier_bp_t bp, - fib_route_path_t *brp); +extern void bier_table_route_path_add(const bier_table_id_t *bti, + bier_bp_t bp, + fib_route_path_t *brp); +extern void bier_table_route_path_remove(const bier_table_id_t *bti, + bier_bp_t bp, + fib_route_path_t *brp); +extern void bier_table_route_path_update(const bier_table_id_t *bti, + bier_bp_t bp, + fib_route_path_t *brp); +extern void bier_table_route_delete(const bier_table_id_t *bti, + bier_bp_t b); extern void bier_table_show_all(vlib_main_t * vm, bier_show_flags_t flags);