<div dir="ltr">Hi Team,<br><div><br></div><div>Currently we are exploring our DPDK application using af_xdp in a non-root mode.</div><div>When the DPDK application invokes AF_XDP, it calls xsk_umem__create() and thus requires CAP_IPC_LOCK capability to be enabled. if the application does not provide CAP_IPC_LOCK capability, it fails in the buffer allocation. </div><div><br></div><div>Looks like the kernel is reporting ENOBUFS when xsk_umem__create() is invoked without CAP_IPC_LOCK.</div><div>Can we use AF_XDP without any capability( to run as non-root mode) in our dpdk application ? </div><div>Please advise us. </div><div><br></div><div>Please see the code pointers. </div><div>DPDK logs show eth_rx_queue_setup in rte_eth_af_xdp.c<br></div><div><br><a href="https://elixir.bootlin.com/dpdk/v21.11/source/drivers/net/af_xdp/rte_eth_af_xdp.c#L1346">https://elixir.bootlin.com/dpdk/v21.11/source/drivers/net/af_xdp/rte_eth_af_xdp.c#L1346</a><br><a href="https://elixir.bootlin.com/dpdk/v21.11/source/drivers/net/af_xdp/rte_eth_af_xdp.c#L1380">https://elixir.bootlin.com/dpdk/v21.11/source/drivers/net/af_xdp/rte_eth_af_xdp.c#L1380</a><br><a href="https://elixir.bootlin.com/dpdk/v21.11/source/drivers/net/af_xdp/rte_eth_af_xdp.c#L1257">https://elixir.bootlin.com/dpdk/v21.11/source/drivers/net/af_xdp/rte_eth_af_xdp.c#L1257</a><br><a href="https://elixir.bootlin.com/dpdk/v21.11/source/drivers/net/af_xdp/rte_eth_af_xdp.c#L1065">https://elixir.bootlin.com/dpdk/v21.11/source/drivers/net/af_xdp/rte_eth_af_xdp.c#L1065</a><br></div><div><br></div><div>Please see the below DPDK logs: </div><div>12-23-2022  08:40:42.401426 EAL: Restoring previous memory policy: 0<br>12-23-2022  08:40:42.401443 EAL: request: mp_malloc_sync<br>12-23-2022  08:40:42.401447 EAL: No shared files mode enabled, IPC is disabled<br>12-23-2022  08:40:42.401451 EAL: Heap on socket 0 was expanded by 32MB<br>12-23-2022  08:40:42.402929 eth_rx_queue_setup(): Set up rx queue, rx queue id: 0, xsk queue id: 0<br>12-23-2022  08:40:42.402973 xdp_umem_configure(): Failed to create umem<br>12-23-2022  08:40:42.402980 xdp_umem_configure(): ret, error number and string -105, 105, No buffer space available<br>12-23-2022  08:40:42.402986 eth_rx_queue_setup(): Failed to configure xdp socket<br>12-23-2022  08:40:42.403013 eth_rx_queue_setup(): Set up rx queue, rx queue id: 0, xsk queue id: 0<br>12-23-2022  08:40:42.403030 xdp_umem_configure(): Failed to create umem<br>12-23-2022  08:40:42.403037 xdp_umem_configure(): ret, error number and string -105, 105, No buffer space available<br>12-23-2022  08:40:42.403042 eth_rx_queue_setup(): Failed to configure xdp socket<br>12-23-2022  08:40:42.403065 eth_rx_queue_setup(): Set up rx queue, rx queue id: 0, xsk queue id: 0<br>12-23-2022  08:40:42.403080 xdp_umem_configure(): Failed to create umem<br>12-23-2022  08:40:42.403085 xdp_umem_configure(): ret, error number and string -105, 105, No buffer space available<br></div><div><br></div><div>Thanks,</div><div>Kamaraj</div></div>