P4編程環境搭建


本文參照了sdnlab上相關文章的搭建推薦。 使用的系統環境為ubuntu 18.04


組件介紹

主要安裝五個組件:

  • BMv2:是一款支持P4編程的軟件交換機
  • p4c:是一款P4的編譯器
  • PI:是P4 runtime的實現,用於控制平面對數據平面的控制。
  • mininet:這個之前用過,是一個虛擬的網絡拓撲搭建軟件。
  • p4 tutorials :提供了用於學習的示例代碼。例如負載均衡,簡單的隧道機制以及源路由等。

額外說一個

  • scapy:一個python庫,提供構建數據包,抓包,解析包等的功能。

開始搭建

這里介紹一個個組件安裝的搭建,然后最后會有一個一鍵安裝的腳本。

搭建前的准備

這里我們先創建一個P4的目錄,然后加入一下環境變量 

1 //創建一個p4的文件夾目錄
2 mkdir ~/P4 
3 //進入目錄
4 cd ~/P4
5 //寫入環境變量
6 echo "P4_HOME=$(pwd)" >> ~/.bashrc
7 //更新環境變量
8 source ~/.bashrc

 

安裝Protocol

1 sudo apt-get install autoconf automake libtool curl make g++ unzip
2 git clone https://github.com/google/protobuf.git
3 ./autogen.sh
4 ./configure
5 make
6 make check
7 sudo make install
8 sudo ldconfig

 這里比較比較建議加上git checkout v3.2.0

安裝bmv2

在p4目錄中 

 1 git clone https://github.com/p4lang/behavioral-model.git bmv2
 2 cd ~/P4/bmv2
 3 //安裝依賴
 4 ./install_deps.sh
 5 //編譯bmv2
 6 ./autogen.sh
 7 ./configure
 8 make
 9 //安裝bmv2
10 sudo make install
11 //更新共享庫
12 sudo idconfig
13 //測試
14 sudo make check

 

安裝p4c

這里從陳翔學長哪里剽到了一個直接安裝p4c的腳本 installp4c.sh

原來的安裝方法 

 1 git clone --recursive https://github.com/p4lang/p4c.git
 2 //安裝依賴
 3 sudo apt-get install g++ git automake libtool libgc-dev bison flex libfl-dev libgmp-dev libboost-dev libboost-iostreams-dev pkg-config python python-scapy python-ipaddr tcpdump cmake
 4 //用於生成文檔
 5 sudo apt-get install -y doxygen graphhviz texlive-full
 6 //構建
 7 mkdir build
 8 cd build 
 9 cmake .. [-DCMAKE_BUILD_TYPE=RELEASE|DEBUG] [-DCMAKE_INSTALL_PREFIX=<path>] [-DENABLE_DOCS=ON (default off)] [-DENABLE_P4RUNTIME_TO_PD=OFF (default on)]
10 //安裝
11 sudo make install

 

安裝PI

1 git clone git@github.com:p4lang/PI.git
2 //安裝依賴
3 sudo apt-get install libjudy-dev libreadline-dev
4 git submodule update --init --recursive
5 //配置
6 ./autogen.sh
7 ./configure [--with-bmv2] [--with-proto]
8 
9 make

 

 

關於這個參數,可以去原庫中看readme

安裝mininet

這個可以參考以前源碼安裝mininet的blog 源碼安裝mininet

安裝p4-tutorials

1 git clone https://github.com/p4lang/tutorials

 

這里大致的組件就安裝完了。


一鍵安裝

這里是sdnlab上P4編程理論與實踐提供的一鍵配置。 p4-quick 先安裝依賴 

sudo apt-get update

sudo apt-get install automake cmake libjudy-dev libpcap-dev libboost-dev libboost-test-dev libboost-program-options-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libevent-dev libtool flex bison pkg-config g++ libssl-dev  -y

sudo apt-get 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 curl  -y

sudo apt-get install libreadline6 libreadline6-dev  python-pip  -y 
這里如果提示廢棄就
sudo apt install libreadline-dev

sudo pip install psutil
sudo pip install crcmod

 

其中部分倉庫克隆非常的慢,建議搞個梯子會快很多。

然后運行上述那個p4-quick的env_up.sh腳本,就可以搭建完成了。

其實在安裝過程中有許多與上述內容有所出入的修改,在后續在一一說明。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM