+ mfib_entry_recalculate_forwarding(mfib_entry, current_best);
+}
+
+int
+mfib_entry_special_add (fib_node_index_t mfib_entry_index,
+ mfib_source_t source,
+ mfib_entry_flags_t entry_flags,
+ fib_rpf_id_t rpf_id,
+ index_t repi)
+{
+ mfib_source_t current_best;
+ mfib_entry_t *mfib_entry;
+ mfib_entry_src_t *msrc;
+
+ mfib_entry = mfib_entry_get(mfib_entry_index);
+ current_best = mfib_entry_get_best_source(mfib_entry);
+
+ msrc = mfib_entry_src_update_and_lock(mfib_entry, source, rpf_id,
+ entry_flags);
+
+ mfib_entry_update_i(mfib_entry, msrc, current_best, repi);
+
+ return (mfib_entry_ok_for_delete(mfib_entry));
+}
+
+int
+mfib_entry_update (fib_node_index_t mfib_entry_index,
+ mfib_source_t source,
+ mfib_entry_flags_t entry_flags,
+ fib_rpf_id_t rpf_id,
+ index_t repi)
+{
+ mfib_source_t current_best;
+ mfib_entry_t *mfib_entry;
+ mfib_entry_src_t *msrc;
+
+ mfib_entry = mfib_entry_get(mfib_entry_index);
+ current_best = mfib_entry_get_best_source(mfib_entry);
+ msrc = mfib_entry_src_update(mfib_entry, source, rpf_id, entry_flags);
+
+ mfib_entry_update_i(mfib_entry, msrc, current_best, repi);