From 421964a8d1e07ea1e59d79e7e7420d03150b4cee Mon Sep 17 00:00:00 2001 From: Vladimir Zhigulin Date: Fri, 4 Jul 2025 10:31:44 +0200 Subject: [PATCH] af_xdp: fix missing recvmsg argument Because of missing argument syscall was failing before reaching xdp system what could result in degrated performance Type: fix Change-Id: I0ae1ce1bacf68457a02a31b3508e9c5100a754e6 Signed-off-by: Vladimir Zhigulin --- src/plugins/af_xdp/input.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/plugins/af_xdp/input.c b/src/plugins/af_xdp/input.c index 9177b3ffc5b..72c3738fa2f 100644 --- a/src/plugins/af_xdp/input.c +++ b/src/plugins/af_xdp/input.c @@ -88,7 +88,12 @@ af_xdp_device_input_refill_db (vlib_main_t * vm, if (clib_spinlock_trylock_if_init (&rxq->syscall_lock)) { - int ret = recvmsg (rxq->xsk_fd, 0, MSG_DONTWAIT); + struct msghdr msg = { 0 }; + struct iovec iov = { 0 }; + msg.msg_iov = &iov; + msg.msg_iovlen = 1; + + int ret = recvmsg (rxq->xsk_fd, &msg, MSG_DONTWAIT); clib_spinlock_unlock_if_init (&rxq->syscall_lock); if (PREDICT_FALSE (ret < 0)) { -- 2.16.6