-
Notifications
You must be signed in to change notification settings - Fork 32
Enabling T4P4S
If you use the web interface to launch your P4 program, you only need to select T4P4S as target for the program you want to run. All the following steps can be skipped in that case.
If you use P4Pi from a terminal (either ssh or web terminal), you must be sure to stop and disable the bmv2 service first and then enable t4p4s one with the following commands (as a sudo user):
systemctl stop bmv2.service
systemctl disable bmv2.service
systemctl enable t4p4s.service
Disabling the bmv2 service is required to prevent any conflicts with the t4p4s one.
Afterwards, you can simply start or simply restart the t4p4s.service
to run a certain program with T4P4S. Note, however, that the name of the P4 project to be compiled and executed should be placed in the /root/t4p4s-switch
file (the same file works for both t4p4s and bmv2 backends).
For example, the l2switch
example program (located in the folder /root/t4p4s/examples/p4edge/l2switch
) can be launched with the following two commands:
echo "l2switch" > /root/t4p4s-switch
systemctl restart t4p4s.service
You can stop any currently running P4 program by simply stopping the T4P4S service like follows:
systemctl stop t4p4s.service
The related service runs the /usr/bin/t4p4s-start
script. If you needed different configuration settings, you could modify this script.
P4Pi comes with a preinstalled P4Runtime Shell
(p4rtshell
) which can be used to leverage the P4Runtime API through port 50051. To make its usage easier, we have created a helper script that fills the required parameters and connect to the target switch. Our helper script can be invoked like follows:
t4p4s-p4rtshell l2switch
The above command hands the .p4info and .json files of the P4 project provided as a cmdline argument (l2switch
in this case).
-
Bmv2 Exercises