Ubuntu P4编程环境搭建

前言

最近由于科研的需要,搭建SDN的P4编程环境,但是这个过程比较麻烦。网上相关的资源较老,P4的库依赖众多,出现了很多库版本不对导致的错误。最后以GitHub上P4项目教程的实验环境的配置文档和一些相关的文档为参考而搭建成功。
下面对整个搭建环境过程进行一下总结。

系统环境

  • Ubuntu 16.04
  • Python 2.7
  • 内存 4G+
  • 内核 4.15
    系统内核版本一定要更新到4.15及以上的版本,不然在安装P4C的过程中会出现error。同时内存太小的情况下,执行脚本过程中系统容易崩溃。

环境组件

P4编程环境主要需要5个组件。

  • p4c是最新的p4编译器。
  • Bmv2是支持P4编程的软件交换机。
  • PI是P4 runtime的实现,用于Control Plane对数据平面的控制。
  • Mininet的功能是构建一个虚拟的网络拓扑。 它通过linux内核的一些特性(net命名空间),在一个主机上划分出多个虚拟网络空间,各个网络空间之间相互隔离,有自己的端口, ip等等。
  • p4 tutorials 提供了用于学习的实例代码,它提供了很多个带有方向性的实际场景,例如负载均衡,简单的隧道机制,源路由等。

搭建过程

1.安装依赖

sudo apt-get update

sudo apt-get upgrade
 
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 pip install psutil

sudo pip install crcmod

分别执行这些语句,安装P4编程环境需要的依赖。

2.创建工作目录

在home目录下创建一个P4的工作目录,方便之后的使用,并且加入环境变量。

mkdir ~/P4

cd ~/P4

echo "P4_HOME=$(pwd)" >> ~/.bashrc

source ~/.bashrc

3.P4相关组件版本

截至本篇文章书写时间,P4项目教程的实验环境的配置文档中的各组件和依赖库的版本如下。

BMV2_COMMIT="b447ac4c0cfd83e5e72a3cc6120251c1e91128ab"   #August 10, 2019
PI_COMMIT="41358da0ff32c94fa13179b9cee0ab597c9ccbcc"     #August 10, 2019
P4C_COMMIT="69e132d0d
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值