Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
span: add tx functionality and support for multiple mirror ports
[vpp.git]
/
vnet
/
vnet
/
interface_output.c
diff --git
a/vnet/vnet/interface_output.c
b/vnet/vnet/interface_output.c
index
502fa7b
..
475b0b9
100644
(file)
--- a/
vnet/vnet/interface_output.c
+++ b/
vnet/vnet/interface_output.c
@@
-229,8
+229,9
@@
incr_output_stats (vnet_main_t * vnm,
/* Interface output functions. */
uword
/* Interface output functions. */
uword
-vnet_interface_output_node (vlib_main_t * vm,
- vlib_node_runtime_t * node, vlib_frame_t * frame)
+vnet_interface_output_node_flatten (vlib_main_t * vm,
+ vlib_node_runtime_t * node,
+ vlib_frame_t * frame)
{
vnet_main_t *vnm = vnet_get_main ();
vnet_interface_output_runtime_t *rt = (void *) node->runtime_data;
{
vnet_main_t *vnm = vnet_get_main ();
vnet_interface_output_runtime_t *rt = (void *) node->runtime_data;
@@
-413,13
+414,12
@@
vnet_interface_output_node (vlib_main_t * vm,
return n_buffers;
}
return n_buffers;
}
-VLIB_NODE_FUNCTION_MULTIARCH_CLONE (vnet_interface_output_node);
-CLIB_MULTIARCH_SELECT_FN (vnet_interface_output_node);
+VLIB_NODE_FUNCTION_MULTIARCH_CLONE (vnet_interface_output_node
_flatten
);
+CLIB_MULTIARCH_SELECT_FN (vnet_interface_output_node
_flatten
);
uword
uword
-vnet_interface_output_node_no_flatten (vlib_main_t * vm,
- vlib_node_runtime_t * node,
- vlib_frame_t * frame)
+vnet_interface_output_node (vlib_main_t * vm,
+ vlib_node_runtime_t * node, vlib_frame_t * frame)
{
vnet_main_t *vnm = vnet_get_main ();
vnet_interface_output_runtime_t *rt = (void *) node->runtime_data;
{
vnet_main_t *vnm = vnet_get_main ();
vnet_interface_output_runtime_t *rt = (void *) node->runtime_data;
@@
-604,8
+604,8
@@
vnet_interface_output_node_no_flatten (vlib_main_t * vm,
return n_buffers;
}
return n_buffers;
}
-VLIB_NODE_FUNCTION_MULTIARCH_CLONE (vnet_interface_output_node
_no_flatten
);
-CLIB_MULTIARCH_SELECT_FN (vnet_interface_output_node
_no_flatten
);
+VLIB_NODE_FUNCTION_MULTIARCH_CLONE (vnet_interface_output_node);
+CLIB_MULTIARCH_SELECT_FN (vnet_interface_output_node);
/* Use buffer's sw_if_index[VNET_TX] to choose output interface. */
static uword
/* Use buffer's sw_if_index[VNET_TX] to choose output interface. */
static uword
@@
-1223,9
+1223,16
@@
VNET_FEATURE_ARC_INIT (interface_output, static) =
{
.arc_name = "interface-output",
.start_nodes = VNET_FEATURES (0),
{
.arc_name = "interface-output",
.start_nodes = VNET_FEATURES (0),
+ .end_node = "interface-tx",
.arc_index_ptr = &vnet_main.interface_main.output_feature_arc_index,
};
.arc_index_ptr = &vnet_main.interface_main.output_feature_arc_index,
};
+VNET_FEATURE_INIT (span_tx, static) = {
+ .arc_name = "interface-output",
+ .node_name = "span-output",
+ .runs_before = VNET_FEATURES ("interface-tx"),
+};
+
VNET_FEATURE_INIT (interface_tx, static) = {
.arc_name = "interface-output",
.node_name = "interface-tx",
VNET_FEATURE_INIT (interface_tx, static) = {
.arc_name = "interface-output",
.node_name = "interface-tx",