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

一、实验目的

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

二、实验环境

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

三、实验要求

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

(一)基本要求

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

第八次SDN实验_开发环境

 

 

第八次SDN实验_oracle_02

 

 第八次SDN实验_开发环境_03

 

 在h2中选择接收数据,h1中选择发送数据

第八次SDN实验_基本语法_04

 

第八次SDN实验_oracle_05

 

 

四。心得体会

本次实验较难,需要学习p4相关知识,关键还是英文的资料,而且还要写代码,修改代码。我在make run代码这块花费的时间较多,还是一直报错,询问同学和查资料后才得以解决,在进行隧道测试时,无法正常收到包,无法正常运行,而且在安装P4的时候也能报各种问题,最后都要靠百度一个个解决,最难的还是在P4的代码部分,基本上都不会修改,只能借鉴同学的才能勉强完成本次实验。但是对于p4的学习还是远远不够,后续会继续学习p4,争取把进阶实验部分也完成。