P4 (programming language): Difference between revisions

Content deleted Content added
Mcculley (talk | contribs)
Headers: Fix grammar.
Tags: Mobile edit Mobile web edit
m Update broken link to P4 paper
 
(5 intermediate revisions by 5 users not shown)
Line 7:
{{Infobox programming language
| name = P4
| logo = P4-logo.svg
| paradigm = [[compiled language|compiled]], [[Domain-specific language|___domain-specific]], [[imperative programming|imperative]]
| year = {{start date and age|2013}}
| developer = [[Open Networking Foundation]]
| latest_release_version = version 1.2.25<ref>{{cite web|title=P4P416 Language and Related SpecificationsSpecification |url=https://p4.org/p4wp-speccontent/uploads/2024/docs10/P4-16-spec-v1.2.25.html |accessdate=713 JuneNovember 20222024}}</ref>
| latest_release_date = {{start date and age|df=yes|20212024|0510}}
| license = [[Apache Licence|Apache]]-style
| website = {{URL|https://p4.org}}
Line 21 ⟶ 22:
== History ==
P4 was originally described in a 2014 [[Computer Communication Review|SIGCOMM ''CCR'']] paper titled “Programming Protocol-Independent Packet Processors”<ref>{{cite web
|url=httphttps://wwwdl.sigcommacm.org/nodedoi/350310.1145/2656877.2656890
|title=P4: Programming Protocol-Independent Packet Processors
|author1=P. Bosshart
Line 36 ⟶ 37:
|date=July 2014
|work=[[Computer Communication Review]]
|access-date=79 AprilJune 20152025
}}</ref>—the alliterative name shortens to "P4". The first P4 workshop took place in June 2015 at [[Stanford University]].<ref>{{cite web |title=1st P4 Workshop |url=https://p4.org/events/2015-06-04-p4-workshop/ |website=P4 Official Website |date=4 June 2015 |accessdate=1 August 2019}}</ref> An updated specification of P4, called P4-16, was released between 2016 and 2017,<ref name="P4-16">{{cite web |title=Specifications |url=https://p4.org/specs/ |website=P4 Official Website |accessdate=7 June 2022}}</ref> replacing P4-14, the original specification of P4.
 
==Design==
As the language is specifically targeted at packet forwarding applications, the list of requirements or design choices is somewhat unusualspecific to those use cases. The language is designed to meet several goals:
 
===Target independence===