You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 22 Next »

Overview

RARE (Router for Academia, Research & Education) is an ongoing effort under the GÉANT 4th programme which focus on determining if a routing software platform solution can fit R&E use cases. The project aims to integrate different pieces of software related to these building blocks:

  • control plane: RARE uses FreeRouter under the hood used as the control plane component
  • data plane(not only P4) P4 behavioural language is used to describe the packet processing behaviour of RARE data plane
  • and communication interface between the control plane and data plane: Interface compliant to P4Runtime specification ensure this function

A key part of the work consists in enabling a control plane software to pilot a data plane via a programmatic interface.

Resulting work

  • Software interface that maps the forwarding state used by a an Open source control plane (FreeRouter)
  •  to programmable data plane running RARE software

P4 is an example of language proposing an interface that allows data plane programmability.

Note

P4 core language attempts to be as much as possible independent from the target or Programmable Switching ASIC processor architecture. However architecture dependance is still prominent. Code adjustments followed by a target specific compilation is necessary if you want to run your p4 program on a specific architecture.

RARE project includes the following partners under GÉANT GN4-3 programme

Getting started

Select and install a P4 data-plane target platform architecture

sudo add-apt-repository ppa:frederic-loui/p4lang-3rd-party 
sudo apt-get update

sudo add-apt-repository ppa:frederic-loui/p4lang-master-bionic-nightly
sudo apt-get update
sudo add-apt-repository ppa:frederic-loui/p4lang-3rd-party-focal 
sudo add-apt-repository ppa:frederic-loui/p4lang-master-focal-nightly 
sudo apt-get update
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

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

From there you'll be able to install INTEL/BAREFOOT P4Studio also call BAREFOOT Software Development Environment (SDE)

Install FreeRouter control-plane

sudo add-apt-repository ppa:frederic-loui/freerouter-nightly
sudo apt-get update
sudo apt-get install freerouter-native freerouter
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

git clone https://github.com/frederic-loui/RARE.git

Before anything, you'll have to install BAREFOOT SDE following BAREFOOT instruction. TOFINO code can be found here: (From GÉANT Bitbucket RARE repository)

https://bitbucket.software.geant.org/projects/RARE/repos/rare/browse

git clone https://bitbucket.software.geant.org/scm/rare/rare.git

(in compliance with INTEL/BAREFOOT announcement that grant the publication of the P4 code)

Build & Run RARE software

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

Compile P4 bf_router.p4 program

  • with MPLS profile
export RARE=/home/p4 
$SDE/tools/p4_build.sh -I$RARE/p4src/ -DHAVE_MPLS -DHAVE_BRIDGE $RARE/p4src/bf_router.p4
  • with SRv6 profile
export RARE=/home/p4 
$SDE/tools/p4_build.sh -I$RARE/p4src/ -DHAVE_SRV6 -DHAVE_BRIDGE -DHAVE_NAT $RARE/p4src/bf_router.p4

run TOFINO model

cd $SDE 
./run_tofino_model.sh -p bf_router .

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

Compile P4 bf_router.p4 program

  • with MPLS profile
export RARE_PATH=/home/p4 
$SDE/tools/p4_build.sh -I$RARE/p4src/  -DHAVE_MPLS -DHAVE_BRIDGE -D_WEDGE100BF32X_ $RARE/p4src/bf_router.p4
  • with SRv6 profile
export RARE=/home/p4 
$SDE/tools/p4_build.sh -I$RARE/p4src/ -DHAVE_SRV6 -DHAVE_BRIDGE -DHAVE_NAT -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

  • No labels