X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=vnet%2Fvnet%2Ffib%2Ffib_table.h;h=cfec516de1a94f0820d621c6d6328b4dcc39a82a;hb=f07dc9e236506f50a0230e6680cf1402dea6a976;hp=d7c604f9de943769a511ee54d0bb8e73a88c36fb;hpb=0bfe5d8c792abcdbcf27bfcc7b7b353fba04aee2;p=vpp.git diff --git a/vnet/vnet/fib/fib_table.h b/vnet/vnet/fib/fib_table.h index d7c604f9de9..cfec516de1a 100644 --- a/vnet/vnet/fib/fib_table.h +++ b/vnet/vnet/fib/fib_table.h @@ -210,9 +210,8 @@ extern fib_node_index_t fib_table_entry_special_dpo_add(u32 fib_index, * Instead the client/source provides the DPO to link to. * Special entries are add/remove reference counted per-source. So n * 'removes' are required for n 'adds', if the entry is no longer required. - * An 'update' can only be used after an 'add' and is therefore assumed to act - * on the reference instance of that add (an update is implemented as add/remove - * pair). + * An 'update' is an 'add' if no 'add' has already been called, otherwise an 'add' + * is therefore assumed to act on the reference instance of that add. * * @param fib_entry_index * The index of the FIB entry to update @@ -229,10 +228,11 @@ extern fib_node_index_t fib_table_entry_special_dpo_add(u32 fib_index, * @return * the index of the fib_entry_t that is created (or existed already). */ -extern void fib_table_entry_special_dpo_update (fib_node_index_t fib_entry_index, - fib_source_t source, - fib_entry_flag_t stype, - const dpo_id_t *dpo); +extern fib_node_index_t fib_table_entry_special_dpo_update (u32 fib_index, + const fib_prefix_t *prefix, + fib_source_t source, + fib_entry_flag_t stype, + const dpo_id_t *dpo); /** * @brief @@ -289,8 +289,8 @@ extern void fib_table_entry_special_remove(u32 fib_index, * @param next_hop_weight * [un]equal cost path weight * - * @param next_hop_label - * The path's out-going label. INVALID is there is none. + * @param next_hop_label_stack + * The path's out-going label stack. NULL is there is none. * * @param pf * Flags for the path @@ -307,7 +307,7 @@ extern fib_node_index_t fib_table_entry_path_add(u32 fib_index, u32 next_hop_sw_if_index, u32 next_hop_fib_index, u32 next_hop_weight, - mpls_label_t next_hop_label, + mpls_label_t *next_hop_label_stack, fib_route_path_flags_t pf); /** * @brief @@ -329,7 +329,7 @@ extern fib_node_index_t fib_table_entry_path_add(u32 fib_index, * Flags for the entry. * * @param rpaths - * A vector of paths. + * A vector of paths. Not const since they may be modified. * * @return * the index of the fib_entry_t that is created (or existed already). @@ -338,7 +338,7 @@ extern fib_node_index_t fib_table_entry_path_add2(u32 fib_index, const fib_prefix_t *prefix, fib_source_t source, fib_entry_flag_t flags, - const fib_route_path_t *rpath); + fib_route_path_t *rpath); /** * @brief @@ -407,7 +407,7 @@ extern void fib_table_entry_path_remove(u32 fib_index, extern void fib_table_entry_path_remove2(u32 fib_index, const fib_prefix_t *prefix, fib_source_t source, - const fib_route_path_t *paths); + fib_route_path_t *paths); /** * @brief @@ -426,7 +426,7 @@ extern void fib_table_entry_path_remove2(u32 fib_index, * The ID of the client/source adding the entry. * * @param rpaths - * A vector of paths. + * A vector of paths. Not const since they may be modified. * * @return * the index of the fib_entry_t that is created (or existed already). @@ -435,7 +435,7 @@ extern fib_node_index_t fib_table_entry_update(u32 fib_index, const fib_prefix_t *prefix, fib_source_t source, fib_entry_flag_t flags, - const fib_route_path_t *paths); + fib_route_path_t *paths); /** * @brief @@ -472,8 +472,8 @@ extern fib_node_index_t fib_table_entry_update(u32 fib_index, * @param next_hop_weight * [un]equal cost path weight * - * @param next_hop_label - * The path's out-going label. INVALID is there is none. + * @param next_hop_label_stack + * The path's out-going label stack. NULL is there is none. * * @param pf * Flags for the path @@ -490,7 +490,7 @@ extern fib_node_index_t fib_table_entry_update_one_path(u32 fib_index, u32 next_hop_sw_if_index, u32 next_hop_fib_index, u32 next_hop_weight, - mpls_label_t next_hop_label, + mpls_label_t *next_hop_label_stack, fib_route_path_flags_t pf); /**