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

一、实验目的

1.掌握V1Model框架下P4_16的程序结构和基本语法
2.能够运用 P4 进行简单数据平面编程

二、实验环境

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

三、实验要求

1.学习P4官方示例教程,链接:https://github.com/p4lang/tutorials,了解P4-16版本的基本语法、基于V1Model的P4代码结构,完成如下练习:
(一)基本要求
熟悉使用P4实现交换机IPv4的基本转发原理,编写P4程序,在下面的拓扑中实现IPV4 隧道转发。
第8次上机作业_开发环境

第8次上机作业_补全_02

四、心得体会

(我可能也会有些错误,请谨慎参考!)

1.这次是真的难,难的不是代码量,而是要自己去学会如何补全代码。但是理解之后就很简单,就只要把/P4/tutorials/exercises/basic里面的basic.p4的/Todo/代码补全。
2.而且make run时,也经常出现好多次error,只好根据提示找到那一行错误的进行改正。
3.代码部分是根据这位同学的代码来敲的。javascript:void(0)

(其中,TA代码里的第55行的parser_ethernet要改成parse_ethernet,以及第58行要把packet_ethernet改成parse_ethernet,负责会报错。)

其他照TA上面敲补全,最后输入密码,再make run就ok了。
然后你在拿h1 ping h2 就会发现可以ping通,不然不做其他直接ping的话是ping不通的。
这就是隧道的作用吧,我是听其他同学讲的。