This document provides an overview of the evolution of data plane functionality in software-defined networks. It begins with a brief introduction to SDN and OpenFlow. It then discusses how switches evolved from simple, "dumb" forwarding devices to "smarter" switches with more stateful capabilities. This included the introduction of multiple match tables in OpenFlow 1.1 to more closely match real switch implementations compared to the single match table model. Other concepts like group tables were introduced to enable stateful functions like multipath load balancing. The document examines how the OpenFlow standard continues balancing the abstraction of the switch forwarding model with limitations of real-world hardware implementations.