1. clone项目工程
    
   
    
     在home目录下新建p4lang文件夹
    
   
    
     $ mkdir ~/p4lang
    
   
    
     
      $ cd ~/p4lang/
     
     
    
   
    
     安装git,下载bmv2、p4c-bmv2到p4lang文件夹下
    
   
    
     $ sudo apt install git
    
   
    
     $ git clone https://github.com/p4lang/behavioral-model.git bmv2
     
    
   
    
     $ git clone https://github.com/p4lang/p4c-bm.git p4c-bmv2
    
   
    
     2. 安装bmv2
    
   
    
     进入bmv2目录
    
   
    
     $ cd ~/p4lang/bmv2
    
   
    
     安装依赖
    
   
    
     $ ./install_deps.sh
    
   
    
     编译bmv2
    
   
    
     $ ./autogen.sh
    
   
    
     $ ./configure
    
   
    
     $ make
    
   
    
     安装bmv2
    
   
    
     $ sudo make install
    
   
    
     更新共享库
    
   
    
     $ sudo ldconfig
    
   
    
     单元测试,如果出错用sudo
    
   
    
     $ make check
    
   
    
     3. 安装p4c-bmv2
    
   
    
     $ cd ~/p4lang/p4c-bmv2
    
   
    
     $ sudo pip install -r requirements.txt
    
   
    
     $ sudo python setup.py install
    
   
    
     测试是否安装成功
    
   
    
     $ p4c-bmv2 -h
    
   
    
     4. 运行
    
   
    
     $ cd ~/p4lang/bmv2/tools
    
   
    
     root权限下,创建虚拟网络端口
    
   
    
     # ./veth_setup.sh
    
   
    
     编写p4源码,在p4源码文件目录下,生成对应json文件
    
   
    
     # p4c-bmv2 –json <path to JSON file> <path to P4 file>
    
   
    
     json文件放到simple_switch目录下,root权限下,运行simple_switch,并加载json文件
    
   
    
     # sudo ./simple_switch -i 0@<iface0> -i 1@<iface1> <path to JSON file>
     
    
   
    
     写好CLI命令文件commands.txt,root权限下,加载CLI命令
    
   
    
     # ./runtime_CLI.py < commands.txt
     
    
   
    
     用scapy发包、wireshark收包进行测试
    
   
 
