Getting started
Select and install a P4 data-plane target platform architecture
BMv2
debian 10
echo 'deb https://download.opensuse.org/repositories/home:/frederic-loui:/p4lang:/p4c/Debian_10/ ./" | sudo tee /etc/apt/source.list.d/p4lang.list sudo apt-get update
TOFINO
Software for TOFINO NPU is subject to a Software License and Confidentiality Agreement (SLACA)
If you are an R&E organization please submit an application via INTEL/BAREFOOT FASTER portal
Install FreeRouter control-plane
ubuntu 18.04 & 20.04
sudo add-apt-repository ppa:frederic-loui/freerouter-nightly sudo apt-get update sudo apt-get install freerouter-native freerouter
debian 10
echo 'deb https://download.opensuse.org/repositories/home:/frederic-loui:/freerouter/Debian_10/ ./" | sudo tee /etc/apt/source.list.d/p4lang.list sudo apt-get update
Install RARE software
BMv2
git clone https://github.com/frederic-loui/RARE.git
TOFINO (on going)
Before anything, you'll have to install BAREFOOT SDE following BAREFOOT instruction
RARE package is planned to be released soon.
(in compliance with INTEL/BAREFOOT announcement that grant the publication of the P4 code)
Build & Run RARE software
BMv2 with P4Runtime (simple_swicth_grpc)
cd 02-PE-labs/0001-vpn-over-bgp-isis-sr-operation make
in order stop the whole setup:
cd 02-PE-labs/0001-vpn-over-bgp-isis-sr-operation make clean
TOFINO with BFRuntime (bf_switchd)
On virtual TOFINO model
Compile P4 bf_router.p4 program
- with MPLS profile
export RARE=/home/p4 $SDE/tools/p4_build.sh -I$RARE/p4src/ -DHAVE_MPLS $RARE/p4src/bf_router.p4
- with SRv6 profile
export RARE=/home/p4 $SDE/tools/p4_build.sh -I$RARE/p4src/ -DHAVE_SRV6 $RARE/p4src/bf_router.p4
run TOFINO model
cd $SDE ./run_tofino_model.sh -p bf_router ./run_switchd.sh -p b
run TOFINO bf_switchd
cd $SDE ./run_switchd.sh -p bf_router
run Freerouter control plane
cd $RARE/02-PE-labs/0001-vpn-over-bgp-isis-sr-operation ./make
in order to stop FreeRouter
cd $RARE/02-PE-labs/0001-vpn-over-bgp-isis-sr-operation ./make clean
run bf_forwarder.py interface
cd $RARE/bfrt_python ./bf_forwarder.py
On hardware WEDGEBF10032X
Compile P4 bf_router.p4 program
- with MPLS profile
export RARE_PATH=/home/p4 $SDE/tools/p4_build.sh -I$RARE/p4src/ -DHAVE_MPLS -D_WEDGE100BF32X_ $RARE/p4src/bf_router.p4
- with SRv6 profile
export RARE=/home/p4 $SDE/tools/p4_build.sh -I$RARE/p4src/ -DHAVE_SRV6 -D_WEDGE100BF32X_ $RARE/p4src/bf_router.p4
run TOFINO bf_switchd
cd $SDE ./run_switchd.sh -p bf_router
run Freerouter control plane.
cd $RARE/100-WEDGE-100BF-32X/0001-vpn-over-bgp-isis-sr-operation ./make
in order to stop FreeRouter
cd $RARE/100-WEDGE-100BF-32X/0001-vpn-over-bgp-isis-sr-operation ./make clean
run bf_forwarder.py interface
cd $RARE/bfrt_python ./bf_forwarder.py