Pretty interesting article on how to receive 1M pps. The author tests on a minimal UDP packet and after setting up multiple receive queues on the receiver side (distributed across different CPU cores), 1.4M pps is achieved!