P4 (programming language): Difference between revisions

Content deleted Content added
Get rid of extra blank line.
No edit summary
Line 10:
| year = {{start date and age|2013}}
| developer = [[The P4 Language Consortium]]
| latest_release_version = version 1.12<ref>{{cite web|title=P4 Language and Related Specifications |url=https://p4.org/specsp4-spec/docs/P4-16-v1.2.0.html |accessdate=2 AprilDecember 2019}}</ref>
| latest_release_date = {{start date and age|df=yes|20182019|1110|2223}}
| license = [[Apache Licence|Apache]]-style
| website = {{URL|http://p4.org}}
Line 20:
 
== History ==
The programming language P4 was originally described in a SIGCOMM CCR paper in 2014 titled “Programming Protocol-Independent Packet Processors”<ref>{{cite web|url=http://www.sigcomm.org/node/3503|title=P4: Programming Protocol-Independent Packet Processors|date=July 2014|accessdate=7 April 2015}}</ref> – the alliterative name shortens to “P4”. The first P4 workshop took place in June, 2015 <ref>{{cite web |url=https://p4.org/events/2015-06-04-p4-workshop/ |website=P4 Official Website |accessdate=1 August 2019}}</ref> at [[Stanford University | Stanford University]]. An updated specification of P4, called P4-16, was released between 2016 and 2017 <ref>{{cite web |title=P4-16 Specification |url=https://p4lang.githubp4.ioorg/p4-spec/docs/P4-16-v1.12.0-spec.pdfhtml |website=P4 Official Website}}</ref> replacing original specification of P4, called P4-14.
 
==Design==
Line 35:
 
==Components==
P4 programs are typically have the following components:
 
===Parsing logic===
P4 allows the specification of custom packet header parsing logic <ref>{{cite web |title=P4-16 Specification |url=https://p4lang.githubp4.ioorg/p4-spec/docs/P4-16-v1.12.0-spec.pdfhtml |website=P4 Official Website}}</ref> including but not limited to parsing typical headers used in the TCP/IP protocol suite and application specific headers.
 
===Headers===
Line 47:
 
===Stateful processing===
P4 allows the programmer to maintain state in the form of registers, counters and meters <ref>{{cite web |title=P4-16 Specification |url=https://p4lang.githubp4.ioorg/p4-spec/docs/P4-16-v1.12.0-spec.pdfhtml |website=P4 Official Website}}</ref>.
 
===Generic match action tables===