X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Finterface%2Frx_queue_funcs.h;h=906d7118296bbbe7f479acfbfb96640315853428;hb=b10561bbecb2870360a731b4696bff920150720d;hp=26dc1b8777f5bd1d09654007d60cd4a34f1f57eb;hpb=1bd6cbb7aeded36cca4402d0c970b593316c9d70;p=vpp.git diff --git a/src/vnet/interface/rx_queue_funcs.h b/src/vnet/interface/rx_queue_funcs.h index 26dc1b8777f..906d7118296 100644 --- a/src/vnet/interface/rx_queue_funcs.h +++ b/src/vnet/interface/rx_queue_funcs.h @@ -33,8 +33,9 @@ vnet_hw_if_rx_mode vnet_hw_if_get_rx_queue_mode (vnet_main_t *vnm, u32 queue_index); void vnet_hw_if_set_rx_queue_thread_index (vnet_main_t *vnm, u32 queue_index, u32 thread_index); -void vnet_hw_if_generate_rxq_int_poll_vector (vlib_main_t *vm, - vlib_node_runtime_t *node); +vnet_hw_if_rxq_poll_vector_t * +vnet_hw_if_generate_rxq_int_poll_vector (vlib_main_t *vm, + vlib_node_runtime_t *node); /* inline functions */ @@ -69,11 +70,14 @@ static_always_inline vnet_hw_if_rxq_poll_vector_t * vnet_hw_if_get_rxq_poll_vector (vlib_main_t *vm, vlib_node_runtime_t *node) { vnet_hw_if_rx_node_runtime_t *rt = (void *) node->runtime_data; + vnet_hw_if_rxq_poll_vector_t *pv = rt->rxq_vector_int; if (PREDICT_FALSE (node->state == VLIB_NODE_STATE_INTERRUPT)) - vnet_hw_if_generate_rxq_int_poll_vector (vm, node); + pv = vnet_hw_if_generate_rxq_int_poll_vector (vm, node); + else if (node->flags & VLIB_NODE_FLAG_ADAPTIVE_MODE) + pv = rt->rxq_vector_poll; - return rt->rxq_poll_vector; + return pv; } static_always_inline u8