Smart network interface cards (NICs) with high-level programming are enabling the step up in application and virtualization performance that is needed to deliver on the promise of software-defined networking (SDN). By using smart NICs in every server, operators can ensure that network virtualization, load balancing and other low-level functions are offloaded from the server CPUs, ensuring that maximum processing power is available for applications. In addition, smart NICs provide a distributed hardware resource that can be used to offload or accelerate specific applications. Operators can use software provided by the smart NIC vendors or their partners, develop their own software or provide access as a service for their customers to use custom software.