随笔分类 - P4
摘要:p4runtime P4 Runtime是一套基于Protobuf以及gRPC框架上的协议,通过P4runtime,SDN控制器可以控制能够支援p4的设备。 p4runtime当前由p4 API workgroup指定,主要来自于barefoot公司。 barefoot公司,其还设计了第一款原生支持
阅读全文
摘要:Package 对于package这个概念,类似于将一个框架中各组成部件以一个规律进行打包,以正常运转。 基于一个架构去编写一个新的pipeline的时候,需要先了解初始化的时候需要提供那些东西,parser,ingress或一些校验的模块。 v1model的package 从package的定义中
阅读全文
摘要:Control block Control block之中用于放置设计好的Table和Action。 可以把control block认为是pipeline的一个模板,之前用的v1model中就是ingress和egress。 不同的架构中的control block格式不同。 其主要的功能就是知道
阅读全文
摘要:Table table是p4的匹配——动作表,定义了匹配字段(key)、动作(action)和一些其他相关属性。 其处理数据包的流程: key key由一个个表单对组成(e:m),其中e是对应数据包中匹配的字段,而m是一个match_kind常数用来表示匹配的算法。 例如: 这个就是以ipv4头的目
阅读全文
摘要:写在前面 只是作为一个入门p4的实验尝试,借用了一些即成的运行代码。 p4代码 /**p4_16,v1_model**/ 1 #include<core.p4> 2 #include<v1model.p4> 3 4 const bit<16> TYPE_IPV6 = 0x86DD;//ipv6在以太
阅读全文
摘要:这里参考学习了: P4语言规范 P4台湾社群 Parser 关于parser 在P4程序中,有着大量的首部(header)和首部实例,但每次只有部分首部实例会对数据包进行操作,而parser会用于生成描述数据包进行哪些匹配动作操作的中间表示(Intermediate Representation),
阅读全文
摘要:文章学习自: "P4语言编程详解" 由于原文有一点的年份,所以也继续阅读了相关的最新规范。 "P4语言规范" 基础数据类型 布尔型(bool) |运算符|描述| |: :|: :| |and|双目运算符,结果为布尔型| |or|双目运算符,结果为布尔型| |not|单目运算符,结果为布尔型| |==
阅读全文
摘要:在经历了无数的折腾之后,算是折腾,最后采用的是陈翔学长的脚本加上可爱的shell调整装好的。 链接:p4Install 也许是ubuntu18.04的问题,也有可能是我自己把这个系统折腾的有点杂乱的原因,中途出现的问题一度让我抓瞎了好久。 安装p4c-bm 命令 问题 问题是出在最后一条命令,显示的
阅读全文
摘要:本文参照了sdnlab上相关文章的搭建推荐。 使用的系统环境为ubuntu 18.04 组件介绍 主要安装五个组件: BMv2:是一款支持P4编程的软件交换机 p4c:是一款P4的编译器 PI:是P4 runtime的实现,用于控制平面对数据平面的控制。 mininet:这个之前用过,是一个虚拟的网
阅读全文
摘要:引言 关于题目,对数据平面进行编程,在之前读过the road to SDN,软件定义网络的思想在于数控分离,其对网络行为的编程暂时只局限于网络控制平面。其转发平面在很大程度上受制于功能固定的包处理硬件。而P4语言的出现就是为了完全摆脱网络数据平面的束缚。P4被称作为完全可编程南向编程接口,其提出的
阅读全文

浙公网安备 33010602011771号