Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
geneve: Fix the byte swapping for the VNI
[vpp.git]
/
src
/
vnet
/
dpo
/
mpls_disposition.c
diff --git
a/src/vnet/dpo/mpls_disposition.c
b/src/vnet/dpo/mpls_disposition.c
index
c2c9065
..
7bc2cb6
100644
(file)
--- a/
src/vnet/dpo/mpls_disposition.c
+++ b/
src/vnet/dpo/mpls_disposition.c
@@
-18,6
+18,7
@@
#include <vnet/dpo/mpls_disposition.h>
#include <vnet/mpls/mpls.h>
#include <vnet/dpo/mpls_disposition.h>
#include <vnet/mpls/mpls.h>
+#ifndef CLIB_MARCH_VARIANT
/*
* pool of all MPLS Label DPOs
*/
/*
* pool of all MPLS Label DPOs
*/
@@
-87,8
+88,12
@@
format_mpls_disp_dpo (u8 *s, va_list *args)
mdd = mpls_disp_dpo_get(index);
mdd = mpls_disp_dpo_get(index);
- s = format(s, "mpls-disposition:[%d]:[%U, %U]",
- index,
+ s = format(s, "mpls-disposition:[%d]:[", index);
+
+ if (0 != mdd->mdd_rpf_id)
+ s = format(s, "rpf-id:%d ", mdd->mdd_rpf_id);
+
+ s = format(s, "%U, %U]",
format_dpo_proto, mdd->mdd_payload_proto,
format_fib_mpls_lsp_mode, mdd->mdd_mode);
format_dpo_proto, mdd->mdd_payload_proto,
format_fib_mpls_lsp_mode, mdd->mdd_mode);
@@
-123,6
+128,7
@@
mpls_disp_dpo_unlock (dpo_id_t *dpo)
pool_put(mpls_disp_dpo_pool, mdd);
}
}
pool_put(mpls_disp_dpo_pool, mdd);
}
}
+#endif /* CLIB_MARCH_VARIANT */
/**
* @brief A struct to hold tracing information for the MPLS label disposition
/**
* @brief A struct to hold tracing information for the MPLS label disposition
@@
-130,7
+136,9
@@
mpls_disp_dpo_unlock (dpo_id_t *dpo)
*/
typedef struct mpls_label_disposition_trace_t_
{
*/
typedef struct mpls_label_disposition_trace_t_
{
- index_t mdd;
+ dpo_proto_t mddt_payload_proto;
+ fib_rpf_id_t mddt_rpf_id;
+ fib_mpls_lsp_mode_t mddt_mode;
} mpls_label_disposition_trace_t;
extern vlib_node_registration_t ip4_mpls_label_disposition_pipe_node;
} mpls_label_disposition_trace_t;
extern vlib_node_registration_t ip4_mpls_label_disposition_pipe_node;
@@
-291,13
+299,17
@@
mpls_label_disposition_inline (vlib_main_t * vm,
mpls_label_disposition_trace_t *tr =
vlib_add_trace(vm, node, b0, sizeof(*tr));
mpls_label_disposition_trace_t *tr =
vlib_add_trace(vm, node, b0, sizeof(*tr));
- tr->mdd = mddi0;
+ tr->mddt_payload_proto = mdd0->mdd_payload_proto;
+ tr->mddt_rpf_id = mdd0->mdd_rpf_id;
+ tr->mddt_mode = mdd0->mdd_mode;
}
if (PREDICT_FALSE(b1->flags & VLIB_BUFFER_IS_TRACED))
{
mpls_label_disposition_trace_t *tr =
vlib_add_trace(vm, node, b1, sizeof(*tr));
}
if (PREDICT_FALSE(b1->flags & VLIB_BUFFER_IS_TRACED))
{
mpls_label_disposition_trace_t *tr =
vlib_add_trace(vm, node, b1, sizeof(*tr));
- tr->mdd = mddi1;
+ tr->mddt_payload_proto = mdd1->mdd_payload_proto;
+ tr->mddt_rpf_id = mdd1->mdd_rpf_id;
+ tr->mddt_mode = mdd1->mdd_mode;
}
vlib_validate_buffer_enqueue_x2(vm, node, next_index, to_next,
}
vlib_validate_buffer_enqueue_x2(vm, node, next_index, to_next,
@@
-381,7
+393,9
@@
mpls_label_disposition_inline (vlib_main_t * vm,
{
mpls_label_disposition_trace_t *tr =
vlib_add_trace(vm, node, b0, sizeof(*tr));
{
mpls_label_disposition_trace_t *tr =
vlib_add_trace(vm, node, b0, sizeof(*tr));
- tr->mdd = mddi0;
+ tr->mddt_payload_proto = mdd0->mdd_payload_proto;
+ tr->mddt_rpf_id = mdd0->mdd_rpf_id;
+ tr->mddt_mode = mdd0->mdd_mode;
}
vlib_validate_buffer_enqueue_x1(vm, node, next_index, to_next,
}
vlib_validate_buffer_enqueue_x1(vm, node, next_index, to_next,
@@
-401,12
+415,15
@@
format_mpls_label_disposition_trace (u8 * s, va_list * args)
t = va_arg(*args, mpls_label_disposition_trace_t *);
t = va_arg(*args, mpls_label_disposition_trace_t *);
- s = format(s, "disp:%d", t->mdd);
+ s = format(s, "rpf-id:%d %U, %U",
+ t->mddt_rpf_id,
+ format_dpo_proto, t->mddt_payload_proto,
+ format_fib_mpls_lsp_mode, t->mddt_mode);
+
return (s);
}
return (s);
}
-static uword
-ip4_mpls_label_disposition_pipe (vlib_main_t * vm,
+VLIB_NODE_FN (ip4_mpls_label_disposition_pipe_node) (vlib_main_t * vm,
vlib_node_runtime_t * node,
vlib_frame_t * frame)
{
vlib_node_runtime_t * node,
vlib_frame_t * frame)
{
@@
-415,7
+432,6
@@
ip4_mpls_label_disposition_pipe (vlib_main_t * vm,
}
VLIB_REGISTER_NODE(ip4_mpls_label_disposition_pipe_node) = {
}
VLIB_REGISTER_NODE(ip4_mpls_label_disposition_pipe_node) = {
- .function = ip4_mpls_label_disposition_pipe,
.name = "ip4-mpls-label-disposition-pipe",
.vector_size = sizeof(u32),
.name = "ip4-mpls-label-disposition-pipe",
.vector_size = sizeof(u32),
@@
-424,11
+440,8
@@
VLIB_REGISTER_NODE(ip4_mpls_label_disposition_pipe_node) = {
.n_errors = IP4_N_ERROR,
.error_strings = ip4_error_strings,
};
.n_errors = IP4_N_ERROR,
.error_strings = ip4_error_strings,
};
-VLIB_NODE_FUNCTION_MULTIARCH(ip4_mpls_label_disposition_pipe_node,
- ip4_mpls_label_disposition_pipe)
-static uword
-ip6_mpls_label_disposition_pipe (vlib_main_t * vm,
+VLIB_NODE_FN (ip6_mpls_label_disposition_pipe_node) (vlib_main_t * vm,
vlib_node_runtime_t * node,
vlib_frame_t * frame)
{
vlib_node_runtime_t * node,
vlib_frame_t * frame)
{
@@
-437,7
+450,6
@@
ip6_mpls_label_disposition_pipe (vlib_main_t * vm,
}
VLIB_REGISTER_NODE(ip6_mpls_label_disposition_pipe_node) = {
}
VLIB_REGISTER_NODE(ip6_mpls_label_disposition_pipe_node) = {
- .function = ip6_mpls_label_disposition_pipe,
.name = "ip6-mpls-label-disposition-pipe",
.vector_size = sizeof(u32),
.name = "ip6-mpls-label-disposition-pipe",
.vector_size = sizeof(u32),
@@
-446,11
+458,8
@@
VLIB_REGISTER_NODE(ip6_mpls_label_disposition_pipe_node) = {
.n_errors = IP6_N_ERROR,
.error_strings = ip6_error_strings,
};
.n_errors = IP6_N_ERROR,
.error_strings = ip6_error_strings,
};
-VLIB_NODE_FUNCTION_MULTIARCH(ip6_mpls_label_disposition_pipe_node,
- ip6_mpls_label_disposition_pipe)
-static uword
-ip4_mpls_label_disposition_uniform (vlib_main_t * vm,
+VLIB_NODE_FN (ip4_mpls_label_disposition_uniform_node) (vlib_main_t * vm,
vlib_node_runtime_t * node,
vlib_frame_t * frame)
{
vlib_node_runtime_t * node,
vlib_frame_t * frame)
{
@@
-459,7
+468,6
@@
ip4_mpls_label_disposition_uniform (vlib_main_t * vm,
}
VLIB_REGISTER_NODE(ip4_mpls_label_disposition_uniform_node) = {
}
VLIB_REGISTER_NODE(ip4_mpls_label_disposition_uniform_node) = {
- .function = ip4_mpls_label_disposition_uniform,
.name = "ip4-mpls-label-disposition-uniform",
.vector_size = sizeof(u32),
.name = "ip4-mpls-label-disposition-uniform",
.vector_size = sizeof(u32),
@@
-468,11
+476,8
@@
VLIB_REGISTER_NODE(ip4_mpls_label_disposition_uniform_node) = {
.n_errors = IP4_N_ERROR,
.error_strings = ip4_error_strings,
};
.n_errors = IP4_N_ERROR,
.error_strings = ip4_error_strings,
};
-VLIB_NODE_FUNCTION_MULTIARCH(ip4_mpls_label_disposition_uniform_node,
- ip4_mpls_label_disposition_uniform)
-static uword
-ip6_mpls_label_disposition_uniform (vlib_main_t * vm,
+VLIB_NODE_FN (ip6_mpls_label_disposition_uniform_node) (vlib_main_t * vm,
vlib_node_runtime_t * node,
vlib_frame_t * frame)
{
vlib_node_runtime_t * node,
vlib_frame_t * frame)
{
@@
-481,7
+486,6
@@
ip6_mpls_label_disposition_uniform (vlib_main_t * vm,
}
VLIB_REGISTER_NODE(ip6_mpls_label_disposition_uniform_node) = {
}
VLIB_REGISTER_NODE(ip6_mpls_label_disposition_uniform_node) = {
- .function = ip6_mpls_label_disposition_uniform,
.name = "ip6-mpls-label-disposition-uniform",
.vector_size = sizeof(u32),
.name = "ip6-mpls-label-disposition-uniform",
.vector_size = sizeof(u32),
@@
-490,9
+494,8
@@
VLIB_REGISTER_NODE(ip6_mpls_label_disposition_uniform_node) = {
.n_errors = IP6_N_ERROR,
.error_strings = ip6_error_strings,
};
.n_errors = IP6_N_ERROR,
.error_strings = ip6_error_strings,
};
-VLIB_NODE_FUNCTION_MULTIARCH(ip6_mpls_label_disposition_uniform_node,
- ip6_mpls_label_disposition_uniform)
+#ifndef CLIB_MARCH_VARIANT
static void
mpls_disp_dpo_mem_show (void)
{
static void
mpls_disp_dpo_mem_show (void)
{
@@
-550,3
+553,4
@@
mpls_disp_dpo_module_init(void)
dpo_register(DPO_MPLS_DISPOSITION_UNIFORM, &mdd_vft,
mpls_label_disp_uniform_nodes);
}
dpo_register(DPO_MPLS_DISPOSITION_UNIFORM, &mdd_vft,
mpls_label_disp_uniform_nodes);
}
+#endif /* CLIB_MARCH_VARIANT */