This directory contains the necessary scripts and configurations to run tests for the P4 functionality of TFS.
This directory contains the necessary scripts and configurations to run tests for a simple port forwarding TFS program atop software-based P4 switches (using Mininet).
## Prerequisites
...
...
@@ -11,7 +11,8 @@ To build these services on your target platform, follow the instructions in `./p
## Basic scripts
To run the experiments you should use the five scripts in the following order:
```
```shell
setup.sh
run_test_01_bootstrap.sh
run_test_02_create_service.sh
...
...
@@ -19,18 +20,18 @@ run_test_03_delete_service.sh
run_test_04_cleanup.sh
```
The setup script copies the necessary artifacts to the SBI service pod. It should be run just once, after a fresh install of TFS.
The bootstrap script registers the context, topology, links and, devices to TFS.
The create service scripts establishes a service between two endpoints.
The delete service script delete the aforementioned service.
Cleanup script deletes all the objects (context, topology, links, devices) from TFS.
The `setup` script copies the necessary artefacts to the SBI service pod. It should be run just once, after a fresh install of TFS.
The `bootstrap` script registers the context, topology, links, and devices to TFS.
The `create` service script establishes a service between two endpoints.
The `delete` service script deletes the aforementioned service.
The `cleanup` script deletes all the objects (context, topology, links, and devices) from TFS.
## Objects file
The above bash scripts make use of the corresponding python scripts found under `./tests/` directory.
More important is the `./tests/Objects.py` file, which contains the definition of the Context, Topology, Devices, Links, Services. **This is the file that need changes in case of a new topology.**
More important is the `./tests/Objects.py` file, which contains the definition of the Context, Topology, Devices, Links, Services. **This is the file that needs changes in case of a new topology.**
Check the `./tests/Objects.py` file before running the experiment to make sure that the switches details are correct (ip address, port, etc.)
Check the `./tests/Objects.py` file before running the experiment to make sure that the switches' details are correct (ip address, port, etc.)
## Mininet topologies
...
...
@@ -38,10 +39,9 @@ In the `./mininet/` directory there are different mininet topology examples. The
## P4 artifacts
In the `./p4/` directory there are the compiled p4 artifacts that contain the pipeline that will be pushed to the p4 switch, along with the p4-runtime definitions.
The `./setup.sh` script copies from this directory. So if you need to change p4 program, make sure to put the compiled artifacts here.
In the `./p4/` directory there are the compiled p4 artefacts that contain the pipeline that will be pushed to the p4 switch, along with the p4-runtime definitions.
The `./setup.sh` script copies from this directory. So if you need to change p4 program, make sure to put the compiled artefacts here.
## Latency probe
In the `./probe/` directory there is a little program which calculates latency between two hosts in mininet and sends them to the Monitoring component. For specific instructions, refer to the corresponding `./probe/README.md` file.
In the `./probe/` directory there is a little program which calculates latency between two hosts in mininet and sends these measurements to the Monitoring component. For specific instructions, refer to the corresponding `./probe/README.md` file.