+uword
+vnet_interface_output_node_no_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_sw_interface_t * si;
+ si = vnet_get_sw_interface (vnm, rt->sw_if_index);
+
+ if (PREDICT_FALSE(si->output_feature_bitmap))
+ {
+ /* if first pakcet in the frame have BUFFER_OUTPUT_FEAT_DONE flag set
+ then whole frame is arriving from feature node */
+
+ u32 * from = vlib_frame_args (frame);
+ vlib_buffer_t * b = vlib_get_buffer (vm, from[0]);
+
+ if ((b->flags & BUFFER_OUTPUT_FEAT_DONE) == 0)
+ return vnet_interface_output_node_no_flatten_inline (vm, node, frame, 1);
+ }
+ return vnet_interface_output_node_no_flatten_inline (vm, node, frame, 0);
+}
+
+VLIB_NODE_FUNCTION_MULTIARCH_CLONE (vnet_interface_output_node_no_flatten)
+CLIB_MULTIARCH_SELECT_FN (vnet_interface_output_node_no_flatten)