diff options
Diffstat (limited to 'src/vlib/main.c')
-rw-r--r-- | src/vlib/main.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/vlib/main.c b/src/vlib/main.c index 27cbcb0df18..6369f39b09a 100644 --- a/src/vlib/main.c +++ b/src/vlib/main.c @@ -1208,13 +1208,21 @@ dispatch_node (vlib_main_t * vm, } if (PREDICT_FALSE (vm->dispatch_pcap_enable)) dispatch_pcap_trace (vm, node, frame); - n = node->function (vm, node, frame); + + if (PREDICT_TRUE (vm->dispatch_wrapper_fn == 0)) + n = node->function (vm, node, frame); + else + n = vm->dispatch_wrapper_fn (vm, node, frame); } else { if (PREDICT_FALSE (vm->dispatch_pcap_enable)) dispatch_pcap_trace (vm, node, frame); - n = node->function (vm, node, frame); + + if (PREDICT_TRUE (vm->dispatch_wrapper_fn == 0)) + n = node->function (vm, node, frame); + else + n = vm->dispatch_wrapper_fn (vm, node, frame); } t = clib_cpu_time_now (); |