fib: add fib_entry_get_path_list_for_source 46/37346/2
authorDamjan Marion <dmarion@me.com>
Tue, 4 Oct 2022 16:08:51 +0000 (18:08 +0200)
committerNeale Ranns <neale@graphiant.com>
Fri, 7 Oct 2022 04:17:21 +0000 (04:17 +0000)
Type: improvement
Change-Id: Ie035bebf64226691cffc84484e4bf7310287d1b7
Signed-off-by: Damjan Marion <dmarion@me.com>
src/vnet/fib/fib_entry.h
src/vnet/fib/fib_entry_src.c

index 4053ff6..2239283 100644 (file)
@@ -421,6 +421,9 @@ extern const int fib_entry_get_dpo_for_source (
     fib_node_index_t fib_entry_index,
     fib_source_t source,
     dpo_id_t *dpo);
+extern fib_node_index_t fib_entry_get_path_list_for_source (
+    fib_node_index_t fib_entry_index,
+    fib_source_t source);
 
 extern adj_index_t fib_entry_get_adj(fib_node_index_t fib_entry_index);
 
index 39e719e..ff81f6b 100644 (file)
@@ -1797,6 +1797,25 @@ fib_entry_get_dpo_for_source (fib_node_index_t fib_entry_index,
     return (0);
 }
 
+fib_node_index_t
+fib_entry_get_path_list_for_source (fib_node_index_t fib_entry_index,
+                                   fib_source_t source)
+{
+  fib_entry_t *fib_entry;
+  fib_entry_src_t *esrc;
+
+  if (FIB_NODE_INDEX_INVALID == fib_entry_index)
+    return FIB_NODE_INDEX_INVALID;
+
+  fib_entry = fib_entry_get(fib_entry_index);
+  esrc = fib_entry_src_find(fib_entry, source);
+
+  if (esrc)
+    return esrc->fes_pl;
+
+  return FIB_NODE_INDEX_INVALID;
+}
+
 u32
 fib_entry_get_resolving_interface_for_source (fib_node_index_t entry_index,
                                              fib_source_t source)