summaryrefslogtreecommitdiffstats
path: root/src/vnet/bier
diff options
context:
space:
mode:
authorNeale Ranns <nranns@cisco.com>2018-09-07 08:57:41 -0700
committerDamjan Marion <dmarion@me.com>2018-09-20 10:57:25 +0000
commit9c0a3c423ee0b9326f600a00c1bd46fef45d4975 (patch)
tree6415119b2e341cd340f2b2cbbb44e8ce0c689451 /src/vnet/bier
parentda8e1802625bd5d6e9901d5a96106e6de4f3d71f (diff)
UDP-Encap: name counters for the stats segment
change the ADD api so that is returns the 'ID' that can be used by the client to read the stats from the stats segment and to delete the object. Previously a similar value used required to be chosen by the client, now VPP allocates one (like it does e.g. for interfaces) Change-Id: I563cf6092276eb990c52d5457c86e72546bcf69e Signed-off-by: Neale Ranns <nranns@cisco.com>
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;
}