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

实验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

三、实验要求

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

(一)基本要求

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

进入/P4/tutorials/exercises/basic_tunnel,打开basic_tunnel.P4,编辑补全代码

make run运行

xterm h1 h2 h3
./receive.py
./send.py 10.0.2.2 "very cool"

./send.py 10.0.3.3 "very 666"

从上面操作可以看出,没有采用隧道转发,h1向h2发送消息,h3接收不到,h1向h3发送消息,h2同样接收不到

下面采用隧道转发,./send.py 10.0.3.3 "102192122" --dst_id 2

./send.py 10.0.2.2 "student 102192122" --dst_id 3

从上面操作得知,采用隧道转发后,通信是不再根据ip进行发送消息,而是根据指定的 dst_id 进行转发。

四.个人总结


这次实验在阅读P4文档时虽然有谷歌翻译,但是编写补全代码时还是很入手,主要还是基础太差,很多代码看不懂,阅读效率低下,参考了同学的代码,才编写出来,现在非常理解老师上课说的,要理解p4的原理,实验操作部分非常简单,但是编写补全代码就是写不来。在后面小组做的负载均衡大作业,尽可能多理解学习P4,用P4额外的进行一次负载均衡,加油。

posted @ 2021-11-02 23:34  小林の一生  阅读(125)  评论(0编辑  收藏  举报