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 Interpose Source
[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
index
b6f4bc3
..
8e47736
100644
(file)
--- a/
src/vnet/fib/fib_entry_src_rr.c
+++ b/
src/vnet/fib/fib_entry_src_rr.c
@@
-20,6
+20,7
@@
#include <vnet/dpo/drop_dpo.h>
#include "fib_entry_src.h"
#include <vnet/dpo/drop_dpo.h>
#include "fib_entry_src.h"
+#include "fib_entry_src_rr.h"
#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"
@@
-29,7
+30,7
@@
*
* Resolve via a connected cover.
*/
*
* Resolve via a connected cover.
*/
-
static
void
+void
fib_entry_src_rr_resolve_via_connected (fib_entry_src_t *src,
const fib_entry_t *fib_entry,
const fib_entry_t *cover)
fib_entry_src_rr_resolve_via_connected (fib_entry_src_t *src,
const fib_entry_t *fib_entry,
const fib_entry_t *cover)
@@
-53,7
+54,8
@@
fib_entry_src_rr_resolve_via_connected (fib_entry_src_t *src,
* shortly to over-rule this RR source.
*/
src->fes_pl = fib_path_list_create(FIB_PATH_LIST_FLAG_NONE, paths);
* shortly to over-rule this RR source.
*/
src->fes_pl = fib_path_list_create(FIB_PATH_LIST_FLAG_NONE, paths);
- src->fes_entry_flags = fib_entry_get_flags(fib_entry_get_index(cover));
+ src->fes_entry_flags |= (fib_entry_get_flags(fib_entry_get_index(cover)) &
+ FIB_ENTRY_FLAGS_RR_INHERITED);
vec_free(paths);
}
vec_free(paths);
}
@@
-65,8
+67,8
@@
fib_entry_src_rr_resolve_via_connected (fib_entry_src_t *src,
static void
fib_entry_src_rr_init (fib_entry_src_t *src)
{
static void
fib_entry_src_rr_init (fib_entry_src_t *src)
{
- src->rr.fesr_cover = FIB_NODE_INDEX_INVALID;
- src->rr.fesr_sibling = FIB_NODE_INDEX_INVALID;
+ src->
u.
rr.fesr_cover = FIB_NODE_INDEX_INVALID;
+ src->
u.
rr.fesr_sibling = FIB_NODE_INDEX_INVALID;
}
}
@@
-84,7
+86,7
@@
fib_entry_src_rr_init (fib_entry_src_t *src)
* the loop will break when the cover changes, and this function
* will be called again when that happens.
*/
* the loop will break when the cover changes, and this function
* will be called again when that happens.
*/
-
static
void
+void
fib_entry_src_rr_use_covers_pl (fib_entry_src_t *src,
const fib_entry_t *fib_entry,
const fib_entry_t *cover)
fib_entry_src_rr_use_covers_pl (fib_entry_src_t *src,
const fib_entry_t *fib_entry,
const fib_entry_t *cover)
@@
-132,14
+134,14
@@
fib_entry_src_rr_activate (fib_entry_src_t *src,
return (!0);
}
return (!0);
}
- src->rr.fesr_cover = fib_table_get_less_specific(fib_entry->fe_fib_index,
+ src->
u.
rr.fesr_cover = fib_table_get_less_specific(fib_entry->fe_fib_index,
&fib_entry->fe_prefix);
&fib_entry->fe_prefix);
- ASSERT(FIB_NODE_INDEX_INVALID != src->rr.fesr_cover);
+ ASSERT(FIB_NODE_INDEX_INVALID != src->
u.
rr.fesr_cover);
- cover = fib_entry_get(src->rr.fesr_cover);
+ cover = fib_entry_get(src->
u.
rr.fesr_cover);
- src->rr.fesr_sibling =
+ src->
u.
rr.fesr_sibling =
fib_entry_cover_track(cover, fib_entry_get_index(fib_entry));
/*
fib_entry_cover_track(cover, fib_entry_get_index(fib_entry));
/*
@@
-175,11
+177,11
@@
fib_entry_src_rr_deactivate (fib_entry_src_t *src,
/*
* remove the depednecy on the covering entry
*/
/*
* remove the depednecy on the covering entry
*/
- if (FIB_NODE_INDEX_INVALID != src->rr.fesr_cover)
+ if (FIB_NODE_INDEX_INVALID != src->
u.
rr.fesr_cover)
{
{
- cover = fib_entry_get(src->rr.fesr_cover);
- fib_entry_cover_untrack(cover, src->rr.fesr_sibling);
- src->rr.fesr_cover = FIB_NODE_INDEX_INVALID;
+ cover = fib_entry_get(src->
u.
rr.fesr_cover);
+ fib_entry_cover_untrack(cover, src->
u.
rr.fesr_sibling);
+ src->
u.
rr.fesr_cover = FIB_NODE_INDEX_INVALID;
}
fib_path_list_unlock(src->fes_pl);
}
fib_path_list_unlock(src->fes_pl);
@@
-187,7
+189,7
@@
fib_entry_src_rr_deactivate (fib_entry_src_t *src,
src->fes_entry_flags = FIB_ENTRY_FLAG_NONE;
}
src->fes_entry_flags = FIB_ENTRY_FLAG_NONE;
}
-
static
fib_entry_src_cover_res_t
+fib_entry_src_cover_res_t
fib_entry_src_rr_cover_change (fib_entry_src_t *src,
const fib_entry_t *fib_entry)
{
fib_entry_src_rr_cover_change (fib_entry_src_t *src,
const fib_entry_t *fib_entry)
{
@@
-196,7
+198,7
@@
fib_entry_src_rr_cover_change (fib_entry_src_t *src,
.bw_reason = FIB_NODE_BW_REASON_FLAG_NONE,
};
.bw_reason = FIB_NODE_BW_REASON_FLAG_NONE,
};
- if (FIB_NODE_INDEX_INVALID == src->rr.fesr_cover)
+ if (FIB_NODE_INDEX_INVALID == src->
u.
rr.fesr_cover)
{
/*
* the source may be added, but it is not active
{
/*
* the source may be added, but it is not active
@@
-210,7
+212,7
@@
fib_entry_src_rr_cover_change (fib_entry_src_t *src,
* entry inserted benaeth it. That does not necessarily mean that this
* entry is covered by the new prefix. check that
*/
* entry inserted benaeth it. That does not necessarily mean that this
* entry is covered by the new prefix. check that
*/
- if (src->rr.fesr_cover != fib_table_get_less_specific(fib_entry->fe_fib_index,
+ if (src->
u.
rr.fesr_cover != fib_table_get_less_specific(fib_entry->fe_fib_index,
&fib_entry->fe_prefix))
{
fib_entry_src_rr_deactivate(src, fib_entry);
&fib_entry->fe_prefix))
{
fib_entry_src_rr_deactivate(src, fib_entry);
@@
-230,7
+232,7
@@
fib_entry_src_rr_cover_change (fib_entry_src_t *src,
* This entry's cover has updated its forwarding info. This entry
* will need to re-inheret.
*/
* This entry's cover has updated its forwarding info. This entry
* will need to re-inheret.
*/
-
static
fib_entry_src_cover_res_t
+fib_entry_src_cover_res_t
fib_entry_src_rr_cover_update (fib_entry_src_t *src,
const fib_entry_t *fib_entry)
{
fib_entry_src_rr_cover_update (fib_entry_src_t *src,
const fib_entry_t *fib_entry)
{
@@
-241,7
+243,7
@@
fib_entry_src_rr_cover_update (fib_entry_src_t *src,
fib_node_index_t old_path_list;
fib_entry_t *cover;
fib_node_index_t old_path_list;
fib_entry_t *cover;
- if (FIB_NODE_INDEX_INVALID == src->rr.fesr_cover)
+ if (FIB_NODE_INDEX_INVALID == src->
u.
rr.fesr_cover)
{
/*
* the source may be added, but it is not active
{
/*
* the source may be added, but it is not active
@@
-250,7
+252,7
@@
fib_entry_src_rr_cover_update (fib_entry_src_t *src,
return (res);
}
return (res);
}
- cover = fib_entry_get(src->rr.fesr_cover);
+ cover = fib_entry_get(src->
u.
rr.fesr_cover);
old_path_list = src->fes_pl;
/*
old_path_list = src->fes_pl;
/*
@@
-280,7
+282,7
@@
static u8*
fib_entry_src_rr_format (fib_entry_src_t *src,
u8* s)
{
fib_entry_src_rr_format (fib_entry_src_t *src,
u8* s)
{
- return (format(s, " cover:%d", src->rr.fesr_cover));
+ return (format(s, " cover:%d", src->
u.
rr.fesr_cover));
}
const static fib_entry_src_vft_t rr_src_vft = {
}
const static fib_entry_src_vft_t rr_src_vft = {