diff options
Diffstat (limited to 'src/plugins/af_xdp/input.c')
-rw-r--r-- | src/plugins/af_xdp/input.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/src/plugins/af_xdp/input.c b/src/plugins/af_xdp/input.c index 4f3ac5725a4..9177b3ffc5b 100644 --- a/src/plugins/af_xdp/input.c +++ b/src/plugins/af_xdp/input.c @@ -15,7 +15,6 @@ *------------------------------------------------------------------ */ -#include <poll.h> #include <vlib/vlib.h> #include <vlib/unix/unix.h> #include <vlib/pci/pci.h> @@ -89,8 +88,7 @@ af_xdp_device_input_refill_db (vlib_main_t * vm, if (clib_spinlock_trylock_if_init (&rxq->syscall_lock)) { - struct pollfd fd = { .fd = rxq->xsk_fd, .events = POLLIN | POLLOUT }; - int ret = poll (&fd, 1, 0); + int ret = recvmsg (rxq->xsk_fd, 0, MSG_DONTWAIT); clib_spinlock_unlock_if_init (&rxq->syscall_lock); if (PREDICT_FALSE (ret < 0)) { @@ -198,6 +196,7 @@ af_xdp_device_input_ethernet (vlib_main_t * vm, vlib_node_runtime_t * node, ef = vlib_frame_scalar_args (f); ef->sw_if_index = sw_if_index; ef->hw_if_index = hw_if_index; + vlib_frame_no_append (f); } static_always_inline u32 @@ -297,7 +296,7 @@ af_xdp_device_input_inline (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_buffer_copy_template (&bt, ad->buffer_template); next_index = ad->per_interface_next_index; if (PREDICT_FALSE (vnet_device_input_have_features (ad->sw_if_index))) - vnet_feature_start_device_input_x1 (ad->sw_if_index, &next_index, &bt); + vnet_feature_start_device_input (ad->sw_if_index, &next_index, &bt); vlib_get_new_next_frame (vm, node, next_index, to_next, n_left_to_next); @@ -353,7 +352,6 @@ af_xdp_device_input_refill (af_xdp_device_t *ad) } #endif /* CLIB_MARCH_VARIANT */ -/* *INDENT-OFF* */ VLIB_REGISTER_NODE (af_xdp_input_node) = { .name = "af_xdp-input", .sibling_of = "device-input", @@ -364,7 +362,6 @@ VLIB_REGISTER_NODE (af_xdp_input_node) = { .error_strings = af_xdp_input_error_strings, .flags = VLIB_NODE_FLAG_TRACE_SUPPORTED, }; -/* *INDENT-ON* */ /* * fd.io coding-style-patch-verification: ON |