mirror of
https://gitlab.labs.nic.cz/labs/bird.git
synced 2024-05-11 16:54:54 +00:00
Merge branch 'mq-aggregator-for-v3' into HEAD
This commit is contained in:
23
lib/a-path.c
23
lib/a-path.c
@@ -669,6 +669,29 @@ as_path_filter(struct linpool *pool, const struct adata *path, const struct f_va
|
||||
return res;
|
||||
}
|
||||
|
||||
int
|
||||
as_path_compare(const struct adata *path1, const struct adata *path2)
|
||||
{
|
||||
uint pos1 = 0;
|
||||
uint pos2 = 0;
|
||||
uint val1 = 0;
|
||||
uint val2 = 0;
|
||||
|
||||
while (1)
|
||||
{
|
||||
int res1 = as_path_walk(path1, &pos1, &val1);
|
||||
int res2 = as_path_walk(path2, &pos2, &val2);
|
||||
|
||||
if (res1 == 0 && res2 == 0)
|
||||
return 0;
|
||||
|
||||
if (val1 == val2)
|
||||
continue;
|
||||
|
||||
return val1 < val2 ? -1 : 1;
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
as_path_walk(const struct adata *path, uint *pos, uint *val)
|
||||
{
|
||||
|
@@ -83,6 +83,7 @@ u32 as_path_get_last_nonaggregated(const struct adata *path);
|
||||
int as_path_contains(const struct adata *path, u32 as, int min);
|
||||
int as_path_match_set(const struct adata *path, const struct f_tree *set);
|
||||
const struct adata *as_path_filter(struct linpool *pool, const struct adata *path, const struct f_val *set, int pos);
|
||||
int as_path_compare(const struct adata *path1, const struct adata *path2);
|
||||
int as_path_walk(const struct adata *path, uint *pos, uint *val);
|
||||
|
||||
static inline struct adata *as_path_prepend(struct linpool *pool, const struct adata *path, u32 as)
|
||||
|
@@ -223,7 +223,8 @@ struct nexthop_adata {
|
||||
#define RTS_BABEL 13 /* Babel route */
|
||||
#define RTS_RPKI 14 /* Route Origin Authorization */
|
||||
#define RTS_PERF 15 /* Perf checker */
|
||||
#define RTS_MAX 16
|
||||
#define RTS_AGGREGATED 16 /* Aggregated route */
|
||||
#define RTS_MAX 17
|
||||
|
||||
#define RTD_NONE 0 /* Undefined next hop */
|
||||
#define RTD_UNICAST 1 /* A standard next hop */
|
||||
|
Reference in New Issue
Block a user