This document summarizes lessons learned from optimizing DPDK performance in a virtual router. It discusses assigning cores to dataplane and control plane tasks, using small sleep intervals based on activity to limit CPU usage, and updating link state and statistics periodically. It recommends techniques like avoiding system calls, mutexes, and spinlocks for performance. Profiling showed the top functions were for packet input, output, and forwarding. Optimizing the longest prefix match for routing was also discussed.