summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/vnet/l2/l2_output.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/vnet/l2/l2_output.c b/src/vnet/l2/l2_output.c
index 2811215307f..321a531e19f 100644
--- a/src/vnet/l2/l2_output.c
+++ b/src/vnet/l2/l2_output.c
@@ -260,8 +260,12 @@ l2output_process_batch (vlib_main_t * vm, vlib_node_runtime_t * node,
{
u32 feature_bitmap = config->feature_bitmap & ~L2OUTPUT_FEAT_OUTPUT;
if (config->shg == 0 && feature_bitmap == 0)
- l2output_process_batch_inline (vm, node, config, b, cdo, next, n_left,
- l2_efp, l2_vtr, l2_pbb, 0, 0);
+ {
+ if ((l2_efp | l2_vtr | l2_pbb) == 0)
+ return;
+ l2output_process_batch_inline (vm, node, config, b, cdo, next, n_left,
+ l2_efp, l2_vtr, l2_pbb, 0, 0);
+ }
else if (config->shg == 0)
l2output_process_batch_inline (vm, node, config, b, cdo, next, n_left,
l2_efp, l2_vtr, l2_pbb, 0, 1);