Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
VPP-1507: Added binary api to dump configured ip_punt_redirect
[vpp.git]
/
src
/
vnet
/
fib
/
mpls_fib.c
diff --git
a/src/vnet/fib/mpls_fib.c
b/src/vnet/fib/mpls_fib.c
index
ca6271f
..
6670c99
100644
(file)
--- a/
src/vnet/fib/mpls_fib.c
+++ b/
src/vnet/fib/mpls_fib.c
@@
-83,7
+83,8
@@
mpls_fib_index_from_table_id (u32 table_id)
}
static u32
}
static u32
-mpls_fib_create_with_table_id (u32 table_id)
+mpls_fib_create_with_table_id (u32 table_id,
+ fib_source_t src)
{
dpo_id_t dpo = DPO_INVALID;
fib_table_t *fib_table;
{
dpo_id_t dpo = DPO_INVALID;
fib_table_t *fib_table;
@@
-91,13
+92,13
@@
mpls_fib_create_with_table_id (u32 table_id)
mpls_fib_t *mf;
int i;
mpls_fib_t *mf;
int i;
- pool_get
_aligned(mpls_main.fibs, fib_table, CLIB_CACHE_LINE_BYTES
);
+ pool_get
(mpls_main.fibs, fib_table
);
pool_get_aligned(mpls_main.mpls_fibs, mf, CLIB_CACHE_LINE_BYTES);
ASSERT((fib_table - mpls_main.fibs) ==
(mf - mpls_main.mpls_fibs));
pool_get_aligned(mpls_main.mpls_fibs, mf, CLIB_CACHE_LINE_BYTES);
ASSERT((fib_table - mpls_main.fibs) ==
(mf - mpls_main.mpls_fibs));
- memset(fib_table, 0, sizeof(*fib_table));
+
clib_
memset(fib_table, 0, sizeof(*fib_table));
fib_table->ft_proto = FIB_PROTOCOL_MPLS;
fib_table->ft_index = (fib_table - mpls_main.fibs);
fib_table->ft_proto = FIB_PROTOCOL_MPLS;
fib_table->ft_index = (fib_table - mpls_main.fibs);
@@
-107,7
+108,7
@@
mpls_fib_create_with_table_id (u32 table_id)
fib_table->ft_table_id = table_id;
fib_table->ft_flow_hash_config = MPLS_FLOW_HASH_DEFAULT;
fib_table->ft_table_id = table_id;
fib_table->ft_flow_hash_config = MPLS_FLOW_HASH_DEFAULT;
- fib_table_lock(fib_table->ft_index, FIB_PROTOCOL_MPLS);
+ fib_table_lock(fib_table->ft_index, FIB_PROTOCOL_MPLS
, src
);
if (INDEX_INVALID == mpls_fib_drop_dpo_index)
{
if (INDEX_INVALID == mpls_fib_drop_dpo_index)
{
@@
-220,22
+221,23
@@
mpls_fib_create_with_table_id (u32 table_id)
}
u32
}
u32
-mpls_fib_table_find_or_create_and_lock (u32 table_id)
+mpls_fib_table_find_or_create_and_lock (u32 table_id,
+ fib_source_t src)
{
u32 index;
index = mpls_fib_index_from_table_id(table_id);
if (~0 == index)
{
u32 index;
index = mpls_fib_index_from_table_id(table_id);
if (~0 == index)
- return mpls_fib_create_with_table_id(table_id);
+ return mpls_fib_create_with_table_id(table_id
, src
);
- fib_table_lock(index, FIB_PROTOCOL_MPLS);
+ fib_table_lock(index, FIB_PROTOCOL_MPLS
, src
);
return (index);
}
u32
return (index);
}
u32
-mpls_fib_table_create_and_lock (
void
)
+mpls_fib_table_create_and_lock (
fib_source_t src
)
{
{
- return (mpls_fib_create_with_table_id(~0));
+ return (mpls_fib_create_with_table_id(~0
, src
));
}
void
}
void
@@
-357,6
+359,18
@@
mpls_fib_table_walk (mpls_fib_t *mpls_fib,
}));
}
}));
}
+u8 *
+format_mpls_fib_table_memory (u8 * s, va_list * args)
+{
+ u64 n_tables, mem;
+
+ n_tables = pool_elts(mpls_main.fibs);
+ mem = n_tables * sizeof(mpls_fib_t);
+ s = format(s, "%=30s %=6ld %=8ld\n", "MPLS", n_tables, mem);
+
+ return (s);
+}
+
static void
mpls_fib_table_show_all (const mpls_fib_t *mpls_fib,
vlib_main_t * vm)
static void
mpls_fib_table_show_all (const mpls_fib_t *mpls_fib,
vlib_main_t * vm)