3 ms·
OpenFlow and P4 address different levels of abstraction in switching. OpenFlow (in its original form, for simplicity's sake) says "Hey, we have a match/action
by insaneirish 9y ago
OpenFlow and P4 address different levels of abstraction in switching.
OpenFlow (in its original form, for simplicity's sake) says "Hey, we have a match/action table with these 12 fields. Here's a way to put stuff in those fields and the switch will match and act accordingly."
P4 says "Hey, we have this piece of programmable silicon. Feel free to define the sorts of tables you want, the protocols you want to switch on, and we'll then give you tables and an API to program."
You can write an OpenFlow pipeline in P4.
Also, maybe take a look at the original OpenFlow paper [1] and the original P4 paper [2]. Nick McKeown, one of Barefoot's cofounders, is an author on both.
[1]: http://ccr.sigcomm.org/online/files/p69-v38n2n-mckeown.pdf http://ccr.sigcomm.org/online/files/p69-v38n2n-mckeown.pdf
[2]: http://yuba.stanford.edu/~nickm/papers/v44n3k2-bosshartA.pdf http://yuba.stanford.edu/~nickm/papers/v44n3k2-bosshartA.pdf
- johnvega 9y agoWould you consider this as "huge foundational advancement"?
- hueving 9y agoYes, different levels of abstraction but P4 is not a foundational beginning of SDN like this post makes it out to be. Packet injection, etc were already possible with OpenFlow and this article pretends P4 is the first thing to enable that. P4 can certainly allow much more than openflow, but some of the use cases this article pretends like P4 is the first to solve were already solved by openflow, etc.