Friday, August 21, 2015

P4: Programming Protocol-Independent Packet Processors

Pat Bossharty , Glen Gibby ,  Martin Izzardy and Dan Talaycoy (Barefoot Networks),  Dan Daly (Intel) ,  Nick McKeownz (Stanford University),  Jennifer Rexford , Cole Schlesinger and David Walker (Princeton University),  Amin Vahdat (Google),  George Varghesex (Microsoft Research)

Paper link

Presenter : Changhoon Kim (Barefoot Networks)

With the advent of Software-Defined Networking (SDN) and OpenFlow standard, programmers can program control plane.In OpenFlow-enable switch, it recognizes a predetermined set of header fields and processes packets using a small set of predefined actions. However, considering that protocols evolve more rapidly such as encapsulation protocols for network virtualization and OpenFlow from 1.0 to 1.5, current approach such as OpenFlow can not express how packets should be processed to best meet the needs of control applications.

Fortunately, now Protocol-independent switch ASIC is available at a few terabit per second. Thus, programmers can also program data plane as well as control plane. To use this flexible data plane, the presenter introduced P4 which is a high-level language for Programming Protocol-Independent Packet Processors.

P4 is designed with three goals:
1.Protocol independence: Network devices should not be tied to any specific network protocols.
2.Target independence: Programmers should be able to describe packet-processing functionality independently of the specifics of the underlying hardware.
3.Re-configurability in the field: Programmers should be able to change the way switches process packets once they are deployed.

With P4, the programmer can program how the forwarding plane processes packets and a compiler transforms an imperative program into a table dependency graph that can be mapped to many specific target switches, including optimized hardware implementations.

In the talk, the presenter highlighted that this will accelerate innovations

- Areas of innovation
* Reducing feature set
* Network monitoring, analysis, and diagnostics
* Tunnel-splicing gateways
* Load balancing
* Attack detection and mitigation
* Host-stack offloading

- This will research opportunities
* Novel network and protocol designs
* development tools
* network verification, test, and simulation


Q1 : At the begining of slide, with P4, it is easy to debug problem in switch. However, current hardware switch already had many solutions like testing and feedback-loop. What is different?
A1 : In the talk, bugs mean software bugs which are from incorrect data plane description such as ambiguity.  With P4, compilers can help this point.  If the programmers specify incorrect data plane description, it will provide error messages. So it will reduce number of errors.

Q2 : What is the difference between OpenData Plane and P4?
A2 : I am not familiar with it, later we will talk more.

Q3 : What is the difference between OpenFlow and P4?
A3 : OpenFlow is one of the P4 applications. P4 can be one of OF.

Q4 : The actions such as changing header fields can be applied at the middle of pipelining procedure in data plane. In this case, does only parsing packet in first step before entering pipelining cause problems?
A4 : I did not mention this in presentation, P4 can specify deparse logic to handle this case.

Q5 : After submitting a paper, did you add more new features?
A5 : There are more functionality. Since the number of paper was only 6 pages, we do not mention all of them.  In P4 specification, you can see entire features.