From 89733a15ce329a69bb37ea91ceab7a50064ec0a0 Mon Sep 17 00:00:00 2001 From: Mohsin Kazmi Date: Tue, 30 Aug 2022 13:29:06 +0000 Subject: devices: add support for polling mode Type: improvement Signed-off-by: Mohsin Kazmi Change-Id: I8d84dc8b7f5c5e863c32838cfafc3d366e2a7e00 --- src/vnet/devices/af_packet/node.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'src/vnet/devices/af_packet/node.c') diff --git a/src/vnet/devices/af_packet/node.c b/src/vnet/devices/af_packet/node.c index 1fc061982c1..0e522c913ad 100644 --- a/src/vnet/devices/af_packet/node.c +++ b/src/vnet/devices/af_packet/node.c @@ -504,12 +504,15 @@ af_packet_device_input_fn (vlib_main_t *vm, vlib_node_runtime_t *node, done: - if ((((block_desc_t *) (block_start = rx_queue->rx_ring[block])) - ->hdr.bh1.block_status & - TP_STATUS_USER) != 0) - vlib_node_set_state (vm, node->node_index, VLIB_NODE_STATE_POLLING); - else - vlib_node_set_state (vm, node->node_index, VLIB_NODE_STATE_INTERRUPT); + if (apm->polling_count == 0) + { + if ((((block_desc_t *) (block_start = rx_queue->rx_ring[block])) + ->hdr.bh1.block_status & + TP_STATUS_USER) != 0) + vlib_node_set_state (vm, node->node_index, VLIB_NODE_STATE_POLLING); + else + vlib_node_set_state (vm, node->node_index, VLIB_NODE_STATE_INTERRUPT); + } vlib_error_count (vm, node->node_index, AF_PACKET_INPUT_ERROR_TOTAL_RECV_BLK, total); -- cgit 1.2.3-korg