feature: Config end nodes are user specific
[vpp.git] / src / vnet / feature / feature.c
index 4a5127d..09dd9cc 100644 (file)
@@ -321,7 +321,7 @@ vnet_feature_enable_disable (const char *arc_name, const char *node_name,
                                                 n_feature_config_bytes);
 }
 
-int
+u32
 vnet_feature_modify_end_node (u8 arc_index,
                              u32 sw_if_index, u32 end_node_index)
 {
@@ -342,12 +342,10 @@ vnet_feature_modify_end_node (u8 arc_index,
   ci = vnet_config_modify_end_node (vlib_get_main (), &cm->config_main,
                                    ci, end_node_index);
 
-  if (ci == ~0)
-    return 0;
-
-  cm->config_index_by_sw_if_index[sw_if_index] = ci;
+  if (ci != ~0)
+    cm->config_index_by_sw_if_index[sw_if_index] = ci;
 
-  return 0;
+  return ci;
 }
 
 static int
@@ -495,6 +493,14 @@ vnet_interface_features_show (vlib_main_t * vm, u32 sw_if_index, int verbose)
          else
            vlib_cli_output (vm, "  %v", n->name);
        }
+      if (verbose)
+       {
+         n =
+           vlib_get_node (vm,
+                          vcm->end_node_indices_by_user_index
+                          [current_config_index]);
+         vlib_cli_output (vm, "  [end] %v", n->name);
+       }
     }
 }