aboutsummaryrefslogtreecommitdiffstats
path: root/nsh-plugin/nsh/nsh_output.c
diff options
context:
space:
mode:
Diffstat (limited to 'nsh-plugin/nsh/nsh_output.c')
-rw-r--r--nsh-plugin/nsh/nsh_output.c24
1 files changed, 23 insertions, 1 deletions
diff --git a/nsh-plugin/nsh/nsh_output.c b/nsh-plugin/nsh/nsh_output.c
index c104ee7..5671463 100644
--- a/nsh-plugin/nsh/nsh_output.c
+++ b/nsh-plugin/nsh/nsh_output.c
@@ -315,6 +315,10 @@ nsh_output_inline (vlib_main_t * vm,
return from_frame->n_vectors;
}
+typedef enum nsh_midchain_next_t_
+{
+ NSH_MIDCHAIN_NEXT_DROP,
+} nsh_midchain_next_t;
static inline uword
nsh_eth_output (vlib_main_t * vm,
@@ -354,7 +358,10 @@ VLIB_REGISTER_NODE (nsh_midchain_node) = {
.name = "nsh-midchain",
.vector_size = sizeof (u32),
.format_trace = format_nsh_output_trace,
- .sibling_of = "nsh-eth-output",
+ .n_next_nodes = 1,
+ .next_nodes = {
+ [NSH_MIDCHAIN_NEXT_DROP] = "error-drop",
+ },
};
VLIB_NODE_FUNCTION_MULTIARCH (nsh_midchain_node, nsh_midchain)
@@ -366,6 +373,21 @@ VNET_FEATURE_INIT (nsh_interface_output, static) = {
.runs_before = 0, /* not before any other features */
};
+/* Built-in ip4 tx feature path definition */
+/* *INDENT-OFF* */
+VNET_FEATURE_ARC_INIT (nsh_eth_output, static) =
+{
+ .arc_name = "nsh-eth-output",
+ .start_nodes = VNET_FEATURES ("nsh-midchain"),
+};
+
+VNET_FEATURE_INIT (nsh_eth_tx_drop, static) =
+{
+ .arc_name = "nsh-eth-output",
+ .node_name = "error-drop",
+ .runs_before = 0, /* not before any other features */
+};
+/* *INDENT-ON* */
/**
* @brief Next index values from the NSH incomplete adj node
*/