- vnet_buffer (b0)->device_input_feat.saved_next_index = *next0;
- vnet_buffer (b1)->device_input_feat.saved_next_index = *next1;
- vnet_buffer (b2)->device_input_feat.saved_next_index = *next2;
- vnet_buffer (b3)->device_input_feat.saved_next_index = *next3;
-
- vnet_buffer (b0)->device_input_feat.buffer_advance = buffer_advanced0;
- vnet_buffer (b1)->device_input_feat.buffer_advance = buffer_advanced1;
- vnet_buffer (b2)->device_input_feat.buffer_advance = buffer_advanced2;
- vnet_buffer (b3)->device_input_feat.buffer_advance = buffer_advanced3;
-
- vlib_buffer_advance (b0, -buffer_advanced0);
- vlib_buffer_advance (b1, -buffer_advanced1);
- vlib_buffer_advance (b2, -buffer_advanced2);
- vlib_buffer_advance (b3, -buffer_advanced3);
-
- b0->feature_arc_index = feature_arc_index;
- b1->feature_arc_index = feature_arc_index;
- b2->feature_arc_index = feature_arc_index;
- b3->feature_arc_index = feature_arc_index;
+ u16 adv;
+
+ adv = device_input_next_node_advance[*next0];
+ vlib_buffer_advance (b0, -adv);
+
+ adv = device_input_next_node_advance[*next1];
+ vlib_buffer_advance (b1, -adv);
+
+ adv = device_input_next_node_advance[*next2];
+ vlib_buffer_advance (b2, -adv);
+
+ adv = device_input_next_node_advance[*next3];
+ vlib_buffer_advance (b3, -adv);
+
+ vnet_buffer (b0)->feature_arc_index = feature_arc_index;
+ vnet_buffer (b1)->feature_arc_index = feature_arc_index;
+ vnet_buffer (b2)->feature_arc_index = feature_arc_index;
+ vnet_buffer (b3)->feature_arc_index = feature_arc_index;