summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/vnet/mpls/interface.c4
-rw-r--r--src/vnet/mpls/mpls_features.c11
-rw-r--r--src/vnet/mpls/node.c1
3 files changed, 9 insertions, 7 deletions
diff --git a/src/vnet/mpls/interface.c b/src/vnet/mpls/interface.c
index 692a2d1eb62..f631dc7652c 100644
--- a/src/vnet/mpls/interface.c
+++ b/src/vnet/mpls/interface.c
@@ -66,8 +66,8 @@ mpls_sw_interface_enable_disable (mpls_main_t * mm,
FIB_PROTOCOL_MPLS);
}
- vnet_feature_enable_disable ("mpls-input", "mpls-lookup", sw_if_index,
- is_enable, 0, 0);
+ vnet_feature_enable_disable ("mpls-input", "mpls-not-enabled",
+ sw_if_index, !is_enable, 0, 0);
}
diff --git a/src/vnet/mpls/mpls_features.c b/src/vnet/mpls/mpls_features.c
index a7593c55b09..24147955153 100644
--- a/src/vnet/mpls/mpls_features.c
+++ b/src/vnet/mpls/mpls_features.c
@@ -104,18 +104,19 @@ VNET_FEATURE_ARC_INIT (mpls_input, static) =
{
.arc_name = "mpls-input",
.start_nodes = VNET_FEATURES ("mpls-input"),
+ .end_node = "mpls-lookup",
.arc_index_ptr = &mpls_main.input_feature_arc_index,
};
-VNET_FEATURE_INIT (mpls_lookup, static) = {
+VNET_FEATURE_INIT (mpls_not_enabled, static) = {
.arc_name = "mpls-input",
- .node_name = "mpls-lookup",
- .runs_before = VNET_FEATURES ("mpls-not-enabled"),
+ .node_name = "mpls-not-enabled",
+ .runs_before = VNET_FEATURES ("mpls-lookup"),
};
-VNET_FEATURE_INIT (mpls_not_enabled, static) = {
+VNET_FEATURE_INIT (mpls_lookup, static) = {
.arc_name = "mpls-input",
- .node_name = "mpls-not-enabled",
+ .node_name = "mpls-lookup",
.runs_before = VNET_FEATURES (0), /* not before any other features */
};
diff --git a/src/vnet/mpls/node.c b/src/vnet/mpls/node.c
index 03bfaf56ce9..5b407fae2a2 100644
--- a/src/vnet/mpls/node.c
+++ b/src/vnet/mpls/node.c
@@ -206,6 +206,7 @@ mpls_input_inline (vlib_main_t * vm,
}
else
{
+ next0 = MPLS_INPUT_NEXT_LOOKUP;
vnet_feature_arc_start(mm->input_feature_arc_index, sw_if_index0, &next0, b0);
vlib_increment_simple_counter (cm, cpu_index, sw_if_index0, 1);
}