aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/bier
diff options
context:
space:
mode:
Diffstat (limited to 'src/vnet/bier')
-rw-r--r--src/vnet/bier/bier_fmask.c6
-rw-r--r--src/vnet/bier/bier_fmask_db.h2
-rw-r--r--src/vnet/bier/bier_output.c6
3 files changed, 10 insertions, 4 deletions
diff --git a/src/vnet/bier/bier_fmask.c b/src/vnet/bier/bier_fmask.c
index cb61681385d..3370d5a88e8 100644
--- a/src/vnet/bier/bier_fmask.c
+++ b/src/vnet/bier/bier_fmask.c
@@ -181,7 +181,11 @@ bier_fmask_init (bier_fmask_t *bfm,
btid = bier_table_get_id(bfm->bfm_id->bfmi_bti);
bier_fmask_bits_init(&bfm->bfm_bits, btid->bti_hdr_len);
- if (ip46_address_is_zero(&(bfm->bfm_id->bfmi_nh)))
+ if (rpath->frp_flags & FIB_ROUTE_PATH_UDP_ENCAP)
+ {
+ bfm->bfm_id->bfmi_nh_type = BIER_NH_UDP;
+ }
+ else if (ip46_address_is_zero(&(bfm->bfm_id->bfmi_nh)))
{
bfm->bfm_flags |= BIER_FMASK_FLAG_DISP;
}
diff --git a/src/vnet/bier/bier_fmask_db.h b/src/vnet/bier/bier_fmask_db.h
index 36e555f8680..cf78bdae4eb 100644
--- a/src/vnet/bier/bier_fmask_db.h
+++ b/src/vnet/bier/bier_fmask_db.h
@@ -80,7 +80,7 @@ typedef struct bier_fmask_id_t_ {
bier_hdr_type_t bfmi_hdr_type;
/**
- * Union discriminatrr
+ * Union discriminator
*/
bier_nh_type_t bfmi_nh_type;
} __attribute__((packed)) bier_fmask_id_t;
diff --git a/src/vnet/bier/bier_output.c b/src/vnet/bier/bier_output.c
index 16c1d8e1543..e2cf7d62cee 100644
--- a/src/vnet/bier/bier_output.c
+++ b/src/vnet/bier/bier_output.c
@@ -58,6 +58,7 @@ typedef struct bier_output_trace_t_
{
u32 next_index;
index_t bfm_index;
+ mpls_label_t bfm_label;
} bier_output_trace_t;
static uword
@@ -163,6 +164,7 @@ bier_output (vlib_main_t * vm,
tr = vlib_add_trace (vm, node, b0, sizeof (*tr));
tr->next_index = next0;
tr->bfm_index = bfmi0;
+ tr->bfm_label = bfm0->bfm_label;
}
vlib_validate_buffer_enqueue_x1 (vm, node, next_index,
@@ -186,8 +188,8 @@ format_bier_output_trace (u8 * s, va_list * args)
CLIB_UNUSED (vlib_node_t * node) = va_arg (*args, vlib_node_t *);
bier_output_trace_t * t = va_arg (*args, bier_output_trace_t *);
- s = format (s, " next [%d], BFM index %d",
- t->next_index, t->bfm_index);
+ s = format (s, " next [%d], BFM index %d label:%x",
+ t->next_index, t->bfm_index, t->bfm_label);
return s;
}