SDN的P4学习
Tasdily
脚踏实地,砥砺前行!程序猿最帅气课代表。。。
展开
-
scapy发包:用Python脚本构造带有私有协议头(直接带十六进制数据)的报文
问题描述: 由于测试需求需要发一个带有私有协议的头部数据的报文来进一步做相关用例测试,而scapy经过查资料和测试只能带初已知网络协议的的头部数据为,真正数据部分只能带字符串,而不能带自己想要的十六进制数据。比如我想发一个在以太网头部数据之前附加上自己的私有协议头数据的报文,具体如下:私有头协议数据:03 00 00 02 10 02 00 00 40 00 00 00...原创 2020-04-18 16:37:06 · 3373 阅读 · 0 评论 -
P4的可编程的设计流程
1、熟悉芯片的报文处理原理和整体报文处理流水线2、根据芯片的报文处理原理和处理流水线画出每个功能模块的流水线图,并设计每个功能模块的表,即输出反向设计,并进行模拟器验证3、输出正向设计,提交团队审核4、编码5、测试用例,验证功能...原创 2020-02-28 23:47:34 · 1356 阅读 · 0 评论 -
P4:编写协议无关的包处理器(译自:《P4: Programming Protocol-Independent Packet Processors》转自:SDNLAB--译者毛健炜)
摘要P4是一门编写协议无关的包处理器的高级语言。P4与SDN控制协议联合在一起工作,比如OpenFlow。在OpenFlow当前的协议形态中,它精确地指定了供它操作的协议头。这个协议头集合已经在短短的几年时间中,从12个域增长到了41个域,这同时也增加了协议的复杂性,但是仍然没有提供添加新的自定义首部的灵活性。在这篇论文中我们将P4作为一个展示了OpenFlow在未来应该如何演进的草案协议...翻译 2020-01-13 14:51:43 · 3394 阅读 · 0 评论 -
P4语言编码及规范
1.源码目录结构P4项目源码可以在github上直接获取(https://github.com/p4lang)。P4项目由很多个单独的模块组成,每个模块就是一个子项目,下面分别简单介绍一下各模块的功能。(1)behavioral-model模拟P4数据平面的用户态软件交换机,使用C++语言编写,简称bmv2。P4程序首先经过p4c-bm模块编译成JSON格式的配置文件,然后将配置文件载入...转载 2020-01-14 14:27:46 · 3755 阅读 · 0 评论 -
P4语言的特性、P4语言和P4交换机的工作原理和流程简介
现有的SDN解决方案将控制平面与转发平面分离,并为我们提供了控制平面的可编程能力。而事实上,目前通过软件编程实现的控制平面的功能,在传统的高级交换机和路由器上也都能实现,差别是厂商把这些功能固化在了系统/硬件中,这些系统/硬件是封闭的,第三方难以介入进行定制或二次开发。虽然一些高级设备提供了SDK,使得用户能够进行一定程度的定制,但也必须受厂商所制定的规范的限制,能做到的事情十分有限。目前SDN所...转载 2020-01-14 14:25:38 · 14218 阅读 · 0 评论