... | @@ -13,11 +13,11 @@ We will periodically add new content to this repository (specially documentation |
... | @@ -13,11 +13,11 @@ We will periodically add new content to this repository (specially documentation |
|
|
|
|
|
In order to be able to compile P4 code, run it in a software switch and create virtual topologies with hosts, several dependencies and open source tools need to be installed first. In particular, the following packages (and their dependencies) need to be installed on the machine.
|
|
In order to be able to compile P4 code, run it in a software switch and create virtual topologies with hosts, several dependencies and open source tools need to be installed first. In particular, the following packages (and their dependencies) need to be installed on the machine.
|
|
|
|
|
|
- [PI](https://github.com/p4lang/PI) provides an implementation framework for a P4Runtime server.
|
|
- [PI](https://github.com/p4lang/PI) provides an implementation framework for a *P4Runtime* server. It is required only for topologies involving *P4Runtime* switches.
|
|
- [*Behavioral Model* (BMv2)](https://github.com/p4lang/behavioral-model) contains the software implementation several variations of the behavioral model (e.g. `simple_switch` and `simple_switch_grpc`).
|
|
- [*Behavioral Model* (BMv2)](https://github.com/p4lang/behavioral-model) contains the software implementation several variations of the behavioral model (e.g. `simple_switch` and `simple_switch_grpc`).
|
|
- [P4C](https://github.com/p4lang/p4c) is a reference compiler for the P4 programming language and supports both **P4-14** and **P4-16**.
|
|
- [P4C](https://github.com/p4lang/p4c) is a reference compiler for the P4 programming language and supports both **P4-14** and **P4-16**.
|
|
- [*Mininet*](http://mininet.org/) allows to create a realistic virtual network, running real kernel, switch and application code, on a single machine (VM, cloud or native).
|
|
- [*Mininet*](http://mininet.org/) allows to create a realistic virtual network, running real kernel, switch and application code, on a single machine (VM, cloud or native).
|
|
- [*FRRouting*](https://frrouting.org/) is a free and open source Internet routing protocol suite for Linux and Unix platforms. It implements BGP, OSPF, RIP, IS-IS, PIM, LDP, BFD, Babel, PBR, OpenFabric and VRRP, with alpha support for EIGRP and NHRP. Routers node in *P4-Utils* are based on *FRRouting*.
|
|
- [*FRRouting*](https://frrouting.org/) is a free and open source Internet routing protocol suite for Linux and Unix platforms. It implements BGP, OSPF, RIP, IS-IS, PIM, LDP, BFD, Babel, PBR, OpenFabric and VRRP, with alpha support for EIGRP and NHRP. Router nodes in *P4-Utils* are based on *FRRouting*. It is not required for topologies without routers.
|
|
- [*P4-Utils*](https://github.com/nsg-ethz/p4-utils) is an extension to *Mininet* that supports P4 devices. It was strongly inspired by the original [*p4app*](https://github.com/p4lang/p4app) from the [p4lang](https://github.com/p4lang) repository.
|
|
- [*P4-Utils*](https://github.com/nsg-ethz/p4-utils) is an extension to *Mininet* that supports P4 devices. It was strongly inspired by the original [*p4app*](https://github.com/p4lang/p4app) from the [p4lang](https://github.com/p4lang) repository.
|
|
|
|
|
|
Since the installation process can be a bit tedious and cumbersome we provide you with a [Vagrant](https://www.vagrantup.com/intro/index.html) script that automatically builds a virtual machine with all required software already installed. You can find the VM setup instructions in the [P4 Virtual Machine Installation](vm/README.md) document.
|
|
Since the installation process can be a bit tedious and cumbersome we provide you with a [Vagrant](https://www.vagrantup.com/intro/index.html) script that automatically builds a virtual machine with all required software already installed. You can find the VM setup instructions in the [P4 Virtual Machine Installation](vm/README.md) document.
|
... | | ... | |