fib: format deleted LB
This patch allows the formatting of deleted Load-balancer objects. This is needed in the case a trace references a DPO that went away in the interim. Type: improvement Change-Id: I6d67519b8d62f69aafde3c8fe3065bc85a7adbde Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
This commit is contained in:
@@ -149,7 +149,13 @@ load_balance_format (index_t lbi,
|
||||
dpo_id_t *buckets;
|
||||
u32 i;
|
||||
|
||||
lb = load_balance_get(lbi);
|
||||
lb = load_balance_get_or_null(lbi);
|
||||
if (lb == NULL)
|
||||
{
|
||||
s = format(s, "DELETED lb:%u", lbi);
|
||||
return (s);
|
||||
}
|
||||
|
||||
vlib_get_combined_counter(&(load_balance_main.lbm_to_counters), lbi, &to);
|
||||
vlib_get_combined_counter(&(load_balance_main.lbm_via_counters), lbi, &via);
|
||||
buckets = load_balance_get_buckets(lb);
|
||||
|
@@ -232,6 +232,14 @@ load_balance_get (index_t lbi)
|
||||
return (pool_elt_at_index(load_balance_pool, lbi));
|
||||
}
|
||||
|
||||
static inline load_balance_t *
|
||||
load_balance_get_or_null (index_t lbi)
|
||||
{
|
||||
if (pool_is_free_index (load_balance_pool, lbi))
|
||||
return 0;
|
||||
return (pool_elt_at_index (load_balance_pool, lbi));
|
||||
}
|
||||
|
||||
#define LB_HAS_INLINE_BUCKETS(_lb) \
|
||||
((_lb)->lb_n_buckets <= LB_NUM_INLINE_BUCKETS)
|
||||
|
||||
|
Reference in New Issue
Block a user