-
Notifications
You must be signed in to change notification settings - Fork 6
Home
Christian Esteve Rothenberg edited this page Jun 1, 2022
·
19 revisions
P7 is a network emulator for P4-enabled devices. With P7, it is possible to emulate network topologies using recirculations, port configurations, different match+action tables, and even DAC cables. What is more, we can connect physical servers to inject traffic to the topology.
The emulation of the network link characteristics includes simple metrics (e.g., Connectivity, Latency [ms], bandwidth [Mbps]) and advance (e.g., Packet loss [%], Jitter [ms], Re-ordering [%])
- $
apt-get install git
- $
git clone https://github.com/intrig-unicamp/p7.git
- Edit
main.py
to set your customized topology
Feature | Description |
---|---|
Link Connectivity | Dijkstra algorithm to calculate the routes Internal Recirculation + Temporary P7 Tag |
Latency [ms] | Timestamp-based timer Recirculation via internal pipe | external jumper DAC |
Jitter [ms] | Random number generator to vary the latency Lookup table with mathematical functions |
Packet loss [%] | Random generator for packet discard probability Realistic definition of packet loss |
Re-ordering [%] | TNA Traffic Management (TM) features Per-packet probability based recirculation |
Bandwidth [bps] | Rate limit TNA TM feature Port configuration and mapping |
Background Traffic [bps] | Tofino packet generation engine Up to 100G per pipeline |
Fabricio E. Rodriguez Cesen (frodri@dca.fee.unicamp.br)
Marcos Felipe Schwarz
Francisco Germano Vogt (franciscogermanovogt@gmail.com)
Ariel Góes De Castro (arielgoesdecastro@gmail.com)
Christian Rodolfo Esteve Rothenberg - https://www.dca.fee.unicamp.br/~chesteve/