Hi all I am writing an AF_XDP based user space application. However in my use case, packets payload get fragmented while processing, basically new packets are constructed inside and sent further. I probably cannot avoid mempcy anyway. So I plan to solve it simply - one umem per port, no locking, no keeping track of umem frames presence (kernel / user space) . Just usage of the rings, one half of the frames to circulate between the RX <-> fill queue, the other half TX <-> completion queue. Is it actually possible to initialize the rings in such a way that at the very beginning I would fill the completion queue by some frames? This is to avoid multithreaded access to the free frames without locking (initial TX would take a look for free frames inside the completion queue). If it's a bad idea, what else would you suggest? Thank you Julius