实验8:数据平面可编程实践——P4
实验8:数据平面可编程实践——P4
基础要求
首先进入/P4/tutorials/exercises/basic_tunnel
在basic_tunnel.p4
中补全代码,make run
运行,之后可以看到启动mininet
输入xterm h1 h2
,启动命令行
在h2中运行./receive.py
在h1中输入./send.py 10.0.2.2 "P4 is cool"
,此时没有采用隧道转发
可以看到,没有采用隧道转发的情况下,由h1向h2发送"P4 is awesome"消息,h3处并不能收到,反之亦然。
采用隧道转发进行尝试,在h1处输入:./send.py 10.0.2.2 "P4 is cool" --dst_id 2
可以看到h2收到消息,这在h1处修改目的IP为10.0.3.3
:
看到虽然IP改变,但是经过隧道转发,交换机仍然将该报文发送给h2
总结
本次实验接触到了P4编程语言,并尝试进行编写,但是难度上不是很难,在实验过程中,遇到如下问题,记录如下:
- P4版本问题:起初在官方github上克隆了仓库到本地进行运行,但是在运行的过程中,发现编译失败,询问同学之后发现是由于虚拟机安装的P4版本过低,导致不能成功运行,需要更换最新的版本,之后发现用户目录下已有P4示例仓库,故暂时不需要更新版本,可以继续实验。
- 代码编写:填充的代码参考官方教程,但是发现由于前面的P4版本问题,一个函数的传参发生改变,故参考同学的解决方案,修改传参,最终解决问题。
经过这次实验,感受到自己对P4还不是很了解,计划之后进行更深层次的学习。