P4-Related Tools Installation

安装P4相关工具的步骤和说明。

本说明只适用于 Ubuntu 14.04 系统。

推荐安装的其他工具

  • mininet:SDN网络仿真工具

  • vim:编辑器

  • scapy:Python的一个功能十分强大的库,可以用于生成数据报

  • pip:Python包管理工具

P4Factory

官方README:P4 Model Repository

注意:如果你对P4已经很熟悉并且能够独立搭建环境,这个repo已经不大适合现在的P4开发了(使用bmv1软件交换机),建议是使用bmv2搭建环境并进行相关开发。

1.安装外部引用的库:

git submodule update --init --recursive

2.安装Ubuntu14.04系统下所需的所有依赖:

./install_deps.sh

3.在启动模拟器之前,需要创建虚拟的端口:

sudo p4factory/tools/veth_setup.sh

4.使用autoconf工具生成Makefile,并对工作环境进行配置:

cd p4factory
./autogen.sh
./configure

5.验证安装是否成功,并测试一个简单的P4程序:

cd p4factory/targets/basic_routing/
make bm
sudo ./behavioral-model

同时新打开一个终端进行测试:

cd p4factory/targets/basic_routing/
sudo python run_tests.py --test-dir tests/ptf-tests/

BMv2

官方README:BEHAVIORAL MODEL REPOSITORY

1.Ubuntu 14.04下要求安装的依赖:

automake
cmake
libjudy-dev
libgmp-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

2.使用脚本安装外部依赖库,如thrift。

注意:如果已经安装了P4Factory,请忽略此步,否则会有一系列的版本不匹配问题。

./install_deps.sh

3.按照以下步骤安装bmv2:

./autogen.sh

./configure

make

[sudo] make install  # if you need to install bmv2

4.更新Linux库缓存:

sudo ldconfig

5.检验:

[sudo] make check

P4c-bm

官方README:p4c-bm

1.要求安装好pip;

2.安装步骤:

sudo pip install -r requirements.txt

sudo pip install -r requirements_v1_1.txt

sudo python setup.py install

Happy Hacking

P4-Related Tools Installation的更多相关文章

  1. 【转】VMware Tools installation cannot be started manually while Easy Install is in progress.

    我HOST 是WIN7也遇到了这样的问题 我这样做的:进入系统以后在你VM的下面会有几个图标:关于1,CD DVD 2,disk 3,floppy 4,网络连接... 选择floppy--settin ...

  2. Xcode 8.X Command Line Tools

    Summary Step 1. Upgrade Your System to macOS Sierra Step 2. Open the Terminal Application Step 3. Is ...

  3. Development Tools

    Introduction Even Chris created his article of Useful Reference Books ages ago I just bumped into it ...

  4. Xcode Command Line Tools for Mac OS X 10.9 Mavericks

    by Daniel Kehoe Last updated 28 December 2013 How to install Apple Xcode Command Line Tools for Mac ...

  5. 转 How to install XenServer Tools – Linux(forward)

    本文转自: http://blog.csdn.net/zhongguoren666/article/details/7088798 比较懒....大家看图说话就行了.... 说句实在话…还是老外写的地 ...

  6. Ubuntu下手动安装VMware Tools步骤

    To mount the CD image and extract the contents: Power on the virtual machine. Log in to the virtual ...

  7. 四、VMware Tools 安装 与 问题

    解决VMware Tools无法安装的问题 虚拟机上装win2kgho版的系统,安装VMware Tools时,遇到“VMware Tools installation cannot be start ...

  8. 虚拟机 VMware Tools 安装

    Ubuntu 或具有图形用户界面的 Ubuntu Server 要挂载 CD 镜像并解压,请按以下步骤操作: 启动此虚拟机. 使用具有管理员权限或 root 用户权限的帐户登录此虚拟机. 选择:对于F ...

  9. systemtap 2.8 news

    * What's new in version 2.8, 2015-06-17 - SystemTap has improved support for probing golang programs ...

随机推荐

  1. WordPress跳过语言包加载提高效率

    WordPress 加载语言包是需要花费 0.1-0.5 秒不等的时间,所以如果 WordPress 前台可以不加载语言包,而主题中的一些文本直接写成中文,就可以加快网站的速度,并且又能保证后台的中文 ...

  2. 如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件

    copy内容的网址: https://segmentfault.com/a/1190000007020623 使用vue-cli构建的vue项目,webpack的配置文件是分散在很多地方的,而我们需要 ...

  3. SQLCE数据工具(Flyhoward Ltd SDF Viewer)

    SDF Viewer sdf数据库创建编辑查看 官方下载地址  http://www.flyhoward.com/Download_SDF_Viewer.aspx 用户名:www.cr173.com注 ...

  4. cookie和session的使用

    http://www.cnblogs.com/linguoguo/p/5106618.html 1:在控制器中添加session和cookie @RequestMapping("/getin ...

  5. unittest数据驱动

    所谓的数据驱动就是将数据单独存放,在写方法将数据读取,然后将读取的数据放在testcase里面. 当然如果这种testcase都是一样的,只有需要的数据不一样,也可以将testcase写成一个方法,把 ...

  6. Java的jdk1.6与jre1.8中存在的差异

    一般来说: jdk每一个版本都是向后兼容的,说以低版本的代码是可以运行在高版本的虚拟机上的.而反过来则不可以,用1.6的编译器编辑的字节码文件是不可以运行在1.5版本的虚拟机上的. 但是今天我用Sun ...

  7. SSM三层模型之间的参数传递

    Controller接收各种形式的传参:   RequestMapping()包含三部分信息:   表单传参: 1.表单action请求   1:参数名称和顺序都要和表单字段名称一致,直接接收(适合字 ...

  8. Perl中的哈希(四)

    Perl中的哈希数据结构.相比较于数组,这种数据结构对于数据查找和统计更加方便. 一个特殊的哈希,%ENV,表示当前terminal下,通过setenv设置的variable的键值. 键:环境变量名, ...

  9. python 读写压缩文件

    gzip 和bz2 模块可以很容易的处理这些文件.两个模块都为open() 函数提供了另外的实现来解决这个问题.比如,为了以文本形式读取压缩文件,可以这样做: # gzip compression i ...

  10. linux常用命令:traceroute 命令

    通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径.当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一 ...