Skip to content
FranciscoVogt edited this page May 30, 2022 · 19 revisions

Welcome to the P7 wiki!

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 [%])

Installation

  • $ apt-get install git
  • $ git clone https://github.com/intrig-unicamp/p7.git
  • Edit main.py to set your customized topology

P7 Link characteristics and implementation approaches

Feature Description
Link Connectivity Jumper cabling with/without Vlan Tag Intern Recirculation + internal Tag
Latency [ms] Using an internal timer TM + Pipelines recirculation
Jitter [ms] Hash to determine recirculation times Lookup table with mathematical functions
Packet loss Hash to determine the probability to discard packets Random function to determine the probability to discard packets Realistic definition of packet loss
Re-ordering TNA TM features Targeted probabilistic packet (ID) recirculation within a flow
Bandwidth [bps] Rate limit TNA TM feature Port configuration and mapping

Team

Fabricio E Rodriguez Cesen ([email protected])
Marcos Felipe Schwarz
Francisco Germano Vogt ([email protected]) Ariel Góes De Castro ([email protected])
Christian Rodolfo Esteve Rothenberg

Clone this wiki locally