aboutsummaryrefslogtreecommitdiffstats
path: root/hicn-plugin/src/strategies
diff options
context:
space:
mode:
authorAlberto Compagno <acompagn+fdio@cisco.com>2020-01-14 09:14:02 +0000
committerGerrit Code Review <gerrit@fd.io>2020-01-14 09:14:02 +0000
commitdef98b1a2af5292519b18893133e419e940a850b (patch)
tree6ee1801da406b91a65bc971b28e5a48c0d166dd9 /hicn-plugin/src/strategies
parent63312d00f31de987101a3a3edc4939730d269fef (diff)
parent6a268308c499edf4b5d72531388269114802de29 (diff)
Merge changes from topic "HICN-475"
* changes: [HICN-475] Adding multihoming in case the producer is facing the producer [HICN-474] Enabling print of FIB and TFIB status
Diffstat (limited to 'hicn-plugin/src/strategies')
-rw-r--r--hicn-plugin/src/strategies/dpo_mw.c8
-rw-r--r--hicn-plugin/src/strategies/dpo_rr.c10
-rw-r--r--hicn-plugin/src/strategies/strategy_mw.c2
3 files changed, 19 insertions, 1 deletions
diff --git a/hicn-plugin/src/strategies/dpo_mw.c b/hicn-plugin/src/strategies/dpo_mw.c
index 981e5b61c..41d2f2526 100644
--- a/hicn-plugin/src/strategies/dpo_mw.c
+++ b/hicn-plugin/src/strategies/dpo_mw.c
@@ -134,6 +134,13 @@ format_hicn_strategy_mw_ctx (u8 * s, va_list * ap)
s = format (s, "hicn-mw");
for (i = 0; i < HICN_PARAM_FIB_ENTRY_NHOPS_MAX; i++)
{
+ u8 *buf = NULL;
+ if (i < dpo->default_ctx.entry_count)
+ buf = format(NULL, "FIB");
+ else if (i >= HICN_PARAM_FIB_ENTRY_NHOPS_MAX - dpo->default_ctx.tfib_entry_count)
+ buf = format(NULL, "TFIB");
+ else
+ continue;
next_hop = &dpo->default_ctx.next_hops[i];
face_vft = hicn_face_get_vft (next_hop->dpoi_type);
if (face_vft != NULL)
@@ -143,6 +150,7 @@ format_hicn_strategy_mw_ctx (u8 * s, va_list * ap)
format (s, "%U ", face_vft->format_face, next_hop->dpoi_index,
indent);
s = format (s, "weight %u", dpo->weight[i]);
+ s = format (s, " %s", buf);
}
}
diff --git a/hicn-plugin/src/strategies/dpo_rr.c b/hicn-plugin/src/strategies/dpo_rr.c
index 027087f7b..447a25c52 100644
--- a/hicn-plugin/src/strategies/dpo_rr.c
+++ b/hicn-plugin/src/strategies/dpo_rr.c
@@ -134,8 +134,17 @@ format_hicn_strategy_rr_ctx (u8 * s, va_list * ap)
s =
format (s, "hicn-rr, next hop Face %d",
dpo->default_ctx.next_hops[dpo->current_nhop].dpoi_index);
+
for (i = 0; i < HICN_PARAM_FIB_ENTRY_NHOPS_MAX; i++)
{
+ u8 *buf = NULL;
+ if (i < dpo->default_ctx.entry_count)
+ buf = format(NULL, "FIB");
+ else if (i >= HICN_PARAM_FIB_ENTRY_NHOPS_MAX - dpo->default_ctx.tfib_entry_count)
+ buf = format(NULL, "TFIB");
+ else
+ continue;
+
next_hop = &dpo->default_ctx.next_hops[i];
face_vft = hicn_face_get_vft (next_hop->dpoi_type);
if (face_vft != NULL)
@@ -144,6 +153,7 @@ format_hicn_strategy_rr_ctx (u8 * s, va_list * ap)
s =
format (s, "%U ", face_vft->format_face, next_hop->dpoi_index,
indent);
+ s = format (s, " %s", buf);
}
}
diff --git a/hicn-plugin/src/strategies/strategy_mw.c b/hicn-plugin/src/strategies/strategy_mw.c
index 3efddc0ce..d5ff87303 100644
--- a/hicn-plugin/src/strategies/strategy_mw.c
+++ b/hicn-plugin/src/strategies/strategy_mw.c
@@ -74,7 +74,7 @@ hicn_select_next_hop_mw (index_t dpo_idx, int *nh_idx, dpo_id_t ** outface)
(hicn_strategy_mw_ctx_t *) hicn_strategy_mw_ctx_get (dpo_idx);
u8 next_hop_index = 0;
- for (int i = 0; i < HICN_PARAM_FIB_ENTRY_NHOPS_MAX; i++)
+ for (int i = 0; i < hicn_strategy_mw_ctx->default_ctx.entry_count; i++)
{
if (dpo_id_is_valid (&hicn_strategy_mw_ctx->default_ctx.next_hops[i]))
{