ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2021-11-02 22:33:22  阅读:234  来源: 互联网

标签:py P4 h2 代码 h1 转发 可编程 平面


一、实验目的

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运行,并启动mininet

  • 输入pingall测试连通性

  • 输入xterm h1 h2 h3打开主机模拟终端

没有采用隧道转发时

  • 在h2终端下输入./receive.py
  • 在h1终端下输入./send.py 10.0.2.2 "031902335 h1 to h2",没有采用隧道转发,h1向h2发送消息,h3无法收到

  • 在h3终端下输入./receive.py
  • 在h1终端下输入./send.py 10.0.3.3 "031902335 h1 to h3",没有采用隧道转发,h1向h3发送消息,h2无法收到

采用隧道转发时

  • 在h1终端下输入./send.py 10.0.2.2 "031902335 hi 1-2" --dst_id 2,采用隧道转发,h2收到消息

  • 在h1终端下输入./send.py 10.0.3.3 "031902335 hi 1-3" --dst_id 2,采用隧道转发,虽然IP改变,但是经过隧道转发,交换机仍然将该报文发送给h2

三、个人总结

  • 实验难度:难

  • 实验过程遇到的困难及解决办法:

    • 导入镜像后,发现虚拟机页面很小,而且也不能粘贴代码,查询资料后才知道要安装VMware Tools,安装后得以解决。
    • 在补全代码上遇到了困难,通过翻找官方文档、查询资料、询问同学,才编写出代码。查看github源码时一开始还不太理解,后来发现,源码中有todo的地方就是我要加入代码的地方,并且通过readme可以了解如何操作运行。
    • 补全代码后输入make run命令报错,查询资料和通过参考同学博客的解决问题部分发现,应该要修改P4 程序,使调用 mark_to_drop()函数 时不携带参数,修改后能成功运行。
  • 个人感想:

本次实验最难的部分就是代码编写,查看官方代码时又是通过翻译和英文结合才能勉强理解其中的步骤和含义,通过本次实验,学习老师给出的教程了解P4-16版本的基本语法、基于V1Model的P4代码结构后,对p4有了更深的了解,这次实验只涉及到了p4的一部分,所以对p4的学习还不够深,还有很多地方要了解学习。通过这几次实验,对mininet的使用已经很熟练了,也提高了查看英文文档,编写代码的能力,学到了很多知识。

标签:py,P4,h2,代码,h1,转发,可编程,平面
来源: https://www.cnblogs.com/jasf/p/15501035.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有