Top 1,000 Features Creators Events Podcasts Extensions Blog Explorer CSV Download


< >

P4 is an open source programming language created in 2014.

#512on PLDB 10Years Old 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 Example Token
MultiLine Comments
/* A comment
/* */
// A comment
Line Comments
// A comment
Semantic Indentation X

View source

- Build the next great programming language · About · Resources · Acknowledgements · Part of the World Wide Scroll