Hello, I followed the example from the l3fwd-power to enable the event poll for the ixgbe driver (10G X550T 1563). Default multi-queuing enabled. [image: image.png] As the first step, I bind my NIC to the VFIO module. [image: image.png] The number of rte_eth_devices is shown as 1. Then in my code, I called RTE_INTR_EVENT_ADD with kPort = 0 and kQueue = 0 ->rte_eth_dev_rx_intr_ctl_q(kPort, kQueue, RTE_EPOLL_PER_THREAD, RTE_INTR_EVENT_ADD, nullptr); ->I got the error as "RX Intr vector unset." When I checked inside the DPDK code, it showed intr_handle = dev->intr_handle; + if (!intr_handle->intr_vec) { + RTE_ETHDEV_LOG(ERR, "RX Intr vector unset\n"); + return -EPERM; + } I disabled multi-queueing by setting only one Combined queue but got the same error. Could someone help me understand why and how to overcome this error? Thank you. Regards, Priya. On Thu, Jan 19, 2023 at 10:04 PM Stephen Hemminger < stephen@networkplumber.org> wrote: > On Thu, 19 Jan 2023 16:29:16 -0600 > Priya Ramanathan wrote: > > > Thank you, for the information. > > I have a UDPDK stack (with DPDK at the physical layer) for UDP > > communication. > > > > I am using VFIO module and binded the 10G X550T NIC to the VFIO module. > > Then I wrote a simple server-client code for UDP communication using the > > UDPDK APIs with DPDK support, which works fine. > > Now, I added the epoll_create, epoll_ctl and epoll_wait commands, and it > > looks like it is not working as expected. > > > > Let me go through the l3fwd example and try to understand it better. If I > > get any questions, I will get back to you. Thank you. > > > > Regards, > > Priya. > > > There is no file descriptor visible to poll on in DPDK. > You need to use DPDK interrupt mode which is rte_epoll. > > Also, if DPDK wakes up in interrupt mode, it might not be a UDP > packet, it could be any type of packet that your stack has to digest > (ARP, ICMP, UDP, etc) > -- winners do not do different things.They do things differently