Software Defined Networking (SDN) achieves flexibility by placing the control plane of switches in software external to them. However, current OpenFlow hardware switch implementations allow data plane processing on only a fixed set of fields, and the OpenFlow specification allows only a limited repertoire of actions. In this paper, we demonstrate a hardware realization of a new RMT (reconfigurable match tables) abstraction for the data plane that allows the router forwarding path to be changed in the field without modifying hardware. As in OpenFlow, the programmer can specify multiple match tables of arbitrary width and depth, subject only to an overall resource limit, with each table configurable for matching on arbitrary fields. However, RMT allows the programmer to modify all header fields with a much more comprehensive action capability than in OpenFlow. This architecture can be used to implement the data plane of a wide variety of past protocols (e.g., RCP, VXLAN) and future protocols (e.g., new encapsulation formats). Our paper describes the architecture of a 64 port by 10 Gb/s switch IC implementing the RMT abstraction. We describe the programming model, and show how it can be used to implement standard IP routers as well as new encapsulation formats. We demonstrate, contrary to concerns within the community, that flexible OpenFlow hardware switch implementations are feasible, and cost competitive with legacy switches.