Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
fib: Set the GLEAN flag on attached export routes so that the SAS works
[vpp.git]
/
src
/
vnet
/
fib
/
fib_entry_src_rr.c
diff --git
a/src/vnet/fib/fib_entry_src_rr.c
b/src/vnet/fib/fib_entry_src_rr.c
old mode 100755
(executable)
new mode 100644
(file)
index
9f4f68d
..
d8bc09c
--- a/
src/vnet/fib/fib_entry_src_rr.c
+++ b/
src/vnet/fib/fib_entry_src_rr.c
@@
-24,6
+24,7
@@
#include "fib_entry_cover.h"
#include "fib_entry.h"
#include "fib_table.h"
#include "fib_entry_cover.h"
#include "fib_entry.h"
#include "fib_table.h"
+#include "fib_path_ext.h"
/*
* fib_entry_src_rr_resolve_via_connected
/*
* fib_entry_src_rr_resolve_via_connected
@@
-93,6
+94,7
@@
fib_entry_src_rr_use_covers_pl (fib_entry_src_t *src,
{
fib_node_index_t *entries = NULL;
dpo_proto_t proto;
{
fib_node_index_t *entries = NULL;
dpo_proto_t proto;
+ fib_entry_src_t *s;
proto = fib_proto_to_dpo(fib_entry->fe_prefix.fp_proto);
vec_add1(entries, fib_entry_get_index(fib_entry));
proto = fib_proto_to_dpo(fib_entry->fe_prefix.fp_proto);
vec_add1(entries, fib_entry_get_index(fib_entry));
@@
-107,6
+109,14
@@
fib_entry_src_rr_use_covers_pl (fib_entry_src_t *src,
else
{
src->fes_pl = cover->fe_parent;
else
{
src->fes_pl = cover->fe_parent;
+ vec_foreach (s,cover->fe_srcs)
+ {
+ if (s->fes_pl != cover->fe_parent)
+ continue;
+
+ src->fes_path_exts.fpel_exts = vec_dup (s->fes_path_exts.fpel_exts);
+ break;
+ }
}
vec_free(entries);
}
}
vec_free(entries);
}
@@
-195,6
+205,7
@@
fib_entry_src_rr_deactivate (fib_entry_src_t *src,
fib_path_list_unlock(src->fes_pl);
src->fes_pl = FIB_NODE_INDEX_INVALID;
fib_path_list_unlock(src->fes_pl);
src->fes_pl = FIB_NODE_INDEX_INVALID;
+ vec_free (src->fes_path_exts.fpel_exts);
src->fes_entry_flags = FIB_ENTRY_FLAG_NONE;
}
src->fes_entry_flags = FIB_ENTRY_FLAG_NONE;
}
@@
-306,6
+317,5
@@
const static fib_entry_src_vft_t rr_src_vft = {
void
fib_entry_src_rr_register (void)
{
void
fib_entry_src_rr_register (void)
{
- fib_entry_src_register(FIB_SOURCE_RR, &rr_src_vft);
- fib_entry_src_register(FIB_SOURCE_URPF_EXEMPT, &rr_src_vft);
+ fib_entry_src_behaviour_register(FIB_SOURCE_BH_RR, &rr_src_vft);
}
}