Languages Features Creators CSV Resources Challenges Add Language
GitHub icon


P4 - Programming language

< >

P4 is a programming language created in 2014.

#533on PLDB 9Years Old 666Users
0Books 0Papers 574Repos

P4 is a programming language designed to allow programming of packet forwarding planes. In contrast to a general purpose language such as C or Python, P4 is a domain-specific language with a number of constructs optimized around network data forwarding. P4 is an open-source, permissively licensed language and is maintained by a non-profit organization called the P4 Language Consortium. Read more on Wikipedia...

Example from Linguist:
// Copyright 2015, Barefoot Networks, Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. action set_mirror_id(session_id) { clone_ingress_pkt_to_egress(session_id); } table mirror_acl { reads { ingress_metadata.if_label : ternary; ingress_metadata.bd_label : ternary; /* ip acl */ ingress_metadata.lkp_ipv4_sa : ternary; ingress_metadata.lkp_ipv4_da : ternary; ingress_metadata.lkp_ip_proto : ternary; /* mac acl */ ingress_metadata.lkp_mac_sa : ternary; ingress_metadata.lkp_mac_da : ternary; ingress_metadata.lkp_mac_type : ternary; } actions { nop; set_mirror_id; } size : INGRESS_MIRROR_ACL_TABLE_SIZE; }

Language features

Feature Supported Token Example
MultiLine Comments /* */
/* A comment
// A comment
Line Comments //
// A comment
Semantic Indentation X
taichi.html · p4.html · jai.html

View source

- Build the next great programming language · Search · Day 213 · About · Blog · Acknowledgements · Traffic · Traffic Today · GitHub ·