实验8:数据平面可编程实践——P4

一、实验目的
掌握V1Model框架下P4_16的程序结构和基本语法
能够运用 P4 进行简单数据平面编程

二、实验环境
下载虚拟机软件Oracle VisualBox或VMware;
在虚拟机中安装Ubuntu 16.04 Desktop amd64,并安装完整Mininet和P4开发环境;
提供P4镜像P4-Suite2018.ova,提取码:egwf

三、实验要求
学习P4官方示例教程,链接:https://github.com/p4lang/tutorials,了解P4-16版本的基本语法、基于V1Model的P4代码结构,完成如下练习:

(一)基本要求
熟悉使用P4实现交换机IPv4的基本转发原理,编写P4程序,在下面的拓扑中实现IPV4 隧道转发。

  • 首先修改basic_tunnel.p4的内容
    cd /P4/tutorials/exercises/basic_tunnel,然后执行命令make run,就可以看见打开了mininet

  • 在mininet命令行输入xterm h1 h2,打开主机h1和h2的模拟终端
    并在h2输入./receive.py
    在h1输入./send.py 10.0.2.2 "081900327",此时没有采用隧道转发

  • 在h1处输入命令./send.py 10.0.2.2 "081900327 end" --dst_id 2,进行隧道转发

四、实验总结

实验难度:难
遇到的问题及解决办法:
首先遇到的问题的是导入虚拟机,一开始在ubuntu上导入,但是老是产生错误,没有找到解决的办法,于是我又去VMware上导入,结果一下就成功了。
第二个问题是修改basic_tunnel.p4的内容,修改完保存后,make run,发现报错,代码有问题。

按照它的提示,我删除了 mark_to_drop(standard_metadata);这行代码,然后运行成功打开了mininet。
个人感想:本次实验难度还挺大的,但也收获很多,通过这次实验,我大概掌握V1Model框架下P4_16的程序结构和基本语法,并且能够运用 P4 进行简单数据平面编程。

posted @ 2021-11-03 15:12  鲨鱼辣椒爱吃辣  阅读(91)  评论(0编辑  收藏  举报