...
This 1st article exposes:
- A brief introduction to the P4 language
- A basic P4 development workflow
- Some basic specificities of the P4 language
Info | ||
---|---|---|
| ||
This article is preliminary a pure introduction to P4lang P4. It does not correspond in any way to an extensive programming language description nor a P4 compilation guide. |
Diagram: P4 development workflow
...
[ #001 ] - Cookbook: P4 development workflow
Expand | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
Based on what we mentioned, what does the "P4 Domain specific language" brings to give you ? Concretely:
|
Router for Academia Research & Education (RARE) & P4
Expand | |||||
---|---|---|---|---|---|
| |||||
The RARE project objective is to provide a networking solution to Research & Education institution use cases. While we witnessed the birth of several control plane such as GNU Zebra, Bird, exaBGP, etc. The common point of these softwares is that they don't have the capability (yet) to be coupled easily with a hardware dataplane. Simply put, these software control plane cannot be used without specific/important development in order to run on an equipment able to forward nx100GE links at a high Mpps rate. There have been attempts with DPDK and other kernel bypass mechanism, that enabled higher throughput processing capability, but this is not comparable to commercial/vendor equipment's packet processing power. P4:
|
...
Expand | ||
---|---|---|
| ||
P4 use cases are mostly inherently linked to the P4 target you plan to use in order to run your P4 program: A comprehensive list can be found here.
It is the P4Lang virtual model that emulates a PISA architecture. You can run it on a VM and start writing your first P4 program and load it on simple_switch and/or simple_switch_grpc (if you plan to use P4Runtime). While this is a great solution in order to learn P4 and sketch your packet processing algorithm, it is not recommended for production use.
This target implement also implements a PISA architecture and propose proposes a Virtual model so that you can validate your algorithm. However, once validated on the virtual model, you can load your program into a hardware switch that is running a NPU called TOFINO and his elder its bigger brother TOFINO2. While TOFINO is able to handle 6.4 Tbps of traffic rate, TOFINO2 simply double doubles this. (12 Tbps) In addition to that, TOFINO2 is exposing additional inherently capability exposes additional inherent capabilities like bigger buffer, memory and TCAM than compared to his little brother. |
Expand | ||
---|---|---|
| ||
This is These are the use cases enabled by the combination of P4 and RARE software:
You can build a robust packet switching fabric at the scale of Telecom Service Provider able to switch packet packets at nx100GEn×100GE
You can build an edge router an Interconnect the core router above. These router routers will terminate your backbone network service like L2/L3 plain IP or VPN services (IPv4 - IPv6)
With the WEDBE100BF32X WEDGE100BF32X you can have 2x100GE uplinks toward 2 distinct "leaf switches", it leaves you 30x100GE servers server connections.
The WEDGE100BF32X is also a good candidate router in DC as a core/leave spine switch. You can create a fabric able to switch 6.4 Tbps trafic rates
In this case, the WEDGE100BF32X is 100GE a peer aggregator or simply integrated into the IXP distributed core fabric.
The STORDIS BF2556X-1T presents with its flexible connectivities connectivity options is a good candidate for regional network implementation. It has 8x100GE ports, 2 of them can be used as uplinks toward their main transit provider, 2 other can be used to provide EAST/WEST connection via 2 different fire routes, this leave 4x100 ports in case you need to increase capacity. The STORDIS also has 16x[1/10/25] GbE ports, 32x[10/25] GbE ports which gives the possibility to interconnects users via various access port bandwidth. |
...
Tip | ||
---|---|---|
| ||
__THE__ exciting INNOVATION provided by P4 boils down into this community language that unlocks and opens for you the door of system's dataplane. Till now, dataplane programming was reserved to commercial vendors. Some of these dataplanes like the well known CEF (Cisco Express Forwarding) are specific to Cisco equipment. Juniper, has its own dataplane (not sure about the name) implemented by Forwarding Plane component. (example of vMX architecture) P4 language inherent characteristics:
It is therefore a simple language, that is easier to be tamed by network managers rather than pure software developerdevelopers. Indeed, writing a P4 program is all about defining the behavior of a network packet processing algorihtm algorithm based on intrinsinc variable intrinsic variables encoded into the packet header. |
...