- if (PREDICT_FALSE(si->output_feature_bitmap &&
- vnet_buffer(b0)->output_features.bitmap != (1 << INTF_OUTPUT_FEAT_DONE)))
- {
- u32 next0;
- vnet_buffer(b0)->output_features.bitmap = si->output_feature_bitmap;
- count_trailing_zeros(next0, vnet_buffer(b0)->output_features.bitmap);
- vnet_buffer(b0)->output_features.bitmap &= ~(1 << next0);
- vlib_validate_buffer_enqueue_x1 (vm, node, next_index, to_tx,
- n_left_to_tx, bi0, next0);
- }
- else
- {
- vnet_buffer(b0)->output_features.bitmap = 0;
-
- if (PREDICT_FALSE(tx_swif0 != rt->sw_if_index))
- {
- /* update vlan subif tx counts, if required */
- vlib_increment_combined_counter (im->combined_sw_if_counters
- + VNET_INTERFACE_COUNTER_TX,
- cpu_index,
- tx_swif0,
- 1,
- n_bytes_b0);
- }
- }
-
- if (PREDICT_FALSE(si->output_feature_bitmap &&
- vnet_buffer(b1)->output_features.bitmap != (1 << INTF_OUTPUT_FEAT_DONE)))
- {
- u32 next1;
- vnet_buffer(b1)->output_features.bitmap = si->output_feature_bitmap;
- count_trailing_zeros(next1, vnet_buffer(b1)->output_features.bitmap);
- vnet_buffer(b1)->output_features.bitmap &= ~(1 << next1);
- vlib_validate_buffer_enqueue_x1 (vm, node, next_index, to_tx,
- n_left_to_tx, bi1, next1);
- }
- else
- {
- vnet_buffer(b1)->output_features.bitmap = 0;
-
- /* update vlan subif tx counts, if required */
- if (PREDICT_FALSE(tx_swif1 != rt->sw_if_index))
- {
-
- vlib_increment_combined_counter (im->combined_sw_if_counters
- + VNET_INTERFACE_COUNTER_TX,
- cpu_index,
- tx_swif1,
- 1,
- n_bytes_b1);
- }
- }
+ if (PREDICT_FALSE (tx_swif0 != rt->sw_if_index))
+ {
+ /* update vlan subif tx counts, if required */
+ vlib_increment_combined_counter (im->combined_sw_if_counters +
+ VNET_INTERFACE_COUNTER_TX,
+ cpu_index, tx_swif0, 1,
+ n_bytes_b0);
+ }