The package contains a P4Runtime server for P4 capable ovs switch and a ovs-p4ctl command line tool for monitoring and administering
Project description
Requirements
This package has not only PyPi dependencies. It needs installation of PI: https://github.com/p4lang/PI
-
Install PI and its dependencies using
install_P4Runtime.sh
script (this script comes from https://github.com/jafingerhut/p4-guide).
cd scripts
chmod +x install_P4Runtime.sh
./install_P4Runtime.sh
-
Copy from this repository p4runtime.proto file to folder PI/proto/p4runtime/proto/p4/v1
cp <path to ovs-p4 repository>/proto/p4runtime.proto <path to PI>/proto/p4runtime/proto/p4/v1
-
Run PI installation once again:
./autogen.sh
./configure --with-proto
make
make check
[sudo] make install
-
Install PI and its dependencies using
install_P4Runtime.sh
script (this script comes from https://github.com/jafingerhut/p4-guide).
cd scripts
chmod +x install_P4Runtime.sh
./install_P4Runtime.sh
-
Clone PI and submodules
git clone https://github.com/p4lang/PI
cd PI
git submodule update --init --recursive
Install PI according to its own instructions (including grpc, protobuf, etc.).
Probably before protobuf installation you will have to install following dependencies on your own:
sudo apt-get --yes install autoconf automake libtool curl make g++ unzip
sudo apt-get --yes install zlib1g-dev
sudo apt-get --yes install cmake g++ git automake libtool libgc-dev bison flex libfl-dev libgmp-dev libboost-dev libboost-iostreams-dev libboost-graph-dev llvm pkg-config python python-scapy python-ipaddr python-ply tcpdump
P4Runtime server - ovs-p4srv
The ovs-p4srv P4Runtime server translates requests from P4Runtime to oko switch CLI commands.
How to run?
Run following command:
user@hostname:~$ ovs-p4srv
Command line tool - ovs-p4ctl
The ovs-p4ctl program is a command line tool for monitoring and administering oko switch via P4Runtime.
How to use?
The tool can be used as follows:
user@hostname:~$ ovs-p4ctl [command] [args...]
Commands
Every command requires at least one argument --pipeline-id
- an identifier of a programme.
Switch can have multiple programs.
load_config
Loads compiled program to a switch.
Arguments: --pipeline-id | --p4info-path | --config-path
get_config
Downloads current program from a switch
Arguments: --pipeline-id | --response-type | --show | --p4info-path | --config-path
table_update
Updates table entries
Arguments: --pipeline-id | --p4info-path | --entry
table_dump
Prints to the console information about table entries
Arguments: --pipeline-id | --p4info-path | --table
Contact
Tomek Osiński < tomasz.osinski2@orange.com / osinstom@gmail.com >
Mateusz Kossakowski < mateusz.kossakowski@orange.com / mateusz.kossakowski.10@gmail.com >
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.