I do think p4 is very interesting, but is it really much different from openflow? Which...umm ... Did not succeed in the market.
P4 is quite different from OpenFlow. The various generations of the OpenFlow specification assume a fixed-format packet header with an ever increasing number of header fields (from 12 in OF 1.0 to 41 in OF 1.4), a fixed set of packet-processing actions, and so on. P4 allows programmable parsing and flexible match-action processing. In P4, the program tells the data plane how to act; in OpenFlow, the way the data plane can act is “baked” in advance. So, OpenFlow 1.x can be one of many *programs* you can write in P4, whereas many other P4 programs can exist. For some discussion of the differences, see Clarifying the differences between P4 and OpenFlow http://p4.org/p4/clarifying-the-differences-between-p4-and-openflow/ <http://p4.org/p4/clarifying-the-differences-between-p4-and-openflow/> — Jen